@charset "UTF-8";
/******************************************************/
/* common */
/******************************************************/
* {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

html, body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, blockquote, th, td {
  margin: 0;
  padding: 0;
}

body {
  color: #5A5A5A;
  line-height: 1;
  font-family: "メイリオ", "Meiryo", "ヒラギノ角ゴ Pro W3", "ＭＳ Ｐゴシック", "MS P Gothic", "Osaka", "Hiragino Kaku Gothic Pro", Verdana, Arial, Helvetica, sans-serif;
  -webkit-text-size-adjust: none;
  overflow-x: hidden;
}
body.menu-open {
  overflow: hidden;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

fieldset, img {
  border: 0;
}

address, caption, cite, code, dfn, em, strong, th, var {
  font-style: normal;
  font-weight: normal;
}

strong {
  font-weight: bold;
}

ol, ul {
  list-style: none;
}

caption, th {
  text-align: left;
}

th, td {
  vertical-align: top;
}

h1, h2, h3, h4, h5, h6 {
  font-size: 100%;
}

img {
  vertical-align: bottom;
  max-width: 100%;
	 height: auto;
}

q:before, q:after {
  content: "";
}

abbr, acronym {
  border: 0;
}

:focus-visible {
  outline: solid 2px #3d5aa0;
  border-radius: 5px;
}

.opa a:hover img {
  opacity: 0.8;
  filter: alpha(opacity=80);
  -ms-filter: "alpha( opacity=80 )";
  background: #fff;
  -webkit-transition: 0.2s;
  transition: 0.2s;
}

a {
  color: #5A5A5A;
  text-decoration: none;
  -webkit-transition: 0.2s;
  transition: 0.2s;
}

a:hover {
  color: #3D5AA0;
}

button {
  font-family: "メイリオ", "Meiryo", "ヒラギノ角ゴ Pro W3", "ＭＳ Ｐゴシック", "MS P Gothic", "Osaka", "Hiragino Kaku Gothic Pro", Verdana, Arial, Helvetica, sans-serif;
  background-color: transparent;
  border: none;
  cursor: pointer;
  outline: none;
  padding: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  padding-inline: unset;
}

/******************************************************/
/* class */
/******************************************************/
.center {
  text-align: center !important;
}

.right {
  text-align: right !important;
}

.left {
  text-align: left !important;
}

.strong {
  font-weight: bold !important;
}

.bold {
  font-weight: bold !important;
}

.normal {
  font-weight: normal !important;
}

.blue {
  color: #3D5AA0;
}

.red {
  color: #fd4f4f;
}

.block {
  display: block;
}

.none {
  display: none;
}

.inline {
  display: inline;
}

.marginAuto {
  margin-left: auto !important;
  margin-right: auto !important;
}

.pc_none {
  display: none !important;
}

@media screen and (max-width: 767px) {
  .pc_none {
    display: block !important;
  }
  .sp_none {
    display: none !important;
  }
  .sp_underline {
    border-bottom: 1px solid #d4d4d4;
  }
}
/******************************************************/
/* clear */
/******************************************************/
.clearBoth {
  clear: both;
}

.clear {
  display: inline-block;
}

.clear:after {
  content: ".";
  display: block;
  height: 0;
  visibility: hidden;
  clear: both;
}

/* Hides MacIE5 \*/
* html .clear {
  height: 1%;
}

.clear {
  display: block;
}

/* Hides MacIE5 */
/******************************************************/
/* layout */
/******************************************************/
.wrap {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 20px;
}

.header-main .wrap,
.global-nav .wrap {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 10px;
  letter-spacing: normal;
}

.header-main *,
.global-nav * {
  -webkit-box-sizing: content-box !important;
          box-sizing: content-box !important;
  -webkit-box-sizing: initial !important;
          box-sizing: initial !important;
}


@media screen and (max-width: 767px) {
  .wrap {
    max-width: 100%;
    padding: 0 16px;
  }
}


/******************************************************/
/* main */
/******************************************************/
main {
  padding-top: 120px;
  background: none;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
  overflow: hidden;
  position: relative;
}

main.black .contents_area,
footer.black .wrap {
  opacity: 1;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

main.black::before,
footer.black::before {
  content: '';
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background: rgba(0, 0, 0, .8);
  z-index: 10;
}

main.black .contents_area,
footer.black .wrap {
  opacity: 0.25;
}

/******************************************************/
/* header */
/******************************************************/
.-sp {
  display: none;
}

header {
  position: fixed;
  width: 100%;
  background: #fff;
  z-index: 100;
  line-height: 1;
  box-sizing: initial;
}

header img {
  display: inline-block;
	 height: auto;
}

header .header_menu_info,
header .header_tab {
  opacity: 1;
  height: 56px;
  -webkit-transition: all 0.5s ease;
  transition: all 0.5s ease;
}

header.simple_header {
  position: absolute;
  top: 0;
  left: 0;
}

header.simple_header .header_logo {
  padding: 20px 0;
}

header.simple_header + main {
  padding-top: 85px;
}

header.header-dense .header_menu_info,
header.header-dense .header_menu_list01,
header.header-dense .header_menu_list01 *,
header.header-dense .header_tab,
header.header-dense .header_tab * {
  opacity: 0;
  height: 0;
  padding: 0;
  position: relative;
  bottom: 100px;
  z-index: -1;
}

.header_wrap {
  position: relative;
  z-index: 100;
  max-width: 1406px;
  margin: auto;
  padding: 0 20px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.header_wrap::before {
  content: "";
  -webkit-box-shadow: 0 3px 3px rgba(0, 0, 0, .16);
  box-shadow: 0 3px 3px rgba(0, 0, 0, .16);
  width: 100vw;
  height: 6px;
  position: absolute;
  left: 50%;
  bottom: 0;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
  z-index: -1;
}

.header_logo {
  width: 150px;
}

.header_body {
  width: calc(100% - 150px);
  display: grid;
  grid: "header_menu header_tab" auto "header_menu header_contact" auto/1fr 30.2631578947%;
}

.header_menu {
  grid-area: header_menu;
}

.header_tab {
  grid-area: header_tab;
}

.header_contact {
  grid-area: header_contact;
}

.header_menu {
  grid-area: header_menu;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 0 0 auto;
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
}

.header_menu_info {
  padding: 15px 21px;
}

.header_tab,
.header_contact {
  min-width: 300px;
}

.header_menu_info,
.header_menu_list01,
.header_menu_list02,
.header_tab_list,
.header_contact {
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}

.header_menu_info {
  width: 740px;
  padding: 15px 21px;
}

.header_menu_list01 .menu_link,
.header_menu_list02 .menu_link {
  font-size: 13px;
  line-height: 1.2;
  font-size: 13px;
  font-size: 0.8125rem;
  font-weight: bold;
  color: #5A5A5A;
  display: block;
}

.header_menu_list01 a {
  padding: 22px 0 14px;
}

.mega_menu .header_tel_number {
  display: none;
}

.header_menu_list02 {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: end;
  margin-top: 5px;
	 padding-right: 8px;
}

.header_menu_list02 .menu_link {
  padding: 18px 21px 25px;
}

.header_menu_list02 .menu_link:hover {
  color: #3D5AA0;
  position: relative;
}

.header_menu_list02 .menu_link:hover::before {
  content: "";
  width: 100%;
  height: 4px;
  background: -webkit-gradient(linear, left top, right top, from(#2b5098), to(#009de6));
  background: linear-gradient(to right, #2b5098, #009de6);
  position: absolute;
  left: 0;
  bottom: 0;
}

.header_menu_list02 .mod_ankerlink:has(+ .child_link) {
  margin-bottom: 16px;
}

.header_menu_list02 .child_link li {
  margin-top: 8px;
}
.child_link li .icon_blank {
  width: 12px;
  height: auto;
  vertical-align: middle;
}

/* 2026-04 ヘッダー表示調整: .header_search（虫眼鏡ボタン）廃止に伴い yrl_add.css へ移管のためコメントアウト
.header_search {
  margin-left: 16px;
  padding: 0 0 0 16px;
  position: relative;
}

.header_search::before {
  content: "";
  width: 1px;
  height: 30px;
  background: #D9DBDD;
  position: absolute;
  top: 56%;
  left: 0;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
}

.header_search button {
  margin-top: 8px;
  font: inherit;
}
*/

.header_tab_switch,
.header_tab_switch_icon {
  display: none;
}

.header_tab_list li {
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
  text-align: center;
  margin-right: 2px;
}

.header_tab_list li.active a {
  background: #F1F5F8;
  color: #3D5AA0;
  position: relative;
}

.header_tab_list li.active a::before {
  content: "";
  width: 100%;
  height: 4px;
  background: -webkit-gradient(linear, left top, right top, from(#2b5098), to(#009de6));
  background: linear-gradient(to right, #2b5098, #009de6);
  position: absolute;
  left: 0;
  bottom: 0;
}

.header_tab_list a {
  background: #F5F5F5;
  font-size: 15px;
  font-size: 0.9375rem;
  color: #5A5A5A !important;
  line-height: 1;
  font-weight: bold;
  padding: 21px 0 20px;
  display: block;
}

.header_tab_list a:hover {
  background: #F1F5F8;
  color: #3D5AA0;
  position: relative;
}

.header_tab_list a:hover::before {
  content: "";
  width: 100%;
  height: 4px;
  background: -webkit-gradient(linear, left top, right top, from(#2b5098), to(#009de6));
  background: linear-gradient(to right, #2b5098, #009de6);
  position: absolute;
  left: 0;
  bottom: 0;
}

.header_tab_switch_btn,
.header_tab_switch {
  display: none;
}

.header_contact {
  margin: 5px 0;
}

.header_contact .mod_link_button {
  width: 146px;
  margin: 0;
}

.header_contact .mod_link_button a {
  font-size: 15px;
  font-size: 15px;
  font-size: 0.9375rem;
  font-weight: bold;
  padding: 16px 0 14px;
  text-align: center;
}

.header_tel {
  margin-right: 1.3586956522%;
}

.header_tel img {
  width: 100%;
  max-width: 190px;/* Safari */
	 height: auto;
}

.header_tel_info {
  font-size: 12px;
  font-size: 0.75rem !important;
  font-weight: bold;
  line-height: 1;
  letter-spacing: 0;
  color: #575757;
  padding: 0 !important;
}

.menu {
  background: #fff;
  position: absolute;
  width: 100vw;
  top: 100%;
  left: 50%;
  right: 0;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  padding: 40px 0 50px;
  z-index: 90;
  visibility: hidden;
  opacity: 0;
}

.menu.is-active {
  visibility: visible;
  visibility: initial;
  opacity: 1;
}

.menu_wrap {
  width: 1120px;
  margin: auto;
  padding: 0 10px;
}
.menu_wrap .mod_col_2.mod_anker,
.menu_wrap .mod_col_3.mod_anker,
.menu_wrap .mod_col_4.mod_anker,
.menu_wrap .mod_col_5.mod_anker {
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
}

.header_info_sp,
.sp_nav, .openbtn {
  display: none;
}

@media screen and (max-width: 1340px) {
  .header_tel_info {
    font-size: 0.853485064vw !important;
  }
}
@media screen and (max-width: 1290px) {
  .header_menu_list02 .menu_link {
    padding: 18px 16px 25px;
  }
  .header_menu_info {
    width: auto;
    padding: 15px 8px;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: end;
  }
  .header_menu_info li {
    margin-left: 5px;
  }
  /* 2026-04: .header_search 廃止に伴いコメントアウト
  .header_search {
    padding: 0 0 0 10px;
    margin-left: 8px;
    display: inherit;
  }
  */
		.header_menu_list02 {
				-webkit-box-pack: space-around;
								-ms-flex-pack: space-around;
												justify-content: space-around;
		}
	.header_tel img {
		width: 98%;
	}
}
/******************************************************/
/* globalNavi (mega-dropdown) */
/******************************************************/
.nav_area > li > .menu_box {
  visibility: hidden;
  opacity: 0;
}
.nav_area > li > .menu_box a {
  color: #5A5A5A !important;
}
.nav_area > li > .menu_box .child_link a:hover {
  color: #3D5AA0 !important;
	 text-decoration: underline;
}

.nav_area > li > .menu_box.open {
  /* display: none; */
  opacity: 1;
  visibility: visible;
  -webkit-transition: all 0.5s;
  transition: all 0.5s;
}
.nav_area > li > .menu_box.open::before {
  content: "";
  width: 100%;
  height: 6px;
  position: absolute;
  top: -6px;
  left: 0;
  -webkit-box-shadow: 0 3px 3px rgba(0, 0, 0, .16);
          box-shadow: 0 3px 3px rgba(0, 0, 0, .16);
}
  .header_menu_list02 .child_link li a {
			 text-indent: -1.35em;
			 padding-left: 1em;
			 display: inline-block;
  }
.nav_area > li > .menu_box .mod_ankerlink.menu_item_1stlayer > a {
  display: block;
}

/* 2026-04 ヘッダー表示調整: 常時表示・配置変更のため yrl_add.css で再定義（下記は参照用にコメントアウト）
.header_search_form {
  background: #fff;
  border-radius: 8px;
  width: 738px;
  height: 50px;
  position: absolute;
  top: 150px;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  visibility: hidden;
  opacity: 0;
  display: none;
}
.header_search_form.open {
  display: block;
  opacity: 1;
  visibility: visible;
  -webkit-transition: all 0.5s;
  transition: all 0.5s;
}
*/
.header_search_form .search_text {
  width: calc(100% - 147px);
  height: 50px;
  border: none;
  border-radius: 8px;
  padding-left: 20px;
  font-size: 20px;
}
.header_search_form .search_submit {
  font-size: 18px;
  font-size: 18px;
  font-size: 1.125rem;
  font-weight: bold;
  color: #fff;
  background: #3D5AA0;
  border: solid 3px #3D5AA0;
  width: 137px;
  height: 42px;
  border-radius: 8px;
  cursor: pointer;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
.header_search_form .search_submit:hover {
  color: #3D5AA0;
  background: #fff;
  border: solid 3px #3D5AA0;
}
.header_search_form .search_submit-sp {
  display: none;
}

@media screen and (max-width: 1110px) {
  main {
    padding-top: 10.7207207207vw;
  }
  header .header_menu_info,
  header .header_tab {
    height: 5.045045045vw;
  }
  header.simple_header .header_logo {
    padding: 1.8018018018vw 0;
  }
  header.simple_header + main {
    padding-top: 7.6576576577vw;
  }
  header.header-dense .header_menu_info,
  header.header-dense .header_menu_list01,
  header.header-dense .header_menu_list01 *,
  header.header-dense .header_tab,
  header.header-dense .header_tab * {
    bottom: 9.009009009vw;
  }
  .header_wrap {
    max-width: 100%;
    padding: 0 0.4504504505vw 0 1.8018018018vw;
  }
  .header_wrap::before {
    content: "";
    height: 0.5405405405vw;
  }
  .header_logo {
    width: 12.6126126126vw;
  }
  .header_body {
    width: calc(100% - 13.51351vw);
    display: grid;
    grid: "header_menu header_tab" auto "header_menu header_contact" auto/1fr 12.2522522523vw;
  }
  header .header_menu_info {
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: end;
  }
  .header_menu_info {
    padding: 1.3513513514vw 1.8918918919vw;
  }
  .header_tab,
  .header_contact {
    min-width: 12.2522522523vw;
  }
  .header_menu_list01 .menu_link,
  .header_menu_list02 .menu_link {
    font-size: 1.1711711712vw;
  }
  .header_menu_list01 {
    width: 58.5585585586vw;
  }
  .header_menu_list01 a {
    padding: 1.981981982vw 0 1.2612612613vw;
  }
  .header_menu_list02 {
    width: calc(100% - 14.68468vw);
    margin-top: 0.4504504505vw;
  }
  .header_menu_list02 .menu_link {
    padding: 1.8018018018vw 0.5405405405vw 1.981981982vw;
  }
  .header_menu_list02 .menu_link:hover::before {
    content: "";
    height: 0.3603603604vw;
  }
  .header_menu_list02 .mod_ankerlink:has(+ .child_link) {
    margin-bottom: 1.4414414414vw;
  }
  .header_menu_list02 .child_link li {
    margin-top: 0.7207207207vw;
  }
  .child_link li .icon_blank {
    width: 1.081vw;
  }
  .header_search {
    margin-left: 1.8018018018vw;
    padding: 0 0 0 1.8018018018vw;
  }
  .header_search::before {
    content: "";
    height: 2.7027027027vw;
  }
  .header_search button {
    width: 1.6216216216vw;
    margin-top: 0;
  }
  .header_tab {
    position: relative;
  }
  .header_tab_list li {
    margin-right: 0.1801801802vw;
  }
  .header_tab_list li.active a::before {
    content: "";
    height: 0.3603603604vw;
  }
  .header_tab_list a {
    font-size: 1.3513513514vw;
    padding: 1.8918918919vw 0 1.8018018018vw;
  }
  .header_tab_list a:hover::before {
    content: "";
    height: 0.3603603604vw;
  }
  .header_tab_switch_btn {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: none;
  }
  .header_tab_switch_btn::before {
    content: "";
    box-sizing: initial;
    width: 0.5405405405vw;
    height: 0.5405405405vw;
    border-top: solid 0.1801801802vw #3D5AA0;
    border-right: solid 0.1801801802vw #3D5AA0;
    position: absolute;
    right: 0.9009009009vw;
    top: 48%;
    -webkit-transform: translateY(-50%) rotate(135deg);
            transform: translateY(-50%) rotate(135deg);
  }
  .header_tab_switch {
    display: none;
    width: 100%;
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 10;
    background: #fff;
    -webkit-box-shadow: 0px 0.2702702703vw 0.5405405405vw rgba(0, 0, 0, .16);
            box-shadow: 0px 0.2702702703vw 0.5405405405vw rgba(0, 0, 0, .16);
    padding: 1.2612612613vw 0.3603603604vw 1.0810810811vw;
    text-align: center;
  }
  .header_tab_switch.active {
    display: block;
    -webkit-animation: appear 0.5s ease;
            animation: appear 0.5s ease;
  }
  .header_tab_switch li {
    margin-top: 0.9009009009vw;
  }
  .header_tab_switch li:first-of-type {
    margin: 0;
  }
  .header_tab_switch a {
    font-size: 1.3513513514vw;
    font-weight: bold;
    color: #B3B5B8;
  }
  .header_tab_switch a:hover {
    color: #3D5AA0;
    text-decoration: underline;
  }
  .header_contact {
    margin: 0.4504504505vw 0;
  }
  .header_contact .mod_link_button {
    width: 13.1531531532vw;
  }
  .header_contact .mod_link_button a {
    font-size: 1.3513513514vw;
    padding: 1.4414414414vw 0 1.2612612613vw;
  }
  /* 2026-04: tel を .header_menu_info へ移したため非表示は不要（コメントアウト）
  .header_tel {
    display: none;
  }
  */
  .header_tel_info {
    font-size: 1.0810810811vw;
  }
  .menu {
    padding: 3.6036036036vw 0 4.5045045045vw;
    left: calc(50% - 1.8018vw);
  }
  .menu_wrap {
    width: 100%;
  }
  .mega_menu {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    position: relative;
    right: 1.4414414414vw;
  }
  .header_tab_list li {
    display: none;
  }
  .header_tab_list li.active {
    display: block;
  }
  /* 2026-04: tel を .header_menu_info へ移したため非表示は不要（コメントアウト）
  .header_tel {
    display: none;
  }
  */
  .mega_menu .header_tel_number {
    display: block;
    width: 14.6846846847vw;
  }
  .mega_menu .header_tel_number img {
    vertical-align: bottom;
  }
}
@media screen and (max-width: 767px) {
  .-sp {
    display: block;
  }
  header {
    top: 0;
    transition: top 0.3s;
  }
  header.hide {
    top: -100%;
  }
  header .header_menu_info,
  header .header_tab {
    display: block;
    height: auto;
  }
  header .header_menu_info {
    background: #F8F8F8;
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }
  main {
    padding-top: 21.6vw;
  }
  header.simple_header + main {
    padding-top: 11.6vw;
  }
  header.header-dense .header_menu_info,
  header.header-dense .header_menu_list01,
  header.header-dense .header_menu_list01 *,
  header.header-dense .header_tab,
  header.header-dense .header_tab * {
    opacity: 0;
    height: 0;
    padding: 0;
    position: relative;
    bottom: 100px;
    z-index: -1;
  }
  .header_wrap {
    padding: 0 0 0 2.03vw;
  }
  .header_wrap::before {
    height: 0.8vw;
    z-index: 110;
  }
  .header_left {
    height: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -ms-flex-pack: distribute;
        justify-content: space-around;
  }
  .header_left img {
    width: 100%;
			 height: auto;
  }
  .header_logo {
    width: 33.3333333333vw;
  }
  .header_info_sp {
    width: 38.1333333333vw;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    margin-top: 2.6666666667vw;
  }
  .header_info_sp figure {
    margin: 0 auto;
  }
  .header_info_sp p {
    font-weight: bold;
    color: #575757;
    font-size: 2.6666666667vw;
    margin-top: 0.9333333333vw;
  }
  .header_info_sp li:nth-of-type(1) figure {
    width: 4.8vw;
  }
  .header_info_sp li:nth-of-type(2) {
    position: relative;
  }
  .header_info_sp li:nth-of-type(2)::after, .header_info_sp li:nth-of-type(2)::before {
    content: "";
    position: absolute;
    width: 0.2666666667vw;
    height: 6.6666666667vw;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    background: #D9D9D9;
  }
  .header_info_sp li:nth-of-type(2)::after {
    right: -2.4vw;
  }
  .header_info_sp li:nth-of-type(2)::before {
    left: -2.4vw;
  }
  .header_info_sp li:nth-of-type(2) figure {
    width: 6.1333333333vw;
  }
  .header_info_sp li:nth-of-type(3) figure {
    width: 5.0666666667vw;
  }
  .header_body {
    width: 53.0666666667vw;
    display: grid;
    grid: "header_tab header_tab" auto "header_contact openbtn" auto/35.0666666667vw 18vw;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: end;
  }
  .header_tab {
    grid-area: header_tab;
  }
  .header_contact {
    grid-area: header_contact;
  }
  .openbtn {
    grid-area: openbtn;
  }
  .header_menu {
    display: none;
    width: 100%;
    margin: 0;
    height: 100%;
    position: absolute;
    top: 100%;
    left: 0;
    background: #fff;
    overflow-y: scroll;
    z-index: 100;
    position: fixed;
    top: 21.3333333333vw;
    left: 0;
    background: #fff;
    overflow-y: scroll;
    z-index: 100;
  }
  .header_menu.active {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-animation: appear 0.5s ease;
            animation: appear 0.5s ease;
  }
  .header_menu_info {
    padding: 5.6vw 8.6666666667vw 66.6666666667vw;
  }
  .header_tab,
  .header_contact {
    min-width: 6.1333333333vw;
  }
  .header_menu_info,
  .header_menu_list01,
  .header_menu_list02 {
    width: 100%;
    display: block;
  }
  .header_menu_list01 {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .header_menu_list01 li {
    width: 42.1333333333vw;
  }
  .header_menu_list01 li:nth-child(odd) {
    width: 32.8vw;
  }
  .header_menu_list01 .menu_link,
  .header_menu_list02 .menu_link {
    font-size: 4vw;
    color: #3D5AA0;
    position: relative;
    z-index: 1;
  }
  .header_.header_menu_list02menu {
    overflow: auto;
  }
  .header_menu_list01 .menu_link {
    padding: 2.9333333333vw 0;
    line-height: 1.4666666667;
    position: relative;
  }
  .header_menu_list01 .menu_link::before, .header_menu_list01 .menu_link::after {
    content: "";
    position: absolute;
  }
  .header_menu_list01 .menu_link::before {
    top: 4.8vw;
    right: 0;
    width: 1.0666666667vw;
    height: 1.0666666667vw;
    border-top: 0.2666666667vw solid #3D5AA0;
    border-right: 0.2666666667vw solid #3D5AA0;
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
  }
  .header_menu_list01 .menu_link::after {
    top: 5.3333333333vw;
    right: 0;
    width: 2.6666666667vw;
    height: 0.2666666667vw;
    background: #3D5AA0;
  }
  .mega_menu {
    padding: 5.3333333333vw 8vw 8.5333333333vw;
    background: #fff;
    right: 0;
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
  .mega_menu .header_tel_number {
    display: none;
  }
  .header_menu_list02 li {
    border-bottom: solid 0.5333333333vw #F5F5F5;
  }
  .header_menu_list02 {
    margin-top: 5px;
  }
  .header_menu_list02 .menu_link {
    width: 100%;
    text-align: left;
    padding: 5.3333333333vw 0 2.4vw;
  }
  .header_menu_list02 .menu_link:hover {
    color: #3D5AA0;
    position: relative;
  }
  .header_menu_list02 .menu_link:hover::before {
    content: none;
  }
  .header_menu_list02 .mod_ankerlink:has(+ .child_link) {
    margin-bottom: 0;
  }
  .header_menu_list02 .child_link li {
    border: none;
    margin: 0 0 0 6.6666666667vw;
    font-size: 4vw;
  }
  .header_menu_list02 .child_link li a {
    padding: 2.1333333333vw 0;
    display: block;
    color: #3D5AA0;
			 text-indent: -1.35em;
			 padding-left: 1em;
  }
  .child_link li .icon_blank {
    width: 3.2vw;
  }
  .header_search {
    display: none;
  }
  .header_tab_list li {
    display: block;
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1;
    text-align: center;
    margin-right: 2px;
  }
  .header_tab_list li.active a {
    background: #F1F5F8;
    color: #3D5AA0;
    position: relative;
  }
  .header_tab_list li.active a::before {
    content: "";
    width: 100%;
    height: 1.0666666667vw;
    background: -webkit-gradient(linear, left top, right top, from(#2b5098), to(#009de6));
    background: linear-gradient(to right, #2b5098, #009de6);
    position: absolute;
    left: 0;
    bottom: 0;
  }
  .header_tab_list a {
    font-size: 2.6666666667vw;
    padding: 1.6vw 0;
    line-height: 1.3;
  }
  .header_tab_list a:hover {
    background: #F1F5F8;
    color: #3D5AA0;
    position: relative;
  }
  .header_tab_list a:hover::before {
    content: "";
    width: 100%;
    height: 4px;
    background: -webkit-gradient(linear, left top, right top, from(#2b5098), to(#009de6));
    background: linear-gradient(to right, #2b5098, #009de6);
    position: absolute;
    left: 0;
    bottom: 0;
  }
  header .header_tab {
    height: 100%;
  }
  .header_tab_switch_btn,
  .header_tab_switch {
    display: none;
  }
  .header_contact {
    margin: 1.3333333333vw 0;
  }
  .header_contact .mod_link_button {
    width: 35.0666666667vw;
  }
  .header_contact .mod_link_button a {
    font-size: 3.2vw;
    padding: 2.4vw 0;
    margin: 0;
    border-radius: 0.8vw;
  }
  .header_tel {
    margin-right: 1.3586956522%;
  }
  .menu {
    background: #fff;
    position: relative;
    width: 100%;
    top: 100%;
    left: 0;
    right: 0;
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0);
    padding: 0 0 8.5333333333vw;
    z-index: 90;
    visibility: inherit;
    opacity: 1;
    -webkit-transition: all 0.3s ease;
    transition: all 0.3s ease;
    border-top: solid 0.5333333333vw #F5F5F5;
  }
  .menu.is-active {
    visibility: visible;
    visibility: initial;
    opacity: 1;
  }
  .menu_wrap {
    width: 100%;
    margin: auto;
    padding: 0;
			 transform: translateZ(1px);
  }
  .menu_wrap .mod_col_2.mod_anker,
  .menu_wrap .mod_col_3.mod_anker,
  .menu_wrap .mod_col_4.mod_anker,
  .menu_wrap .mod_col_5.mod_anker {
    -webkit-box-align: baseline;
        -ms-flex-align: baseline;
            align-items: baseline;
  }
  .nav_area > li > .menu_box {
    opacity: 1;
    display: none;
    overflow: hidden;
    -webkit-transition: none;
    transition: none;
    visibility: inherit;
  }
  .nav_area > li > .menu_box.open {
    /* display: none; */
    display: block;
    opacity: 1;
    visibility: visible;
    -webkit-transition: all 0.5s;
    transition: all 0.5s;
  }
  .nav_area > li > .menu_box.open::before {
    content: "";
    width: 100%;
    height: 6px;
    position: absolute;
    top: -6px;
    left: 0;
    -webkit-box-shadow: 0 3px 3px rgba(0, 0, 0, .16);
            box-shadow: 0 3px 3px rgba(0, 0, 0, .16);
  }
  .mega_link {
    position: relative;
  }
  .mega_link.open::before {
    content: "";
    width: 2.7vw;
    height: 0.2666666667vw;
    background: #fff;
    right: 1.3vw;
    top: 7.65vw;
  }
  .mega_link::before {
    content: "＋";
    font-size: 4vw;
    color: #fff;
    font-weight: 400;
    position: absolute;
    right: 0.6vw;
    top: 5.8vw;
    z-index: 1;
  }
  .mega_link::after {
    content: "";
    background: #3D5AA0;
    position: absolute;
    right: 0;
    top: 5.0666666667vw;
    height: 5.3333333333vw;
    width: 5.3333333333vw;
    border-radius: 50%;
  }
  .mega_menu .menu_item_1stlayer {
    margin: 0;
  }
  .mega_menu .menu_item_1stlayer::before {
    content: none;
  }
  .mega_menu .menu_item_1stlayer a {
    font-size: 4vw;
    padding: 5.3333333333vw 0 2.6666666667vw;
    border: none;
    color: #3D5AA0;
    background: none;
  }
  .mega_menu .menu_item_1stlayer .link_arrow {
    border: none;
    background: #3D5AA0;
    right: 0;
    top: 58%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    height: 5.3333333333vw;
    width: 5.3333333333vw;
  }
  .mega_menu .menu_item_1stlayer .link_arrow::before {
    width: 2.6666666667vw;
    height: 0.2666666667vw;
    background: #fff;
    right: 1.3333333333vw;
  }
  .mega_menu .menu_item_1stlayer .link_arrow::after {
    right: 1.3333333333vw;
    width: 1.0666666667vw;
    height: 1.0666666667vw;
    border-top: 0.2666666667vw solid #fff;
    border-right: 0.2666666667vw solid #fff;
  }
  .mega_menu .menu_item_2ndlayer {
    margin: 0 1.3333333333vw 0 3.7333333333vw;
  }
  .mega_menu .menu_item_2ndlayer::before {
    content: none;
  }
  .mega_menu .menu_item_2ndlayer a,
  .mega_menu .mod_no_ankerlink {
    font-size: 4vw;
    padding: 2.6666666667vw 0 2.6666666667vw 3.7333333333vw;
    border: none;
    color: #3D5AA0;
    position: relative;
    background: none;
  }

  .mega_menu .mod_no_ankerlink::before,
  .mega_menu .menu_item_2ndlayer a::before {
    content: "-";
    position: absolute;
    top: 50%;
    left: 0;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
  }
  .mega_menu .mod_no_ankerlink::before,
  .mega_menu .mod_no_ankerlink:hover::before {
    height: auto;
    background: none;
  }
  .mega_menu .menu_item_2ndlayer .link_arrow {
    border: none;
    right: 0;
    background: none;
  }
  .mega_menu .menu_item_2ndlayer .link_arrow::before {
    width: 2.6666666667vw;
    height: 0.2666666667vw;
    background: #3D5AA0;
    right: 0;
  }
  .mega_menu .menu_item_2ndlayer .link_arrow::after {
    right: 0.2666666667vw;
    width: 1.0666666667vw;
    height: 1.0666666667vw;
    border-top: 0.2666666667vw solid #3D5AA0;
    border-right: 0.2666666667vw solid #3D5AA0;
  }
  .openbtn {
    display: block;
    position: relative;
    width: 7.3333333333vw;
    height: 3.4666666667vw;
    width: 100%;
    height: 100%;
    top: 50%;
    left: 50%;
    padding: 4vw 5.3333333333vw;
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
  }
  .openbtn span {
    display: inline-block;
    -webkit-transition: all 0.4s;
    transition: all 0.4s;
    position: absolute;
    left: 50%;
    height: 0.5333333333vw;
    background: #3D5AA0;
    width: 7.3333333333vw;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
    margin: auto;
  }
  .openbtn span:nth-of-type(1) {
    top: 4vw;
  }
  .openbtn span:nth-of-type(2) {
    top: 5.7333333333vw;
  }
  .openbtn span:nth-of-type(3) {
    top: 7.4666666667vw;
  }
  .openbtn.active span:nth-of-type(1) {
    top: 6vw;
    transform: translateX(-50%) rotate(45deg);
  }
  .openbtn.active span:nth-of-type(2) {
    display: none;
  }
  .openbtn.active span:nth-of-type(3) {
    top: 6vw;
    transform: translateX(-50%) rotate(-45deg);
  }
  /* 2026-04 SPヘッダー: 背景撤去・幅100%等は yrl_add.css で上書き（下記は参照用にコメントアウト）
  .header_search_form {
    border-radius: 1.6vw;
    width: 100%;
    height: 18vw;
    margin-top: 10.6666666667vw;
    position: relative;
    top: 0;
    left: 0;
    -webkit-transform: translateX(0);
            transform: translateX(0);
    visibility: inherit;
    opacity: 1;
    display: block;
  }
  */
  /* 2026-04 Yext 化・レイアウト変更に伴い旧 SyncSearch 用セレクタをコメントアウト
  .header_search_form .search_text {
    width: 73.3333333333vw;
    height: 18vw;
    border: none;
    border-radius: 1.6vw;
    padding: 0 2.6666666667vw;
    font-size: 4vw;
  }
  .header_search_form .search_submit {
    display: none;
  }
  .header_search_form .search_submit-sp {
    display: block;
    background: url("/common/images/icon_search.png") center center/contain no-repeat;
    width: 5.0666666667vw;
    height: 5.0666666667vw;
    border: none;
  }
  */
  /* 2026-04 SP: .input_wrap の 100% 幅は yrl_add.css で指定（下記コメントアウト）
  .header_search_form .input_wrap {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  */
}
/******************************************************/
/* footer */
/******************************************************/
footer {
  background: #FAFAFA;
  padding: 77px 0 82px;
  position: relative;
  z-index: 0;
}
footer a {
  font-weight: bold;
  display: block;
  line-height: 1.2;
}
footer.min_footer {
	 padding: 24px 0;
}
.corporate_footer .footer_wrap {
  max-width: 1120px;
  padding: 0 10px;
  margin: auto;
}

.it_footer .footer_wrap {
  max-width: 1140px;
  padding: 0 10px;
  margin: auto;
}

.footer_inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

.footer_left {
  width: 224px;
  margin-right: 30px;
}

.corporate_footer .footer_right {
  max-width: 810px;
  display: grid;
  grid: "footer_link_box01 footer_link_box02" auto "footer_link_box01 footer_link_box03" auto "footer_link_box01 footer_link_box04" auto "footer_link_box05 footer_link_box05" auto/240px 506px;
  gap: 42px;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

.corporate_footer .footer_link_box01 {
  grid-area: footer_link_box01;
}

.corporate_footer .footer_link_box02 {
  grid-area: footer_link_box02;
}

.corporate_footer .footer_link_box03 {
  grid-area: footer_link_box03;
}

.corporate_footer .footer_link_box04 {
  grid-area: footer_link_box04;
}

.corporate_footer .footer_link_box05 {
  grid-area: footer_link_box05;
}
.corporate_footer .footer_link_box05 .footer_link_body ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
.corporate_footer .footer_link_box05 .footer_link_body li {
  width: 30.6172839506%;
}
.corporate_footer .footer_link_box05 .footer_link_body figure {
  margin-bottom: 8px;
}
.corporate_footer .footer_link_box05 .footer_link_body p {
  font-size: 14px;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.8571428571;
  color: #5A5A5A;
}

.it_footer .footer_right {
  display: grid;
  grid: "footer_link_box01 footer_link_box01" auto "footer_link_box02 footer_link_box04" auto "footer_link_box02 footer_link_box05" auto "footer_link_box02 footer_link_box06" auto "footer_link_box03 footer_link_box07" auto "footer_link_box03 footer_link_box08" auto "footer_link_box03 footer_link_box09" auto/550px 200px;
  gap: 40px 54px;
}

.it_footer .footer_link_box01 {
  grid-area: footer_link_box01;
}

.it_footer .footer_link_box02 {
  grid-area: footer_link_box02;
}
.it_footer .footer_link_box02 .footer_grid {
  width: 100%;
  height: auto;
  display: grid;
  grid: "footer_link_body_child01 footer_link_body_child03" auto "footer_link_body_child02 footer_link_body_child03" auto/260px;
  gap: 32px 35px;
}
.it_footer .footer_link_box02 .footer_grid .footer_link_body_child01 {
  grid-area: footer_link_body_child01;
}
.it_footer .footer_link_box02 .footer_grid .footer_link_body_child03 {
  grid-area: footer_link_body_child03;
}
.it_footer .footer_link_box02 .footer_grid .footer_link_body_child02 {
  grid-area: footer_link_body_child02;
}

.it_footer .footer_link_box04 {
  grid-area: footer_link_box04;
}

.it_footer .footer_link_box05 {
  grid-area: footer_link_box05;
}

.it_footer .footer_link_box06 {
  grid-area: footer_link_box06;
}

.it_footer .footer_link_box03 {
  grid-area: footer_link_box03;
}

.it_footer .footer_link_box07 {
  grid-area: footer_link_box07;
}

.it_footer .footer_link_box08 {
  grid-area: footer_link_box08;
}

.it_footer .footer_link_box09 {
  grid-area: footer_link_box09;
}

.it_footer .footer_link_box03 .footer_grid {
  display: grid;
  grid-template-rows: auto;
  grid-template-columns: repeat(2, 260px);
  gap: 32px 35px;
}

.footer_grid .footer_link_body_child dt {
  font-size: 13px;
  font-size: 0.8125rem;
  position: relative;
  padding-left: 17px;
}
.footer_grid .footer_link_body_child dt::before {
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-right: 6px solid transparent;
  border-left: 6px solid transparent;
  border-top: 8px solid #3d5aa0;
  border-bottom: 0;
  position: absolute;
  left: 0;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.footer_grid .footer_link_body_child dd {
  padding: 0;
  margin-top: 16px;
}

.footer_col {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.w340 {
  width: 340px;
}

.footer_logo_box {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.footer_logo_box dt {
  width: 132px;
}
.footer_logo_box dd {
  font-size: 13px;
  font-size: 0.8125rem;
  font-weight: bold;
  line-height: 1.5384615385;
  color: #828282;
  margin-top: 60px;
}

.footer_sns {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-top: 30px;
}
.footer_sns li {
  padding: 0 15px;
}

.footer_link_ttl,
.footer_link_ttl_only {
  border-bottom: solid 1px #808080;
  position: relative;
  padding-bottom: 11px;
}
.footer_link_ttl::before,
.footer_link_ttl_only::before {
  content: "";
  width: 78px;
  height: 3px;
  background: -webkit-gradient(linear, left top, right top, from(#2b5098), to(#009de6));
  background: linear-gradient(to right, #2b5098, #009de6);
  position: absolute;
  left: 0;
  bottom: 0;
}

.footer_link_ttl_only a,
.footer_link_ttl a {
  font-size: 16px;
  font-size: 1rem;
  color: #5A5A5A;
}
.footer_link_ttl_only a:hover,
.footer_link_ttl a:hover {
  color: #3D5AA0;
}

.footer_link_body {
  margin-top: 16px;
}
.footer_link_body a {
  font-size: 13px;
  font-size: 0.8125rem;
  margin-top: 10px;
  color: #5A5A5A;
}
.footer_link_body a:hover {
  color: #3D5AA0;
  text-decoration: underline;
}

.footer_link_body_ttl-sp {
  display: none;
}

.footer_link_body_child dd {
  padding-left: 1em;
}

.footer-copyright-link-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  border-bottom: solid 1px #808080;
  padding-bottom: 24px;
  margin-top: 64px;
}
.min_footer .footer-copyright-link-list {
	 margin-top: 0;
}
.footer-copyright-link-list a {
  font-size: 13px;
  font-size: 0.8125rem;
  color: #4D4D4D;
  font-weight: bold;
  line-height: 1.5;
  margin-top: 10px;
  padding: 0 10px;
  display: block;
}
.footer-copyright-link-list a:hover {
  color: #3D5AA0;
  text-decoration: underline;
}

.copyright {
  margin-top: 24px;
  text-align: center;
  font-size: 10px;
  font-size: 0.625rem;
  font-family: "Figtree", sans-serif;
}

@media screen and (max-width: 1120px) {
  footer {
    padding: 6.875vw 0 7.3214285714vw;
  }
  .corporate_footer .footer_wrap {
    max-width: 100%;
    padding: 0 3.5714285714vw 0 0.8928571429vw;
  }
  .footer_left {
    width: 20vw;
    margin-right: 2.6785714286vw;
  }
  .corporate_footer .footer_right {
    max-width: 72.3214285714vw;
    display: grid;
    grid: "footer_link_box01 footer_link_box02" auto "footer_link_box01 footer_link_box03" auto "footer_link_box01 footer_link_box04" auto "footer_link_box05 footer_link_box05" auto/21.4285714286vw 45.1785714286vw;
    gap: 3.75vw;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
  .corporate_footer .footer_link_box05 .footer_link_body li {
    width: 22.1428571429vw;
  }
  .corporate_footer .footer_link_box05 .footer_link_body figure {
    margin-bottom: 0.7142857143vw;
  }
  .corporate_footer .footer_link_box05 .footer_link_body p {
    font-size: 1.25vw;
  }
  .it_footer .footer_right {
    display: grid;
    grid: "footer_link_box01 footer_link_box01" auto "footer_link_box02 footer_link_box04" auto "footer_link_box02 footer_link_box05" auto "footer_link_box02 footer_link_box06" auto "footer_link_box03 footer_link_box07" auto "footer_link_box03 footer_link_box08" auto "footer_link_box03 footer_link_box09" auto/49.1071428571vw 17.8571428571vw;
    gap: 3.5714285714vw 4.8214285714vw;
  }
  .it_footer .footer_link_box02 .footer_grid {
    width: 100%;
    height: auto;
    display: grid;
    grid: "footer_link_body_child01 footer_link_body_child03" auto "footer_link_body_child02 footer_link_body_child03" auto/23.2142857143vw;
    gap: 2.8571428571vw 3.125vw;
  }
  .it_footer .footer_link_box03 .footer_grid {
    display: grid;
    grid-template-rows: auto;
    grid-template-columns: repeat(2, 23.2142857143vw);
    gap: 2.8571428571vw 3.125vw;
  }
  .footer_grid .footer_link_body_child dt {
    font-size: 1.1607142857vw;
    position: relative;
    padding-left: 1.5178571429vw;
  }
  .footer_grid .footer_link_body_child dt::before {
    content: "";
    width: 0;
    height: 0;
    border-style: solid;
    border-right: 0.5357142857vw solid transparent;
    border-left: 0.5357142857vw solid transparent;
    border-top: 0.7142857143vw solid #3d5aa0;
    border-bottom: 0;
    position: absolute;
    left: 0;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
  }
  .footer_grid .footer_link_body_child dd {
    padding: 0;
    margin-top: 1.4285714286vw;
  }
  .w340 {
    width: 30.3571428571vw;
  }
  .footer_logo_box dt {
    width: 11.7857142857vw;
  }
  .footer_logo_box dd {
    font-size: 1.1607142857vw;
    margin-top: 5.3571428571vw;
  }
  .footer_sns {
    margin-top: 12.6785714286vw;
  }
  .footer_sns li {
    padding: 0 1.3392857143vw;
  }
  .footer_link_ttl,
  .footer_link_ttl_only {
    border-bottom: solid 0.1785714286vw #808080;
    padding-bottom: 0.9821428571vw;
  }
  .footer_link_ttl::before,
  .footer_link_ttl_only::before {
    content: "";
    width: 6.9642857143vw;
    height: 0.1785714286vw;
    left: 0;
    bottom: -0.1785714286vw;
  }
  .footer_link_ttl_only a,
  .footer_link_ttl a {
    font-size: 1.4285714286vw;
  }
  .footer_link_body {
    margin-top: 1.4285714286vw;
  }
  .footer_link_body a {
    font-size: 1.1607142857vw;
    margin-top: 0.8928571429vw;
  }
  .footer_link_body_child dd {
    padding-left: 1em;
  }
  .footer-copyright-link-list {
    padding-bottom: 2.1428571429vw;
    margin-top: 5.7142857143vw;
  }
  .footer-copyright-link-list a {
    font-size: 1.1607142857vw;
    margin-top: 0.8928571429vw;
    padding: 0 0.8928571429vw;
  }
  .copyright {
    margin-top: 2.1428571429vw;
    font-size: 0.8928571429vw;
  }
  footer .mod_link_button a {
    font-size: 1.4285714286vw;
    margin: 0 1.7857142857vw;
    padding: 2.1428571429vw 4.4642857143vw 2.1428571429vw 2.1428571429vw;
    border-radius: 0.625vw;
  }
  footer .mod_link_button a::before {
    border-radius: 0.7142857143vw;
  }
  footer .mod_link_button a > span {
    right: 2.1428571429vw;
  }
}
@media screen and (max-width: 767px) {
  footer {
    padding: 0 0 8.5333333333vw;
  }
  .corporate_footer .footer_wrap {
    max-width: 100%;
    padding: 0;
  }
  .it_footer .footer_wrap {
    max-width: 100%;
    padding: 0;
  }
  .footer_inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
  }
  .footer_left {
    width: 100%;
    margin-right: 0;
  }
  .corporate_footer .footer_right {
    max-width: 100%;
    display: block;
  }
  .corporate_footer .footer_link_box05 .footer_link_body ul {
    display: block;
    padding: 0;
  }
  .corporate_footer .footer_link_box05 .footer_link_body li {
    width: 100%;
  }
  .corporate_footer .footer_link_box05 .footer_link_body figure {
    margin: 0 0 4.2666666667vw;
    width: 100%;
  }
  .corporate_footer .footer_link_box05 .footer_link_body figure img {
    width: 100%;
  }
  .corporate_footer .footer_link_box05 .footer_link_body p {
    font-size: 3.7333333333vw;
    line-height: 1.7857142857;
  }
  .it_footer .footer_right {
    display: block;
  }
  .it_footer .footer_link_box02 .footer_grid {
    width: 100%;
    display: none;
  }
  .it_footer .footer_link_box03 .footer_grid {
    display: none;
  }
  .footer_btn_wrap {
    margin-top: 18.1333333333vw;
    padding: 0 4vw;
  }
  .footer_btn_wrap .mod_link_button + .mod_link_button {
    margin-top: 3.2vw;
  }
  .footer_grid .footer_link_body_child {
    margin-top: 5.3333333333vw;
    padding-left: 4vw;
  }
  .footer_grid .footer_link_body_child ul {
    padding-left: 4vw;
  }
  .footer_grid .footer_link_body_child li::before {
    content: none;
  }
  .footer_grid .footer_link_body_child dt {
    font-size: 4vw;
    position: relative;
    padding-left: 5.3333333333vw;
  }
  .footer_grid .footer_link_body_child dt::before {
    content: "";
    width: 0;
    height: 0;
    border-style: solid;
    border-right: 1.6vw solid transparent;
    border-left: 1.6vw solid transparent;
    border-top: 2.1333333333vw solid #3d5aa0;
    border-bottom: 0;
    position: absolute;
    left: 0;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
  }
  .footer_grid .footer_link_body_child dd {
    padding: 0;
    margin-top: 4.6666666667vw;
  }
  .footer_col {
    display: block;
  }
  .w340 {
    width: 100%;
  }
  .footer_logo_box {
    margin-top: 14.9333333333vw;
  }
  .footer_logo_box dt {
    width: 41.0666666667vw;
  }
  .footer_logo_box dt img {
    width: 100%;
  }
  .footer_logo_box dd {
    font-size: 3.7333333333vw;
    margin-top: 9.6vw;
  }
  .footer_sns {
    margin-top: 12.8vw;
  }
  .footer_sns li {
    padding: 0 4.5333333333vw;
  }
  .footer_link_ttl {
    border-bottom: solid 0.2666666667vw #DFE1E6;
    position: relative;
    padding: 4.2666666667vw 4vw;
  }
  .footer_link_ttl.open::after {
    content: "";
    width: 2vw;
    height: 0.2666666667vw;
    background: #5A5A5A;
    right: 5.0666666667vw;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
  }
  .footer_link_ttl::before {
    content: none;
  }
  .footer_link_ttl::after {
    content: "＋";
    font-size: 4vw;
    color: #5A5A5A;
    font-weight: 400;
    position: absolute;
    right: 4vw;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    z-index: 1;
  }
  .footer_link_ttl_only {
    border-bottom: solid 0.2666666667vw #DFE1E6;
    position: relative;
    padding: 4.2666666667vw 4vw;
  }
  .footer_link_ttl_only::before {
    content: "";
    position: absolute;
    top: 4.8vw;
    left: auto;
    right: 4.6666666667vw;
    width: 1.0666666667vw;
    height: 1.0666666667vw;
    border-top: 0.2666666667vw solid #5A5A5A;
    border-right: 0.2666666667vw solid #5A5A5A;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    background: none;
  }
  .footer_link_ttl_only::after {
    content: "";
    position: absolute;
    top: 5.3333333333vw;
    right: 4.6666666667vw;
    width: 2.6666666667vw;
    height: 0.2666666667vw;
    background: #5A5A5A;
  }
  .footer_link_ttl_only,
  .footer_link_ttl_only a,
  .footer_link_ttl,
  .footer_link_ttl a {
    font-weight: 400;
    font-size: 4vw;
  }
  .footer_link_ttl_only:hover,
  .footer_link_ttl_only a:hover,
  .footer_link_ttl:hover,
  .footer_link_ttl a:hover {
    color: #3c3c3c;
  }
  .footer_link_body {
    margin: 0;
    padding: 0 4vw 8.5333333333vw;
    opacity: 1;
    display: none;
    overflow: hidden;
    -webkit-transition: none;
    transition: none;
    visibility: inherit;
    border-bottom: solid 0.2666666667vw #DFE1E6;
  }
  .footer_link_body a {
    font-size: 4vw;
    margin-top: 4vw;
  }
  .footer_link_body a:hover {
    text-decoration: none;
  }
  .footer_link_body ul {
    padding-left: 8vw;
  }
  .footer_link_body_ttl-sp {
    display: block;
  }
  .footer_link_body_child {
    padding-left: 8vw;
  }
  .footer_link_body_child dd {
    padding-left: 1em;
  }
  .footer_link_body_child ul {
    padding-left: 2.6666666667vw;
  }
  .footer_link_body_child li {
    position: relative;
  }
  .footer_link_body_child li::before {
    content: "└";
    font-size: 4vw;
    position: absolute;
    left: -5.3333333333vw;
    top: 0;
  }
  .footer-copyright-link-list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    border-bottom: solid 1px #808080;
    padding-bottom: 19.6vw;
    margin-top: 10.6666666667vw;
  }
  .footer-copyright-link-list a {
    font-size: 2.9333333333vw;
    font-weight: 400;
    margin-top: 2.6666666667vw;
    padding: 0 4vw;
    display: block;
  }
  .footer-copyright-link-list a:hover {
    text-decoration: none;
 	}
  .copyright {
    margin-top: 3.7333333333vw;
    font-size: 2.9333333333vw;
  }
  footer .mod_link_button a {
    font-size: 4vw;
    margin: 0 3.2vw;
    padding: 5.0666666667vw 4.2666666667vw;
    border-radius: 1.4666666667vw;
    color: #3D5AA0;
    border: solid 0.2666666667vw #3D5AA0;
  }
  footer .mod_link_button a::before {
    border-radius: 1.6vw;
  }
  footer .mod_link_button a > span {
    right: 4.2666666667vw;
  }
  footer .link_arrow {
    background: #3D5AA0;
    border: none;
    height: 5.3333333333vw;
    width: 5.3333333333vw;
  }
  footer .link_arrow::after, footer .link_arrow::after {
    display: block;
    content: "";
    position: absolute;
    top: 50%;
    right: 1.6vw;
    width: 1.0666666667vw;
    height: 1.0666666667vw;
    border-top: solid 1px #fff;
    border-right: solid 1px #fff;
    -webkit-transform: translateY(-50%) rotate(45deg);
    transform: translateY(-50%) rotate(45deg);
  }
  footer .link_arrow::before {
    content: "";
    display: inline-block;
    color: #fff;
    position: absolute;
    width: 2vw;
    height: 1px;
    background: currentColor;
    top: 50%;
    right: auto;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
  }
}
/******************************************************/
/* Title_area & breadcrumb */
/******************************************************/
.title_area {
  color: #5A5A5A;
  padding: 16px 0;
}

.title_area .page_title {
  font-size: 50px;
  font-size: 3.125rem;
  font-weight: normal;
  line-height: 1.4;
  letter-spacing: 2px;
  padding: 10px 0 0;
}

.title_area .page_title.h1_middle {
  font-size: 40px;
  font-size: 2.5rem;
}

.title_area .page_title.h1_small {
  font-size: 32px;
  font-size: 2rem;
}

.breadcrumb {
  font-size: 0.875em;
  line-height: 1.5;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  word-break: break-all;
}

.breadcrumb a {
  color: #5A5A5A;
  text-decoration: none;
}

.breadcrumb a:hover {
  color: #000;
}

.breadcrumb span {
  margin: 0 10px;
  color: #3D5AA0;
}

@media screen and (max-width: 959px) {
  .title_area .page_title {
    font-size: 5vw;
    letter-spacing: 1px;
  }
  .title_area .page_title.h1_middle {
    font-size: 4vw;
  }
  .title_area .page_title.h1_small {
    font-size: 3vw;
  }
}
@media screen and (max-width: 767px) {
  .title_area {
    padding: 15px 0 8px;
  }
  .title_area .page_title {
    font-size: 1.75rem;
    letter-spacing: 0;
  }
  .title_area .page_title.h1_middle {
    font-size: 1.5rem;
  }
  .title_area .page_title.h1_small {
    font-size: 1.25rem;
  }
  .breadcrumb {
    font-size: 0.6875rem;
  }
  .breadcrumb a {
    margin-bottom: 7px;
  }
  .breadcrumb span {
    margin: 0 7px;
  }
}
/******************************************************/
/* Date & SNS button */
/******************************************************/
.date_sns_area {
  padding: 20px 0;
}

.date_sns_area .date {
  float: left;
}

.date_sns_area .sns_btn {
  float: right;
}

.date_sns_area .sns_btn li {
  display: inline-block;
  vertical-align: middle;
}

.line-it-button {
  display: none;
}

@media screen and (max-width: 767px) {
  .date_sns_area {
    padding: 15px 0;
  }
  .date_sns_area .date {
    float: none;
    padding: 0 0 10px;
  }
  .line-it-button {
    display: block;
  }
}
/******************************************************/
/* pagetop */
/******************************************************/
.pagetop {
  position: fixed;
  z-index: 999;
  bottom: 10px;
  right: 5px;
}

@media screen and (max-width: 767px) {
  .pagetop {
    bottom: 70px;
    right: 0;
  }
  .pagetop img {
    width: 80px;
  }
}
/******************************************************/
/* container */
/******************************************************/
section {
  padding: 40px 0 60px;
  line-height: 1.5;
}

.mgtop-0 {
  margin-top: 0 !important;
}

.bg_beige,
.bg_gray,
.bg_lightgray,
.bg_gray2 {
  position: relative;
  z-index: 0;
}

.bg_white {
  background: #fff !important;
}

.bg_beige {
  background: #fffbf1;
}

.bg_gray {
  background: #F0F0F0 !important;
}

.bg_lightgray {
  background: #F8F8F8 !important;
}

.bg_gray2 {
  background: #F5F5F5 !important;
}

.txt_gray {
  color: #5A5A5A !important;
}

.txt_lightgray {
  color: #BABABA;
}

.txt_color-blue {
  color: #3D5AA0;
}

.fw_bold {
  font-weight: bold;
}

.wd-full {
  min-width: 100% !important;
  max-width: 100% !important;
  width: 100% !important;
}
.height-full {
  height: 100% !important;
}

@media screen and (max-width: 1550px) {
  .bg_image {
    background-size: 150% auto;
  }
}
@media screen and (max-width: 959px) {
  section {
    padding: 30px 0 45px;
  }
  .bg_image {
    background-size: 175% auto;
  }
}
@media screen and (max-width: 767px) {
  section {
    padding: 20px 0 35px;
  }
  .bg_image {
    background-size: 200% auto;
  }
}


@-webkit-keyframes appear {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes appear {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

/* footer(mp) */
.it_footer.mp .footer_right {
  display: grid;
  grid: "footer_link_box01 footer_link_box01" auto "footer_link_box02 footer_link_box04" auto "footer_link_box03 footer_link_box05" auto "footer_link_box03 footer_link_box06" auto/550px 200px;
  gap: 40px 54px;
}
@media screen and (max-width: 1120px) {
.it_footer.mp .footer_right {
    max-width: 72.3214285714vw;
    display: grid;
    grid: "footer_link_box01 footer_link_box01" auto "footer_link_box02 footer_link_box02" auto "footer_link_box04 footer_link_box03" auto "footer_link_box05 footer_link_box05" auto/21.4285714286vw 45.1785714286vw;
    gap: 3.75vw;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
}
@media screen and (max-width: 767px) {
  .it_footer.mp .footer_right {
    max-width: 100%;
    display: block;
  }
}

/* カルーセルCLS対応 */
.slick-item:not(:first-child),
.banner_mv_slider > .slider-img:not(:first-child),
.cards_slider.slider.cards-col3 .cards_item{
  display: none;
}

/* ============================================================
   ヘッダー・Yext 検索表示調整（2026-04）
   旧 yrl_add.css より common.css へ移設（ベンダー管理）
   ============================================================ */

/* 768px 以上（TAB+PC）共通 */
@media screen and (min-width: 768px) {
  /* 検索フォームの二重表示対策: メガメニュー側の検索エリアは非表示 */
  .header_menu .search_area {
    display: none;
  }

  /* 2 行にまたがる .header_menu の縦 stretch をやめ、.header_menu_info を上寄せ（本番に近い位置） */
  .header_body > .header_menu {
    -ms-flex-item-align: start;
    align-self: start;
    height: auto;
  }
  /* .header_menu の幅 100%・margin 0 は 1111px 以上ブロックのみ（TAB は 768〜1110 で別指定） */

  .header_menu .header_menu_info {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
  }

  .header_menu_info {
    -ms-flex-wrap: nowrap;
    flex-wrap: nowrap;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    row-gap: 0;
    min-width: 0;
  }
  .header_menu_info .header_menu_list01 {
    -webkit-box-flex: 1;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
    min-width: 0;
    margin-right: 1ch;
  }

  /* list01 の右: TB 番号枠 + PC 用 .header_tel--mega-pc（表示切替は TAB/PC メディアで） */
  .header_menu_info > .header_tel_number--mega-tab,
  .header_menu_info > .header_tel--mega-pc {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
  }

  /* PC: グリッド右列セルはコンテンツ高さに留める（TAB は別メディアで stretch） */
  .header_body > .header_tab,
  .header_body > .header_contact {
    -ms-flex-item-align: start;
    align-self: start;
  }

  /* 検索は .header_contact 内 */
  .header_contact {
    margin-top: 5px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: end;
    -ms-flex-pack: end;
    justify-content: flex-end;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-direction: row;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 8px;
    min-width: 0;
  }
  .header_contact .header_search_form.open {
    position: static;
    z-index: auto;
    margin: 0;
    padding: 0;
    background: transparent;
    border-radius: 8px;
    visibility: visible;
    opacity: 1;
    top: initial;
    left: initial;
    -webkit-transform: initial;
    transform: initial;
    -webkit-box-shadow: none;
    box-shadow: none;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
    -webkit-box-flex: 1;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
    min-width: 100px;
    max-width: min(360px, 34vw);
    width: auto;
    height: auto;
    min-height: 0;
  }
  .header_contact .mod_link_button.mod_contact_button {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-flex: 0;
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
  }
  .header_contact .mod_link_button.mod_contact_button a {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    box-sizing: border-box;
  }

  /* Yext: 送信ボタン非表示（Enter／モバイルの「検索」で送信）。常時ヘッダー＋ドロワー内 */
  .header_contact button.yxt-SearchBar-button,
  .header_contact .js-yext-submit.yxt-SearchBar-button,
  .header_menu .search_area button.yxt-SearchBar-button,
  .header_menu .search_area .js-yext-submit.yxt-SearchBar-button,
  .contents_area form.yxt-SearchBar-form button.js-yext-submit.yxt-SearchBar-button {
    display: none !important;
  }
  /* DOM: form と autocomplete が兄弟のため column。フォーム行をコンテナ高さいっぱいに伸ばし中身を縦中央に */
  .header_contact .header_search_form.open .input_wrap {
    -webkit-box-flex: 1;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    -webkit-align-self: stretch;
    -ms-flex-item-align: stretch;
    align-self: stretch;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
  }
  .header_contact .header_search_form.open .yext-header-search {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-flex: 1;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
  }
  .header_contact .yxt-SearchBar-container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
    -webkit-box-flex: 1;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
  }
  .header_contact .yxt-SearchBar-form {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-flex: 1;
    -ms-flex: 1 1 0%;
    flex: 1 1 0%;
    min-height: 0;
    width: 100%;
    -webkit-align-self: stretch;
    -ms-flex-item-align: stretch;
    align-self: stretch;
  }
  .header_contact .yxt-SearchBar-input-wrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-flex: 1;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
  }
  #yxt-SearchBar-autocomplete--search-bar-header {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    -webkit-box-flex: 0;
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
  }
  #yxt-SearchBar-autocomplete--search-bar-header .yxt-AutoComplete-wrapper,
  #yxt-SearchBar-autocomplete--search-bar-header .yxt-AutoComplete {
    width: 100%;
    max-width: 100%;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
  }
  /* 入力と同系のフォントサイズ（Yext 既定より抑える） */
  #yxt-SearchBar-autocomplete--search-bar-header .yxt-AutoComplete-results,
  #yxt-SearchBar-autocomplete--search-bar-header .yxt-AutoComplete-option {
    font-size: clamp(12px, 0.95vw, 14px);
  }
  .header_contact .header_search_form .yxt-SearchBar-input,
  .header_contact .header_search_form input.yxt-SearchBar-input,
  .header_contact .header_search_form .js-yext-query {
    -webkit-box-flex: 1;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
  }
}

/* TAB: 768px〜1110px（右列拡大・メガは左列いっぱい＋header_menu_info を左基準に） */
@media screen and (min-width: 768px) and (max-width: 1110px) {
  .header_menu_info > .header_tel--mega-pc {
    display: none !important;
  }
  .header_menu_info > .header_tel_number--mega-tab {
    display: -webkit-box !important;
    display: -ms-flexbox !important;
    display: flex !important;
    margin-left: auto;
    -webkit-box-flex: 0;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    min-width: 0;
    max-width: 130px;
    overflow: hidden;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: end;
    -ms-flex-pack: end;
    justify-content: flex-end;
  }
  .header_menu_info > .header_tel_number--mega-tab img {
    max-width: 100%;
    width: auto;
    height: auto;
    display: block;
    -o-object-fit: contain;
    object-fit: contain;
    position: relative;
    top: 2px;
  }

  /* 右端の余白は header_wrap と揃える。グリッド右列セルいっぱいに広げる */
  .header_tab,
  .header_contact {
    min-width: 0;
    width: 100%;
    max-width: 100%;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    padding-right: 0.4504504505vw;
  }
  .header_tab {
    -webkit-box-pack: end;
    -ms-flex-pack: end;
    justify-content: flex-end;
  }
  .header_body > .header_contact {
    -ms-flex-item-align: stretch;
    align-self: stretch;
  }

  .header_contact {
    overflow: visible;
    margin-top: 5px;
    margin-left: 0;
    gap: clamp(4px, 0.8vw, 8px);
    -webkit-box-align: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
  }
  .header_contact .header_search_form.open {
    -webkit-box-flex: 1;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
    min-width: 0;
    max-width: none;
    width: auto;
    overflow: visible;
    opacity: 1;
    visibility: visible;
    -webkit-box-align: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
    min-height: 100%;
  }
  .header_contact .header_search_form.open .input_wrap,
  .header_contact .header_search_form.open .yext-header-search {
    -webkit-box-flex: 1;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
    min-width: 0;
    min-height: 100%;
    -webkit-box-align: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
  }
  .header_contact .yext-header-search > * {
    min-height: 100%;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
  }
  /* Yext: 768+ 共通の flex に加え、TAB では縦方向の高さを揃える */
  .header_contact .yxt-SearchBar-container {
    min-height: 100%;
  }
  .header_contact .yxt-SearchBar-input,
  .header_contact input.yxt-SearchBar-input,
  .header_contact .js-yext-query {
    min-height: 100%;
    -webkit-align-self: stretch;
    -ms-flex-item-align: stretch;
    align-self: stretch;
  }

  /* common の width:calc(...) だけだと flex 子が右まで伸びず右側が空く → flex:1 + グリッド明示 */
  .header_wrap .header_body {
    -webkit-box-flex: 1;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
    max-width: none;
    display: grid;
    grid:
      "header_menu header_tab" auto
      "header_menu header_contact" auto /
      minmax(0, 3fr) minmax(168px, 1fr);
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
  }
  .header_body > .header_menu {
    min-width: 0;
    max-width: 100%;
  }
  .header_menu {
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
  }
  /* common の justify-content:end だと上段が右寄りになりメガの見かけ位置がズレる */
  header .header_menu_info {
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
  }
  .header_menu > .mega_menu {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    right: 0;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
  }
  /* common の width:calc(100% - 14.68vw) が右に無駄を残すのを防ぐ */
  .header_menu > .mega_menu > ul.header_menu_list02 {
    width: 100%;
    max-width: 100%;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
  }

  .header_contact .mod_link_button.mod_contact_button {
    width: clamp(62px, 9.8vw, 128px);
  }
  .header_contact .mod_link_button.mod_contact_button a {
    -webkit-box-flex: 1;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
    width: 100%;
    min-height: 100%;
    font-size: clamp(9px, 1.1vw, 13px);
    padding: clamp(7px, 1.05vw, 15px) clamp(1px, 0.22vw, 5px);
  }

  .header_contact .header_search_form,
  .header_contact .header_search_form input,
  .header_contact .header_search_form .yxt-SearchBar-input,
  .header_contact .header_search_form input.yxt-SearchBar-input,
  .header_contact .header_search_form .js-yext-query {
    font-size: clamp(10px, 1.3513513514vw, 15px);
  }
}

/*
 * PC 1111px 以上: common では .mega_menu { display:flex } が max-width:1110px 内のみのため、
 * 広い画面ではグロナビと電話が縦積みになる。ここで 1 行 flex に統一する。
 */
@media screen and (min-width: 1111px) {
  /* グリッド右列いっぱいに載せ、flex-end で子を右端へ（列内の右余白を防ぐ） */
  .header_tab,
  .header_contact {
    width: 100%;
    max-width: 100%;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
  }
  /* 上段タブと下段お問い合わせの右端を揃える（下段だけ flex-end だとズレる） */
  .header_tab {
    -webkit-box-pack: end;
    -ms-flex-pack: end;
    justify-content: flex-end;
  }
  /* 送信ボタン非表示後も検索枠の高さをお問い合わせボタンに合わせる */
  .header_contact {
    -webkit-box-align: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
  }
  .header_contact .header_search_form.open {
    -webkit-align-self: stretch;
    -ms-flex-item-align: stretch;
    align-self: stretch;
    min-height: 50px;
    -webkit-box-align: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
  }
  .header_contact .yxt-SearchBar-container {
    -webkit-align-self: stretch;
    -ms-flex-item-align: stretch;
    align-self: stretch;
    min-height: 50px;
  }
  .header_contact .mod_link_button.mod_contact_button {
    -webkit-align-self: stretch;
    -ms-flex-item-align: stretch;
    align-self: stretch;
  }
  .header_contact .mod_link_button.mod_contact_button a {
    -webkit-box-flex: 1;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
    min-height: 50px;
  }

  .header_menu {
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
  }
  .header_menu .header_menu_info {
    width: 100%;
    max-width: 100%;
  }
  .header_menu_info .header_menu_list01 {
    margin-right: 2ch;
  }
  .header_menu > .mega_menu {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-direction: row;
    flex-direction: row;
    -ms-flex-wrap: nowrap;
    flex-wrap: nowrap;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    gap: 8px;
    min-width: 0;
    width: 100%;
    max-width: 100%;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
  }
  .header_menu > .mega_menu > ul.header_menu_list02 {
    -webkit-box-flex: 1;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
    min-width: 0;
    -ms-flex-wrap: nowrap;
    flex-wrap: nowrap;
  }
  .header_menu > .mega_menu > nav.global-nav {
    -webkit-box-flex: 1;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
    min-width: 0;
  }
  /* CMS: nav 内の 2 段目 .mega_menu（グロナビ＋検索）も 1 行に */
  .header_menu > .mega_menu > nav.global-nav > .wrap > .mega_menu {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-direction: row;
    flex-direction: row;
    -ms-flex-wrap: nowrap;
    flex-wrap: nowrap;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    min-width: 0;
  }
  .header_menu > .mega_menu > nav.global-nav > .wrap > .mega_menu > ul.nav_area {
    -webkit-box-flex: 1;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
    min-width: 0;
    -ms-flex-wrap: nowrap;
    flex-wrap: nowrap;
  }

  .header_menu_info > .header_tel_number--mega-tab {
    display: none !important;
  }
  /* 画像と受付時間: 広い画面で max 190px 固定だと折り返すため上限を相対的に拡げる */
  .header_menu_info > .header_tel--mega-pc {
    display: -webkit-box !important;
    display: -ms-flexbox !important;
    display: flex !important;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    width: clamp(150px, 13.2vw, 268px);
    max-width: 100%;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    margin-left: auto;
    text-align: left;
    -webkit-box-flex: 0;
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
  }
  .header_menu_info > .header_tel--mega-pc .header_tel_number {
    display: block !important;
    width: 100%;
    max-width: none;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
  }
  .header_menu_info > .header_tel--mega-pc .header_tel_number img {
    width: 100%;
    max-width: none;
    height: auto;
    display: block;
  }
  .header_menu_info > .header_tel--mega-pc .header_tel_info {
    width: 100%;
    text-align: left;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    font-size: clamp(10px, 0.78vw, 12px) !important;
    line-height: 1.25;
  }

  /* グロナビ右に 21px（現行の menu_link 左右 padding は common のまま） */
  .header_menu > .mega_menu > ul.header_menu_list02.nav_area {
    padding-right: 21px;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
  }
  .header_menu > .mega_menu > nav.global-nav > .wrap > .mega_menu > ul.nav_area {
    padding-right: 21px;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
  }

  .header_contact .header_search_form .yxt-SearchBar-input,
  .header_contact .header_search_form input.yxt-SearchBar-input,
  .header_contact .header_search_form .js-yext-query {
    font-size: clamp(12px, 0.95vw, 14px);
    line-height: 1.35;
    min-width: 100px;
  }
}

/* PC 狭め: お問い合わせを相対的に縮め検索の max を緩め、右端の見え方を安定 */
@media screen and (min-width: 1111px) and (max-width: 1280px) {
  .header_contact .mod_link_button.mod_contact_button {
    width: clamp(100px, 8.8vw, 146px);
  }
  .header_contact .mod_link_button.mod_contact_button a {
    font-size: clamp(11px, 0.92vw, 14px);
    padding: 16px clamp(3px, 0.5vw, 11px) 14px;
  }
  .header_contact .header_search_form.open {
    max-width: min(440px, 52vw);
  }
}

/* SP: DOM は info → mega → search だが、表示順は order で mega → 検索 → info */
@media screen and (max-width: 767px) {
  /* ドロワー内の電話（上段 list01 横の TB / PC 用ブロック）は非表示 */
  .header_menu_info .header_tel_number--mega-tab,
  .header_menu .header_tel,
  .header_menu_info .header_tel--mega-pc {
    display: none !important;
  }
  /* ヘッダー帯の PC 用検索は非表示（ドロワー内 .search_area のみ） */
  .header_contact .header_search_form {
    display: none !important;
  }
  .header_menu > .mega_menu {
    -webkit-box-ordinal-group: 1;
    -ms-flex-order: 0;
    order: 0;
  }
  .header_menu > .search_area {
    display: block;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    margin: 0 0 2.6666666667vw;
    padding: 4vw 8.6666666667vw 0;
    list-style: none;
    -webkit-box-ordinal-group: 2;
    -ms-flex-order: 1;
    order: 1;
  }
  .header_menu > .search_area > li {
    width: 100%;
  }
  .header_menu .search_area .yext-global-search {
    position: relative;
    z-index: 5;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }
  .header_menu .search_area .yext-global-search > * {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }
  .header_menu .search_area button.yxt-SearchBar-button,
  .header_menu .search_area .js-yext-submit.yxt-SearchBar-button {
    display: none !important;
  }
  .header_menu .search_area .yxt-SearchBar-container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
    width: 100%;
  }
  .header_menu .search_area .yxt-SearchBar-form {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-flex: 0;
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
    width: 100%;
    min-width: 0;
  }
  .header_menu .search_area .yxt-SearchBar-input-wrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-flex: 1;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
  }
  #yxt-SearchBar-autocomplete--search-bar-global {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
  }
  .header_menu .search_area .yxt-SearchBar-input,
  .header_menu .search_area input.yxt-SearchBar-input {
    -webkit-box-flex: 1;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
  }
  header .header_menu_info {
    -webkit-box-ordinal-group: 3;
    -ms-flex-order: 2;
    order: 2;
  }
  .header_search_form .input_wrap {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
    -ms-flex-direction: row-reverse;
    flex-direction: row-reverse;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
  }
  /* Yext 検索バーが入るコンテナを許容幅いっぱいに */
  .header_search_form .input_wrap .yext-header-search,
  .header_search_form .input_wrap .yext-header-search > * {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }
}
