@charset "UTF-8";

/*=========================================================================
//
// Base
//
==========================================================================*/


/*=========================================================================
//
// Layout
//
==========================================================================*/
/*-------------------------------------------------------------------------
 header
--------------------------------------------------------------------------*/
.lp-header-pc {
  display: block;
}
.lp-header-sp {
  display: none;
}

.lp-header-pc .lp-header__main {
  width: 100%;
  background-color: #fff;
  position: relative;
  height: 96px;
}

.lp-header-pc .lp-header__main-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 20px;
  width: 100%;
}

.lp-header-pc .lp-header__logo {
	width: 184px;
	position: absolute;
	top: -1px;
	z-index: 9999;

	-webkit-transition: .2s ease-in-out;
	-moz-transition: .2s ease-in-out;
	-o-transition: .2s ease-in-out;
	transition: .2s;
	transform-origin: top left;
	
	text-align: left;
}

.lp-header-pc .lp-header__logo img {
	width: 82%;/* common.js #291と合わせる */
}
#toppage .lp-header-pc .lp-header__logo {
	width: 184px;
}
.lp-header-pc .lp-header__logo img {
	width: 184px;
}

.lp-header-pc .m-gnav {
	width: 100%;
	padding: 0 0 0 21%;
}

.lp-header-pc .m-gnav > ul {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display:        flex;
  -webkit-box-align:   stretch;
  -webkit-align-items: stretch;
  -ms-flex-align:      stretch;
  align-items:         stretch;
  margin-left: auto;
  -webkit-justify-content: flex-start; /* Safari */
  justify-content:         flex-start;
}

.lp-header-pc .m-gnav > ul > li {
  vertical-align: middle;
  text-align: center;
  font-weight: bold;
}

.lp-header-pc .m-gnav > ul > li > a {
  display: block;
  padding: 0 40px;
  -webkit-transition: all .3s;
          transition: all .3s;
  text-decoration: none;
  color: #000;
}

.lp-header-pc .m-gnav > ul > li > a:hover, .lp-header-pc .m-gnav > ul > li > a.is-current {
  background-color: #f5f5f5;
}

.lp-header-pc .m-gnav > ul > li > a > div {
  display: table;
  width: 100%;
}

.lp-header-pc .m-gnav > ul > li > a > div > span {
  display: table-cell;
  height: 96px;
  vertical-align: middle;
}

.lp-header-pc .m-gnavsub {
  display: none;
  position: absolute;
  background-color: #333;
  padding: 0;
  text-align: left;
  font-weight: normal;
  z-index: 901;
}
/* 検証用 
.lp-header-pc .m-gnavsub.m-gnavsub-01 {
  display: block;
}*/
.lp-header-pc .m-gnavsub__inner {
  max-width: 980px;
  margin-left: auto;
  margin-right: auto;
  padding: 0;
}

.lp-header-pc .m-gnavsub__top {
  font-size: 20px;
}

.lp-header-pc .m-gnavsub__cont {
}

  .lp-header-pc .m-gnav__sub {
    margin-top: 0;
  }
  .lp-header-pc .m-gnav__sub > li {
    margin-top: 0;
    border-top: 1px solid #5e5e5e;
  }
  .lp-header-pc .m-gnav__sub > li > a {
    display: flex;
    align-items: center;
    padding: 11px 13px 11px 20px;
    color: #fff;
  }
  .lp-header-pc .m-gnav__sub > li > a > span,
  .lp-header-pc .m-gnav__sub-sub a > span {
    position: relative;
    display: inline-block;
    padding: 0 18px;
  }
  .lp-header-pc .m-gnav__sub > li > a > span:before,
  .lp-header-pc .m-gnav__sub-sub a span:before {
    content: "";
    display: inline-block;
    position: absolute;
    top: 7px;
    left: 0;
    width: 5px;
    height: 5px;
    border-top: 2px solid #c00;
    border-right: 2px solid #c00;
    -webkit-transform: rotate(45deg);
        -ms-transform: rotate(45deg);
            transform: rotate(45deg);
  }

.lp-header-pc .m-gnavsub__img {
  margin: 0 0 20px 0;
}

