/* Shared desktop navigation from the approved index/company Illustrator files. */

@media screen and (min-width: 1200px) {
  .primary-nav__item--support-mega {
    position: relative;
  }

  .primary-nav__submenu--support-mega {
    position: fixed;
    top: 111px;
    right: 0;
    left: 0;
    width: auto;
    min-height: 390px;
    box-sizing: border-box;
    padding: 34px 0 28px;
    background: #f2f6f8;
  }

  .support-mega__grid {
    display: grid;
    width: min(calc(100% - 136px), 1048px);
    margin: 0 auto;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 42.9px;
    row-gap: 37.1px;
  }

  .primary-nav__item .primary-nav__submenu--support-mega a {
    min-height: 0;
    padding: 0;
    color: #231916;
    background: transparent;
    font-weight: 400;
    letter-spacing: normal;
    white-space: normal;
  }

  .primary-nav__item .primary-nav__submenu--support-mega .support-mega__heading {
    display: flex;
    min-height: 31.5px;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 8px;
    border-bottom: 1px solid #231916;
    font-size: 15px;
    line-height: 1.5;
  }

  .primary-nav__item .primary-nav__submenu--support-mega .support-mega__heading img {
    display: block;
    width: 15.82px;
    height: 15.82px;
    flex: 0 0 15.82px;
  }

  .support-mega__items {
    padding: 0;
    margin: 16.5px 0 0;
    list-style: none;
  }

  .primary-nav__item .primary-nav__submenu--support-mega .support-mega__items a {
    display: grid;
    min-height: 27px;
    align-items: center;
    grid-template-columns: minmax(0, 1fr) 9.12px;
    column-gap: 10px;
    font-size: 13px;
    line-height: 1.45;
  }

  .support-mega__items img {
    display: block;
    width: 7.12px;
    height: 15.26px;
  }

  .primary-nav__item .primary-nav__submenu--support-mega a:hover,
  .primary-nav__item .primary-nav__submenu--support-mega a:focus-visible {
    color: #b12b24;
    background: transparent;
  }

  .primary-nav__item.has-submenu {
    position: relative;
  }

  /* Continuous invisible hover bridge to prevent submenu disappearing when moving cursor down */
  .primary-nav__item.has-submenu:hover::before,
  .primary-nav__item.has-submenu:focus-within::before,
  .primary-nav__item.has-submenu.is-hovered::before {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    width: 480px;
    height: 25px;
    content: "";
    z-index: 99;
    pointer-events: auto;
    background: transparent;
  }

  .primary-nav__item--about:hover::before,
  .primary-nav__item--about:focus-within::before,
  .primary-nav__item--about.is-hovered::before {
    left: auto;
    right: 0;
    transform: none;
    width: 480px;
  }

  .primary-nav__item--support-mega:hover::before,
  .primary-nav__item--support-mega:focus-within::before,
  .primary-nav__item--support-mega.is-hovered::before {
    left: 0;
    right: 0;
    transform: none;
    width: 100vw;
  }

  .primary-nav__item.has-submenu > .primary-nav__submenu {
    z-index: 100;
  }

  .primary-nav__item:hover > .primary-nav__submenu,
  .primary-nav__item:focus-within > .primary-nav__submenu,
  .primary-nav__item.is-hovered > .primary-nav__submenu {
    display: block;
  }

  .primary-nav__submenu--panel {
    position: absolute;
    top: calc(100% + 12px);
    right: auto;
    left: 50%;
    width: 429px;
    box-sizing: border-box;
    padding: 31px 65px 23px;
    transform: translateX(-50%);
    background: #f2f6f8;
    z-index: 100;
  }

  .primary-nav__submenu--panel.primary-nav__submenu--faq {
    padding: 24px 50px 20px;
    max-height: calc(100vh - 120px);
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
  }

  .primary-nav__item:last-child .primary-nav__submenu--about {
    position: fixed;
    top: 111px;
    right: 0;
    left: auto;
    transform: none;
  }

  .primary-nav__submenu--panel li + li {
    border-top: 0;
  }

  .primary-nav__item.has-submenu .primary-nav__submenu--panel a {
    display: flex;
    min-height: 54px;
    align-items: center;
    justify-content: space-between;
    padding: 0;
    border-bottom: 1px solid #797b7c;
    color: #231916;
    background: transparent;
    font-size: 15px;
    font-weight: 400;
    letter-spacing: normal;
  }

  .primary-nav__submenu--panel img {
    display: block;
    width: 15.82px;
    height: 15.82px;
    flex: 0 0 15.82px;
  }

  .primary-nav__item.has-submenu .primary-nav__submenu--panel a:hover,
  .primary-nav__item.has-submenu .primary-nav__submenu--panel a:focus-visible {
    color: #b12b24;
    background: transparent;
  }
}

