{"version":3,"sources":["script.js"],"names":["Core","selector","container","document","querySelector","$$","querySelectorAll","ready","fn","addEventListener","scrollTo","el","options","offset","undefined","onScreen","top","getBoundingClientRect","window","innerHeight","pos","scrollTop","scroll","left","behavior","documentElement","body","index","previousElementSibling","trigger","name","event","createEvent","initEvent","dispatchEvent","animate","duration","props","old","style","transition","count","counter","easing","ease","delay","complete","key","str","replace","tmp","toLowerCase","substring","length","end","t","setTimeout","end2","e","target","currentTarget","clearTimeout","removeEventListener","call","slideToggle","height","offsetHeight","padding","parseInt","getComputedStyle","offsetWidth","onEndHide","visibility","onEndShow","trapFocus","focusableElements","slice","filter","item","getAttribute","firstFocusableElement","lastFocusableElement","which","keyCode","shiftKey","activeElement","focus","preventDefault","$","Header","build","rootMargin","observer","IntersectionObserver","entries","forEach","isIntersecting","classList","remove","add","observe","Navigation","parentIsLink","toggleButton","touched","navOpen","isMobileNavOpen","open","close","contains","propertyName","i","insertAdjacentHTML","subnavButton","stopPropagation","toggleChildren","checkSubNavPosition","setAttribute","closest","clearSubNav","ul","button","parentNode","toggle","offsetParent","margin","innerWidth","App","queue","isReady","readyQueue","init","start","processQueue","push","shift","focusVisible","onBlur","app"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA,SAASA,IAAT,CAAcC,QAAd,EAAwBC,SAAxB,EAAmC;AAClC,SAAO,OAAOD,QAAP,KAAoB,QAApB,GAA8B,CAACC,SAAS,IAAIC,QAAd,EAAwBC,aAAxB,CAAsCH,QAAtC,CAA9B,GAAgFA,QAAQ,IAAI,IAAnG;AACA;AAED;AACA;AACA;;;AACAD,IAAI,CAACK,EAAL,GAAU,UAASJ,QAAT,EAAmBC,SAAnB,EAA8B;AACvC,SAAO,OAAOD,QAAP,KAAoB,QAApB,GAA8B,CAACC,SAAS,IAAIC,QAAd,EAAwBG,gBAAxB,CAAyCL,QAAzC,CAA9B,GAAmFA,QAAQ,IAAI,IAAtG;AACA,CAFD;AAIA;AACA;AACA;;;AACAD,IAAI,CAACO,KAAL,GAAa,UAASC,EAAT,EAAa;AACzBL,EAAAA,QAAQ,CAACM,gBAAT,CAA0B,kBAA1B,EAA8CD,EAA9C;AACA,CAFD;AAIA;AACA;AACA;;;AACAR,IAAI,CAACU,QAAL,GAAgB,UAASC,EAAT,EAAaC,OAAb,EAAsB;AACrC,MAAMC,MAAM,GAAG,CAACD,OAAD,IAAYA,OAAO,CAACC,MAAR,KAAmBC,SAA/B,GAA2C,CAA3C,GAA+CF,OAAO,CAACC,MAAtE;AACA,MAAME,QAAQ,GAAG,CAACH,OAAD,IAAaA,OAAO,CAACG,QAAR,KAAqBD,SAAlC,GAA8C,KAA9C,GAAsDF,OAAO,CAACG,QAA/E;AACA,MAAMC,GAAG,GAAGL,EAAE,CAACM,qBAAH,GAA2BD,GAAvC;;AAEA,MAAG,CAACD,QAAD,IAAcC,GAAG,GAAGH,MAAN,IAAgBG,GAAG,GAAGE,MAAM,CAACC,WAA9C,EAA4D;AAC3D,QAAIC,GAAG,GAAGJ,GAAG,GAAGhB,IAAI,CAACqB,SAAL,EAAN,GAAyBR,MAAnC;AAEAK,IAAAA,MAAM,CAACI,MAAP,CAAc;AAACN,MAAAA,GAAG,EAAEI,GAAN;AAAWG,MAAAA,IAAI,EAAE,CAAjB;AAAoBC,MAAAA,QAAQ,EAAE;AAA9B,KAAd;AACA;AACD,CAVD;AAYA;AACA;AACA;;;AACAxB,IAAI,CAACqB,SAAL,GAAiB,YAAW;AAC3B,SAAOlB,QAAQ,CAACsB,eAAT,CAAyBJ,SAAzB,IAAsClB,QAAQ,CAACuB,IAAT,CAAcL,SAA3D;AACA,CAFD;AAIA;AACA;AACA;;;AACArB,IAAI,CAAC2B,KAAL,GAAa,UAAShB,EAAT,EAAa;AACzB,MAAIgB,KAAK,GAAG,CAAZ;;AAEA,SAAMhB,EAAE,GAAGA,EAAE,CAACiB,sBAAd,EAAsC;AACrCD,IAAAA,KAAK;AACF;;AAEJ,SAAOA,KAAP;AACA,CARD;AAUA;AACA;AACA;;;AACA3B,IAAI,CAAC6B,OAAL,GAAe,UAASlB,EAAT,EAAamB,IAAb,EAAmB;AACjC,MAAMC,KAAK,GAAG5B,QAAQ,CAAC6B,WAAT,CAAqB,YAArB,CAAd;AACAD,EAAAA,KAAK,CAACE,SAAN,CAAgBH,IAAhB,EAAsB,IAAtB,EAA4B,KAA5B;AACAnB,EAAAA,EAAE,CAACuB,aAAH,CAAiBH,KAAjB;AACA,CAJD;AAMA;AACA;AACA;;;AACA/B,IAAI,CAACmC,OAAL,GAAe,UAASxB,EAAT,EAAayB,QAAb,EAAuBC,KAAvB,EAA8B;AAC5C,MAAMC,GAAG,GAAG3B,EAAE,CAAC4B,KAAH,CAASC,UAArB;AACA,MAAIA,UAAU,GAAG,EAAjB;AACA,MAAIC,KAAK,GAAG,CAAZ;AACA,MAAIC,OAAO,GAAG,CAAd;AACA,MAAMC,MAAM,GAAGN,KAAK,CAACO,IAAN,IAAc,QAA7B;AACA,MAAMC,KAAK,GAAGR,KAAK,CAACQ,KAAN,IAAe,CAA7B;AACA,MAAMC,QAAQ,GAAGT,KAAK,CAACS,QAAN,IAAkB,IAAnC;;AAEA,OAAI,IAAIC,GAAR,IAAeV,KAAf,EAAsB;AACrB,QAAGU,GAAG,IAAI,MAAP,IAAiBA,GAAG,IAAI,OAAxB,IAAmCA,GAAG,IAAI,UAA7C,EAAyD;AACxD,aAAOV,KAAK,CAACU,GAAD,CAAZ;AACA;AACA;;AAED,QAAMC,GAAG,GAAGD,GAAG,CAACE,OAAJ,CAAY,iBAAZ,EAA+B,OAA/B,CAAZ;AACA,QAAMC,GAAG,GAAGF,GAAG,CAACG,WAAJ,KAAoB,GAApB,GAA0Bf,QAA1B,GAAqC,IAArC,GAA4CO,MAA5C,GAAqD,GAArD,GAA2DE,KAA3D,GAAmE,KAA/E;AAEAL,IAAAA,UAAU,IAAIU,GAAd;AACAT,IAAAA,KAAK;AACL;;AAED9B,EAAAA,EAAE,CAAC4B,KAAH,CAASC,UAAT,GAAsBA,UAAU,CAACY,SAAX,CAAqB,CAArB,EAAwBZ,UAAU,CAACa,MAAX,GAAoB,CAA5C,CAAtB;;AAEA,OAAI,IAAIN,IAAR,IAAeV,KAAf,EAAsB;AACrB,QAAMW,IAAG,GAAGD,IAAG,CAACE,OAAJ,CAAY,iBAAZ,EAA+B,OAA/B,CAAZ;;AAEAtC,IAAAA,EAAE,CAAC4B,KAAH,CAASQ,IAAT,IAAgBV,KAAK,CAACU,IAAD,CAArB;AACA;;AAEDpC,EAAAA,EAAE,CAACF,gBAAH,CAAoB,eAApB,EAAqC6C,GAArC;AAEA,MAAMC,CAAC,GAAGC,UAAU,CAACC,IAAD,EAAOrB,QAAQ,GAAG,IAAX,GAAkBS,KAAK,GAAG,IAA1B,GAAiC,EAAxC,CAApB;;AAEA,WAASS,GAAT,CAAaI,CAAb,EAAgB;AACf,QAAG,EAAEhB,OAAF,GAAYD,KAAZ,IAAqBiB,CAAC,CAACC,MAAF,IAAYD,CAAC,CAACE,aAAtC,EAAqD;AACpD,aAAO,KAAP;AACA;;AAEDC,IAAAA,YAAY,CAACN,CAAD,CAAZ;AACAb,IAAAA,OAAO,GAAG,CAAV;AACAe,IAAAA,IAAI;AACJ;;AAED,WAASA,IAAT,GAAgB;AACf9C,IAAAA,EAAE,CAACmD,mBAAH,CAAuB,eAAvB,EAAwCR,GAAxC;AACA3C,IAAAA,EAAE,CAAC4B,KAAH,CAASC,UAAT,GAAsBF,GAAtB;;AAEA,QAAGQ,QAAH,EAAa;AACZA,MAAAA,QAAQ,CAACiB,IAAT;AACA;AACD;AACD,CApDD;AAsDA;AACA;AACA;;;AACA/D,IAAI,CAACgE,WAAL,GAAmB,UAASrD,EAAT,EAAamC,QAAb,EAAuB;AAEzC,MAAImB,MAAM,GAAGtD,EAAE,CAACuD,YAAhB;AACA,MAAIC,OAAO,GAAGC,QAAQ,CAACC,gBAAgB,CAAC1D,EAAD,CAAhB,CAAqB,aAArB,CAAD,EAAsC,EAAtC,CAAR,GAAoDyD,QAAQ,CAACC,gBAAgB,CAAC1D,EAAD,CAAhB,CAAqB,gBAArB,CAAD,EAAyC,EAAzC,CAA1E,CAHyC,CAKzC;;AACA,MAAGsD,MAAM,GAAGE,OAAT,GAAmB,CAAtB,EAAyB;AACxBxD,IAAAA,EAAE,CAAC4B,KAAH,CAAS0B,MAAT,GAAkBA,MAAM,GAAG,IAA3B;AAEA,SAAKtD,EAAE,CAAC2D,WAAR;AAEA3D,IAAAA,EAAE,CAAC4B,KAAH,CAAS0B,MAAT,GAAkB,GAAlB;AACAtD,IAAAA,EAAE,CAACF,gBAAH,CAAoB,eAApB,EAAqC8D,SAArC;AACA,GAPD,CAQA;AARA,OASK;AACJ5D,IAAAA,EAAE,CAAC4B,KAAH,CAAS0B,MAAT,GAAkB,MAAlB;AACAA,IAAAA,MAAM,GAAGtD,EAAE,CAACuD,YAAZ;AACAvD,IAAAA,EAAE,CAAC4B,KAAH,CAAS0B,MAAT,GAAkB,GAAlB;AACAtD,IAAAA,EAAE,CAAC4B,KAAH,CAASiC,UAAT,GAAsB,SAAtB;AAEA,SAAK7D,EAAE,CAAC2D,WAAR;AAEA3D,IAAAA,EAAE,CAAC4B,KAAH,CAAS0B,MAAT,GAAkBA,MAAM,GAAG,IAA3B;AACAtD,IAAAA,EAAE,CAACF,gBAAH,CAAoB,eAApB,EAAqCgE,SAArC;AACA;;AAED,WAASF,SAAT,GAAqB;AACpB5D,IAAAA,EAAE,CAAC4B,KAAH,CAASiC,UAAT,GAAsB,QAAtB;AAEA7D,IAAAA,EAAE,CAACmD,mBAAH,CAAuB,eAAvB,EAAwCS,SAAxC;;AAEA,QAAGzB,QAAH,EAAa;AACZA,MAAAA,QAAQ;AACR;AACD;;AAED,WAAS2B,SAAT,GAAqB;AACpB,QAAG9D,EAAE,CAACuD,YAAH,GAAkBC,OAAlB,GAA4B,CAA/B,EAAkC;AACjCxD,MAAAA,EAAE,CAAC4B,KAAH,CAAS0B,MAAT,GAAkB,MAAlB;AACA;;AAEDtD,IAAAA,EAAE,CAACmD,mBAAH,CAAuB,eAAvB,EAAwCW,SAAxC;;AAEA,QAAG3B,QAAH,EAAa;AACZA,MAAAA,QAAQ;AACR;AACD;AACD,CAhDD;AAkDA;AACA;AACA;;;AACA9C,IAAI,CAAC0E,SAAL,GAAiB,UAAS/D,EAAT,EAAa;AAC7B,MAAIgE,iBAAiB,GAAG,GAAGC,KAAH,CAASb,IAAT,CAAcpD,EAAE,CAACL,gBAAH,CAAoB,yDAApB,CAAd,CAAxB;AACAqE,EAAAA,iBAAiB,GAAGA,iBAAiB,CAACE,MAAlB,CAAyB,UAAAC,IAAI;AAAA,WAAIA,IAAI,CAACC,YAAL,CAAkB,UAAlB,KAAiC,IAArC;AAAA,GAA7B,CAApB;AAEA,MAAMC,qBAAqB,GAAGL,iBAAiB,CAAC,CAAD,CAA/C;AACA,MAAMM,oBAAoB,GAAGN,iBAAiB,CAACA,iBAAiB,CAACtB,MAAlB,GAA2B,CAA5B,CAA9C;AAEA1C,EAAAA,EAAE,CAACF,gBAAH,CAAoB,SAApB,EAA+B,UAASiD,CAAT,EAAY;AAC1C,QAAIX,GAAG,GAAGW,CAAC,CAACwB,KAAF,IAAWxB,CAAC,CAACyB,OAAvB;;AAEA,QAAGpC,GAAG,IAAI,CAAV,EAAa;AACZ;AACA;;AAED,QAAGW,CAAC,CAAC0B,QAAL,EAAe;AACd,UAAGjF,QAAQ,CAACkF,aAAT,KAA2BL,qBAA9B,EAAqD;AACpDC,QAAAA,oBAAoB,CAACK,KAArB;AACA5B,QAAAA,CAAC,CAAC6B,cAAF;AACA;AACD,KALD,MAKO;AACN,UAAGpF,QAAQ,CAACkF,aAAT,KAA2BJ,oBAA9B,EAAoD;AACnDD,QAAAA,qBAAqB,CAACM,KAAtB;AACA5B,QAAAA,CAAC,CAAC6B,cAAF;AACA;AACD;AACD,GAlBD;AAmBA,CA1BD,C,CA4BA;;;AACA,IAAG,EAAE,OAAOC,CAAP,IAAY,WAAd,CAAH,EAA+B;AAC9B,MAAIA,CAAC,GAAGxF,IAAR;AACA;;AAED,IAAMK,EAAE,GAAGL,IAAI,CAACK,EAAhB;;IAEMoF,M;AAEL,kBAAY9E,EAAZ,EAAgB;AAAA;;AACf,SAAKA,EAAL,GAAUA,EAAV;AAEA,SAAK+E,KAAL;AACA;AAED;AACD;AACA;;;;;WACC,iBAAQ;AAAA;;AACP,UAAM9E,OAAO,GAAG;AACf+E,QAAAA,UAAU,EAAE;AADG,OAAhB;AAIA,UAAMC,QAAQ,GAAG,IAAIC,oBAAJ,CAAyB,UAAAC,OAAO,EAAI;AACpDA,QAAAA,OAAO,CAACC,OAAR,CAAgB,UAAAjB,IAAI,EAAI;AACvB,cAAGA,IAAI,CAACkB,cAAR,EAAwB;AACvB,YAAA,KAAI,CAACrF,EAAL,CAAQsF,SAAR,CAAkBC,MAAlB,CAAyB,OAAzB;AACA,WAFD,MAEO;AACN,YAAA,KAAI,CAACvF,EAAL,CAAQsF,SAAR,CAAkBE,GAAlB,CAAsB,OAAtB;AACA;AACD,SAND;AAOA,OARgB,EAQdvF,OARc,CAAjB;AAUAgF,MAAAA,QAAQ,CAACQ,OAAT,CAAiB,KAAKzF,EAAtB;AACA;;;;;;IAGI0F,U;AAEL,sBAAY1F,EAAZ,EAAgB;AAAA;;AACf,SAAKA,EAAL,GAAUA,EAAV;AACA,SAAK2F,YAAL,GAAoB,IAApB;AACA,SAAKC,YAAL,GAAoBpG,QAAQ,CAACC,aAAT,CAAuB,aAAvB,CAApB;AACA,SAAKoG,OAAL,GAAe,KAAf;AACA,SAAKC,OAAL,GAAe,KAAf;AAEA,SAAKf,KAAL;AACA;AAED;AACD;AACA;;;;;WACC,iBAAQ;AAAA;;AACP;AACA,WAAKa,YAAL,CAAkB9F,gBAAlB,CAAmC,OAAnC,EAA4C,UAAAiD,CAAC,EAAI;AAChD,YAAG,CAAC,MAAI,CAACgD,eAAL,EAAJ,EAA4B;AAC3B,UAAA,MAAI,CAACC,IAAL;AACA,SAFD,MAGK;AACJ,UAAA,MAAI,CAACC,KAAL;AACA;AACD,OAPD,EAFO,CAWP;;AACAzG,MAAAA,QAAQ,CAACuB,IAAT,CAAcjB,gBAAd,CAA+B,OAA/B,EAAwC,UAAAiD,CAAC,EAAI;AAC5C,YAAG,CAAC,MAAI,CAAC/C,EAAL,CAAQkG,QAAR,CAAiBnD,CAAC,CAACC,MAAnB,CAAD,IAA+B,MAAI,CAAC+C,eAAL,EAAlC,EAA0D;AACzD,UAAA,MAAI,CAACE,KAAL;AACA;AACD,OAJD,EAZO,CAkBP;;AACA,WAAKjG,EAAL,CAAQF,gBAAR,CAAyB,SAAzB,EAAoC,UAAAiD,CAAC,EAAI;AACxC,YAAIX,GAAG,GAAGW,CAAC,CAACwB,KAAF,IAAWxB,CAAC,CAACyB,OAAvB;;AAEA,YAAGpC,GAAG,IAAI,EAAV,EAAc;AACb;AACA,cAAG,CAAC,MAAI,CAAC2D,eAAL,EAAJ,EAA4B;AAC3B,YAAA,MAAI,CAAC/F,EAAL,CAAQL,gBAAR,CAAyB,gBAAzB,EAA2CyF,OAA3C,CAAmD,UAAAjB,IAAI,EAAI;AAC1DA,cAAAA,IAAI,CAACmB,SAAL,CAAeC,MAAf,CAAsB,QAAtB;AACA,aAFD;;AAIA,YAAA,MAAI,CAACvF,EAAL,CAAQL,gBAAR,CAAyB,IAAzB,EAA+ByF,OAA/B,CAAuC,UAAAjB,IAAI,EAAI;AAC9CA,cAAAA,IAAI,CAACmB,SAAL,CAAeC,MAAf,CAAsB,QAAtB;AACA,aAFD;AAGA,WAVY,CAYb;;;AACA,UAAA,MAAI,CAACU,KAAL;AACA;AACD,OAlBD,EAnBO,CAuCP;;AACA,WAAKjG,EAAL,CAAQF,gBAAR,CAAyB,eAAzB,EAA0C,UAAAiD,CAAC,EAAI;AAC9C,YAAGA,CAAC,CAACC,MAAF,IAAY,MAAI,CAAChD,EAAL,CAAQP,aAAR,CAAsB,KAAtB,CAAZ,IAA4CsD,CAAC,CAACoD,YAAF,IAAkB,WAAjE,EAA8E;AAC7E3G,UAAAA,QAAQ,CAACsB,eAAT,CAAyBwE,SAAzB,CAAmCC,MAAnC,CAA0C,qBAA1C;AACA;AACD,OAJD,EAxCO,CA8CP;;AACA,WAAKvF,EAAL,CAAQL,gBAAR,CAAyB,yBAAzB,EAAoDyF,OAApD,CAA4D,UAAAgB,CAAC,EAAI;AAChEA,QAAAA,CAAC,CAAC3G,aAAF,CAAgB,GAAhB,EAAqB4G,kBAArB,CAAwC,UAAxC,EAAoD,6UAApD;AAEA,YAAMC,YAAY,GAAGF,CAAC,CAAC3G,aAAF,CAAgB,gBAAhB,CAArB,CAHgE,CAKhE;;AACA6G,QAAAA,YAAY,CAACxG,gBAAb,CAA8B,OAA9B,EAAuC,UAAAiD,CAAC,EAAI;AAC3CA,UAAAA,CAAC,CAACwD,eAAF,GAD2C,CAG3C;AACA;AACA;AACA;AACA;;AACA,UAAA,MAAI,CAACC,cAAL,CAAoBJ,CAApB,EAAuBrD,CAAC,CAACE,aAAzB;;AAEA,cAAG,CAAC,MAAI,CAAC8C,eAAL,EAAJ,EAA4B;AAC3B,gBAAGK,CAAC,CAAC3G,aAAF,CAAgB,IAAhB,EAAsB6F,SAAtB,CAAgCY,QAAhC,CAAyC,QAAzC,CAAH,EAAuD;AACtD,cAAA,MAAI,CAACL,OAAL,GAAe,IAAf;;AACA,cAAA,MAAI,CAACY,mBAAL,CAAyBL,CAAzB;AACA,aAHD,MAIK;AACJ,cAAA,MAAI,CAACP,OAAL,GAAe,KAAf;AACA;AACD;AACD,SAnBD;AAqBAS,QAAAA,YAAY,CAACI,YAAb,CAA0B,eAA1B,EAA2C,KAA3C,EA3BgE,CA6BhE;;AACAN,QAAAA,CAAC,CAACtG,gBAAF,CAAmB,YAAnB,EAAiC,UAAAiD,CAAC,EAAI;AACrCA,UAAAA,CAAC,CAACwD,eAAF;;AAEA,cAAG,CAACH,CAAC,CAACO,OAAF,CAAU,QAAV,CAAJ,EAAyB;AACxB,YAAA,MAAI,CAACC,WAAL;AACA;;AAED,cAAG,CAAC,MAAI,CAACb,eAAL,EAAJ,EAA4B;AAC3B,gBAAG,CAAC,MAAI,CAACF,OAAN,IAAiB,CAACO,CAAC,CAACd,SAAF,CAAYY,QAAZ,CAAqB,OAArB,CAArB,EAAoD;AACnDnD,cAAAA,CAAC,CAAC6B,cAAF;AACA;;AAED,gBAAG,CAACwB,CAAC,CAACd,SAAF,CAAYY,QAAZ,CAAqB,OAArB,CAAJ,EAAmC;AAClCE,cAAAA,CAAC,CAACd,SAAF,CAAYE,GAAZ,CAAgB,OAAhB;AACA,cAAA,MAAI,CAACK,OAAL,GAAe,IAAf;;AACA,cAAA,MAAI,CAACY,mBAAL,CAAyBL,CAAzB;AACA;AACD;AACD,SAlBD;AAoBAA,QAAAA,CAAC,CAACtG,gBAAF,CAAmB,YAAnB,EAAiC,UAAAiD,CAAC,EAAI;AACrC,cAAG,CAAC,MAAI,CAACgD,eAAL,EAAJ,EAA4B;AAC3B,gBAAG,CAAC,MAAI,CAACF,OAAT,EAAkB;AACjB,cAAA,MAAI,CAACY,mBAAL,CAAyBL,CAAzB;AACA;AACD;AACD,SAND;AAQAA,QAAAA,CAAC,CAACtG,gBAAF,CAAmB,YAAnB,EAAiC,UAAAiD,CAAC,EAAI;AACrC,cAAM8D,EAAE,GAAGT,CAAC,CAAC3G,aAAF,CAAgB,IAAhB,CAAX;;AAEA,cAAG,CAAC,MAAI,CAACsG,eAAL,EAAJ,EAA4B;AAC3BK,YAAAA,CAAC,CAACd,SAAF,CAAYC,MAAZ,CAAmB,OAAnB;AACAsB,YAAAA,EAAE,CAACvB,SAAH,CAAaC,MAAb,CAAoB,MAApB;AACAsB,YAAAA,EAAE,CAACvB,SAAH,CAAaC,MAAb,CAAoB,OAApB;AACAsB,YAAAA,EAAE,CAACvB,SAAH,CAAaC,MAAb,CAAoB,QAApB;AACA;AACD,SATD;AAUA,OApED,EA/CO,CAqHP;;AACA/F,MAAAA,QAAQ,CAACM,gBAAT,CAA0B,YAA1B,EAAwC,UAAAiD,CAAC,EAAI;AAC5C,YAAG,CAAC,MAAI,CAAC/C,EAAL,CAAQkG,QAAR,CAAiBnD,CAAC,CAACC,MAAnB,CAAJ,EAAgC;AAC/B,UAAA,MAAI,CAAC4D,WAAL;AACA;AACD,OAJD,EAtHO,CA4HP;;AACA,WAAK5G,EAAL,CAAQL,gBAAR,CAAyB,6BAAzB,EAAwDyF,OAAxD,CAAgE,UAAAjB,IAAI,EAAI;AACvE,YAAM2C,MAAM,GAAG3C,IAAI,CAAC4C,UAAL,CAAgBtH,aAAhB,CAA8B,gBAA9B,CAAf;AAEA0E,QAAAA,IAAI,CAACmB,SAAL,CAAe0B,MAAf,CAAsB,eAAtB;AACAF,QAAAA,MAAM,CAACxB,SAAP,CAAiBE,GAAjB,CAAqB,QAArB;AACAsB,QAAAA,MAAM,CAACJ,YAAP,CAAoB,eAApB,EAAqCI,MAAM,CAACxB,SAAP,CAAiBY,QAAjB,CAA0B,QAA1B,CAArC;AACA,OAND;AAOA;AAED;AACD;AACA;;;;WACC,2BAAkB;AACjB,aAAO1G,QAAQ,CAACsB,eAAT,CAAyBwE,SAAzB,CAAmCY,QAAnC,CAA4C,UAA5C,KAA2D,KAAKN,YAAL,CAAkBqB,YAApF;AACA;AAED;AACD;AACA;;;;WACC,uBAAc;AACb,WAAKjH,EAAL,CAAQL,gBAAR,CAAyB,yBAAzB,EAAoDyF,OAApD,CAA4D,UAAAjB,IAAI,EAAI;AACnEA,QAAAA,IAAI,CAACmB,SAAL,CAAeC,MAAf,CAAsB,OAAtB;AACA,OAFD;AAIA,WAAKM,OAAL,GAAe,KAAf;AACA;AAED;AACD;AACA;;;;WACC,6BAAoB7F,EAApB,EAAwB;AACvB,UAAM6G,EAAE,GAAG7G,EAAE,CAACP,aAAH,CAAiB,IAAjB,CAAX;AACA,UAAMgB,GAAG,GAAGoG,EAAE,CAACvG,qBAAH,GAA2BM,IAAvC;AACA,UAAMsG,MAAM,GAAG,EAAf;;AAEA,UAAGzG,GAAG,GAAGoG,EAAE,CAAClD,WAAT,GAAuBpD,MAAM,CAAC4G,UAAP,GAAoBD,MAA9C,EAAsD;AACrDL,QAAAA,EAAE,CAACvB,SAAH,CAAaE,GAAb,CAAiB,OAAjB;AACA;;AAED,UAAG/E,GAAG,GAAGyG,MAAT,EAAiB;AAChBL,QAAAA,EAAE,CAACvB,SAAH,CAAaE,GAAb,CAAiB,MAAjB;AACA;AACD;AAED;AACD;AACA;;;;WACC,gBAAO;AACNhG,MAAAA,QAAQ,CAACsB,eAAT,CAAyBwE,SAAzB,CAAmCE,GAAnC,CAAuC,UAAvC;AACAhG,MAAAA,QAAQ,CAACsB,eAAT,CAAyBwE,SAAzB,CAAmCE,GAAnC,CAAuC,qBAAvC;AAEA,WAAKxF,EAAL,CAAQP,aAAR,CAAsB,KAAtB,EAA6BiB,SAA7B,GAAyC,CAAzC;AACA,WAAKkF,YAAL,CAAkBc,YAAlB,CAA+B,eAA/B,EAAgD,IAAhD;AACA,WAAKZ,OAAL,GAAe,IAAf;AACA;AAED;AACD;AACA;;;;WACC,iBAAQ;AACPtG,MAAAA,QAAQ,CAACsB,eAAT,CAAyBwE,SAAzB,CAAmCC,MAAnC,CAA0C,UAA1C;AACA/F,MAAAA,QAAQ,CAACsB,eAAT,CAAyBwE,SAAzB,CAAmCE,GAAnC,CAAuC,qBAAvC;AAEA,WAAKI,YAAL,CAAkBc,YAAlB,CAA+B,eAA/B,EAAgD,KAAhD;AACA,WAAKZ,OAAL,GAAe,KAAf;AACA;AAED;AACD;AACA;;;;WACC,wBAAe3B,IAAf,EAAqB2C,MAArB,EAA6B;AAC5B;AACA,UAAG,KAAKf,eAAL,EAAH,EAA2B;AAC1B1G,QAAAA,IAAI,CAACgE,WAAL,CAAiBc,IAAI,CAAC1E,aAAL,CAAmB,IAAnB,CAAjB,EAA2C,YAAM;AAChD,cAAG0E,IAAI,CAAC1E,aAAL,CAAmB,IAAnB,EAAyBmC,KAAzB,CAA+BiC,UAA/B,IAA6C,QAAhD,EAA0D;AACzD;AACAiD,YAAAA,MAAM,CAACxB,SAAP,CAAiBC,MAAjB,CAAwB,QAAxB;AACA,WAHD,MAIK;AACJ;AACAuB,YAAAA,MAAM,CAACxB,SAAP,CAAiBE,GAAjB,CAAqB,QAArB;AACA;AACD,SATD;AAUA,OAXD,MAYK;AACJrB,QAAAA,IAAI,CAAC1E,aAAL,CAAmB,IAAnB,EAAyB6F,SAAzB,CAAmC0B,MAAnC,CAA0C,QAA1C;AACA,OAhB2B,CAkB5B;AACA;AAEA;;;AACAF,MAAAA,MAAM,CAACxB,SAAP,CAAiB0B,MAAjB,CAAwB,QAAxB;AACAF,MAAAA,MAAM,CAACJ,YAAP,CAAoB,eAApB,EAAqCI,MAAM,CAACxB,SAAP,CAAiBY,QAAjB,CAA0B,QAA1B,CAArC;AACA;;;;;;IAGIkB,G;AAEL,eAAYC,KAAZ,EAAmB;AAAA;;AAClB,SAAKC,OAAL,GAAe,KAAf;AACA,SAAKC,UAAL,GAAkBF,KAAlB;AAEA,SAAKG,IAAL;AACA;AAED;AACD;AACA;;;;;WACC,gBAAO;AAAA;;AACNnI,MAAAA,IAAI,CAACO,KAAL,CAAW,YAAM;AAChB,QAAA,MAAI,CAAC0H,OAAL,GAAe,IAAf;;AACA,QAAA,MAAI,CAACG,KAAL;;AACA,QAAA,MAAI,CAACC,YAAL;AACA,OAJD;AAKA;AAED;AACD;AACA;;;;WACC,eAAM7H,EAAN,EAAU;AACT,UAAG,KAAKyH,OAAR,EAAiB;AAChBzH,QAAAA,EAAE;AACF,OAFD,MAEO;AACN,aAAK0H,UAAL,CAAgBI,IAAhB,CAAqB9H,EAArB;AACA;AACD;AAED;AACD;AACA;;;;WACC,wBAAe;AACd,aAAM,KAAK0H,UAAL,CAAgB7E,MAAtB,EAA8B;AAC7B,aAAK6E,UAAL,CAAgBK,KAAhB;AACA;AACD;AAED;AACD;AACA;;;;WACC,iBAAQ;AACP;AACA,WAAKC,YAAL,GAFO,CAIP;;AACA,UAAI/C,MAAJ,CAAWtF,QAAQ,CAACC,aAAT,CAAuB,SAAvB,CAAX,EALO,CAOP;;AACA,UAAIiG,UAAJ,CAAelG,QAAQ,CAACC,aAAT,CAAuB,aAAvB,CAAf;AACA;AAED;AACD;AACA;;;;WACC,wBAAe;AACdD,MAAAA,QAAQ,CAACsB,eAAT,CAAyBwE,SAAzB,CAAmCE,GAAnC,CAAuC,eAAvC;;AAEA,UAAMsC,MAAM,GAAG,SAATA,MAAS,CAAA/E,CAAC,EAAI;AACnBA,QAAAA,CAAC,CAACC,MAAF,CAASsC,SAAT,CAAmBC,MAAnB,CAA0B,eAA1B;AACA,OAFD;;AAIA/F,MAAAA,QAAQ,CAACuB,IAAT,CAAcjB,gBAAd,CAA+B,OAA/B,EAAwC,UAAAiD,CAAC,EAAI;AAC5C,YAAIX,GAAG,GAAGW,CAAC,CAACwB,KAAF,IAAWxB,CAAC,CAACyB,OAAvB;;AAEA,YAAGpC,GAAG,KAAK,CAAX,EAAc;AACb,cAAMsC,aAAa,GAAGlF,QAAQ,CAACkF,aAA/B;;AAEA,cAAG,CAACA,aAAa,CAACY,SAAd,CAAwBY,QAAxB,CAAiC,eAAjC,CAAJ,EAAuD;AACtDxB,YAAAA,aAAa,CAACY,SAAd,CAAwBE,GAAxB,CAA4B,eAA5B;AACAd,YAAAA,aAAa,CAAC5E,gBAAd,CAA+B,MAA/B,EAAuCgI,MAAvC;AACA;AACD;AACD,OAXD;AAYA;;;;;;AAGFC,GAAG,GAAG,IAAIX,GAAJ,CAAQW,GAAG,CAACV,KAAZ,CAAN","file":"script.js","sourcesContent":["/**\n * Select and return an element\n */\nfunction Core(selector, container) {\n\treturn typeof selector === \"string\"? (container || document).querySelector(selector) : selector || null;\n}\n\n/**\n * Select and return an array of elements\n */\nCore.$$ = function(selector, container) {\n\treturn typeof selector === \"string\"? (container || document).querySelectorAll(selector) : selector || null;\n};\n\n/**\n * DOM ready callback function\n */\nCore.ready = function(fn) {\n\tdocument.addEventListener(\"DOMContentLoaded\", fn);\n};\n\n/**\n * Scroll to an element\n */\nCore.scrollTo = function(el, options) {\n\tconst offset = !options || options.offset === undefined ? 0 : options.offset;\n\tconst onScreen = !options || options.onScreen === undefined ? false : options.onScreen;\n\tconst top = el.getBoundingClientRect().top;\n\n\tif(!onScreen || (top < offset || top > window.innerHeight)) {\n\t\tlet pos = top + Core.scrollTop() - offset;\n\n\t\twindow.scroll({top: pos, left: 0, behavior: \"smooth\"});\n\t}\n};\n\n/**\n * Get the distance in pixels to the top of the page\n */\nCore.scrollTop = function() {\n\treturn document.documentElement.scrollTop || document.body.scrollTop;\n};\n\n/**\n * Get the index of an element within its parent\n */\nCore.index = function(el) {\n\tlet index = 0;\n\n\twhile(el = el.previousElementSibling) {\n\t\tindex++;\n }\n\n\treturn index;\n};\n\n/**\n * Triggers an event on an element\n */\nCore.trigger = function(el, name) {\n\tconst event = document.createEvent(\"HTMLEvents\");\n\tevent.initEvent(name, true, false);\n\tel.dispatchEvent(event);\n};\n\n/**\n * Animate an element using css transitions\n */\nCore.animate = function(el, duration, props) {\n\tconst old = el.style.transition;\n\tlet transition = \"\";\n\tlet count = 0;\n\tlet counter = 0;\n\tconst easing = props.ease || \"linear\";\n\tconst delay = props.delay || 0;\n\tconst complete = props.complete || null;\n\n\tfor(let key in props) {\n\t\tif(key == \"ease\" || key == \"delay\" || key == \"complete\") {\n\t\t\tdelete props[key];\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst str = key.replace(/([a-z])([A-Z])/g, \"$1-$2\");\n\t\tconst tmp = str.toLowerCase() + \" \" + duration + \"s \" + easing + \" \" + delay + \"s, \";\n\n\t\ttransition += tmp;\n\t\tcount++;\n\t}\n\n\tel.style.transition = transition.substring(0, transition.length - 2);\n\n\tfor(let key in props) {\n\t\tconst str = key.replace(/([a-z])([A-Z])/g, \"$1-$2\");\n\n\t\tel.style[key] = props[key];\n\t}\n\n\tel.addEventListener(\"transitionend\", end);\n\n\tconst t = setTimeout(end2, duration * 1000 + delay * 1000 + 50);\n\n\tfunction end(e) {\n\t\tif(++counter < count || e.target != e.currentTarget) {\n\t\t\treturn false;\n\t\t}\n\n\t\tclearTimeout(t);\n\t\tcounter = 0;\n\t\tend2();\n\t}\n\n\tfunction end2() {\n\t\tel.removeEventListener(\"transitionend\", end);\n\t\tel.style.transition = old;\n\n\t\tif(complete) {\n\t\t\tcomplete.call();\n\t\t}\n\t}\n};\n\n/**\n * Show or hide an element with a slide animation\n */\nCore.slideToggle = function(el, complete) {\n\n\tlet height = el.offsetHeight;\n\tlet padding = parseInt(getComputedStyle(el)[\"padding-top\"], 10) + parseInt(getComputedStyle(el)[\"padding-bottom\"], 10);\n\n\t// Slide up\n\tif(height - padding > 0) {\n\t\tel.style.height = height + \"px\";\n\n\t\tvoid el.offsetWidth;\n\n\t\tel.style.height = \"0\";\n\t\tel.addEventListener(\"transitionend\", onEndHide);\n\t}\n\t// Slide down\n\telse {\n\t\tel.style.height = \"auto\";\n\t\theight = el.offsetHeight;\n\t\tel.style.height = \"0\";\n\t\tel.style.visibility = \"visible\";\n\n\t\tvoid el.offsetWidth;\n\n\t\tel.style.height = height + \"px\";\n\t\tel.addEventListener(\"transitionend\", onEndShow);\n\t}\n\n\tfunction onEndHide() {\n\t\tel.style.visibility = \"hidden\";\n\n\t\tel.removeEventListener(\"transitionend\", onEndHide);\n\n\t\tif(complete) {\n\t\t\tcomplete();\n\t\t}\n\t}\n\n\tfunction onEndShow() {\n\t\tif(el.offsetHeight - padding > 0) {\n\t\t\tel.style.height = \"auto\";\n\t\t}\n\n\t\tel.removeEventListener(\"transitionend\", onEndShow);\n\n\t\tif(complete) {\n\t\t\tcomplete();\n\t\t}\n\t}\n};\n\n/**\n * Trap focus inside an element\n */\nCore.trapFocus = function(el) {\n\tlet focusableElements = [].slice.call(el.querySelectorAll(\"button, [href], input, select, textarea, [tabindex='0']\"));\n\tfocusableElements = focusableElements.filter(item => item.getAttribute(\"tabindex\") != \"-1\");\n\n\tconst firstFocusableElement = focusableElements[0];\n\tconst lastFocusableElement = focusableElements[focusableElements.length - 1];\n\n\tel.addEventListener(\"keydown\", function(e) {\n\t\tvar key = e.which || e.keyCode;\n\n\t\tif(key != 9) {\n\t\t\treturn;\n\t\t}\n\n\t\tif(e.shiftKey) {\n\t\t\tif(document.activeElement === firstFocusableElement) {\n\t\t\t\tlastFocusableElement.focus();\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t} else {\n\t\t\tif(document.activeElement === lastFocusableElement) {\n\t\t\t\tfirstFocusableElement.focus();\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t}\n\t});\n}\n\n// Add global shortcuts $ and $$\nif(!(typeof $ != \"undefined\")) {\n\tvar $ = Core;\n}\n\nconst $$ = Core.$$;\n\nclass Header {\n\n\tconstructor(el) {\n\t\tthis.el = el;\n\n\t\tthis.build();\n\t}\n\n\t/*\n\t * Build the header\n\t */\n\tbuild() {\n\t\tconst options = {\n\t\t\trootMargin: \"2px 0px 0px 0px\"\n\t\t};\n\n\t\tconst observer = new IntersectionObserver(entries => {\n\t\t\tentries.forEach(item => {\n\t\t\t\tif(item.isIntersecting) {\n\t\t\t\t\tthis.el.classList.remove(\"small\");\n\t\t\t\t} else {\n\t\t\t\t\tthis.el.classList.add(\"small\");\n\t\t\t\t}\n\t\t\t});\n\t\t}, options);\n\n\t\tobserver.observe(this.el);\n\t}\n}\n\nclass Navigation {\n\n\tconstructor(el) {\n\t\tthis.el = el;\n\t\tthis.parentIsLink = true;\n\t\tthis.toggleButton = document.querySelector(\"#nav-button\");\n\t\tthis.touched = false;\n\t\tthis.navOpen = false;\n\n\t\tthis.build();\n\t}\n\n\t/**\n\t * Build the navigation\n\t */\n\tbuild() {\n\t\t// Menu button\n\t\tthis.toggleButton.addEventListener(\"click\", e => {\n\t\t\tif(!this.isMobileNavOpen()) {\n\t\t\t\tthis.open();\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.close();\n\t\t\t}\n\t\t});\n\n\t\t// Close\n\t\tdocument.body.addEventListener(\"click\", e => {\n\t\t\tif(!this.el.contains(e.target) && this.isMobileNavOpen()) {\n\t\t\t\tthis.close();\n\t\t\t}\n\t\t});\n\n\t\t// Esc key\n\t\tthis.el.addEventListener(\"keydown\", e => {\n\t\t\tlet key = e.which || e.keyCode;\n\n\t\t\tif(key == 27) {\n\t\t\t\t// Close sub nav\n\t\t\t\tif(!this.isMobileNavOpen()) {\n\t\t\t\t\tthis.el.querySelectorAll(\".subnav-button\").forEach(item => {\n\t\t\t\t\t\titem.classList.remove(\"active\");\n\t\t\t\t\t});\n\n\t\t\t\t\tthis.el.querySelectorAll(\"ul\").forEach(item => {\n\t\t\t\t\t\titem.classList.remove(\"active\");\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// Close mobile nav\n\t\t\t\tthis.close();\n\t\t\t}\n\t\t});\n\n\t\t// Remove transition when animation complete\n\t\tthis.el.addEventListener(\"transitionend\", e => {\n\t\t\tif(e.target == this.el.querySelector(\"div\") && e.propertyName == \"transform\") {\n\t\t\t\tdocument.documentElement.classList.remove(\"nav-open-transition\");\n\t\t\t}\n\t\t});\n\n\t\t// Add events to parent items\n\t\tthis.el.querySelectorAll(\".menu-item-has-children\").forEach(i => {\n\t\t\ti.querySelector(\"a\").insertAdjacentHTML(\"afterend\", '');\n\n\t\t\tconst subnavButton = i.querySelector(\".subnav-button\");\n\n\t\t\t// Subnav button\n\t\t\tsubnavButton.addEventListener(\"click\", e => {\n\t\t\t\te.stopPropagation();\n\n\t\t\t\t// if(!i.querySelector(\"ul\").classList.contains(\"active\")) {\n\t\t\t\t// \tthis.el.querySelectorAll(\".menu-item-has-children ul\").forEach(list => {\n\t\t\t\t// \t\tlist.classList.remove(\"active\");\n\t\t\t\t// \t});\n\t\t\t\t// }\n\t\t\t\tthis.toggleChildren(i, e.currentTarget);\n\n\t\t\t\tif(!this.isMobileNavOpen()) {\n\t\t\t\t\tif(i.querySelector(\"ul\").classList.contains(\"active\")) {\n\t\t\t\t\t\tthis.touched = true;\n\t\t\t\t\t\tthis.checkSubNavPosition(i);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.touched = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tsubnavButton.setAttribute(\"aria-expanded\", false);\n\n\t\t\t// Touch support for hover menu\n\t\t\ti.addEventListener(\"touchstart\", e => {\n\t\t\t\te.stopPropagation();\n\n\t\t\t\tif(!i.closest(\".hover\")) {\n\t\t\t\t\tthis.clearSubNav();\n\t\t\t\t}\n\n\t\t\t\tif(!this.isMobileNavOpen()) {\n\t\t\t\t\tif(!this.touched || !i.classList.contains(\"hover\")) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\n\t\t\t\t\tif(!i.classList.contains(\"hover\")) {\n\t\t\t\t\t\ti.classList.add(\"hover\");\n\t\t\t\t\t\tthis.touched = true;\n\t\t\t\t\t\tthis.checkSubNavPosition(i);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\ti.addEventListener(\"mouseenter\", e => {\n\t\t\t\tif(!this.isMobileNavOpen()) {\n\t\t\t\t\tif(!this.touched) {\n\t\t\t\t\t\tthis.checkSubNavPosition(i);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\ti.addEventListener(\"mouseleave\", e => {\n\t\t\t\tconst ul = i.querySelector(\"ul\");\n\n\t\t\t\tif(!this.isMobileNavOpen()) {\n\t\t\t\t\ti.classList.remove(\"hover\");\n\t\t\t\t\tul.classList.remove(\"left\");\n\t\t\t\t\tul.classList.remove(\"right\");\n\t\t\t\t\tul.classList.remove(\"active\");\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\t// Close all when touched outside\n\t\tdocument.addEventListener(\"touchstart\", e => {\n\t\t\tif(!this.el.contains(e.target)) {\n\t\t\t\tthis.clearSubNav();\n\t\t\t}\n\t\t});\n\n\t\t// Show active menu on page load\n\t\tthis.el.querySelectorAll(\".current-page-ancestor > ul\").forEach(item => {\n\t\t\tconst button = item.parentNode.querySelector(\".subnav-button\");\n\n\t\t\titem.classList.toggle(\"active-mobile\");\n\t\t\tbutton.classList.add(\"active\");\n\t\t\tbutton.setAttribute(\"aria-expanded\", button.classList.contains(\"active\"));\n\t\t});\n\t}\n\n\t/**\n\t * Check if mobile nav is open\n\t */\n\tisMobileNavOpen() {\n\t\treturn document.documentElement.classList.contains(\"nav-open\") && this.toggleButton.offsetParent;\n\t}\n\n\t/**\n\t * Hide the floating sub nav\n\t */\n\tclearSubNav() {\n\t\tthis.el.querySelectorAll(\".menu-item-has-children\").forEach(item => {\n\t\t\titem.classList.remove(\"hover\");\n\t\t});\n\n\t\tthis.touched = false;\n\t}\n\n\t/**\n\t * Check if the sub nav is out of bounds\n\t */\n\tcheckSubNavPosition(el) {\n\t\tconst ul = el.querySelector(\"ul\");\n\t\tconst pos = ul.getBoundingClientRect().left;\n\t\tconst margin = 10;\n\n\t\tif(pos + ul.offsetWidth > window.innerWidth - margin) {\n\t\t\tul.classList.add(\"right\");\n\t\t}\n\n\t\tif(pos < margin) {\n\t\t\tul.classList.add(\"left\");\n\t\t}\n\t}\n\n\t/**\n\t * Open the mobile nav\n\t */\n\topen() {\n\t\tdocument.documentElement.classList.add(\"nav-open\");\n\t\tdocument.documentElement.classList.add(\"nav-open-transition\");\n\n\t\tthis.el.querySelector(\"div\").scrollTop = 0;\n\t\tthis.toggleButton.setAttribute(\"aria-expanded\", true);\n\t\tthis.navOpen = true;\n\t}\n\n\t/**\n\t * Close the mobile nav\n\t */\n\tclose() {\n\t\tdocument.documentElement.classList.remove(\"nav-open\");\n\t\tdocument.documentElement.classList.add(\"nav-open-transition\");\n\n\t\tthis.toggleButton.setAttribute(\"aria-expanded\", false);\n\t\tthis.navOpen = false;\n\t}\n\n\t/**\n\t * Toggle the sub nav\n\t */\n\ttoggleChildren(item, button) {\n\t\t// Toggle with animation\n\t\tif(this.isMobileNavOpen()) {\n\t\t\tCore.slideToggle(item.querySelector(\"ul\"), () => {\n\t\t\t\tif(item.querySelector(\"ul\").style.visibility == \"hidden\") {\n\t\t\t\t\t// item.classList.remove(\"hover\");\n\t\t\t\t\tbutton.classList.remove(\"active\");\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// item.classList.add(\"hover\");\n\t\t\t\t\tbutton.classList.add(\"active\");\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\telse {\n\t\t\titem.querySelector(\"ul\").classList.toggle(\"active\");\n\t\t}\n\n\t\t// Toggle without animation\n\t\t// item.querySelector(\"ul\").classList.toggle(\"active\");\n\n\t\t// item.classList.toggle(\"hover\");\n\t\tbutton.classList.toggle(\"active\");\n\t\tbutton.setAttribute(\"aria-expanded\", button.classList.contains(\"active\"));\n\t}\n}\n\nclass App {\n\n\tconstructor(queue) {\n\t\tthis.isReady = false;\n\t\tthis.readyQueue = queue;\n\n\t\tthis.init();\n\t}\n\n\t/**\n\t * Initialize app when DOM ready\n\t */\n\tinit() {\n\t\tCore.ready(() => {\n\t\t\tthis.isReady = true;\n\t\t\tthis.start();\n\t\t\tthis.processQueue();\n\t\t});\n\t}\n\n\t/**\n\t * Add function to the ready queue\n\t */\n\tready(fn) {\n\t\tif(this.isReady) {\n\t\t\tfn();\n\t\t} else {\n\t\t\tthis.readyQueue.push(fn);\n\t\t}\n\t}\n\n\t/**\n\t * Process the ready queue\n\t */\n\tprocessQueue() {\n\t\twhile(this.readyQueue.length) {\n\t\t\tthis.readyQueue.shift()();\n\t\t}\n\t}\n\n\t/**\n\t * App entry point\n\t */\n\tstart() {\n\t\t// Focus visible\n\t\tthis.focusVisible();\n\n\t\t// Header\n\t\tnew Header(document.querySelector(\"#header\"));\n\n\t\t// Navigation\n\t\tnew Navigation(document.querySelector(\"#navigation\"));\n\t}\n\n\t/**\n\t * Add focus outline to buttons only when keyboard-focused\n\t */\n\tfocusVisible() {\n\t\tdocument.documentElement.classList.add(\"focus-visible\");\n\n\t\tconst onBlur = e => {\n\t\t\te.target.classList.remove(\"focus-visible\");\n\t\t};\n\n\t\tdocument.body.addEventListener(\"keyup\", e => {\n\t\t\tvar key = e.which || e.keyCode;\n\n\t\t\tif(key === 9) {\n\t\t\t\tconst activeElement = document.activeElement;\n\n\t\t\t\tif(!activeElement.classList.contains(\"focus-visible\")) {\n\t\t\t\t\tactiveElement.classList.add(\"focus-visible\");\n\t\t\t\t\tactiveElement.addEventListener(\"blur\", onBlur);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}\n\napp = new App(app.queue);\n"]}