/*
███████████████████████████████████████████████████████████████████████████████████████████████
    Main Nav-Menu
███████████████████████████████████████████████████████████████████████████████████████████████
*/
#main_menu {
  --li_gap: 2rem;
  --text_color: #111;
  --line_height: 1em;
  --a_padding_vertical: .6em;
  --a_padding_horizontal: .8em;
  --overlay_menu_bgc: #333;
  --burger_layer_height: 5px;
  --burger_width: calc( var(--burger_layer_height) * 7 );
  --burger_color: #222;
  --burger_color_hover: var(--color_ci2);
  --close_button_color: #d00c0c;
  overflow: hidden;
  align-self: center;
}
@media (max-width: 900px) {
  #main_menu {
    --li_gap: 1rem;
  }
}
@media (max-width: 800px) {
  #main_menu {
    --li_gap: .5rem;
  }
}
#main_menu nav > ul {
  display: flex;
  flex-direction: row;
  list-style-type: none;
  justify-content: center;
  align-items: center;
  margin: 0;
  padding: 0;
  gap: var(--li_gap);
}
#main_menu nav > ul > li {
  margin: 0;
  overflow: hidden;
}
#main_menu nav > ul > li a {
  text-decoration: none;
  display: block;
  text-align: inherit;
  width: 100%;
  padding: var(--a_padding_vertical) var(--a_padding_horizontal);
  line-height: var(--line_height);
  font-weight: var(--font_weight_medium);
  border-bottom: 2px solid transparent;
}
#main_menu nav > ul > li:not(.active) > a:hover {
  border-color: var(--color_brand);
}
#main_menu nav > ul > li.active > a:not([href*="#"]) {
  color: var(--color_brand_2);
  border-color: var(--color_brand_2);
}
#main_menu nav > ul > li.active a:hover {
  cursor: default;
}
/* #main_menu #main_menu_toggle:not(:checked) ~ nav > ul > li:first-of-type > a {
  padding-left: 0;
} */
#main_menu nav > ul > li a * {
  color: inherit;
  line-height: inherit;
  font-weight: inherit;
  user-select: none;
}
@media (max-width: 700px) {
  #main_menu {
    margin-top: 1rem;
  }
}
@media (max-width: 90rem) {
  #main_menu nav > ul > li.highlight {
    padding-left: inherit;
    border-left: none;
  }
  #main_menu nav > ul > li.highlight a {
    border: 1px solid var(--color_brand);
    padding: .8em 1.3em;
  }
  #main_menu nav > ul > li.highlight a::after {
    display: none;
  }
}
@media (max-width: 450px) {
  #main_menu {
    margin-top: .5rem;
  }
}
/*
███████████████████████████████████████████████████████████████████████████████████████████████
  Sub-Menu
███████████████████████████████████████████████████████████████████████████████████████████████
*/
#main_menu ul li.has_submenu > a::after {
  font-family: var(--fontawesome);
  content: "\f0da";
  display: inline-block;
  width: .8em;
  height: .8em;
  margin-left: .2em;
  font-size: .8em;
  line-height: .8em;
  padding-left: .1em;
}
#main_menu ul li.has_submenu:hover > a::after {
  transform: rotate(90deg);
  transform-origin: 50% 50%;
}
#main_menu ul li .submenu {
  display: none;
  position: absolute;
  right: inherit;
  z-index: 1;
  overflow: visible;
  background-color: #fff;
  padding: 1em .7em .4em .7em;
  box-shadow:
    0 0px 0.6px rgba(0, 0, 0, 0.02),
    0 0px 1.4px rgba(0, 0, 0, 0.028),
    0 0px 2.6px rgba(0, 0, 0, 0.035),
    0 0px 4.7px rgba(0, 0, 0, 0.042),
    0 0px 8.8px rgba(0, 0, 0, 0.05),
    0 0px 21px rgba(0, 0, 0, 0.07)
  ;
}
#main_menu ul li:hover .submenu {
  display: block;
}
#main_menu ul li .submenu li {
  display: block;
  margin: .4em 0;
}
#main_menu ul li .submenu a {
  display: block;
  text-align: left;
  padding: .5em .7em;
  position: relative;
  font-weight: var(--font_weight_normal);
  text-transform: none;
}
#main_menu ul li .submenu a:hover::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, .1);
}
#main_menu ul li .submenu a > * {
  position: relative;
}
/*
███████████████████████████████████████████████████████████████████████████████████████████████
  Menu Toggle Button
███████████████████████████████████████████████████████████████████████████████████████████████
*/
#main_menu .button_container {
  display: none;
  padding: calc( var(--line_height) / 2 + var(--a_padding_vertical) );
  height: auto;
  cursor: pointer;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  position: relative;
  z-index: 1;
  width: calc( var(--burger_width) + (var(--a_padding_vertical) * 2) );
}
#main_menu_toggle {
  display: none;
}
#main_menu .button_container .menu_button,
#main_menu .button_container .menu_button::before,
#main_menu .button_container .menu_button::after {
  display: block;
  background-color: var(--burger_color);
  position: absolute;
  height: var(--burger_layer_height);
  width: var(--burger_width);
  transition: transform 550ms cubic-bezier(0.2, 1, 0.3, 1);
  border-radius: calc( var(--line_height) / 5 );
}
#main_menu #main_menu_toggle:checked + .button_container .menu_button,
#main_menu #main_menu_toggle:checked + .button_container .menu_button::before,
#main_menu #main_menu_toggle:checked + .button_container .menu_button::after {
  background-color: var(--close_button_color);
  opacity: .9;
}
#main_menu #main_menu_toggle:checked + .button_container:hover .menu_button,
#main_menu #main_menu_toggle:checked + .button_container:hover .menu_button::before,
#main_menu #main_menu_toggle:checked + .button_container:hover .menu_button::after {
  opacity: 1;
}
#main_menu .button_container .menu_button::before {
  content: '';
  margin-top: calc( var(--burger_layer_height) * -2 );
}
#main_menu .button_container .menu_button::after {
  content: '';
  margin-top: calc( var(--burger_layer_height) * 2 );
}
#main_menu .button_container:hover .menu_button,
#main_menu .button_container:hover .menu_button::before,
#main_menu .button_container:hover .menu_button::after {
  background-color: var(--burger_color_hover);
}
#main_menu #main_menu_toggle:checked + .button_container .menu_button::before {
  margin-top: 0;
  transform: rotate(405deg);
}
#main_menu #main_menu_toggle:checked + .button_container .menu_button {
  background: transparent;
}
#main_menu #main_menu_toggle:checked + .button_container .menu_button::after {
  margin-top: 0;
  transform: rotate(-405deg);
}
/*
███████████████████████████████████████████████████████████████████████████████████████████████
  Breakpoint
███████████████████████████████████████████████████████████████████████████████████████████████
*/
@media (max-width: 700px) {
  #main_menu {
    --li_gap: 0;
    float: right;
  }
  #main_menu .button_container {
    display: flex;
    float: right;
  }
  #main_menu nav {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    justify-content: center;
    align-items: center;
  }
  #main_menu  #main_menu_toggle:checked ~ nav {
    background-color: var(--overlay_menu_bgc);
    padding-top: 2.5rem;
    padding-bottom: 1rem;
  }
  #main_menu  #main_menu_toggle:checked ~ nav > ul {
    flex-direction: column;
    width: 100%;
    justify-content: center;
    align-items: center;
    border-top: 1px solid rgba(255, 255, 255, .3);
  }
  #main_menu #main_menu_toggle:checked ~ nav > ul > li {
    border-bottom: 1px solid rgba(255, 255, 255, .3);
    width: 100%;
    background-color: transparent;
    padding-left: 0;
    padding-right: 0;
  }
  #main_menu #main_menu_toggle ~ nav > ul > li {
    display: none;
  }
  #main_menu #main_menu_toggle:checked ~ nav > ul > li {
    display: block;
    margin: 0;
  }
  #main_menu #main_menu_toggle:checked ~ nav > ul > li a {
    color: #fff;
    position: relative;
    text-transform: none;
    text-align: left;
    padding-left: calc( var(--a_padding_horizontal) * 3 );
    padding-right: calc( var(--a_padding_horizontal) * 3 );
    border: none;
  }
  #main_menu #main_menu_toggle:checked ~ nav > ul > li.active a {
    color: var(--color_brand);
  }
  #main_menu #main_menu_toggle:checked ~ nav > ul > li a:hover {
    background-color: inherit;
  }
  #main_menu #main_menu_toggle:checked ~ nav > ul > li.has_submenu a {
    padding-left: calc( var(--a_padding_horizontal) * 5 );
  }
  #main_menu #main_menu_toggle:checked ~ nav > ul > li a:hover::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, .4);
  }
  #main_menu #main_menu_toggle:checked ~ nav > ul > li a > * {
    position: relative;
  }
  #main_menu #main_menu_toggle:checked ~ nav ul li.has_submenu > a::after {
    display: none;
  }
  #main_menu #main_menu_toggle:checked ~ nav ul li .submenu {
    display: block;
    position: unset;
    right: unset;
    z-index: unset;
    background-color: unset;
    box-shadow: unset;
    padding: 0;
  }
  #main_menu #main_menu_toggle:checked ~ .button_container {
    position: absolute;
    top: 5px;
    right: 5px;
  }
  #main_menu nav > ul > li > a {
    padding: .5em;
  }
}