@media screen and (max-width: 1199.98px) {
  .mobile-navigation .primary-nav__submenu--support-mega,
  .mobile-navigation .primary-nav__submenu--panel {
    width: auto;
    min-height: 0;
    box-sizing: border-box;
    padding: 0;
    transform: none;
    background: #f2f6f8;
  }

  .mobile-navigation .support-mega__grid {
    display: block;
    width: auto;
    margin: 0;
  }

  .mobile-navigation .support-mega__group + .support-mega__group {
    border-top: 1px solid #dbe4e2;
  }

  .mobile-navigation .primary-nav__item .support-mega__heading {
    display: flex;
    min-height: 46px;
    align-items: center;
    justify-content: space-between;
    padding: 10px 16px 10px 20px;
    border-bottom: 1px solid #dbe4e2;
    font-size: 14px;
    font-weight: 700;
  }

  .mobile-navigation .support-mega__heading img,
  .mobile-navigation .primary-nav__submenu--panel img {
    display: block;
    width: 15.82px;
    height: 15.82px;
    flex: 0 0 15.82px;
  }

  .mobile-navigation .support-mega__items {
    padding: 0;
    margin: 0;
    list-style: none;
  }

  .mobile-navigation .primary-nav__item .support-mega__items a {
    display: grid;
    min-height: 44px;
    align-items: center;
    grid-template-columns: minmax(0, 1fr) 9px;
    column-gap: 10px;
    padding: 10px 18px 10px 32px;
    border-top: 1px solid rgb(219 228 226 / 70%);
    font-size: 13px;
    line-height: 1.5;
  }

  .mobile-navigation .support-mega__items img {
    display: block;
    width: 7.12px;
    height: 15.26px;
  }

  .mobile-navigation .primary-nav__item.has-submenu .primary-nav__submenu--panel a {
    display: flex;
    min-height: 46px;
    align-items: center;
    justify-content: space-between;
    padding: 10px 16px 10px 28px;
    border-bottom: 1px solid #dbe4e2;
  }
}

/* ─── Shared desktop header typography ───
   Header typography is owned by component classes on every page. */

