@charset "UTF-8";
@import url('https://fonts.googleapis.com/css?family=Open+Sans:300,400,700');


*, *:before, *:after {
  box-sizing: border-box;
}
html {
  font-size: calc(50% + 0.5vw);
}
@media all and (-ms-high-contrast: none){
  html {
    font-size: 100%;
  }
}
body {
  color: #707070;
  font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", "sans-serif";
  line-height: 1.4;
  margin: 0;
}
img {
  border: none;
  vertical-align: top;
}
.pc_only {
  display: initial;
}
.sp_only {
  display: none;
}
.wrap {
  margin: auto;
  max-width: 1536px;
  width: 80%;
}
.dfont {
  font-family: 'Open Sans', sans-serif;
  font-weight: 300;
}
a {
  color: #707070;
  text-decoration: none;
}
a:focus {
  outline: none;
}
#wrap {
  margin: auto;
  max-width: 1920px;
}
.t_center{
  text-align: center;
}


/* ヘッダー
///////////////////////////////////////////////////////////////////////////////////////*/
.header_wrap{
  position: fixed;
  width: 100%;
  z-index: 1500;
}
header {
  align-items: stretch;
  background-color: #fff;
  box-shadow: 0px 0px 5px 0 #666;
  display: flex;
  justify-content: space-between;
  margin: 0 auto;
  padding: 0 1.568% 0 2.35%;
  position: fixed;
  width: 80%;
  max-width: 1536px;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
}
header h1 {
  align-items: center;
  display: flex;
  font-weight: normal;
  line-height: 1;
  margin: 0 0 0;
  order: 1;
  padding: 2.055% 0;
  width: 15.9%;
}
header h1 img {
  height: auto;
  width: 100%;
}
header h1 a span:first-of-type {
  display: block;
  margin: 0 12% 0 0;
  width: 44.156%;
}
header h1 a span {
  flex: 0 0 auto;
}
header h1 a {
  align-items: center;
  color: #707070;
  display: flex;
  text-decoration: none;
}
#head_btn {
  align-items: center;
  display: flex;
  justify-content: space-between;
  list-style: none;
  margin: 0;
  order: 3;
  padding: 0;
  width: 21.42%;
}
#head_btn li {
  text-align: center;
  width: 48.6%;
}
#head_btn li a {
  color: #fff;
  display: block;
  font-weight: 700;
  padding: 10% 0;
  text-decoration: none;
}
#head_btn li:first-of-type a {
  background-color: #10167E;
	
	/* グレーアウトの部分が以下 */
	pointer-events: none;
	background-color: #aaa;
	/* ここまで */
}
#head_btn li:last-of-type a {
  background-color: #E8322C;
}
nav {
  margin: 0 3% 0 auto;
  order: 2;
  width: 48%;
}
nav > ul {
  display: flex;
  height: 100%;
  justify-content: space-between;
  list-style: none;
  margin: 0;
  padding: 0;
}
nav > ul > li {
  align-items: center;
  display: flex;
  flex: 0 0 auto;
  height: 100%;
  position: relative;
}
nav ul li.top {
  display: none;
}
nav ul li.top + li{
  margin: 0;
}
nav ul li.active::after,
nav ul li:hover::after {
  background-color: #E8322C;
  bottom: 0;
  content: "";
  display: block;
  height: 4px;
  left: 0;
  position: absolute;
  width: 100%;
}
nav ul li a {
  color: #707070;
  text-decoration: none;
}
nav > ul > li > ul {
  display: none;
}
#sp_menu_btn {
  display: none;
}

