@keyframes slideInFromLeft {
  0% { transform: translateX(-100vw); }
  100% { transform: translateX(0); }
}

@keyframes slideOutToRight {
  0% { transform: translateX(0); }
  100% { transform: translateX(100vw); }
}

.cmm-mobile-menu-wrapper {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
  width: 100%;
}

.mobile-menu-open svg,
.mobile-menu-close svg {
  width: 24px;
  height: auto;
  margin-top: -4px;
  color: white;
}

.mobile-menu-close,
.civic-mega-menu-mobile {
  z-index: 101;
  position: relative;
}

.mobile-menu-open {
  padding-left: 15px;
}

.mobile-menu-close {
  position: absolute;
  top: 20px;
  right: 20px;
}

.mobile-menu-mask {
  position: fixed;
  z-index: 100;
  top: 0;
  bottom: 0;
  left: 0;
  width: 0;
  background-color: rgba(0, 0, 0, .9);
  transform-style: preserve-3d;
  transition: width .3s;
}

.mobile-menu-mask.active {
  width: 100%;
}

.civic-mega-menu-mobile {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  display: flex;
  display: none;
  color: white;
}

.civic-mega-menu-mobile.open-mobile-menu,
.civic-mega-menu-mobile.close-mobile-menu {
  display: flex;
}

.civic-mega-menu-mobile.open-mobile-menu .cmm-mobile-li--level-1,
.civic-mega-menu-mobile.close-mobile-menu .cmm-mobile-li--level-1 {
  animation-fill-mode: both;
  animation-duration: .25s;
}

.civic-mega-menu-mobile.open-mobile-menu .cmm-mobile-li--level-1:nth-child(1),
.civic-mega-menu-mobile.close-mobile-menu .cmm-mobile-li--level-1:nth-child(1) {
  animation-delay: .233s;
}
.civic-mega-menu-mobile.open-mobile-menu .cmm-mobile-li--level-1:nth-child(2),
.civic-mega-menu-mobile.close-mobile-menu .cmm-mobile-li--level-1:nth-child(2) {
  animation-delay: .266s;
}
.civic-mega-menu-mobile.open-mobile-menu .cmm-mobile-li--level-1:nth-child(3),
.civic-mega-menu-mobile.close-mobile-menu .cmm-mobile-li--level-1:nth-child(3) {
  animation-delay: .3s;
}
.civic-mega-menu-mobile.open-mobile-menu .cmm-mobile-li--level-1:nth-child(4),
.civic-mega-menu-mobile.close-mobile-menu .cmm-mobile-li--level-1:nth-child(4) {
  animation-delay: .333s;
}
.civic-mega-menu-mobile.open-mobile-menu .cmm-mobile-li--level-1:nth-child(5),
.civic-mega-menu-mobile.close-mobile-menu .cmm-mobile-li--level-1:nth-child(5) {
  animation-delay: .366s;
}
.civic-mega-menu-mobile.open-mobile-menu .cmm-mobile-li--level-1:nth-child(6),
.civic-mega-menu-mobile.close-mobile-menu .cmm-mobile-li--level-1:nth-child(6) {
  animation-delay: .4s;
}
.civic-mega-menu-mobile.open-mobile-menu .cmm-mobile-li--level-1:nth-child(7),
.civic-mega-menu-mobile.close-mobile-menu .cmm-mobile-li--level-1:nth-child(7) {
  animation-delay: .433s;
}
.civic-mega-menu-mobile.open-mobile-menu .cmm-mobile-li--level-1:nth-child(8),
.civic-mega-menu-mobile.close-mobile-menu .cmm-mobile-li--level-1:nth-child(8) {
  animation-delay: .466s;
}
.civic-mega-menu-mobile.open-mobile-menu .cmm-mobile-li--level-1:nth-child(9),
.civic-mega-menu-mobile.close-mobile-menu .cmm-mobile-li--level-1:nth-child(9) {
  animation-delay: .5s;
}
.civic-mega-menu-mobile.open-mobile-menu .cmm-mobile-li--level-1:nth-child(10),
.civic-mega-menu-mobile.close-mobile-menu .cmm-mobile-li--level-1:nth-child(10) {
  animation-delay: .533s;
}
.civic-mega-menu-mobile.open-mobile-menu .cmm-mobile-li--level-1:nth-child(11),
.civic-mega-menu-mobile.close-mobile-menu .cmm-mobile-li--level-1:nth-child(11) {
  animation-delay: .566s;
}
.civic-mega-menu-mobile.open-mobile-menu .cmm-mobile-li--level-1:nth-child(12),
.civic-mega-menu-mobile.close-mobile-menu .cmm-mobile-li--level-1:nth-child(12) {
  animation-delay: .6s;
}
.civic-mega-menu-mobile.open-mobile-menu .cmm-mobile-li--level-1:nth-child(13),
.civic-mega-menu-mobile.close-mobile-menu .cmm-mobile-li--level-1:nth-child(13) {
  animation-delay: .633s;
}
.civic-mega-menu-mobile.open-mobile-menu .cmm-mobile-li--level-1:nth-child(14),
.civic-mega-menu-mobile.close-mobile-menu .cmm-mobile-li--level-1:nth-child(14) {
  animation-delay: .666s;
}
.civic-mega-menu-mobile.open-mobile-menu .cmm-mobile-li--level-1:nth-child(15),
.civic-mega-menu-mobile.close-mobile-menu .cmm-mobile-li--level-1:nth-child(15) {
  animation-delay: .7s;
}