@media screen and (min-width: 1200px) {
  .language-link__options > a.notranslate.glink.nturl {
    font-family: "Noto Sans CJK JP", "noto-sans-cjk-jp", "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-style: normal;
    font-size: 11.7893px;
    letter-spacing: 1.1789px;
    color: #231916;
  }

  .site-header .utility-nav__label {
    font-family: noto-sans-cjk-jp, "Noto Sans CJK JP", "Noto Sans JP", "Yu Gothic", sans-serif;
    font-weight: 700;
    font-style: normal;
    font-size: 13.0106px;
    letter-spacing: 0px;
  }

  .site-header nav.primary-nav > ul.primary-nav__list > li.primary-nav__item > a {
    font-family: "Noto Sans CJK JP", "noto-sans-cjk-jp", "Noto Sans JP", sans-serif;
    font-weight: 500;
    font-style: normal;
    font-size: 16.013px;
    letter-spacing: 1.6013px;
  }

  /* Header Contact button hover matching design (contact.ai / ONmouse) */
  .site-header .utility-nav .utility-nav__item[href*="contact"],
  .site-header .utility-nav .utility-nav__item.utility-nav__item--red:nth-child(4),
  .site-header .utility-nav .utility-nav__item:nth-child(4) {
    box-sizing: border-box;
    border: 1px solid #b52a23;
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
  }

  .site-header .utility-nav__icon--send {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 15px;
    height: 12px;
    background-color: currentColor;
    -webkit-mask: url("../images/utility-contact-icon.svg") no-repeat center / contain;
    mask: url("../images/utility-contact-icon.svg") no-repeat center / contain;
  }

  .site-header .utility-nav__icon--send img {
    display: none;
  }

  .site-header .utility-nav .utility-nav__item[href*="contact"]:hover,
  .site-header .utility-nav .utility-nav__item[href*="contact"]:focus,
  .site-header .utility-nav .utility-nav__item[href*="contact"]:focus-visible,
  .site-header .utility-nav .utility-nav__item.utility-nav__item--red:nth-child(4):hover,
  .site-header .utility-nav .utility-nav__item.utility-nav__item--red:nth-child(4):focus,
  .site-header .utility-nav .utility-nav__item.utility-nav__item--red:nth-child(4):focus-visible,
  .site-header .utility-nav .utility-nav__item:nth-child(4):hover,
  .site-header .utility-nav .utility-nav__item:nth-child(4):focus,
  .site-header .utility-nav .utility-nav__item:nth-child(4):focus-visible {
    background-color: #fff;
    border-color: #b52a23;
    color: #b52a23;
    filter: none;
  }

  .site-header .utility-nav .utility-nav__item[href*="contact"]:hover .utility-nav__label,
  .site-header .utility-nav .utility-nav__item[href*="contact"]:focus .utility-nav__label,
  .site-header .utility-nav .utility-nav__item[href*="contact"]:focus-visible .utility-nav__label,
  .site-header .utility-nav .utility-nav__item.utility-nav__item--red:nth-child(4):hover .utility-nav__label,
  .site-header .utility-nav .utility-nav__item.utility-nav__item--red:nth-child(4):focus .utility-nav__label,
  .site-header .utility-nav .utility-nav__item.utility-nav__item--red:nth-child(4):focus-visible .utility-nav__label,
  .site-header .utility-nav .utility-nav__item:nth-child(4):hover .utility-nav__label,
  .site-header .utility-nav .utility-nav__item:nth-child(4):focus .utility-nav__label,
  .site-header .utility-nav .utility-nav__item:nth-child(4):focus-visible .utility-nav__label {
    color: #b52a23;
  }

  .site-header .utility-nav .utility-nav__item[href*="contact"]:hover .utility-nav__icon--send,
  .site-header .utility-nav .utility-nav__item[href*="contact"]:focus .utility-nav__icon--send,
  .site-header .utility-nav .utility-nav__item[href*="contact"]:focus-visible .utility-nav__icon--send,
  .site-header .utility-nav .utility-nav__item.utility-nav__item--red:nth-child(4):hover .utility-nav__icon--send,
  .site-header .utility-nav .utility-nav__item.utility-nav__item--red:nth-child(4):focus .utility-nav__icon--send,
  .site-header .utility-nav .utility-nav__item.utility-nav__item--red:nth-child(4):focus-visible .utility-nav__icon--send,
  .site-header .utility-nav .utility-nav__item:nth-child(4):hover .utility-nav__icon--send,
  .site-header .utility-nav .utility-nav__item:nth-child(4):focus .utility-nav__icon--send,
  .site-header .utility-nav .utility-nav__item:nth-child(4):focus-visible .utility-nav__icon--send {
    background-color: #b52a23;
  }
}