.lp-header-pc .m-gnavsub__img img {
  width: 100%;
}

.lp-header-pc .m-gnavsub__img:hover a img {
  opacity: .75;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=75)";
      filter: alpha(opacity=75);
}

.lp-header-pc .m-gnavsub__menu > li > a {
  padding-top: 2px;
  line-height: 1.5;
  font-size: 16px;
}

.lp-header-pc .m-gnavsub__menu > li .m-linklist {
  margin-left: 7px;
}

.lp-header-pc .m-gnavsub__childcol {
  overflow: hidden;
}

.lp-header-pc .m-gnavsub__childcol > li {
  float: left;
  width: 50%;
  padding-right: 15px;
  box-sizing: border-box;
}

.lp-header-pc .m-gnavsub__col2, .lp-header-pc .m-gnavsub__col3, .lp-header-pc .m-gnavsub__col4, .lp-header-pc .m-gnavsub__col5 {
  overflow: hidden;
  margin-left: -2.5%;
}

.lp-header-pc .m-gnavsub__col2 > li, .lp-header-pc .m-gnavsub__col3 > li, .lp-header-pc .m-gnavsub__col4 > li, .lp-header-pc .m-gnavsub__col5 > li {
  float: left;
  padding-left: 2.5%;
  box-sizing: border-box;
}

.lp-header-pc .m-gnavsub__col2 > li {
  width: 50%;
}

.lp-header-pc .m-gnavsub__col3 > li {
  width: 33.3%;
}

.lp-header-pc .m-gnavsub__col4 > li {
  width: 25%;
}

.lp-header-pc .m-gnavsub__col5 > li {
  width: 20%;
}

.lp-header-pc .m-gnav__sub > li.parent_menu {
  position: relative;
}
.lp-header-pc .m-gnav__sub > li.parent_menu > a::after {
  content: "+";
  color: #c00;
  font-size: 1.4em;
  line-height: 1;
  margin-left: auto;
}
.lp-header-pc .m-gnav__sub-sub {
  position: absolute;
  top: 0;
  left: 100%;
  min-width: 300px;
  display: inline-flex;
  flex-flow: column wrap;
  background-color: #333;
  display: none;
}
.lp-header-pc .m-gnav__sub-sub li {
  border-top: 1px solid #5e5e5e;
}
.lp-header-pc .m-gnav__sub-sub a {
  color: #fff;
  padding: 11px 20px;
  display: flex;
  align-items: center;
}
.m-gnav__sub .link-blank:after {
  margin-left: auto;
  left: 0;
  top: 0;
}
.lp-header-pc .m-gnav__sub .link-blank:after {
  color: #fff;
}
/* ----- header-fixed ----- */

/* Fixed */
header.lp-header-pc.fixed {
	position: fixed;
	border-top: 6px solid #253f68;
}
.lp-header-pc.fixed .lp-header__above {
	margin-top: -40px;
	opacity: 0;
}

/* transition */
header.lp-header-pc.fixed,
.lp-header-pc.fixed .lp-header__main,
.lp-header-pc.fixed .m-gnav > ul > li > a > div > span {
	transition: height .3s ease-in-out;
	-webkit-transition: height .3s ease-in-out;
	-moz-transition: height .3s ease-in-out;
	-o-transition: height .3s ease-in-out;
	height: 53px;
}
.lp-header-pc.fixed .lp-header__logo img {
	transition: width .3s ease-in-out;
	-webkit-transition: width .3s ease-in-out;
	-moz-transition: width .3s ease-in-out;
	-o-transition: width .3s ease-in-out;
	width:80%;
}