.civic-mega-menu-mobile.open-mobile-menu .cmm-mobile-li--level-1 {
  animation-name: slideInFromLeft;
}

.civic-mega-menu-mobile.close-mobile-menu .cmm-mobile-li--level-1 {
  animation-name: slideOutToRight;
}

.cmm-mobile-ul--level-1 {
  margin: 0;
  z-index: 10;
  position: absolute;
  left: 20px;
  right: 20px;
  width: auto;
  padding-top: 30px;
  padding-bottom: 50px;
}

.cmm-mobile-li--level-1 {
  font-size: 1.5rem;
  font-weight: 700;
  padding-top: .75em;
  transform: translateX(2vw);
}

.cmm-mobile-ul:not(.cmm-mobile-ul--level-1) {
  display: none;
  padding: 15px 15px 0 15px;
  margin: 0;
}

.cmm-mobile-li:not(.cmm-mobile-li--level-1) {
  margin-bottom: 10px;
}

.cmm-mobile-li.active > .cmm-mobile-ul {
  display: block;
}

.cmm-mobile-li--level-3 {
  font-size: 1rem;
  font-weight: 400;
}

.cmm-mobile-ul--level-2 {
  padding: 35px 15px 5px 15px;
}

.cmm-mobile-li--level-2 {
  font-size: 1.25rem;
  font-weight: 500;
}

button.toggle-submenu {
  display: inline-block;
  height: 20px;
  width: 26px;
  outline: none;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: calc(100% + 10px);
}

.toggle-submenu .line-1,
.toggle-submenu .line-2 {
  background-color: white;
  width: 16px;
  height: 3px;
  transition: .3s;
  position: absolute;
  transform-style: preserve-3d;
  backface-visibility: hidden;
  pointer-events: none;
  top: 50%;
}

.toggle-submenu .line-1 {
  transform: rotate(45deg);
  left: 0;
}

.toggle-submenu .line-2 {
  transform: rotate(-45deg);
  left: 10px;
}

.toggle-submenu.active .line-1 {
  transform: rotate(-45deg);
}

.toggle-submenu.active .line-2 {
  transform: rotate(45deg);
}

.mobile-menu-container a,
.mobile-menu-container span {
  display: inline-block;
}
