:root {
  --white: white;
  --black: black;

  --font-oswald: 'Oswald', sans-serif;
  --font-roboto: 'Roboto', sans-serif;

  --shadow-lg: 0px 12px 16px -4px rgba(16, 24, 40, 0.08), 0px 4px 6px -2px rgba(16, 24, 40, 0.03);

  --neutral-50: #f8fafc;
  --neutral-100: #f1f5f9;
  --neutral-200: #e2e8f0;
  --neutral-300: #cad5e2;
  --neutral-400: #90a1b9;
  --neutral-500: #62748e;
  --neutral-600: #45556c;
  --neutral-700: #314158;
  --neutral-800: #1d293d;
  --neutral-900: #0f172b;
  --neutral-950: #020618;

  --primary-50: #f1f9fe;
  --primary-100: #e1f3fd;
  --primary-200: #bce7fb;
  --primary-300: #6dcff6;
  --primary-400: #3fc1f1;
  --primary-500: #16aae1;
  --primary-600: #0989c0;
  --primary-700: #096d9b;
  --primary-800: #0c5c80;
  --primary-900: #104c6a;
  --primary-950: #0a3147;
}

/* Wrapper - Base styles (mobile first) */
.wg-mm-wrap {
  display: block;
  font-family: var(--font-roboto);
  font-style: normal;
  width: 100%;
}

/* Mobile/Tablet specific wrapper styles */
@media (max-width: 991.98px) {
  .wg-mm-wrap {
    position: relative;
    overflow: auto;
    padding: 0;
  }
}

/* Hide the menu by default */
.wg-mm-wrap .sub-menu-cols {
  display: none;
}

/* List resets */
.wg-mm-wrap ul {
  list-style-type: none;
  padding: 0;
  margin: 0;
}

/* Primary menu - Base (mobile first) */
.wg-mm-wrap ul.wg-mm-primary {
  display: flex;
  justify-content: center;
  gap: 0.75rem;
}

/* Mobile/Tablet layout */
@media (max-width: 991.98px) {
  .wg-mm-wrap ul.wg-mm-primary {
    flex-direction: column;
  }
}

/* Desktop layout (992px and up) */
@media (min-width: 992px) {
  .wg-mm-wrap ul.wg-mm-primary {
    align-items: center;
    gap: 1.25rem;
    flex-direction: row;
  }

  .wg-mm-wrap ul.wg-mm-primary li.wg-mm-link {
    position: unset;
  }

  .wg-mm-wrap ul.wg-mm-primary > li:hover .sub-menu-cols li.wg-mm-col {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    flex: 1;
  }

  .wg-mm-wrap ul.wg-mm-primary > li {
    position: relative;
  }

  .wg-mm-wrap ul.wg-mm-primary li {
    transition: all 0.25s ease-in-out;
    line-height: 1.5;
  }

  .wg-mm-wrap ul.wg-mm-primary li:hover .sub-menu-cols {
    background: var(--white);
    box-shadow: 0px 10px 15px -3px rgba(0, 0, 0, 0.1), 0px 4px 6px -2px rgba(0, 0, 0, 0.05);
    transition: all 0.25s ease-in-out;
    position: absolute;
    top: 65px;
    left: 0;
    right: 0;
    display: flex;
    z-index: 1128;
  }
}

/* Links - Base styles */
.wg-mm-wrap a {
  color: var(--black);
  font-family: var(--font-oswald);
  font-size: 1rem;
  font-weight: normal;
  line-height: 1.5rem;
  padding: 1rem 0;
  position: relative;
  text-decoration: none;
}

.wg-mm-wrap .wg-mm-link a.mega-menu-link {
  border-bottom: 1px solid var(--neutral-300);
  text-transform: uppercase;
  z-index: 1;
}

ul.wg-mm-col-modules li.wg-mm-link > a {
  padding: 0.625rem 0;
}

