@charset "utf-8";
/*===================================================== 
 * Last Up Date: 2022/2/22
=====================================================*/
/**----- contents -------
1:common
2:header
3:footer
----------------------*/
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;700&display=swap');
/*== 1:common ==================*/
html {
 width: 100%;
 height: 100%;
 font-size: 62.5%;
 box-sizing: border-box;
 overflow: auto;
}
body {
 font-family: 'Noto Sans JP', "ヒラギノ角ゴシック", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
 height: 100%;
 color: #333;
 font-size: 1.2rem;
 margin: 0;
 background: #fff;
}
body > footer {
 position: sticky;
 top: 100vh;
}
h1,h2,h3,h4,p,ul,ol,li,dl,dt,dd,figure{
 margin: 0;
 padding: 0;
 list-style: none;
}
img {
 display: block;
 width: 100%;
 height: auto;
}
a{
 color: #000;
/* display: block;*/
 text-decoration: none;
 transition: 0.4s ease-in-out;
}
a:hover{
 color:#0050a4;
}
.wrapper{
 padding-bottom: 80px;
}
.wrapper.low{
 padding-top: 78px;
}
.cont_inner {
 width: 1280px;
 margin: auto;
 box-sizing: border-box;
}
.fl{
 display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
	-webkit-flex-wrap:wrap;
	-ms-flex-wrap:wrap;
	flex-wrap:wrap;
	-webkit-justify-content: space-between;
	-ms-justify-content: space-between;
	justify-content: space-between;
}
.page_top{
 position: fixed;
 width: 60px;
 bottom:10px;
 right: 5vw;
 display: none;
 z-index: 10;
 cursor: pointer;
}
.sp {
 display: none;
}
@media screen and (max-width: 1023px) {
 .cont_inner {
  /*width: 91.867vw;*/
 }
 .page_top{
  width: 10.6vw;
  bottom:10px;
  right: 0;
 }
 .pc {
  display: none;
 }
 .sp {
  display: block;
 }
}
@media screen and (max-width: 750px) {
 .wrapper{
  padding-bottom: 15vw;
 }
 .wrapper.low{
  padding-top: 14.6vw;
 }
 .cont_inner {
  width: 90vw;
 }
}
/*--fade---*/
.fade_off {
 opacity: 0;
 transition: all 2s;
}
.fade_on {
 opacity: 1;
}
/*--//fade---*/

/*==============================*/

