header {
  background-color: #fff;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 999;
  box-shadow: 0px 4px 4px 0px rgba(135, 135, 135, 0.10);
}

.header_inner {
align-items: center;
display: flex;
width: 100%;
max-width: 1440px;
margin: auto;
}

.header_logo {
margin-right: auto;
max-width: 270px;
width: 20%;
}

.header_logo_link {
display: block;
}

.header_right {
width: 70%;
display: flex;
justify-content: flex-end;
gap: 115px;
}

.section-navi {
align-items: center;
display: flex;
justify-content: space-between;
gap: 35px;
margin: 0;
padding: 0;
}
.section-navi li {
  margin: 0;
  display: flex;
  flex-direction: column;
}
.navi_current {
display: flex;
justify-content: center;
position: relative;
text-align: left;
margin: 0;
}
.navi_current .label,
.navi_current .navi_current_head {
color: #333;
display: block;
font-size: 16px;
font-weight: 500;
 padding: 45px 0 40px; 
width: 100%;
}
.section-navi .no_child {
  font-size: 13px;
  font-weight: 500;
  color: #333;
  display: block;
 padding: 45px 0 40px;
  text-align: left;
  background-color: transparent;
}
.sub-list .no_child {
  padding: 0;
  text-align: left;
  background-color: transparent;
}
.no_child.sub-set--contact {
    font-size: 16px;
}
.no_child.sub-set--news a {
    font-weight: 700;
}
.navi_current .label a,
.navi_current .navi_current_head a {
  position: relative;
  padding-right: 15px;
}
.navi_current .label:hover,
.navi_current .navi_current_head:hover {
  color: #FE0000;
  text-decoration: underline;
  opacity: 1;
}
.navi_current .label ::before,
.navi_current .navi_current_head a::before {
  position: absolute;
  right: 0;
  top: 7px;
  transform: translateY(-25%) rotate(45deg);
  width: 7px;
  height: 7px;
  margin-left: 10px;
  border-bottom: 3px solid #000;
  border-right: 3px solid #000;
  content: '';
  transition: transform .3s;
}
.navi_current .label:hover a:before,
.navi_current .navi_current_head:hover a::before {
  transform: rotate(225deg);
}
header a {
text-decoration: none;
white-space: nowrap; /* テキストを折り返さない */
}
header a:hover {
  opacity: 0.6;
}
.header_right .sub-set {
background-color: var(--cloud, #fff);
box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
display: flex;
justify-content: flex-start;
left: 50%;
opacity: 0;
padding: 20px 25px;
pointer-events: none;
position: absolute;
top: 80px;
transform: translateX(-50%);
transition: opacity 0.2s ease, width 0.2s ease;
z-index: 999;
width: max-content; /* コンテンツに応じて幅を調整 */
}

.header_right .sub-set > .sub-list {
  display: flex;
  flex-direction: row;
  gap: 35px; /* or adjust as needed */
}

.navi_current.sub-set--resources .sub-set {
width: auto;
}

.sub-set--resources .sub-list {
display: flex;
gap: 35px;
}

.sub-set--resources .sub-list a {
white-space: nowrap; /* sub-list内のリンクテキストを折り返さない */
}

.header_right .navi_current:hover .sub-set {
opacity: 1;
pointer-events: auto;
}
.sub-list li {
  margin: 0;
  margin-bottom: 5px;
}


.header_right .sub-set > .sub-list {
margin: 0;
padding-left: 0;
position: relative;
/*font-weight: bold;*/
text-align: left;
font-size: 13px;
font-weight: 700; /* */
}
.sub-list .item {
  margin: 0;
  text-align: left;
  /* Ensures each column takes equal width for consistent alignment */
  flex: 1;
  /* Added to remove any default left padding */
  padding-left: 0;
}
.sub-set--sub-set--resourcess .sub-list .item {
  margin-bottom: 0;
}
.sub-sub-list_title {
  display: block;
  /* font-weight: bold; */
  margin-left: 0px;
  margin-bottom: 10px;
  text-align: left;
  width: 100%; /* Ensures it takes full width of parent */
}
.sub-sub-list {
  margin-top:0!important;
  margin-bottom:0!important;
  padding-left: 1em;
  margin-left: -13px;
  font-weight: 400;
   /* font-weight: bold; */
  width: 100%; /* Ensures it takes full width of parent */
  /* Removed justify-content: flex-start; */
}
.sub-set--resources .sub-sub-list {
  padding-left: 0;
}
.sub-sub-list li {
  margin: 0;
  margin-bottom: 5px;
  text-align: left;
  
}
.header_right .sub-set > .sub-list > .item {
width: auto;
}

.header_btn {
  display: flex;
  align-items: center;
}
.header_btn .search_btn {
  margin-top: 0;
}
.search_word_conatiner {
  position: absolute;
  top: 0;
  width: calc(100% - 50px);
  background-color: #fff;
}
.search_word {
  padding-top: 25px;
  padding-left: 35px;
}
.search_btn form,
.search_word form {
  display: flex;
  gap: 10px;
}
.search_btn form input,
.search_word form input {
  border: 1px solid #6B6B6B;
  text-align: left;
  padding: 5px;
}
.search_btn img,
.search_word img {
  width: 25px;
  height: 25px;
}
.header_nav_section_menu .header_nav_section_menu_title {
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: relative;
  padding: 15px 30px;
  color: #000;
  font-size: 20px;
  font-weight: 500;
  font-family: "Oswald", sans-serif;
  cursor: pointer;
  border-bottom: 1px solid #E8E8E8;
}
.header_nav_sub_sub_menu_title {
  position: relative;
  font-family: "Oswald", sans-serif;
  font-size: 16px;
  font-weight: 500;
  padding: 15px 30px;
  border-bottom: 1px solid #E8E8E8;
  list-style: none;
}
.header_nav_section_sub_menu {
  background-color: #FBFBFB;
}
.header_nav_section_sub_menu .header_nav_sub_sub_menu_title::-webkit-details-marker,
.header_nav_section_menu .header_nav_section_menu_title::-webkit-details-marker {
  display: none;
}
.header_nav_sub_sub_menu_title::before,
.header_nav_sub_sub_menu_title::after,
.header_nav_section_menu .header_nav_section_menu_title::before,
.header_nav_section_menu .header_nav_section_menu_title::after {
  width: 3px;
  height: 15px;
  border-radius: 5px;
  background-color: #FE0000;
  content: '';
  top: 0;
  bottom: 0;
  margin: auto 0;
  position: absolute;
}
.header_nav_sub_sub_menu_title::before,
.header_nav_section_menu .header_nav_section_menu_title::before {
  position: absolute;
  right: 30px;
  rotate: 90deg;
}
.header_nav_sub_sub_menu_title::after,
.header_nav_section_menu .header_nav_section_menu_title::after {
  transition: rotate .3s;
  right: 30px;
}
.header_nav_section_sub_menu[open] .header_nav_sub_sub_menu_title {
  color: #FE0000;
}
.header_nav_section_sub_menu[open] .header_nav_sub_sub_menu_title::after,
.header_nav_section_menu[open] .header_nav_section_menu_title::after {
  rotate: 90deg;
}
.header_nav_section_menu[open] .header_nav_section_menu_title .header_nav_sub_sub_menu_title::after {
  rotate: 0deg;
}
.header_nav_sub_sub_menu_item {
  border-bottom: 1px solid #E8E8E8;
}
.header_nav_sub_sub_menu_item_link {
  position: relative;
  display: block;
  padding: 15px 30px 15px 60px;
  font-size: 16px;
  font-weight: 500;
  font-family: "Oswald", sans-serif;
  background-color: #F1F1F1;
}
.header_nav_sub_menu_item_link {
  position: relative;
  display: block;
  padding: 15px 30px;
  font-size: 16px;
  font-weight: 500;
  font-family: "Oswald", sans-serif;
  background-color: #FBFBFB;
  border-bottom: 1px solid #E8E8E8;
}
.header_nav_sub_menu_item_link::after,
.header_nav_sub_sub_menu_item_link::after {
  position: absolute;
  content: "";
  top: 0;
  bottom: 0;
  margin: auto;
  right: 27px;
  width: 8px;
  height: 14px;
  background-size: cover;
}


@media only screen and (max-width: 1450px) {
  .header_inner {
      padding-left: 20px;
      padding-right: 20px;
  }
}
@media only screen and (max-width: 1200px) {
    .header_right {
        gap: 50px;
    }
    .section-navi {
        gap: 20px;
    }
}
@media only screen and (max-width: 980px) {
  .header_right {
      display: none;
  }
  .header_logo {
      width: 60%;
  }
  .header_inner {
      padding: 5px 0;
      padding-left: 10px;
      padding-right: 10px;
  }
  .header_contact_link {
      display: block;
      font-family: "Oswald", sans-serif;
      padding: 15px 30px;
      font-size: 20px;
      font-weight: 500;
  }
  .header_contact_link p {
    font-family: "Oswald", sans-serif;
    font-size: 20px;
    font-weight: 500;
    margin: 0;
  }
}
@media only screen and (max-width: 980px) {
  .search_word {
    padding-top: 0;
    padding-left: 0;
  }
  .search_word_conatiner {
    position: absolute;
    top: 50px;
    left: 0;
    right: 0;
    margin: auto;
}
}

/* Default (your current): row layout is already set globally:
   .header_right .sub-set > .sub-list { display:flex; flex-direction:row; gap:35px; } */

/* Make ONLY targeted menus vertical */
.header_right .navi_current.menu-vertical .sub-set > .sub-list {
  display: flex;
  flex-direction: column;   /* vertical stack */
  gap: 10px;                /* spacing between items */
  flex-wrap: nowrap;
}

/* Make each column full width inside the vertical dropdown */
.header_right .navi_current.menu-vertical .sub-set > .sub-list .item {
  flex: none;
  width: max-content!important;
}

/* A comfortable dropdown width for vertical stacks (adjust as needed) */
.header_right .navi_current.menu-vertical .sub-set {
  width: max-content!important;
  max-width: 80vw;
  white-space: nowrap;
 
  /*
  width: 200px;
  max-width: 80vw;          /* keeps it responsive */
}

/* Optional: align left edge under the trigger (since you center via translateX(-50%)) */
.header_right .navi_current.menu-vertical .sub-set {
  left: 0;
  transform: none;          /* drop the centering for vertical menus */
}

/* Keep behavior unchanged on mobile; SP nav is already vertical */
@media (max-width: 980px) {
  .header_right .navi_current.menu-vertical .sub-set {
    width: auto;
    transform: none;
  }
}

/* target bold menu */
.bold-label {
  font-weight: bold;
}