/* フッター
///////////////////////////////////////////////////////////////////////////////////////*/
#totop_sp{
  display: none;
}
#totop {
  border-top: 1px solid #CCCCCC;
  margin: 200px 0 0;
  text-align: center;
}
#totop p {
  display: inline-block;
  margin: 0 auto;
  max-width: 80px;
  min-width: 40px;
  position: relative;
  transform: translate(0, -50%);
  width: 4.167%;
  cursor: pointer;
}
#totop p img {
  width: 100%;
}
#footer_btn {
  margin: 2.09% 0 4.18%;
}
#footer_btn ul {
  border-bottom: 1px solid #CCCCCC;
  border-top: 1px solid #CCCCCC;
  display: flex;
  justify-content: center;
  list-style: none;
  margin: 0;
  padding: 0;
}
#footer_btn ul li {
  max-width: 320px;
  text-align: center;
  width: 16.667%;
}
#footer_btn li a {
  color: #fff;
  display: block;
  padding: 9.4% 0;
  text-decoration: none;
}
#footer_btn li:first-of-type a {
  background-color: #10167E;
	
	/* グレーアウトの部分が以下 */
	pointer-events: none;
	background-color: #aaa;
	/* ここまで */
}
#footer_btn li:last-of-type a {
  background-color: #E8322C;
}
#footer_menu {
  margin: 0 auto;
  max-width: 1536px;
  width: 80%;
}
#footer_menu > ul {
  display: flex;
  font-weight: bold;
  justify-content: space-between;
  line-height: 1;
  list-style: none;
  margin: 0;
  padding: 0;
}
#footer_menu > ul > li {
  width: 20%;
  width: auto;
}
#footer_menu > ul > li > a {
  display: block;
  margin: 0 0 40px;
  padding: 0 0 0 20px;
  position: relative;
}
#footer_menu > ul > li > a::before {
  border-right: 1px solid #C63029;
  border-top: 1px solid #C63029;
  content: "";
  display: inline-block;
  height: 12px;
  left: -5px;
  position: absolute;
  top: 50%;
  transform: rotate(45deg) translate(-50%, -50%);
  width: 12px;
}
#footer_menu ul ul {
  font-weight: normal;
  list-style: none;
  margin: 0;
  padding: 0;
}
#footer_menu ul ul li {
  margin: 14px 0;
}
#footer_foot {
  border-top: 1px solid #CCCCCC;
  margin: 0 auto;
  padding: 2.09% 0 2.87%;
}
#footer_foot .wrap {
  align-items: center;
  display: flex;
  justify-content: space-between;
}
#footer_foot ul {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
}
#footer_foot ul li {
  margin: 0 40px 0 0;
}
#footer_foot small {
  color: #707070;
}

/* リンク無効 */
.non_active a,
.non_active a *{
  pointer-events: none;
  color: #ccc !important;
}
.non_active a .img{
  background-color: #666;
}
.non_active a .img img{
  opacity: .5;
}


/* コンテンツ内共通項
///////////////////////////////////////////////////////////////////////////////////////*/
.img_fit{
  width: 100%;
  height: auto;
}

.flex_box,
.flex_half,
.flex_left_img,
.flex_right_img{
  display: flex;
}
.flex_half div{
  width: 50%;
}
.flex_left_img .img{
  width: 56.25%;
}
.flex_left_img .txt{
  width: 43.75%;
}
.flex_right_img .img{
  width: 56.25%;
  order: 1;
}
.flex_right_img .txt{
  width: 43.75%;
  order: 0;
}
.flex_box_wrap{
  display: flex;
  flex-wrap: wrap;
}

.visual {
  background-position: top center;
  background-repeat: no-repeat;
  background-size: cover;
  position: relative;
}

/* 文字サイズ一括設定
///////////////////////////////////////////////////////////////////////////////////////*/
.font12{font-size: 0.6795rem;}
.font14{font-size: 0.79275rem;}
.font16{font-size: 0.906rem}
.font18{font-size: 1.019rem;}
.font20{font-size: 1.1325rem;}
.font22{font-size: 1.24575rem;}
.font24{font-size: 1.359rem;}
.font26{font-size: 1.47225rem;}
.font28{font-size: 1.5855rem;}
.font30{font-size: 1.69875rem;}
.font32{font-size: 1.812rem;}
.font36{font-size: 2.0385rem;}
.font40{font-size: 2.265rem;}
.font42{font-size: 2.37825rem;}
.font46{font-size: 2.60475rem;}
.font50{font-size: 2.83125rem;}
.font52{font-size: 2.888888889rem;}
.font60{font-size: 3.3975rem;}
.font80{font-size: 4.53rem;}
.font100{font-size: 5.6625rem;}

/*///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////// TB用 /////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/
@media (max-width: 1360px) {
.wrap {
  width: 100%;
}

#wrap {
  overflow: visible;
}

  header{
    width: 100%;
  }
/* フッター
///////////////////////////////////////////////////////////////////////////////////////*/
#totop {
  margin: 20% 0 0;
}
#footer_menu {
  padding: 0 3%;
  width: 100%;
}
#footer_menu > ul > li {
  width: auto;
}
#footer_foot {
  padding: 2.09% 3% 2.87%;
}
}

@media (max-width: 1024px) {
nav {
  width: 53%;
}
}