/*== 2:header ==================*/
header {
 position: fixed;
 width: 100vw;
 /*background: #fff;*/
 z-index: 999;
 background: #fff url("/wp-content/uploads/2026/07/header_bg.svg") bottom right no-repeat;
 background-size: contain;
}
header .cont_inner.fl {
 padding: 0 30px 0;
}
header h1 {
 width: 305px;
 padding-bottom: 10px;
 margin-left: -15px;
}
@media screen and (max-width: 750px) {
 header {
  background: #fff;
 }
 header .cont_inner.fl {
  width: 100vw;
  padding: 0;
 }
 header h1 {
  width: 56vw;
  padding-bottom: 1.3vw;
  margin-left: 0;
 }
}
/*-------*/
/*--nav--*/
nav > ul {
 display: -webkit-flex;
 display: -ms-flexbox;
 display: flex;
 -webkit-flex-wrap: wrap;
 -ms-flex-wrap: wrap;
 flex-wrap: wrap;
 -webkit-justify-content: space-between;
 -ms-justify-content: space-between;
 justify-content: space-between;
 -webkit-align-items: center;
 -ms-align-items: center;
 align-items: center;
 height: 100%;
 
 position: relative;
}
nav > ul::after {
 position: absolute;
 top:0;
 bottom: 0;
 right: -9px;
 content: "";
 width: 103%;
 height: 35%;
 margin: auto 0;
 background: #fff;
 z-index: -1;
}
nav > ul > li {
 height: 100%;
 font-size: 1.5rem;
}
nav > ul > li:nth-child(n+2) {
 margin-left: 40px;
}
nav > ul > li.p_menu > p {
 transition: 0.4s ease-in-out;
}
nav > ul > li.p_menu > p:hover {
 color: #0050A4;
}
nav > ul > li.p_menu > p, nav > ul > li > a {
 position: relative;
 display: -webkit-flex;
 display: -ms-flexbox;
 display: flex;
 -webkit-flex-wrap: wrap;
 -ms-flex-wrap: wrap;
 flex-wrap: wrap;
 -webkit-justify-content: space-between;
 -ms-justify-content: space-between;
 justify-content: space-between;
 -webkit-align-items: center;
 -ms-align-items: center;
 align-items: center;
 cursor: pointer;
 height: 100%;
}
@media screen and (min-width: 751px) {
 nav > ul > li.p_menu > p::before, nav > ul > li > a::before {
  content: "";
  position: absolute;
  bottom: 25px;
  width: 100%;
  height: 2px;
  background: none;
  transition: 0.4s ease-in-out;
 }
 nav > ul > li.p_menu:hover > p::before, nav > ul > li:hover > a::before {
  background: #0050A4;
 }
 nav > ul > li.act > p::before, nav > ul > li.act a::before {
  background: #0050A4;
 }
}
@media screen and (max-width: 750px) {
 nav{
  display: none;
  width: 100vw;
  overflow:auto;
 }
 nav > ul{
  display: block;
  padding:0 10vw 5vw;
  background: #0050a4;
 }
 nav > ul > li {
  display: block;
  width: auto;
  height:auto;
  font-size: 1.6rem;
  padding: 3vw 3vw;
  border-bottom:#fff 1px solid;
 }
 nav > ul > li:nth-child(n+2) {
  margin-left: 0;
 }
 nav > ul > li > a, nav > ul > li > a:hover{
  color: #fff;
 }
 nav > ul > li.p_menu > p, nav > ul > li.p_menu > p:hover {
  color: #fff;
 }
 nav > ul > li.p_menu > p::after{
  content: "▼";
  font-size: 1.0rem;
 }
 nav > ul > li.p_menu.sub_close > p::after{
  content: "✕";
  font-size: 1.4rem;
 }
 nav > ul > li.p_menu > p, nav > ul > li > a {
  height: auto;
 }
}
/*----------------*/
/*--div.sub_menu--*/
div.sub_menu {
 position: absolute;
 top: 77px;
 left: 0;
 width: 100%;
 display: none;
 padding: 20px 2%;
 background: rgba(0, 80, 164, 0.8);
 box-sizing: border-box;
}
div.sub_menu > ul{
 width: 90%;
 text-align: center;
 margin: auto;
}
div.sub_menu > ul > li{
 display: inline-block; 
 margin: auto;
}
div.sub_menu > ul > li a{
 position: relative;
 color: #fff;
}
div.sub_menu > ul > li a:hover{
 color: #C8E2FF;
}
@media screen and (min-width: 751px) {
 div.sub_menu > ul > li:nth-child(n+2){
  margin-left: 40px;
 }
 div.sub_menu > ul > li a::before {
  content: "";
  position: absolute;
  top: 25px;
  width: 100%;
  height: 1px;
  background: none;
  transition: 0.4s ease-in-out;
 }
 div.sub_menu > ul > li a:hover::before{
  background: #fff;
 }
}
@media screen and (max-width: 750px) { 
div.sub_menu {
 position: static;
 width: 100%;
 display: none;
 padding: 3vw 2%;
 margin-top: 1.5vw;
 background: #00428b;
 box-sizing: border-box;
 }
 div.sub_menu > ul > li{
  display: block;
  text-align: left;
  margin:0 auto 0.5vw;
 }
 div.sub_menu > ul > li:last-child{
  argin:0 auto;
 }
 div.sub_menu > ul > li a{
  position: relative;
  font-size: 1.4rem;
  padding-left: 4vw;
  background: url("../images/btn_icon_03.svg") top 1.5vw left no-repeat;
  background-size: 1.4vw auto; 
 }
}

/*--button.sp_menu--*/
header button.sp_menu{
 display: none;
}
@media screen and (max-width: 750px) { 
 header button.sp_menu{
  position: relative;
  display: block;
  width: 7vw;
  height: 6.8vw;
  margin-top: 3vw;
  margin-right: 5vw;
  cursor: pointer;
  appearance:none;
  background: transparent;
  border: none;
 }
 header button.sp_menu span{
  position: absolute;
  width: 100%;
  height: 4px;
  left: 0;
  background: #000000;
  transition: all 0.5s;
 }
 header button.sp_menu span::before{
  content: "";
  position: absolute;
  top:12px;
  left: 0;
  width: 100%;
  height: 4px;
  background: #000000;
  transition: all 0.5s;
 }
 header button.sp_menu span::after{
  content: "";
  position: absolute;
  bottom:12px;
  left: 0;
  width: 100%;
  height: 4px;
  background: #000000;
  transition: all 0.5s;
 }
 header button.sp_menu.close span{  
  background: transparent;
 }
 header button.sp_menu.close span::before {
  top: 0;
  transform: rotate(45deg);
 }
 header button.sp_menu.close span::after {
  bottom: 0;
  transform: rotate(-45deg);
 }
}
/*--------*/
/*==============================*/
/*== 3:footer ==================*/
footer{
 /*background: #eaeef1;*/
 background: #eaeef1 url("/wp-content/uploads/2026/07/footer_line.svg") bottom right no-repeat;
 background-size: cover;
}
/* WordPress環境下で移行元（1280px）と同じ横幅を強制確保 */
footer .cont_inner.fl{
 width: 1280px !important;
 max-width: 100% !important;
 margin: 0 auto !important;
 padding: 25px 30px 10px;
}
footer address{
 font-size: 1.4rem;
 font-style: normal;
 margin:0 auto 0; 
}
@media screen and (max-width: 750px) {
 footer{
  background: #eaeef1;
 }
 footer .cont_inner.fl {
  width: 90vw !important;
  padding: 6vw 0vw 6vw;
 }
 footer address {
  order: 3;
  font-size: 1.0rem;
 }
}
/*----------*/
/*--.f_add--*/
.f_add{
 width: 30%;
}
.f_add .f_logo{
 width: 245px;
 margin-top: -10px;
}
.f_add p{
 font-size: 1.4rem;
 padding-left: 15px;
 margin-top: 20px;
}