@media (max-width: 900px) {
  .lp-header-pc {
    display: none;
  }
  .lp-header-sp {
    display: block;
		height: 56px;
		position: relative;
		top: 0;
		position: fixed; /* ヘッダー固定 */
  }
  .lp-header-sp .lp-header-inner {
    /*padding: 10px 15px;*/
		padding: 5px 15px;
		height: 56px;
    /*border-top: 5px solid #000;
    border-top: 6px solid #253f68;
		border-bottom: 1px solid #e4e4e4;*/
		border-top: 6px solid #e60019;
    background-color: #fff;
    overflow: hidden;
    position: relative;
    z-index: 901;	
  }
  .lp-header-sp .lp-header__logo {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
  }
  .lp-header-sp .lp-header__logo img {
		width: 125px;
  }
  .lp-header-sp .lp-header__menu {
    position: absolute;
		right: 0;
		top: 0;
		width: 50px;
		height: 50px;
		display: block;
    cursor: pointer;
  }
  .lp-header-sp .lp-header__menu > span {
    display: inline-block;
    -webkit-transition: all .3s;
            transition: all .3s;
    box-sizing: border-box;
    position: absolute;
    left: 18px;
    width: 17px;
    height: 2px;
    background-color: #000;
  }
  .lp-header-sp .lp-header__menu > span:nth-child(1) {
    top: 18px;
  }
  .lp-header-sp .lp-header__menu > span:nth-child(2) {
    top: 23px;
  }
  .lp-header-sp .lp-header__menu > span:nth-child(3) {
    top: 28px;
  }
  .lp-header-sp .lp-header__menu.is-open > span:nth-child(1) {
    -webkit-animation: openmenu1 .6s forwards;
            animation: openmenu1 .6s forwards;
  }
  .lp-header-sp .lp-header__menu.is-open > span:nth-child(2) {
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
  }
  .lp-header-sp .lp-header__menu.is-open > span:nth-child(3) {
    -webkit-animation: openmenu3 .6s forwards;
            animation: openmenu3 .6s forwards;
  }
  .lp-header-sp .lp-header__menu.is-close > span:nth-child(1) {
    -webkit-animation: closemenu1 .6s forwards;
            animation: closemenu1 .6s forwards;
  }
  .lp-header-sp .lp-header__menu.is-close > span:nth-child(2) {
    -webkit-transition: all .3s;
            transition: all .3s;
    opacity: 1;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
  }
  .lp-header-sp .lp-header__menu.is-close > span:nth-child(3) {
    -webkit-animation: closemenu3 .6s forwards;
            animation: closemenu3 .6s forwards;
  }
  @-webkit-keyframes openmenu1 {
    0% {
      -webkit-transform: translateY(0) rotate(0);
              transform: translateY(0) rotate(0);
    }
    50% {
      -webkit-transform: translateY(5px) rotate(0);
              transform: translateY(5px) rotate(0);
    }
    100% {
      -webkit-transform: translateY(5px) rotate(45deg);
              transform: translateY(5px) rotate(45deg);
    }
  }
  @keyframes openmenu1 {
    0% {
      -webkit-transform: translateY(0) rotate(0);
              transform: translateY(0) rotate(0);
    }
    50% {
      -webkit-transform: translateY(5px) rotate(0);
              transform: translateY(5px) rotate(0);
    }
    100% {
      -webkit-transform: translateY(5px) rotate(45deg);
              transform: translateY(5px) rotate(45deg);
    }
  }
  @-webkit-keyframes openmenu3 {
    0% {
      -webkit-transform: translateY(0) rotate(0);
              transform: translateY(0) rotate(0);
    }
    50% {
      -webkit-transform: translateY(-5px) rotate(0);
              transform: translateY(-5px) rotate(0);
    }
    100% {
      -webkit-transform: translateY(-5px) rotate(-45deg);
              transform: translateY(-5px) rotate(-45deg);
    }
  }
  @keyframes openmenu3 {
    0% {
      -webkit-transform: translateY(0) rotate(0);
              transform: translateY(0) rotate(0);
    }
    50% {
      -webkit-transform: translateY(-5px) rotate(0);
              transform: translateY(-5px) rotate(0);
    }
    100% {
      -webkit-transform: translateY(-5px) rotate(-45deg);
              transform: translateY(-5px) rotate(-45deg);
    }
  }
  @-webkit-keyframes closemenu1 {
    0% {
      -webkit-transform: translateY(5px) rotate(45deg);
              transform: translateY(5px) rotate(45deg);
    }
    50% {
      -webkit-transform: translateY(5px) rotate(0);
              transform: translateY(5px) rotate(0);
    }
    100% {
      -webkit-transform: translateY(0) rotate(0);
              transform: translateY(0) rotate(0);
    }
  }
  @keyframes closemenu1 {
    0% {
      -webkit-transform: translateY(5px) rotate(45deg);
              transform: translateY(5px) rotate(45deg);
    }
    50% {
      -webkit-transform: translateY(5px) rotate(0);
              transform: translateY(5px) rotate(0);
    }
    100% {
      -webkit-transform: translateY(0) rotate(0);
              transform: translateY(0) rotate(0);
    }
  }
  @-webkit-keyframes closemenu3 {
    0% {
      -webkit-transform: translateY(-5px) rotate(-45deg);
              transform: translateY(-5px) rotate(-45deg);
    }
    50% {
      -webkit-transform: translateY(-5px) rotate(0);
              transform: translateY(-5px) rotate(0);
    }
    100% {
      -webkit-transform: translateY(0) rotate(0);
              transform: translateY(0) rotate(0);
    }
  }
  @keyframes closemenu3 {
    0% {
      -webkit-transform: translateY(-5px) rotate(-45deg);
              transform: translateY(-5px) rotate(-45deg);
    }
    50% {
      -webkit-transform: translateY(-5px) rotate(0);
              transform: translateY(-5px) rotate(0);
    }
    100% {
      -webkit-transform: translateY(0) rotate(0);
              transform: translateY(0) rotate(0);
    }
  }
  .lp-header-sp .m-gnav {
    display: none;
    position: absolute;
    left: 0;
    width: 100%;
    line-height: 1.5;
    z-index: 901;
  }
  .lp-header-sp .m-gnav > ul {
    border-bottom: 1px solid #ccc;
  }
  .lp-header-sp .m-gnav > ul > li {
    border-top: 1px solid #ccc;
	text-align: left;
  }
  .lp-header-sp .m-gnav > ul > li:first-child {
    border-top: 0;
  }
  .lp-header-sp .m-gnav > ul > li > span {
    display: block;
    padding: 15px 40px 15px 15px;
    background-color: #efefef;
    text-decoration: none;
    font-weight: normal;
    font-size: 15px;
    position: relative;
  }
  .lp-header-sp .m-gnav > ul > li > a {
    display: block;
    padding: 15px 40px 15px 15px;
    background-color: #efefef;
    text-decoration: none;
    font-weight: normal;
    font-size: 15px;
    position: relative;
  }
  .lp-header-sp .m-gnav__cont {
    display: none;
    background-color: #fff;
    font-weight: normal;
    font-size: 15px;
  }
  .lp-header-sp .m-gnav__top {
    padding: 11px 15px;
    border-top: 1px solid #e4e4e4;
  }
  .lp-header-sp .m-gnav__top > a {
    display: block;
    padding-top: 5px;
  }
  .lp-header-sp .m-gnav__sub {
    margin-top: 0;
  }
  .lp-header-sp .m-gnav__sub > li {
    margin-top: 0;
    border-top: 1px solid #e4e4e4;
  }
  .lp-header-sp .m-gnav__sub > li > a,
  .lp-header-sp .m-gnav__sub .m-gnav__sub-sub > li > a {
    display: flex;
    align-items: center;
    padding: 11px 10px 11px 1em;
  }
  .lp-header-sp .m-gnav__sub > li > a > span,
  .lp-header-sp .m-gnav__sub .m-gnav__sub-sub > li > a > span {
    position: relative;
    display: inline-block;
    padding-left: 18px;
  }
  .lp-header-sp .m-gnav__sub > li > a > span:before,
  .lp-header-sp .m-gnav__sub .m-gnav__sub-sub > li > a > span::before {
    content: "";
    display: inline-block;
    position: absolute;
    top: 7px;
    left: 0;
    width: 5px;
    height: 5px;
    border-top: 2px solid #c00;
    border-right: 2px solid #c00;
    -webkit-transform: rotate(45deg);
        -ms-transform: rotate(45deg);
            transform: rotate(45deg);
  }
  .lp-header-sp .m-gnav__sub .m-gnav__sub-sub > li > a {
    padding-left: 2em;
  }
  .lp-header-sp .m-gnav__util {
    border-bottom: 1px solid #404040;
  }
  .lp-header-sp .m-gnav__util > li {
    border-top: 1px solid #404040;
  }
  .lp-header-sp .m-gnav__util > li > span,
  .lp-header-sp .m-gnav__util > li > a {
    background-color: #000;
    color: #fff;
  }
  .m-searchbox-sp {
    padding: 20px 5px 20px 15px;
    background-color: #000;
  }
  .m-searchbox-sp form {
    position: relative;
    padding-right: 45px;
  }
  .m-searchbox-sp__text {
    width: 100%;
    padding: 8px 8px;
    border: 1px solid #fff;
    background-color: #000;
    color: #fff;
  }
  .m-searchbox-sp__btn {
    position: absolute;
    top: 0;
    right: 0;
    width: 40px;
    height: 40px;
    cursor: pointer;
  }
  .m-searchbox-sp__btn > img {
    width: 19px;
    height: 19px;
    margin-top: 2px;
  }
}