@media (max-width: 960px) {
html {
  font-size: 1.666666vw;
}

  body.fixed{
    position: fixed;
  }

/* ヘッダー
///////////////////////////////////////////////////////////////////////////////////////*/
header {
  padding: 0 0 0 2.1%;
  position: relative;
}
header h1 {
  margin: 0 0 0;
  padding: 1.5% 0;
  width: auto;
}
header h1 a span:first-of-type {
  margin: 0 5.625% 0 0;
  width: 40.25%;
}
#head_btn {
  align-items: stretch;
  margin: 0 0 0 auto;
  order: 2;
  width: 17.5%;
}
#head_btn li {
  align-content: center;
  display: flex;
  width: 50%;
}
#head_btn li a {
  align-items: center;
  display: flex;
  justify-content: center;
  text-align: center;
  width: 100%;
}

nav {
  background-color: #fff;
  box-shadow: 0 5px 5px -5px rgba(0,0,0,0.4) inset;
  display: none;
  left: 0;
  margin: 0 0 0 0;
  position: absolute;
  top: 100%;
  width: 100%;
  height: auto;
  z-index: 500;
}
nav > ul {
  flex-direction: column;
  height: 100%;
  -webkit-overflow-scrolling: touch;
    overflow-scrolling: touch;
    overflow-y: auto;
}
nav > ul > li {
  border-bottom: 1px solid #ccc;
  display: block;
  height: auto;
  margin: 0;
  text-align: center;
}
nav ul li.top {
  display: block;
}
nav ul li.active::after,
nav ul li:hover::after {
  display: none;
}
nav > ul > li:not(.top):not(:last-child)::after,
nav > ul > li:not(.top):not(:last-child):hover::after {
  background: none;
  border: none;
  border: 1px solid;
  border-color: #C63029 #C63029 transparent transparent;
  content: "";
  display: block;
  height: 15px;
  left: auto;
  position: absolute;
  right: 5%;
  top: 5vw;
  transform: rotate(45deg);
  width: 15px;
}
nav > ul > li.open:not(.top)::after,
nav > ul > li.open:not(.top):hover::after {
  top: 4.8vw;
  transform: rotate(135deg);
}
nav > ul > li > a {
  display: inline-block;
  margin: 5% 0;
  position: relative;
}
nav > ul > li > ul {
  background-color: #ABABAB;
  height: auto;
  list-style: none;
  padding: 3% 5%;
  width: 100%;
}
nav > ul > li.open {
  padding-bottom: 0;
}

nav > ul > li > ul > li {
  border-bottom: 1px solid #fff;
  margin: 0;
  padding: 4% 0;
}
nav > ul > li > ul > li:last-child {
  border-bottom: none;
}
nav > ul > li > ul > li a {
  color: #fff;
}
#sp_menu_btn,
#sp_menu_btn.on{
  display: block;
  order: 3;
  position: relative;
  width: 8.7%;
}
#sp_menu_btn span {
  background-color: #E8322C;
  border-radius: 3px;
  display: block;
  height: 2px;
  left: 30%;
  position: absolute;
  transform: translate(0, -50%);
  width: 40%;
}
#sp_menu_btn span:nth-child(1) {
  top: 35%;
}
#sp_menu_btn span:nth-child(2) {
  top: 50%;
}
#sp_menu_btn span:nth-child(3) {
  top: 65%;
}
html.fixed, body.fixed {
	overflow: hidden;
	height: 100%;
	z-index: -1;
	width: 100%;
	position: fixed;
}
 .fixed .menu_scroll{
   height: 100%;
   width: 100%;
   position: fixed;
   z-index: 500;
   -webkit-overflow-scrolling: auto;
  overflow-scrolling: auto;
  overflow-y: scroll;
  }
  .fixed .head_inner{
    display: table;
    width: 100%;
    height: 100%;
    z-index: 500;
    position: relative;
  }
  .fixed .head_in_inner{
    display: table-cell;
    width: 100%;
    z-index: 500;
    position: relative;
  }
  

/* フッター
///////////////////////////////////////////////////////////////////////////////////////*/
#footer_menu > ul > li > a {
  margin: 0 0 40px;
  padding: 0 0 0 20px;
}

#footer_menu ul ul {
  font-weight: normal;
  list-style: none;
  margin: 0;
  padding: 0;
}
#footer_menu ul ul li {
  margin: 14px 0;
}

	
}

@media (max-width: 768px) {
.pc_only {
  display: none;
}
.sp_only {
  display: initial;
}
html {
  font-size: 1.78333333vw;
}
.wrap {
  margin: auto;
  width: auto;
}

/* ヘッダー
///////////////////////////////////////////////////////////////////////////////////////*/
header h1 {
  padding: 1.5% 0;
}
header h1 a span:first-of-type {
  margin: 0 5.625% 0 0;
  width: 45.25%;
}
header h1 a span {
  flex: 0 0 auto;
}
#head_btn {
  width: 20%;
}
nav ul li.active::after,
nav ul li:hover::after {
  display: none;
}
nav > ul > li:not(.top):not(:last-child)::after,
nav > ul > li:not(.top):not(:last-child):hover::after {
  top: 5.7vw;
}
nav > ul > li.open:not(.top)::after,
nav > ul > li.open:not(.top):hover::after {
  top: 5.2vw;
}
nav > ul > li > ul {
  padding: 5% 10%;
}
nav > ul > li.open > ul {
  height: auto;
}
#sp_menu_btn,
#sp_menu_btn.on{
  width: 10.6%;
}


