.custom-header-wrapper {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  z-index: 999;
}
.custom-header-wrapper .cmheader_inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.custom-header-wrapper .cmheader_inner .header_logo {
  max-width: 210px;
  margin-left: 25px;
}
.custom-header-wrapper .cmheader_inner .header-social-icons {
  margin-left: 20px;
}
.custom-header-wrapper .cmheader_inner .header-social-icons ul>li {
  margin: 0;
}
.custom-header-wrapper .cmheader_inner .header-social-icons ul {
  display: flex;
  margin: 0;
  padding: 0;
  list-style-type: none;
}
.custom-header-wrapper .cmheader_inner .header-social-icons ul>li img {
  max-width: 30px;
}
.custom-header-wrapper .cmheader_inner .header-social-icons ul>li + li {
  margin-left: 15px;
}
.custom-header-wrapper nav.header-navigation {
  flex: 1;
}
.custom-header-wrapper nav.header-navigation .hs-menu-wrapper>ul {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  margin: 0;
  padding: 0;
  font-weight: bold;
  list-style-type: none;
  white-space: nowrap;
  flex-wrap: wrap;
}
.custom-header-wrapper nav.header-navigation .hs-menu-wrapper>ul>li {
  margin: 0;
}
.custom-header-wrapper nav.header-navigation .hs-menu-wrapper>ul>li>a {
  position: relative;
  display: block;
  text-decoration: none;
}
.custom-header-wrapper nav.header-navigation .hs-menu-wrapper>ul>li + li {
  margin-left: 25px;
}
.custom-header-wrapper .header_button {
  margin-left: 25px;
}
.custom-header-wrapper .header_button ul {
  display: flex;
  justify-content: flex-end;
  margin: 0;
  padding: 0;
  list-style-type: none;
}
.custom-header-wrapper .header_button ul>li>a {
  display: flex;
  align-items: center;
  flex-direction: column;
  justify-content: center;
  width: 110px;
  height: 90px;
  color: #fff;
  font-size: 1.2rem;
  font-weight: bold;
  text-align: center;
  text-decoration: none;
}
.custom-header-wrapper .header_button ul>li {
  margin: 0;
}
.custom-header-wrapper .header_button ul>li:first-child>a {
  background: linear-gradient(90deg, #4880a5 20.12%, #64a5c3 100%);
}
.custom-header-wrapper .header_button ul>li:nth-child(2)>a {
  background: linear-gradient(90deg, #144680 20%, #147ba7 100%);
}
[class^="icon_"], [class*=" icon_"] {
  font-family: 'webfont' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.icon_mail:before {
  content: "\e903";
}
.icon_document:before {
  content: "\e900";
}

.custom-header-wrapper .header_button ul>li i {
  font-size: 2.4rem;
}

.custom-header-wrapper .header_button ul>li span {
  display: block;
  margin-top: .5em;
}
.custom-header-wrapper nav.header-navigation .hs-menu-wrapper>ul>li:last-child,
.custom-header-wrapper nav.header-navigation .hs-menu-wrapper>ul>li:nth-last-child(2){
  display: none;
}
.custom-header-wrapper nav.header-navigation .hs-menu-wrapper>ul>li>a:before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  display: block;
  width: 0;
  height: 3px;
  background: #144680;
  transition: .2s ease;
}
.header_height {
  min-height: 90px;
}
.custom-header-wrapper nav.header-navigation .hs-menu-wrapper>ul>li>a:hover:before {
  width: 100%;
}

.custom-header-wrapper .header_button ul>li>a:hover {
  opacity: .8;
}

@media (max-width: 1400px){
  .custom-header-wrapper .cmheader_inner .header-social-icons ul>li+li {
    margin-left: 10px;
  }

  .custom-header-wrapper .cmheader_inner .header-social-icons ul>li img {
    max-width: 20px;
  }

  .custom-header-wrapper .header_button, .custom-header-wrapper nav.header-navigation .hs-menu-wrapper>ul>li+li {
    margin-left: 10px;
  }
}

@media (max-width: 1250px){
  .custom-header-wrapper nav.header-navigation .hs-menu-wrapper>ul>li>a {
    font-size: 14px;
  }
}

@media (max-width: 1024px){
  .custom-header-wrapper nav.header-navigation .hs-menu-wrapper>ul>li:last-child>a:hover, .custom-header-wrapper nav.header-navigation .hs-menu-wrapper>ul>li:nth-last-child(2)>a:hover {
    color: #fff !important;
  }
  .custom-header-wrapper .cmheader_inner .header-social-icons {
    display: none;
  }
  .custom-header-wrapper .header_button ul>li.header_button_trigger {
    display: block;
    cursor: pointer;
  }
  .custom-header-wrapper .header_button ul>li.header_button_trigger>div {
    position: relative;
    background: #000;
    width: 55px;
    height: 45px;
  }
  .custom-header-wrapper .header_button ul>li>a {
    width: 55px;
    height: 45px;
  }
  .custom-header-wrapper .header_button ul>li span {
    display: none;
  }
  .custom-header-wrapper .header_button ul>li.header_button_trigger>div:before,
  .custom-header-wrapper .header_button ul>li.header_button_trigger>div:after{
    content: "";
    position: absolute;
    background: #fff;
    transition: all .4s;
    display: block;
  }
  .custom-header-wrapper .header_button ul>li.header_button_trigger>div:before{
    top: 14px;
    left: 18px;
    width: 19px;
    height: 3px;
  }
  .custom-header-wrapper .header_button ul>li.header_button_trigger>div:after{
    top: 28px;
    left: 18px;
    width: 19px;
    height: 3px;
  }
  .custom-header-wrapper .header_button ul>li.header_button_trigger>div span{
    top: 21px;
    left: 18px;
    width: 19px;
    height: 3px;
    margin: 0;
    background: #fff;
    display: block;
    position: absolute;
  }
  .custom-header-wrapper .cmheader_inner .header_logo {
    width: 135px;
    margin-left: 15px;
  }
  .custom-header-wrapper nav.header-navigation {
    position: fixed;
    background: #e2e7ec;
    text-align: left;
    padding: 0 16vw;
    height: 100%;
    width: 100%;
    top: 0;
    overflow: auto;
  }
  .custom-header-wrapper nav.header-navigation .hs-menu-wrapper>ul {
    align-items: start;
    display: block;
    width: 100%;
    font-size: 5vw;
  }
  .custom-header-wrapper nav.header-navigation .hs-menu-wrapper>ul>li>a {
    color: #144680;
    line-height: 1.8;
    font-size: 3.6vw !important;
  }
  .custom-header-wrapper nav.header-navigation .hs-menu-wrapper>ul>li+li {
    margin: 1em 0 0 0;
  }
  .custom-header-wrapper nav.header-navigation {
    display: none;
  }
  .mobile-menu-open .custom-header-wrapper nav.header-navigation {
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  .mobile-menu-open .custom-header-wrapper .header_button ul>li.header_button_trigger>div {
    background: transparent;
  }
  .mobile-menu-open .custom-header-wrapper .header_button ul>li.header_button_trigger>div:before,
  .mobile-menu-open .custom-header-wrapper .header_button ul>li.header_button_trigger>div:after{
    background: #000;
  }
  .mobile-menu-open .custom-header-wrapper .header_button ul>li.header_button_trigger>div span {
    opacity: 0;
  }
  .mobile-menu-open .custom-header-wrapper .header_button ul>li.header_button_trigger>div:after {
    transform: translateY(-7px) rotate(45deg);
  }
  .mobile-menu-open .custom-header-wrapper .header_button ul>li.header_button_trigger>div:before {
    transform: translateY(7px) rotate(-45deg);
  }
  .custom-header-wrapper nav.header-navigation .hs-menu-wrapper>ul>li:last-child,
  .custom-header-wrapper nav.header-navigation .hs-menu-wrapper>ul>li:nth-last-child(2){
    display: block;
  }
  .mobile-menu-open {
    overflow: hidden;
  }
  .custom-header-wrapper nav.header-navigation .hs-menu-wrapper>ul>li:nth-last-child(2)>a {
    background: linear-gradient(90deg, #488cbe 20.12%, #64bedc 100%);
  }

  .custom-header-wrapper nav.header-navigation .hs-menu-wrapper>ul>li:last-child>a, .custom-header-wrapper nav.header-navigation .hs-menu-wrapper>ul>li:nth-last-child(2)>a {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1em;
    color: #fff;
    font-size: 5vw;
    font-weight: bold;
  }

  .custom-header-wrapper nav.header-navigation .hs-menu-wrapper>ul>li:last-child>a i, .custom-header-wrapper nav.header-navigation .hs-menu-wrapper>ul>li:nth-last-child(2)>a i {
    font-size: 6.25vw;
    margin-right: .5em;
  }

  .custom-header-wrapper nav.header-navigation .hs-menu-wrapper>ul>li:last-child i.icon_right, .custom-header-wrapper nav.header-navigation .hs-menu-wrapper>ul>li:nth-last-child(2) i.icon_right {
    position: absolute;
    top: 50%;
    right: 15px;
    transform: translateY(-50%);
    margin: 0;
    font-size: 5vw;
  }

  .icon_right:before {
    content: "\e904";
  }

  .custom-header-wrapper nav.header-navigation .hs-menu-wrapper>ul>li:last-child>a {
    background: linear-gradient(90deg, #144680 20%, #147bc0 100%);
  }
}


@media (max-width: 550px){
  .custom-header-wrapper nav.header-navigation .hs-menu-wrapper>ul>li>a {
    font-size: 5vw !important;
  }
}

/* ============ Submenu Compact Styles ============ */
/* 調整用変数（必要に応じて数値のみ変更） */
.custom-header-wrapper{
  --panel-bg: #144780;
  --submenu-shift: -120px;
  --submenu-minw: 260px;
  --submenu-pad: 8px;
  --submenu-radius: 8px;
  --item-pad-y: 8px;
  --item-pad-x: 16px;
  --item-icon-left: 12px;
  --item-lh: 1.4;

  --submenu-bridge: 0px;
  --submenu-align-tweak: 0px;
}

/* 共通：子ULの見た目と子リンクの背景を透明化 */
.custom-header-wrapper nav.header-navigation .hs-menu-wrapper ul li.hs-item-has-children > ul{
  background: var(--panel-bg) !important;
  padding: var(--submenu-pad);
  border-radius: var(--submenu-radius);
  box-shadow: 0 8px 24px rgba(0,0,0,.12);
}
.custom-header-wrapper nav.header-navigation .hs-menu-wrapper ul li.hs-item-has-children > ul li > a{
  background: transparent !important;
  position: relative;
  display: block;
  padding: var(--item-pad-y) var(--item-pad-x) var(--item-pad-y) calc(var(--item-icon-left) + var(--item-pad-x));
  line-height: var(--item-lh);
  border-radius: 6px;
}
.custom-header-wrapper nav.header-navigation .hs-menu-wrapper ul li.hs-item-has-children > ul li > a::before{
  content: "›";
  position: absolute;
  left: var(--item-icon-left); top: 50%;
  transform: translateY(-50%);
  opacity: .6; font-size: .9em;
}
.custom-header-wrapper nav.header-navigation .hs-menu-wrapper ul li.hs-item-has-children > ul li > a:hover{
  background: rgba(0,0,0,.06);
}

/* デスクトップ配置（1025px～） */
@media (min-width:1025px){
  /* 基準設定 */
  .custom-header-wrapper nav.header-navigation{ position: relative; z-index: 40; }
  .custom-header-wrapper nav.header-navigation .hs-menu-wrapper > ul > li{ position: relative; }

  /* 第一階層パネル：メインタブの直下にオーバーレイ */
  .custom-header-wrapper nav.header-navigation
  .hs-menu-wrapper ul li.hs-item-has-children > ul{
    position: absolute; left: 0; top: 100%;
    min-width: var(--submenu-minw);
    overflow: visible; z-index: 50;
  }

/* 第二階層：親<li>を基準にオフセット。負のshiftで親に重ねる */
.custom-header-wrapper nav.header-navigation
.hs-menu-wrapper ul li.hs-item-has-children > ul > li{ position: relative; }

.custom-header-wrapper nav.header-navigation
.hs-menu-wrapper ul li.hs-item-has-children > ul > li > ul{
  position: absolute;
  top: calc(-1 * (var(--submenu-pad) + var(--item-pad-y)) + var(--submenu-align-tweak)) !important;
  left: calc(100% + var(--submenu-shift)) !important;
  min-width: var(--submenu-minw);
  padding: var(--submenu-pad);
  border-radius: var(--submenu-radius);
  background: var(--panel-bg);
  box-shadow: 0 8px 24px rgba(0,0,0,.12);
  display: none; 
  z-index: 60;
}

/* hover表示 */
.custom-header-wrapper nav.header-navigation
.hs-menu-wrapper ul li.hs-item-has-children > ul > li:hover > ul{ display: block; }

/* 橋渡し帯：重ね運用なら0pxのままでOK */
.custom-header-wrapper nav.header-navigation
.hs-menu-wrapper ul li.hs-item-has-children > ul > li > ul::before{
  content:""; position:absolute; top:0;
  left: calc(-1 * var(--submenu-bridge));
  width: var(--submenu-bridge); height:100%;
}

  /* サブメニューパネル内のリンクカラー */
.custom-header-wrapper nav.header-navigation 
.hs-menu-wrapper ul li.hs-item-has-children > ul li > a {
  color: #D1DCE8 !important;   /* 通常状態 */
}

/* ホバー時もリンク文字色を維持したい場合 */
.custom-header-wrapper nav.header-navigation 
.hs-menu-wrapper ul li.hs-item-has-children > ul li > a:hover {
  color: #D1DCE8 !important;
}

/* 反転用の配色（背景は既存設定を流用） */
.custom-header-wrapper{
  --panel-fg: #D1DCE8; /* パネル内リンクの通常テキスト色 */
  /* --panel-bg は既に設定済みの濃色を使用 */
}

/* 通常状態：文字はpanel-fg、背景は透明 */
.custom-header-wrapper nav.header-navigation 
.hs-menu-wrapper ul li.hs-item-has-children > ul li > a{
  color: var(--panel-fg) !important;
  background: transparent !important; /* 既存の薄グレーを上書き */
  transition: background-color .15s ease, color .15s ease;
}

/* 反転：hover / focus-visible / active / HubSpotのactive系も同じ見た目に */
.custom-header-wrapper nav.header-navigation 
.hs-menu-wrapper ul li.hs-item-has-children > ul li > a:hover,
.custom-header-wrapper nav.header-navigation 
.hs-menu-wrapper ul li.hs-item-has-children > ul li > a:focus-visible,
.custom-header-wrapper nav.header-navigation 
.hs-menu-wrapper ul li.hs-item-has-children > ul li.active > a,
.custom-header-wrapper nav.header-navigation 
.hs-menu-wrapper ul li.hs-item-has-children > ul li.active-branch > a,
.custom-header-wrapper nav.header-navigation 
.hs-menu-wrapper ul li.hs-item-has-children > ul li > a[aria-current="page"]{
  background: var(--panel-fg) !important;
  color: var(--panel-bg) !important;
  outline: none;
}

/* 記号（›）も色を反転（aのcolor継承でOKだが念押し） */
.custom-header-wrapper nav.header-navigation 
.hs-menu-wrapper ul li.hs-item-has-children > ul li > a::before{
  color: currentColor;
}
