.has-mega-menu {
  position: relative;
}

.site-mega-menu {
  display: none;
  position: static;
  width: 100%;
  text-align: left;
  background: #FBFEFF;
}

.has-mega-menu.active > .site-mega-menu,
.has-mega-menu > .site-mega-menu.active {
  display: block;
}

.site-mega-menu,
.site-mega-menu * {
  white-space: normal;
}

.site-mega-menu__close {
  display: none;
  width: 23px;
  height: 23px;
  padding: 0;
  border: 0;
  background-color: rgba(0,0,0,.9);
  cursor: pointer;
  mask-image: url("../img/icons/icon-close-circle.svg");
  mask-position: center;
  mask-repeat: no-repeat;
  mask-size: contain;
  -webkit-mask-image: url("../img/icons/icon-close-circle.svg");
  -webkit-mask-position: center;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  transition: background-color 0.2s ease;
}

.site-mega-menu__close:hover,
.site-mega-menu__close:focus {
  background-color: #CF1111;
}

.site-mega-menu__mobile-arrow {
  display: block;
  cursor: pointer;
  padding-right: 0;
  background-image: url("../img/nav-arrow.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 0.75em;
  width: 40px;
  height: 55px;
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
}

.site-mega-menu__mobile-arrow.active {
  background-image: url("../img/nav-arrow-hover.svg");
}

.site-mega-menu__inner {
  display: block;
  overflow: hidden;
}

.site-mega-menu__tabs {
  padding: 24px 30px;
  display: flex;
  flex-direction: column;
  background: #cf1111;
  margin: 0;
  list-style: none;
}

.site-mega-menu__tab-item {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 0;
  padding: 0;
}

.site-mega-menu__tab {
  display: block;
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  padding: 0;
  border: 0;
  color: #ffffff;
  font-size: 18px;
  font-weight: 700;
  line-height: 26px;
  text-align: left;
  text-decoration: none;
  overflow-wrap: anywhere;
  cursor: pointer;
  background: transparent;
  transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.site-mega-menu__tab-toggle {
  --mega-tab-icon: url("../img/ico-plus.svg");

  display: block;
  flex: 0 0 16px;
  width: 16px;
  height: 26px;
  padding: 0;
  border: 0;
  background-color: currentColor;
  color: #ffffff;
  cursor: pointer;
  mask-image: var(--mega-tab-icon);
  mask-position: center;
  mask-repeat: no-repeat;
  mask-size: 12px 12px;
  -webkit-mask-image: var(--mega-tab-icon);
  -webkit-mask-position: center;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-size: 12px 12px;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.site-mega-menu__tab-toggle:hover,
.site-mega-menu__tab-toggle:focus,
.site-mega-menu__tab-toggle:focus:not(:hover):not(.active) {
  background-color: currentColor;
  border: 0;
  color: #fff;
}

.site-mega-menu__tab-item + .site-mega-menu__tab-item {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid #fff;
}

.site-mega-menu__tab:hover,
.site-mega-menu__tab:focus,
.site-mega-menu__tab.is-active {
  color: #fff;
  text-decoration: underline;
}

.site-mega-menu__tab.is-active + .site-mega-menu__tab-toggle,
.site-mega-menu__tab-toggle.is-active {
  --mega-tab-icon: url("../img/ico-minus.svg");
}

.site-mega-menu__content {
  padding: 24px 30px;
  background: #FBFEFF;
}

.site-mega-menu__panel {
  display: none;
}

.site-mega-menu__panel.is-active {
  display: block;
  animation: mega-menu-panel-fade 0.18s ease;
}

.site-mega-menu__links {
  margin: 0;
  padding: 0;
  list-style: none;
}

.site-mega-menu__link-item {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin: 0;
  padding: 0 0 0 28px;
}

.site-mega-menu__link-item:before {
  position: absolute;
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: #CF1111;
  top: 8px;
  left: 0;
}

.site-mega-menu__link-item + .site-mega-menu__link-item {
  margin-top: 15px;
  padding-top: 15px;
  border-top: 1px solid rgba(0, 0, 0, 0.36);
}

.site-mega-menu__link-item + .site-mega-menu__link-item:before {
  top: 23px;
}

.site-mega-menu__link {
  display: block;
  flex: 1 1 auto;
  min-width: 0;
  color: #42464A;
  font-size: 18px;
  line-height: 26px;
  text-decoration: none;
  overflow-wrap: anywhere;
  transition: color 0.2s ease;
}

.site-mega-menu__link-toggle {
  --mega-link-icon: url("../img/ico-plus.svg");

  display: block;
  flex: 0 0 16px;
  width: 16px;
  height: 26px;
  padding: 0;
  border: 0;
  background-color: currentColor;
  color: #CF1111;
  cursor: pointer;
  mask-image: var(--mega-link-icon);
  mask-position: center;
  mask-repeat: no-repeat;
  mask-size: 12px 12px;
  -webkit-mask-image: var(--mega-link-icon);
  -webkit-mask-position: center;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-size: 12px 12px;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.site-mega-menu__link-toggle:hover,
.site-mega-menu__link-toggle:focus {
  background-color: currentColor;
  color: #CF1111;
}

.site-mega-menu__link:hover + .site-mega-menu__link-toggle,
.site-mega-menu__link:focus + .site-mega-menu__link-toggle,
.site-mega-menu__link.is-active + .site-mega-menu__link-toggle,
.site-mega-menu__link-toggle:hover,
.site-mega-menu__link-toggle.is-active {
  --mega-link-icon: url("../img/ico-minus.svg");
}

.site-mega-menu__link:hover,
.site-mega-menu__link:focus,
.site-mega-menu__link.is-active {
  color: #cf1111;
}

.site-mega-menu__link-desc {
  display: block;
  white-space: normal;
  overflow-wrap: anywhere;
}

.site-mega-menu__link-desc {
  margin-top: 4px;
  color: #555555;
  font-size: 0.875rem;
  line-height: 1.45;
}

.site-mega-menu__featured-list {
  min-width: 0;
  overflow-wrap: anywhere;
}

.site-mega-menu__featured {
  display: none;
}

.site-mega-menu__featured.is-active {
  display: block;
  animation: mega-menu-panel-fade 0.18s ease;
}

.site-mega-menu__featured-image {
  display: block;
  width: 100%;
  max-width: 417px;
  aspect-ratio: 417 / 173;
  overflow: hidden;
  margin-bottom: 20px;
}

.site-mega-menu__featured-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.site-mega-menu__featured-title {
  margin: 0 0 9px;
  font-size: 20px;
  font-family: "Heebo", sans-serif;
  line-height: 29px;
}

.site-mega-menu__featured-title a {
  color: #0053A2;
  line-height: inherit;
  text-decoration: underline;
  font-size: inherit;
  font-weight: 700;
  transition: color 0.2s ease;
}

.site-mega-menu__featured-title a:hover,
.site-mega-menu__featured-title a:focus,
.site-mega-menu__featured-title:focus:not(:hover):not(.active) {
  color: #cf1111;
}

.site-mega-menu__featured-desc {
  margin: 0;
  color: #42464A;
  font-size: 18px;
  line-height: 26px;
}

.site-mega-menu__featured-link {
  color: #cf1111;
  font-weight: 700;
  text-decoration: none;
}

.site-mega-menu__featured-link:hover,
.site-mega-menu__featured-link:focus {
  text-decoration: underline;
}

@keyframes mega-menu-panel-fade {
  from {
    opacity: 0;
    transform: translateY(4px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (min-width: 1400px) {
  .site-mega-menu {
    transform: translateX(-50%) translateY(56px);
  }

  .site-mega-menu:before {
    left: 50%;
  }
}

@media (min-width: 1280px) {
  .site-mega-menu {
    transform: translateX(-50%) translateY(56px);
  }
}

@media (min-width: 60em) {
  .has-mega-menu.active::after,
  .has-mega-menu.has-mega-menu-link:hover::after,
  .has-mega-menu.has-mega-menu-link:focus-within::after {
    content: "";
    position: absolute;
    z-index: 1000;
    top: 100%;
    left: 50%;
    width: min(1252px, calc(100vw - 32px));
    height: 60px;
    transform: translateX(-50%);
  }

  .has-mega-menu.is-mega-menu-closed::after {
    display: none;
  }

  .site-mega-menu {
    display: block;
    position: absolute;
    z-index: 1001;
    top: 100%;
    left: 50%;
    width: min(1252px, calc(100vw - 32px));
    border-top: 4px solid #CF1111;
    background: transparent;
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
  }

  .has-mega-menu.active > .site-mega-menu,
  .has-mega-menu.has-mega-menu-link:hover > .site-mega-menu,
  .has-mega-menu.has-mega-menu-link:focus-within > .site-mega-menu {
    opacity: 1;
    pointer-events: auto;
    visibility: visible;
  }

  .has-mega-menu.is-mega-menu-closed > .site-mega-menu {
    opacity: 0 !important;
    pointer-events: none !important;
    visibility: hidden !important;
  }

  .site-mega-menu:before {
    position: absolute;
    content: "";
    width: 0;
    height: 0;
    top: -31px;
    border-style: solid;
    border-width: 0 29px 31px 29px;
    border-color: transparent transparent #CF1111 transparent;
    transform: translateX(-50%);
  }

  .sh-sticky-wrap.stuck .site-mega-menu {
    transform: translateX(-50%) translateY(24px);
  }

  .site-mega-menu__close {
    position: absolute;
    z-index: 2;
    top: 30px;
    right: 30px;
    display: block;
  }

  .site-mega-menu__mobile-arrow {
    display: none;
  }

  .site-mega-menu__link-toggle {
    display: none;
  }

  .site-mega-menu__inner {
    display: grid;
    grid-template-columns: 278px minmax(260px, 1fr);
    min-height: 360px;
    border-radius: 0 0 50px 50px;
    box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
  }

  .site-mega-menu__tabs {
    padding: 52px 30px 47px;
  }

  .site-mega-menu__content {
    padding: 52px 52px 47px 30px;
    min-height: 360px;
  }

  .site-mega-menu__panel {
    grid-template-columns: 421px minmax(auto, 1fr);
    gap: 30px;
    min-height: 261px;
  }

  .site-mega-menu__panel.is-active {
    display: grid;
  }
}

@media (min-width: 1200px) and (max-width: 1399px) {
  .site-mega-menu {
    transform: translateX(-53%) translateY(16px);
  }

  .site-mega-menu:before {
    left: 53%;
  }
}

@media (min-width: 1200px) and (max-width: 1399px) {
  .site-mega-menu {
    width: calc(100vw - 32px);
    max-width: 1190px;
  }
}

@media (min-width: 60rem) and (max-width: 1199px) {
  .site-mega-menu {
    transform: translateX(-45%) translateY(20px);
  }

  .site-mega-menu:before {
    left: 45%;
  }
}

@media (min-width: 60em) and (max-width: 74.9375em) {
  .site-mega-menu {
    width: calc(100vw - 32px);
    max-width: 960px;
  }

  .site-mega-menu__panel {
    grid-template-columns: 1fr;
  }

  .site-mega-menu__featured-list {
    margin-top: 28px;
  }
}

@media (max-width: 59.9375em) {
  .has-mega-menu.active > .site-mega-menu,
  .has-mega-menu > .site-mega-menu.active {
    display: block;
  }

  .site-mega-menu__tabs,
  .site-mega-menu__content {
    padding-left: 16px;
    padding-right: 16px;
  }

  .site-mega-menu__link-item {
    padding-left: 20px;
  }

  .site-mega-menu__featured-list {
    margin-top: 24px;
  }

  .site-mega-menu__featured-title {
    font-size: 18px;
  }
}