/* Mobile/Tablet link styles */
@media (max-width: 991.98px) {
  .wg-mm-wrap a {
    display: block;
  }

  .wg-mm-link a.mega-menu-link[aria-haspopup='true']::after {
    content: '';
    background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIiBmaWxsPSJub25lIj4KICA8cGF0aCBkPSJNMTAuODMzNSA5LjE2NjU5TDE4LjMzMzYgOS4xNjY0MlYxMC44MzMxTDEwLjgzMzUgMTAuODMzM1YxOC4zMzMySDkuMTY2ODNWMTAuODMzM0wxLjY2Njc4IDEwLjgzMzRMMS42NjY3NSA5LjE2Njc1TDkuMTY2ODMgOS4xNjY1OUw5LjE2Njc1IDEuNjY2ODhMMTAuODMzNCAxLjY2Njg3TDEwLjgzMzUgOS4xNjY1OVoiIGZpbGw9ImJsYWNrIi8+Cjwvc3ZnPg==');
    background-size: contain;
    background-repeat: no-repeat;
    width: 1.25rem;
    height: 1.25rem;
    aspect-ratio: 1/1;
    position: absolute;
    top: 1.125rem;
    right: 0;
    display: inline-block;
    transition: all 0.15s ease-in-out;
  }

  .wg-mm-link a.mega-menu-link[aria-expanded='true']::after {
    background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIiBmaWxsPSJub25lIj4KICA8cGF0aCBkPSJNNC4xNjY1IDkuMTY2NjlWMTAuODMzNEgxNS44MzMyVjkuMTY2NjlINC4xNjY1WiIgZmlsbD0iYmxhY2siLz4KPC9zdmc+');
    transition: all 0.15s ease-in-out;
  }

  /* Mobile submenu toggle button */
  .wg-mm-link a.mega-menu-link[aria-haspopup='true']::after {
    display: none;
  }

  .wg-mm-link a .submenu-toggle {
    background: none;
    border: none;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    aspect-ratio: 1/1;
    flex-shrink: 0;
    padding: 0;
  }

  .submenu-toggle .icon-toggle {
    background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDE4IDE4IiBmaWxsPSJub25lIj4KICA8cGF0aCBkPSJNOS44MzMyNSA4LjE2NjU5TDE3LjMzMzMgOC4xNjY0MlY5LjgzMzA5TDkuODMzMjUgOS44MzMyNVYxNy4zMzMySDguMTY2NTlWOS44MzMyNUwwLjY2NjUzNyA5LjgzMzQyTDAuNjY2NTA0IDguMTY2NzVMOC4xNjY1OSA4LjE2NjU5TDguMTY2NSAwLjY2Njg3OEw5LjgzMzE3IDAuNjY2ODdMOS44MzMyNSA4LjE2NjU5WiIgZmlsbD0iYmxhY2siLz4KPC9zdmc+');
    background-size: 1.25rem;
    background-repeat: no-repeat;
    width: 1.25rem;
    height: 1.25rem;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .submenu-toggle[aria-expanded='true'] .icon-toggle {
    background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIiBmaWxsPSJub25lIj4KICA8cGF0aCBkPSJNNC4xNjY1IDkuMTY2NjlWMTAuODMzNEgxNS44MzMyVjkuMTY2NjlINC4xNjY1WiIgZmlsbD0iYmxhY2siLz4KPC9zdmc+');
  }

  .wg-mm-wrap .wg-mm-link a.mega-menu-link {
    justify-content: space-between;
    display: flex;
    align-items: center;
  }
}

/* Desktop link styles */
@media (min-width: 992px) {
  .wg-mm-wrap .wg-mm-link a.mega-menu-link {
    border-bottom: 0;
    padding-bottom: 1.25rem;
  }

  .wg-mm-wrap .wg-mm-link:hover a.mega-menu-link {
    border-bottom: 2px solid var(--black);
    color: var(--black);
  }
}

/* Desktop size adjustments for smaller desktop screens */
@media (min-width: 992px) and (max-width: 1399.98px) {
  .wg-mm-wrap ul.wg-mm-primary {
    gap: 0.875rem;
  }

  .wg-mm-wrap .wg-mm-link a.mega-menu-link {
    font-size: 0.875rem;
  }
}

/* Active module link - Desktop only */
@media (min-width: 992px) {
  .wg-mm-wrap li.mm-module-link.wg-mm-link-active a {
    background: var(--neutral-950);
    color: white !important;
    opacity: 1;
  }
}

/* Mega menu link header */
.wg-mm-wrap .mm-module-link span.mm-lie-header {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.wg-mm-wrap .mm-module-link span.mm-lie-header img {
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
}

/* Column title */
.wg-mm-wrap span.mm-col-title {
  font-family: var(--font-roboto);
  font-style: normal;
  font-weight: 600;
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: var(--neutral-700);
  text-transform: none;
  margin-bottom: 1rem;
}

@media (max-width: 991.98px) {
  .wg-mm-wrap span.mm-col-title {
    margin-bottom: 0;
  }
}

/* Icons grid */
.wg-mm-wrap .mm-icons-grid {
  display: flex;
  margin: 0;
}

.wg-mm-wrap .mm-icons-grid li.mm-ic {
  flex: 0 0 25%;
  max-width: 25%;
  padding: 5px;
}

.wg-mm-wrap ul.sub-menu.sub-menu-cols li.wg-mm-link.mm-module-link.mm-module-icons_grid li.mm-ic a {
  padding: 0;
}

.wg-mm-wrap .mm-icons-grid li.mm-ic span.mm-lie-icon {
  position: relative;
  padding-bottom: 100%;
  background-color: var(--white);
  display: inline-block;
  width: 2rem;
}

li.wg-mm-link.mm-module-link.mm-module-icons_grid ul.mm-icons-grid span.mm-lie-icon {
  padding-bottom: 2rem;
}

.mm-module-link_icon_excerpt span.mm-lie-title {
  overflow: hidden;
  color: var(--black);
  text-overflow: ellipsis;
  font-family: var(--font-roboto);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5rem;
}

.mm-module-link_icon_excerpt span.mm-lie-excerpt {
  font-size: 0.75rem;
  color: var(--neutral-800);
}

@media (min-width: 992px) {
  .mm-module-card_w span.mm-lie-header {
    justify-content: center;
  }
}

li.mm-module-card_w span.mm-lie-title,
li.mm-module-card_w span.mm-lie-excerpt {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  text-overflow: ellipsis;
  overflow: hidden;
  align-self: stretch;
  color: var(--neutral-600);
  font-family: var(--font-roboto);
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.25rem;
}

li.mm-module-card_w span.mm-lie-title {
  color: var(--neutral-900);
  font-family: var(--font-oswald);
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 2rem;
  text-transform: uppercase;
}

li.mm-module-card_w span.mm-lie-excerpt {
  margin-top: 0.25rem;
}

.mm-module-card_w span.mm-btn-text {
  display: inline-block;
  margin-top: 0.25rem;
}

.wg-mm-wrap .mm-icons-grid li.mm-ic span.mm-lie-icon > span {
  position: absolute;
  inset: 5px;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
}

@media (min-width: 992px) {
  li.mm-module-card_w span.mm-lie-title,
  li.mm-module-card_w span.mm-lie-excerpt {
    text-align: center;
  }
}

/* Submenu modules */
.wg-mm-wrap ul.sub-menu.sub-menu-cols li.wg-mm-col ul.wg-mm-col-modules a {
  color: black;
  font-family: var(--font-roboto);
  font-size: 1rem;
  font-style: normal;
  font-weight: 400;
  line-height: 1.5rem;
}

.mm-module-link:not(.mm-module-link.mm-module-card_w) a:hover {
  background-color: var(--neutral-50);
}

li.wg-mm-link.mm-module-link.mm-module-card_w span.mm-lie-image {
  display: flex;
  margin-bottom: 0.75rem;
}

/* Desktop submenu column modules */
@media (min-width: 992px) {
  .wg-mm-wrap ul.sub-menu.sub-menu-cols li.wg-mm-col ul.wg-mm-col-modules {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    max-width: 100%;
    width: 100%;
  }

  .wg-mm-wrap ul.sub-menu.sub-menu-cols li.wg-mm-col ul.wg-mm-col-modules a {
    padding: 0.625rem;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
    line-clamp: 1;
  }

  .wg-mm-wrap ul.sub-menu.sub-menu-cols li.wg-mm-col ul.wg-mm-col-modules li.mm-module-link.mm-module-icons_grid {
    padding-top: 0;
    padding-bottom: 0;
  }

  .wg-mm-wrap
    ul.sub-menu.sub-menu-cols
    li.wg-mm-col
    ul.wg-mm-col-modules
    li.mm-module-link.mm-module-icons_grid
    ul.mm-icons-grid {
    flex-wrap: wrap;
  }

  .wg-mm-wrap
    ul.sub-menu.sub-menu-cols
    li.wg-mm-col
    ul.wg-mm-col-modules
    li.mm-module-link.mm-module-icons_grid
    ul.mm-icons-grid
    li.mm-ic {
    flex-basis: 50%;
    max-width: 50%;
    line-height: 1;
    padding-top: 0;
    padding-bottom: 0;
  }

  .wg-mm-wrap ul.sub-menu.sub-menu-cols li.wg-mm-col ul.wg-mm-col-modules li.mm-module-link:not(:last-of-type) {
    margin-bottom: 1px;
  }

  .wg-mm-wrap
    ul.sub-menu.sub-menu-cols
    li.wg-mm-col
    ul.wg-mm-col-modules
    li.mm-module-link.mm-module-link_icon_excerpt:hover {
    background-color: var(--neutral-50);
  }

  .wg-mm-wrap .sub-menu.sub-menu-cols .wg-mm-col .mm-lie-header img.img-fluid {
    width: 2rem;
    height: 2rem;
    object-fit: contain;
  }

  .wg-mm-wrap ul.sub-menu.sub-menu-cols li.wg-mm-link.mm-module-link.mm-module-card_w a {
    width: 100%;
    padding: 0 1.5rem;
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  li.wg-mm-link.mm-module-link.mm-module-card_w span.mm-lie-image {
    min-height: 8.5rem;
    position: relative;
    width: 100%;
  }

  li.wg-mm-link.mm-module-link.mm-module-card_w span.mm-lie-image img {
    border-radius: 0.125rem;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .wg-mm-wrap ul.sub-menu.sub-menu-cols ul.wg-mm-col-modules .mm-module-link_icon_excerpt a {
    display: flex;
    padding: 0.625rem;
    text-decoration: none;
  }
}

/* Bottom overview section - Desktop only */
@media (min-width: 992px) {
  .wg-mm-wrap ul.sub-menu.sub-menu-cols.mm-col-count-2 .wg-mm-grid-column-all {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
  }

  .wg-mm-wrap .mm-col-count-3 li.mm-col-count-3:first-of-type {
    border-right: 1px solid var(--neutral-300);
  }

  .wg-mm-wrap .mm-col-count-3 li.mm-col-count-3:first-of-type ul.wg-mm-col-modules {
    padding-right: 1.5rem;
  }

  .wg-mm-wrap .mm-col-count-3 li.mm-col-count-3:nth-of-type(2) ul.wg-mm-col-modules {
    padding-left: 1.5rem;
  }
}

/* Offcanvas styling */
.offcanvas.offcanvas-mobile-menu {
  width: 100% !important;
  top: 65px;
  border: none !important;
}

/* Offcanvas backdrop - hidden */
@media screen and (max-width: 992px) {
  .main-header:has(.offcanvas-backdrop) .offcanvas-backdrop,
  nav.nav-primary:has(.offcanvas-backdrop) .offcanvas-backdrop {
    display: none !important;
    background-color: transparent !important;
    pointer-events: none !important;
  }
}