/*-------------------------------------------------------------------------
 js module
--------------------------------------------------------------------------*/
/* accordion
--------------------------------------------------------*/
.m-acc {
  margin-top: 20px;
}

.m-acc__ctl {
  position: relative;
  cursor: pointer;
  padding-left: 30px;
}

.m-acc__ctl:before {
  content: "";
  display: inline-block;
  position: absolute;
  top: 2px;
  left: 0;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background-color: #c00;
}

.m-acc__ctl:after {
  content: "";
  display: inline-block;
  position: absolute;
  top: 7px;
  left: 7px;
  width: 5px;
  height: 5px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  -webkit-transform: rotate(135deg);
      -ms-transform: rotate(135deg);
          transform: rotate(135deg);
}

.m-acc__ctl:hover:before {
  background-color: #a00;
}

.m-acc__cont {
  display: none;
  box-sizing: border-box;
}

.m-acc.is-open .m-acc__ctl:after {
  top: 10px;
  left: 7px;
  -webkit-transform: rotate(-45deg);
      -ms-transform: rotate(-45deg);
          transform: rotate(-45deg);
}

.m-acc.is-open .m-acc__cont {
  display: block;
}

/* modal
--------------------------------------------------------*/
.m-modal {
  display: none;
  position: absolute;
  left: 0;
  right: 0;
  width: 90%;
  max-width: 1280px;
  margin: auto;
  padding: 30px 80px 40px;
  background-color: #fff;
  box-sizing: border-box;
  z-index: 1000;
}