/* フッター
///////////////////////////////////////////////////////////////////////////////////////*/
  #totop_sp{
    display: initial;
    margin: 0;
    position: fixed;
    right: 5%;
    bottom: 5%;
    width: 13%;
    z-index: 50;
  }
#footer_btn {
  margin: 2.09% 0 0;
}
#footer_btn ul li {
  width: 50%;
}
#footer_menu {
  padding: 0;
}
#footer_menu > ul {
  flex-direction: column;
}
#footer_menu > ul > li {
  border-bottom: 1px solid #ccc;
  text-align: center;
}
#footer_menu > ul > li > a {
  margin: 0 0 0;
  padding: 8% 0;
}
#footer_menu > ul > li > a::before {
  height: 15px;
  left: auto;
  right: 5%;
  width: 15px;
}
#footer_menu ul ul {
  display: none;
}
#footer_menu p {
  margin: 0;
  padding: 10%;
}
#footer_menu p img {
  height: auto;
  width: 100%;
}
#footer_foot {
  padding: 0;
}
#footer_foot .wrap {
  flex-direction: column;
}
#footer_foot ul {
  border-bottom: 1px solid #CCCCCC;
  padding: 5% 0;
  width: 100%;
  justify-content: space-around;
}
#footer_foot ul li {
  margin: 0;
  text-align: center;
}
#footer_foot ul li:last-child {
  margin: 0;
}
#footer_foot small {
  padding: 5% 0;
  text-align: center;
}


}

/*///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////// SP用 /////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/

@media (max-width: 767px) {
html {
  font-size: 3.864734299vw;
  font-size: 3.125vw;
}
.pc_only {
  display: none;
}
.sp_only {
  display: initial;
}

/* ヘッダー
///////////////////////////////////////////////////////////////////////////////////////*/
header {
  margin: 0 auto 0 0;
  width: 100%;
}
header h1 {
  padding: 4.35% 0;
  width: 30%;
}
header h1 a span:first-of-type {
  line-height: 0.2;
  margin: 0 3% 0 0;
  width: 14.88vw;
}
header h1 a span {
  flex: 0 0 auto;
  line-height: 1;
}
#head_btn {
  width: 30%;
  font-size: 0.75rem !important;
}

#head_btn li a {
  padding: 0 0;
}

nav ul li.active::after,
nav ul li:hover::after {
  display: none;
}
nav > ul > li:not(.top):not(:last-child)::after,
nav > ul > li:not(.top):not(:last-child):hover::after {
  top: 11vw;
}
nav > ul > li.open:not(.top):not(:last-child)::after,
nav > ul > li.open:not(.top):not(:last-child):hover::after {
  top: 10vw;
}
nav > ul > li > a {
  margin: 10% 0;
}


#sp_menu_btn,
#sp_menu_btn.on{
  width: 14.7%;
}

/* フッター
///////////////////////////////////////////////////////////////////////////////////////*/
#footer_btn {
  margin: 2.09% 0 0;
}

#footer_foot ul {
  flex-direction: column;
}
#footer_foot ul li {
  margin: 0 0 2%;
}

/* 文字サイズ一括設定 大きすぎるので1段階下げた
///////////////////////////////////////////////////////////////////////////////////////*/
.font12{font-size: 0.625rem;}
.font14{font-size: 0.75rem;}
.font16{font-size: .875rem}
.font18{font-size: 1rem;}
.font20{font-size: 1.125rem;}
.font22{font-size: 1.25rem;}
.font24{font-size: 1.375rem;}
.font26{font-size: 1.5rem;}
.font28{font-size: 1.35rem;}
.font30{font-size: 1.625rem;}
.font32{font-size: 1.75rem;}
.font36{font-size: 2rem;}
.font40{font-size: 2.25rem;}
.font42{font-size: 2.25rem;}
.font46{font-size: 2.25rem;}
.font50{font-size: 2.25rem;}
.font52{font-size: 2.94rem;}
.font60{font-size: 2.5rem;}
.font80{font-size: 2.5rem;}
.font100{font-size: 2.5rem;}
 
}