@media screen and (min-width: 751px) { 
.f_menu{
 margin-bottom: 6rem;
}
}

@media screen and (max-width: 750px) { 
 .f_add {
  width: 100%;
  order: 2;
  margin-bottom: 5vw;
 }
 .f_add .f_logo {
  width: 65.33vw;
  margin-top: 0;
 }
 .f_add p {
  font-size: 1.2rem;
  padding-left: 4vw;
  margin-top: 2vw;
 }
}
/*-----------*/
/*--.f_menu--*/
.f_menu{
 width: 70%;
 display: grid;
 grid-template-columns: repeat(3, 1fr);
 grid-template-rows: repeat(2, 1fr);
 grid-column-gap: 0px;
 grid-row-gap: 0px;
 margin-bottom: 6rem;
}
.f_menu .f_menu_01 { grid-area: 1 / 1 / 3 / 2;}
.f_menu .f_menu_02 { grid-area: 1 / 2 / 2 / 3;}
.f_menu .f_menu_03 { grid-area: 2 / 2 / 3 / 3;}
.f_menu .f_menu_04 { grid-area: 1 / 3 / 2 / 4;}
.f_menu .f_menu_05 { grid-area: 2 / 3 / 3 / 4;}

.f_menu h4{ 
 font-size: 1.4rem;
 margin-bottom: 10px;
}
.f_menu ul li { 
 font-size: 1.3rem;
 margin-bottom: 10px;
}
/* WordPressで出力される2階層目の構造に適合させて「・」を表示 */
.f_menu ul li a::before {
 content: "・";
}
@media screen and (max-width: 750px) {

 .f_menu {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: auto auto auto;
  grid-column-gap: 20px;
  grid-row-gap: 10px;
 }

 .f_menu .f_menu_01 { grid-area: 1 / 1 / 2 / 2; }
 .f_menu .f_menu_02 { grid-area: 2 / 1 / 3 / 2; }
 .f_menu .f_menu_03 { grid-area: 3 / 1 / 4 / 2; }
 .f_menu .f_menu_04 { grid-area: 1 / 2 / 2 / 3; }
 .f_menu .f_menu_05 { grid-area: 2 / 2 / 4 / 3; }

 .f_menu h4 {
  font-size: 1.4rem;
  margin-bottom: 10px;
 }

 .f_menu ul li {
  font-size: 1.3rem;
  margin-bottom: 10px;
 }

 .f_menu ul li a::before {
  content: "・";
 }

}
/*-----------*/
/*==============================*/


/*== 4:breadcrumb ==============*/
@import url('https://fonts.googleapis.com/css2?family=Kosugi&display=swap');
.breadcrumb{
 padding: 10px 0;
 margin-bottom: 50px;
 border-top: #0050a4 1px solid;
 border-bottom: #0050a4 1px solid;
 }
.breadcrumb a{
 display: inline;
}
.breadcrumb ul{
 width: 1200px;
 margin: auto;
}
.breadcrumb ul li{
 display: inline-block;
}
.breadcrumb ul li:nth-child(n+2)::before{
 font-family: 'Kosugi', sans-serif;
 content: ">";
 font-size: 1.5rem;
 padding: 0 12px;
}
@media screen and (max-width: 750px) {
 .breadcrumb{
  padding: 1vw 0;
  margin-bottom: 7vw;
  }
 .breadcrumb ul{
  width: 95%;
  font-size: 1.1rem;
 }
 .breadcrumb ul li:nth-child(n+2)::before{
  font-size: 1.1rem;
  padding: 0 2vw;
 }
}
/*==============================*/