.m-modal__close {
  position: absolute;
  top: 30px;
  right: 40px;
  width: 26px;
  height: 26px;
  margin-top: 0;
  cursor: pointer;
}

.m-modal__close:before {
  content: "";
  display: inline-block;
  position: absolute;
  top: 12px;
  left: -2px;
  width: 30px;
  height: 2px;
  background-color: #000;
  -webkit-transform: rotate(45deg);
      -ms-transform: rotate(45deg);
          transform: rotate(45deg);
}

.m-modal__close:after {
  content: "";
  display: inline-block;
  position: absolute;
  top: 12px;
  left: -2px;
  width: 30px;
  height: 2px;
  background-color: #000;
  -webkit-transform: rotate(135deg);
      -ms-transform: rotate(135deg);
          transform: rotate(135deg);
}

.m-modal__ttl {
  margin: 10px 0 25px;
  text-align: center;
  font-weight: normal;
  font-size: 24px;
}

.m-modal-overlay {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, .5);
  z-index: 900;
  cursor: pointer;
}

.is-overlay .m-modal-overlay {
  display: block;
}

.m-modal-iframe {
  width: 100%;
  height: 550px;
}

@media (max-width: 800px) {
  .m-modal {
    padding: 30px 50px;
  }
  .m-modal__close {
    top: 20px;
    right: 20px;
  }
}

@media (max-width: 600px) {
  .m-modal {
    padding: 50px 15px 15px;
  }
  .m-modal__inner {
    height: 400px;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
  }
  .m-modal__close {
    top: 15px;
    right: 15px;
  }
  .m-modal__ttl {
    margin: 0 0 20px;
    font-size: 18px;
  }
  .m-modal-iframe {
    width: 100%;
    height: 400px;
  }
}
