@charset "utf-8";

.load_fadeup {
  transition: all 0.3s linear;
}
.load_fadeup.active {
  -webkit-animation: load_fadeup 0.8s ease-in-out forwards;
          animation: load_fadeup 0.8s ease-in-out forwards;
}
@keyframes load_fadeup {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, 10%, 0);
    transform: translate3d(0, 10%, 0);
  }

  100% {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.js_scroll_animation {
  opacity: 0;
  transition: all 0.5s linear;
}
.js_scroll_animation.isActive {
  -webkit-animation: slideUp 0.8s ease-in-out forwards;
          animation: slideUp 0.8s ease-in-out forwards;
}
@keyframes slideUp {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, 10%, 0);
    transform: translate3d(0, 10%, 0);
  }

  100% {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}




/*--------------------------------------
　header_home
---------------------------------------*/
.header_home {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  min-width: 1000px;
  padding: 1.5rem 2rem 0;
}

.header_home .inner {
	max-width: 1000px;
}

/* SP ------------------------------*/
@media screen and (max-width: 768px) {
  .header_home {
    min-width: 100%;
    padding: 1rem 1rem 0;
  }

  .header_home .inner {
    max-width: 100%;
  }
}





/*--------------------------------------
　MV
---------------------------------------*/
.mv_home {
  background: #ececee;
  width: 100%;
  min-width: 1000px;
  padding: 2rem 0 6rem;
  box-sizing: border-box;
}

.mv_home .mv_inner {
  max-width: 1215px;
  margin: auto;
  box-sizing: border-box;
}

.mv_home .mv_bg {
  background: url("img/mv_home_bg.png") center top no-repeat;
  background-size: 1215px auto;
  width: 100%;
  height: 660px;
  position: relative;
}

.mv_home .mv_logo {
  position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
  width: 450px;
  margin: 5rem auto 0;
}

.mv_home .mv_txt {
  width: 50%;
  margin: -4rem auto 0 10rem;
  font-size: 1.6rem;
  font-weight: bold;
  line-height: 1.8;
}

/* SP ------------------------------*/
@media screen and (max-width: 768px) {
  .mv_home {
    min-width: 100%;
    padding: 3.5rem 0 2.5rem;
    position: relative;
    z-index: 0;
  }
  .mv_home::after {
    content: "";
    position: absolute;
    right: 0.5rem;
    bottom: 0;
    background: url("img/bg_02.png") left top no-repeat;
    background-size: 100% auto;
    width: 35%;
    height: 0;
    margin: 0 0 0 0;
    padding-top: 35%;
    z-index: -1;
  }

  .mv_home .mv_inner {
    max-width: 100%;
  }

  .mv_home .mv_bg {
    background: url("img/mv_home_bg_sp.png") center top no-repeat;
    background-size: 100% auto;
    width: 100%;
    height: 0;
    padding-top: calc(100%*934/750);
    position: relative;
  }

  .mv_home .mv_logo {
    position: absolute;
    top: 0;
    left: 0;
    transform: translate(0,0);
    width: 55%;
    margin: 0 0 0 1.5rem;
  }

  .mv_home .mv_txt {
    width: 100%;
    margin: 0 0 0 0;
    padding: 0 1.5rem;
    box-sizing: border-box;
    font-size: 1.6rem;
    text-align: center;
    line-height: 1.6;
  }
}





/*--------------------------------------
　Main Index
---------------------------------------*/
.contents_top {
  background: #ececee;
	width: 100%;
	min-width: 1000px;
	margin: auto;
	box-sizing: border-box;
  position: relative;
  z-index: 0;
}
.contents_top .wrap {
  overflow: hidden;
}
.sec {
	width: 100%;
	min-width: 1000px;
	margin: auto;
	box-sizing: border-box;
	position: relative;
}
.sec .inner {
	max-width: 1000px;
	margin: auto;
	box-sizing: border-box;
}

/* SP ------------------------------*/
@media screen and (max-width: 768px) {
	.contents_top {
		min-width: 100%;
	}
	.sec {
		min-width: 100%;
	}
	.sec .inner {
		max-width: 100%;
	}
}





/*--------------------------------------
　eng
---------------------------------------*/
.contents_top .eng_wrap {
  text-align: center;
}

.contents_top .eng {
  font-size: 7rem;
}

/* SP ------------------------------*/
@media screen and (max-width: 768px) {
  .contents_top .eng {
    font-size: 4rem;
  }
}





/*--------------------------------------
　Title
---------------------------------------*/
.main_ttl01 {
  margin: 2rem 0 0;
  text-align: center;
}

.main_ttl01 .m_ttl {
  font-size: 4.6rem;
}
.main_ttl01 .m_ttl span {
  font-size: 3rem;
}

.main_ttl01 .m_ttl a {
  display: inline-block;
  padding: 0 6rem;
  position: relative;
}
.main_ttl01 .m_ttl a:after{
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  transform: translate(0,-50%);
	background: url("img/arrow_01.png") left top no-repeat;
  background-size: contain;
  width: 32px;
  height: 28px;
}

/* SP ------------------------------*/
@media screen and (max-width: 768px) {
  .main_ttl01 {
    margin: 1.5rem 0 0;
  }

  .main_ttl01 .m_ttl {
    font-size: 2.5rem;
  }
  .main_ttl01 .m_ttl span {
    font-size: 1.6rem;
  }

  .main_ttl01 .m_ttl a {
    padding: 0 3rem;
  }
  .main_ttl01 .m_ttl a:after{
    background: url("img/arrow_01.png") left top no-repeat;
    background-size: contain;
    width: 23px;
    height: 30px;
  }
}





/*--------------------------------------
　テキスト
---------------------------------------*/
.contents_top p {
	margin: 3rem 0 3rem;
	font-size: 1.6rem;
	line-height: 2;
}

.txt {
	margin: 3rem 0 3rem;
	font-size: 1.6rem;
	text-align: justify;
	line-height: 2;
}

.lead {
  width: 80%;
	margin: 3rem auto 0!important;
	font-size: 1.6rem;
	line-height: 2;
  box-sizing: border-box;
  text-align: center;
}

/* SP ------------------------------*/
@media screen and (max-width: 768px) {
	.contents_top p {
		margin: 2rem 0 2rem;
		line-height: 1.8;
	}

	.txt {
		margin: 2rem 0 2rem;
		line-height: 1.8;
	}

	.lead {
    width: 95%;
		margin: 2rem auto 0 !important;
		line-height: 1.8;
	}
}





/*--------------------------------------
　guide
---------------------------------------*/
.guide .inner {
  position: relative;
  z-index: 0;
}
.guide .inner::before,
.guide .inner::after {
  content: "";
  position: absolute;
  z-index: -1;
}
.guide .inner::before {
  right: 100%;
  top: 100%;
  background: url("img/bg_01.png") left top no-repeat;
  background-size: 100% auto;
  width: 508px;
  height: 508px;
  margin: -254px -254px 0 0;
}
.guide .inner::after {
  left: 100%;
  bottom: 100%;
  background: url("img/bg_02.png") left top no-repeat;
  background-size: 100% auto;
  width: 308px;
  height: 308px;
  margin: 0 0 -250px -154px;
}

.guide .guide_block {
  background: #fff;
  margin: -3rem 0 0;
  padding: 7rem 5rem 3rem;
  box-sizing: border-box;
}

.guide .guide_link {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
}
.guide .guide_link li {
  width: calc(50% - 1.5rem);
  margin: 0 0 3rem;
  box-sizing: border-box;
}
.guide .guide_link li:nth-child(2) {
  margin: -1.2rem 0 3rem;
}
.guide .guide_link li:nth-child(4) {
  margin: 0.5rem 0 3rem;
}
.guide .guide_link li a {
  display: block;
}

.guide .guide_block .new_article {
  
}
.guide .guide_block .new_article h2 {
  font-size: 3rem;
  margin-bottom: 2rem;
  border-bottom: 2px solid #000;
  padding-bottom: 0.5rem;
}
.guide .guide_block .new_article ul li:before {
  content: "";
  display: block;
	position: absolute;
  top: 5px;
  left: 0;
	background: #20bbd0;
  width: 10px;
  height: 10px;
	box-sizing: border-box;
  border-radius: 50%;
}
.guide .guide_block .new_article ul li{
  margin-bottom:1.5rem;
  position: relative;
  display: block;
}
.guide .guide_block .new_article ul li a {
  text-decoration: underline;
  padding-left:1.5rem;
  display: inline-block;
  position:relative;
  text-decoration: none;
}
.guide .guide_block .new_article ul li a:before {
	content: "";
	position: absolute;
	top: 70%;
	right: -2rem;
  transform: translate(0,-50%);
  background: url("img/arrow_03.png") left top no-repeat;
  background-size: 100% auto;
	width: 13px;
	height: 13px;
}


/* SP ------------------------------*/
@media screen and (max-width: 768px) {
  .guide {
    padding: 0 1.5rem;
  }

  .guide .inner::before {
    left: -15px;
    right: inherit;
    top: 100%;
    background: url("img/bg_01.png") left top no-repeat;
    background-size: 100% auto;
    width: 45%;
    height: 0;
    margin: -20% 0 0 0;
    padding-top: 45%;
  }
  .guide .inner::after {
    display: none;
  }

  .guide .guide_block {
    margin: -1.5rem 0 0;
    padding: 3rem 2rem 2.5rem;
  }

  .guide .guide_link {
    display: none;
    margin: 1rem 0 0;
  }
  .guide .guide_link li {
    width: 100%;
    margin: 0 0 1.5rem;
  }
  .guide .guide_link li:nth-child(2) {
    margin: 0 0 1.5rem;
  }
  .guide .guide_link li:nth-child(4) {
    margin: 0 0 1.5rem;
  }
  
  
  .guide .acc_btn {
    padding: 0 3rem;
    box-sizing: border-box;
    font-size: 1.6rem;
    font-weight: bold;
    text-align: center;
    line-height: 1.4;
    cursor: pointer;
    position: relative;
  }
  .guide .acc_btn:before,
  .guide .acc_btn:after {
    content: "";
    position: absolute;
    top: 50%;
    right: 0;
    background: #020202;
    width: 20px;
    height: 1px;
    transition: all 0.4s;
  }
  .guide .acc_btn:after {
    transform: rotate(90deg);
  }
  .guide .acc_btn.open:before {
    display: none;
  }
  .guide .acc_btn.open::after {
    transform: rotate(180deg);
  }
  .guide .guide_block .new_article {
    margin-top:4rem;
  }
  .guide .guide_block .new_article h2 {
    font-size:2.5rem;
  }
}





/*--------------------------------------
　sec01
---------------------------------------*/
.sec01 {
  padding: 12rem 0 0;
  position: relative;
  z-index: 0;
}
.sec01::before,
.sec01::after {
  content: "";
  position: absolute;
  z-index: -1;
}
.sec01::before {
  top: 35%;
  left: 0;
  background: url("img/bg_03.png") left top no-repeat;
  background-size: 100% auto;
  width: 25%;
  height: 0;
  padding-top: calc(25%*300/350);
}
.sec01::after {
  top: 0;
  right: 0;
  background: url("img/bg_04.png") left top no-repeat;
  background-size: 100% auto;
  width: 25%;
  height: 0;
  padding-top: calc(25%*330/270);
}

.sec01 p {
  margin: 0 0 0;
}


.sec01_block {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  flex-wrap: wrap;
  margin: 5rem 0 0;
}

.sec01_block .item {
  background: #fff;
  width: 290px;
  margin: 0 6.5rem 0 0;
  box-sizing: border-box;
  border: 2px solid #020202;
  box-shadow: 10px 10px 0 0 #20bbc6;
}
.sec01_block .item:nth-child(2),
.sec01_block .item:nth-child(4) {
  margin: 4rem 6.5rem 0 0;
}
.sec01_block .item:nth-child(3),
.sec01_block .item:nth-child(5) {
  margin: 8rem 0 0 0;
}

.sec01_block .ttl01_wrap {
  display: flex;
  justify-content: space-between;
  height: 65px;
  border-bottom: 2px solid #020202;
}

.sec01_block .icon {
  display: flex;
  align-items: center;
  background: #020202;
  width: 65px;
  box-sizing: border-box;
}
.sec01_block .icon img {
  width: 48px;
  margin: auto;
}

.sec01_block .ttl01 {
  display: flex;
  align-items: center;
  width: calc(100% - 65px);
  padding: 0 2rem;
  box-sizing: border-box;
  font-size: 3.5rem;
}
.sec01_block .ttl01 a {
  width: 100%;
	position: relative;
}
.sec01_block .ttl01 a::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  transform: translate(0,-50%);
	background: url("img/arrow_01.png") left top no-repeat;
  background-size: contain;
  width: 26px;
  height: 22px;
}

.sec01_block .box {
  padding: 2rem 3rem 1rem;
  box-sizing: border-box;
}

.sec01_block .box ul {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}
.sec01_block .box ul li {
  width: calc(50% - 1rem);
  margin: 0 0 1rem;
  padding: 0 0 0 1.5rem;
  box-sizing: border-box;
  font-size: 1.6rem;
  line-height: 1.4;
  position: relative;
}
.sec01_block .box ul li:before {
  content: "";
  display: block;
	position: absolute;
  top: 8px;
  left: 0;
	background: #20bbd0;
  width: 10px;
  height: 10px;
	box-sizing: border-box;
  border-radius: 50%;
}
.sec01_block .box ul li a {
  font-weight: bold;
  text-decoration: underline;
}

/* SP ------------------------------*/
@media screen and (max-width: 768px) {
  .sec01 {
    padding: 6rem 1.5rem 0;
  }
  .sec01::before {
    top: 30%;
    left: 0;
    background: url("img/bg_03.png") left top no-repeat;
    background-size: contain;
    width: 30%;
    height: 0;
    padding-top: calc(30%*300/350);
  }
  .sec01::after {
    top: 20px;
    right: 0;
    background: url("img/bg_04.png") right top no-repeat;
    background-size: contain;
    width: 25%;
    height: 0;
    padding-top: calc(25%*330/270);
  }


  .sec01_block {
    display: block;
    margin: 3rem 0 0;
    padding: 0 1.5rem;
    box-sizing: border-box;
  }

  .sec01_block .item {
    width: 100%;
    margin: 0 0 2rem 0;
    border: 1px solid #020202;
    box-shadow: 5px 5px 0 0 #20bbc6;
  }
  .sec01_block .item:nth-child(2),
  .sec01_block .item:nth-child(4) {
    margin: 0 0 2rem 0;
  }
  .sec01_block .item:nth-child(3),
  .sec01_block .item:nth-child(5) {
    margin: 0 0 2rem 0;
  }

  .sec01_block .ttl01_wrap {
    height: 50px;
    border-bottom: 1px solid #020202;
  }

  .sec01_block .icon {
    width: 50px;
  }
  .sec01_block .icon img {
    width: 80%;
  }

  .sec01_block .ttl01 {
    width: calc(100% - 50px);
    padding: 0 1.5rem;
    font-size: 2.5rem;
  }
  .sec01_block .ttl01 a::after {
    background: url("img/arrow_01.png") left top no-repeat;
    background-size: contain;
    width: 16px;
    height: 14px;
  }

  .sec01_block .box {
    padding: 1rem 2rem 1rem;
  }

  .sec01_block .box ul li {
    width: calc(50% - 1rem);
    margin: 0 0 0.5rem;
    padding: 0 0 0 1.5rem;
    font-size: 1.4rem;
  }
  .sec01_block .box ul li:before {
    top: 6px;
    width: 8px;
    height: 8px;
  }
}





/*--------------------------------------
　sec02
---------------------------------------*/
.sec02 {
  padding: 18rem 0 22rem;
}

.sec02 p {
  margin: 0 0 0;
}


.sec02_block {
  background: #fff;
  box-sizing: border-box;
  position: relative;
}

.sec02_block .deco01,
.sec02_block .deco02 {
  position: relative;
}
.sec02_block .deco01::before,
.sec02_block .deco01::after,
.sec02_block .deco02::before,
.sec02_block .deco02::after {
	content: "";
  position: absolute;
	width: 112px;
	height: 112px;
	box-sizing: border-box;
}
.sec02_block .deco01::before {
  top: -10px;
	left: -10px;
	border-top: 10px solid #e64f35;
	border-left: 10px solid #e64f35;
}
.sec02_block .deco01::after {
  top: -10px;
	right: -10px;
	border-top: 10px solid #e64f35;
	border-right: 10px solid #e64f35;
}
.sec02_block .deco02::before {
  bottom: -10px;
	left: -10px;
	border-bottom: 10px solid #e64f35;
	border-left: 10px solid #e64f35;
}
.sec02_block .deco02::after {
  bottom: -10px;
	right: -10px;
	border-bottom: 10px solid #e64f35;
	border-right: 10px solid #e64f35;
}

.sec02_block .block_inner {
  padding: 0 7rem 8rem;
  box-sizing: border-box;
}

.sec02_block .main_ttl_wrap {
  position: relative;
  top: -45px;
}

.sec02_block .lead {
  margin: -2.5rem auto 0!important;
}

.sec02_block .item_wrap {
  margin: 6rem 0 0;
}

.sec02_block .item {
  margin: 0 0 8rem;
}
.sec02_block .item:last-child {
  margin: 0 0 0;
}

.sec02_block .item .g_ttl {
  font-size: 3rem;
  font-weight: bold;
  text-align: center;
  line-height: 1.4;
}

.sec02_block .item .img_box {
  margin: 1.5rem 0 0;
}

.sec02_block .item .cc {
  font-size: 2.6rem;
}

.sec02_block .item .txt {
  margin: 2rem 0 0;
}

.sec02_block .item01 {
  display: flex;
  justify-content: space-between;
}
.sec02_block .item01 .l_box {
  width: 430px;
  box-sizing: border-box;
}
.sec02_block .item01 .r_box {
  width: calc(100% - 430px);
  margin: 5rem 0 0;
  box-sizing: border-box;
}
.sec02_block .item01 .l_box.ord01 {
  order: 1;
}
.sec02_block .item01 .l_box.ord02 {
  order: 2;
}
.sec02_block .item01 .r_box.ord01 {
  order: 1;
  padding: 0 4rem 0 0;
}
.sec02_block .item01 .r_box.ord02 {
  order: 2;
  padding: 0 0 0 4rem;
}

.sec02_block .item02 .cc {
  margin: 3rem 0 0;
  text-align: center;
}
.sec02_block .item02 .txt {
  width: 70%;
  margin: 2rem auto 0;
}

/* SP ------------------------------*/
@media screen and (max-width: 768px) {
  .sec02 {
    padding: 8rem 1.5rem 10rem;
  }


  .sec02_block .deco01::before,
  .sec02_block .deco01::after,
  .sec02_block .deco02::before,
  .sec02_block .deco02::after {
    width: 40px;
    height: 40px;
  }
  .sec02_block .deco01::before {
    top: -4px;
    left: -4px;
    border-top: 4px solid #e64f35;
    border-left: 4px solid #e64f35;
  }
  .sec02_block .deco01::after {
    top: -4px;
    right: -4px;
    border-top: 4px solid #e64f35;
    border-right: 4px solid #e64f35;
  }
  .sec02_block .deco02::before {
    bottom: -4px;
    left: -4px;
    border-bottom: 4px solid #e64f35;
    border-left: 4px solid #e64f35;
  }
  .sec02_block .deco02::after {
    bottom: -4px;
    right: -4px;
    border-bottom: 4px solid #e64f35;
    border-right: 4px solid #e64f35;
  }

  .sec02_block .block_inner {
    padding: 0 0 3rem;
  }

  .sec02_block .main_ttl_wrap {
    top: -25px;
    padding: 0 1rem;
  }

  .sec02_block .lead {
    margin: -0.5rem auto 0!important;
    padding: 0 1.5rem;
  }

  .sec02_block .item_wrap {
    margin: 3rem 0 0;
    padding: 0 2rem;
  }

  .sec02_block .item {
    margin: 0 0 4rem;
  }

  .sec02_block .item .g_ttl {
    font-size: 2rem;
  }

  .sec02_block .item .img_box {
    margin: 1rem 0 0;
  }

  .sec02_block .item .cc {
    font-size: 1.6rem;
  }

  .sec02_block .item .txt {
    margin: 1.5rem 0 0;
  }

  .sec02_block .item01 {
    display: block;
  }
  .sec02_block .item01 .l_box {
    width: 100%;
  }
  .sec02_block .item01 .r_box {
    width: 100%;
    margin: 2rem 0 0;
  }
  .sec02_block .item01 .r_box.ord01 {
    padding: 0 0 0 0;
  }
  .sec02_block .item01 .r_box.ord02 {
    padding: 0 0 0 0;
  }

  .sec02_block .item02 .cc {
    margin: 2rem 0 0;
    text-align: left;
  }
  .sec02_block .item02 .txt {
    width: 100%;
    margin: 1.5rem auto 0;
  }
}





/*--------------------------------------
　sec03
---------------------------------------*/
.sec03 {
  background: #e0e0e5;
  padding: 0 0 10rem;
}

.sec03 .inner {
  max-width: 1100px;
  margin: auto;
}

.sec03 p {
  margin: 0 0 0;
}

.sec03 .main_ttl_wrap {
  position: relative;
  top: -80px;
}

.sec03 .eng_bg {
  color: rgba(255,255,255,0.5);
  font-size: 13rem;
  font-weight: bold;
  text-align: center;
  letter-spacing: 0.05em;
  position: relative;
}

.sec03 .main_ttl01 {
  position: absolute;
  top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
  width: 100%;
  box-sizing: border-box;
}

.sec03 .lead {
  margin: -3rem auto 0!important;
}


.sec03_block {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  margin: 3rem 0 0;
}

.sec03_block .item {
  width: 25%;
  max-width: 240px;
  box-sizing: border-box;
  flex: 1;
  text-align: center;
}
.sec03_block .item + .item {
 margin-left: 5rem;
}
.sec03_block .item:nth-child(even) {
 margin-top: 6rem;
}

.sec03_block .item a {
  display: block;
}

.sec03_block .ttl01 {
  display: inline-block;
  margin: 2rem 0 0;
  padding: 0 3rem;
  font-size: 1.8rem;
  position: relative;
}
.sec03_block .ttl01:after {
	content: "";
	position: absolute;
	top: 50%;
	right: 0;
  transform: translate(0,-50%);
  background: url("img/arrow_03.png") left top no-repeat;
  background-size: 100% auto;
	width: 20px;
	height: 16px;
}

/* SP ------------------------------*/
@media screen and (max-width: 768px) {
  .sec03 {
    padding: 0 0 6rem;
  }

  .sec03 .inner {
    max-width: 100%;
  }

  .sec03 .main_ttl_wrap {
    top: -40px;
    padding: 0 1.5rem;
  }

  .sec03 .eng_bg {
    font-size: 6rem;
  }

  .sec03 .lead {
    margin: -2rem auto 0!important;
    padding: 0 1.5rem;
  }


  .sec03_block {
    display: block;
    margin: 2rem 0 0;
    padding: 0 0 0 1.5rem;
  }

  .sec03_block .item {
    width: 25%;
    max-width: 220px;
    margin-right: 1.5rem;
  }
  .sec03_block .item + .item {
   margin-left: 0;
  }
  .sec03_block .item:nth-child(even) {
   margin-top: 0;
  }
  .sec03_block .item:last-child {
    margin-right: 0; 
  }

  .sec03_block .ttl01 {
    margin: 1rem 0 0;
    padding: 0 2rem;
    font-size: 1.6rem;
  }
  .sec03_block .ttl01:after {
    background: url("img/arrow_03.png") left top no-repeat;
    background-size: 100% auto;
    width: 16px;
    height: 13px;
  }
  

  .slider_01 .slick-list {
    overflow: visible;
  }
  .slider_01 .slick-disabled {
    display: none !important;
  }
}





/*--------------------------------------
　sec04
---------------------------------------*/
.sec04 {
  padding: 15rem 0 22rem;
}

.sec04 p {
  margin: 0 0 0;
}

.sec04_block {
  background: #e64f35 url("img/sec04_bg.png") center center no-repeat;
  background-size: 930px auto;
  padding: 6rem 12rem 7rem;
  box-sizing: border-box;
  border: 2px solid #020202;
  box-shadow: 20px 20px 0px 0px #ffafa1;
}

.sec04_block .ttl {
  text-align: center;
  font-size: 3rem;
}
.sec04_block .ttl span {
  font-size: 5rem;
}
.sec04_block .ttl a {
  color: #fff;
  position: relative;
}
.sec04_block .ttl a::after {
  content: "";
  display: inline-block;
  background: url("img/icon_link_01.png") left top no-repeat;
  background-size: 100% auto;
  width: 32px;
  height: 32px;
  margin: 0 0 0 2rem;
}

.sec04_block .txt {
  margin: 3rem 0 0;
}

.sec04_block .btn-web a {
  background: #fff;
  margin: 4rem auto 0;
  padding: 2.5rem 6rem;
  color: #e64f35;
  border: none;
  box-shadow: 6px 6px 0px 0px #9d301e;
  position: relative;
}
.sec04_block .btn-web a:after {
	content: "";
	position: absolute;
	top: 50%;
	right: 25px;
  transform: translate(0,-50%);
  background: url("img/icon_link_02.png") left top no-repeat;
  background-size: 100% auto;
	width: 20px;
	height: 20px;
}

/* SP ------------------------------*/
@media screen and (max-width: 768px) {
  .sec04 {
    padding: 6rem 1.5rem 12rem;
  }

  .sec04_block {
    background: #e64f35 url("img/sec04_bg.png") center top no-repeat;
    background-size: 100% auto;
    padding: 3rem 2rem 4rem;
    border: 1px solid #020202;
    box-shadow: 10px 10px 0px 0px #ffafa1;
  }

  .sec04_block .ttl {
    font-size: 1.6rem;
  }
  .sec04_block .ttl span {
    font-size: 2.6rem;
  }
  .sec04_block .ttl a::after {
    background: url("img/icon_link_01.png") left top no-repeat;
    background-size: 100% auto;
    width: 18px;
    height: 18px;
    margin: 0 0 0 1rem;
  }

  .sec04_block .txt {
    margin: 2rem 0 0;
  }

  .sec04_block .btn-web a {
    max-width: 85%;
    margin: 2rem auto 0;
    padding: 1.8rem 4rem;
    box-shadow: 4px 4px 0px 0px #9d301e;
  }
  .sec04_block .btn-web a:after {
    right: 15px;
    background: url("img/icon_link_02.png") left top no-repeat;
    background-size: 100% auto;
    width: 12px;
    height: 12px;
  }
  
  .sec04_block .btn-tel a {
    max-width: 85%;
    margin: 1.5rem auto 0;
  }
}






/*--------------------------------------
　sec05
---------------------------------------*/
#anc03 {
  margin: -8rem 0 0;
  padding: 8rem 0 0;
}

.sec05 {
  background: #20bbc6;
  padding: 0 0 10rem;
}

.sec05 p {
  margin: 0 0 0;
}

.sec05 .upper .inner {
  position: relative;
}
.sec05 .upper .inner:before,
.sec05 .upper .inner:after {
  content: "";
  position: absolute;
}
.sec05 .upper .inner:before {
  top: 0;
  right: 100%;
  transform: translate(40%,0);
  background: url("img/sec05_01.png") left top no-repeat;
  background-size: 100% auto;
  width: 364px;
  height: 152px;
  margin: -2rem 0 0;
}
.sec05 .upper .inner:after {
  top: 0;
  left: 100%;
  transform: translate(-40%,0);
  background: url("img/sec05_02.png") left top no-repeat;
  background-size: 100% auto;
  width: 302px;
  height: 500px;
  margin: -8rem 0 0;
  z-index: 1;
}

.sec05 .main_ttl_wrap {
  max-width: 70%;
  margin: auto;
  position: relative;
  top: -40px;
}

.sec05 .main_ttl01 .m_ttl span {
  background: #020202;
  padding: 0 2rem;
}


.sec05_block {
  background: #fff;
  margin: 3rem 0 0;
  padding: 5rem 0 2rem;
  position: relative!important;
}
.sec05_block::before,
.sec05_block::after {
  content: "";
  position: absolute;
  background: url("img/deco_01.png") left top no-repeat;
  background-size: 100% auto;
  width: 364px;
  height: 15px;
}
.sec05_block:before {
  top: -15px;
  left: 0;
}
.sec05_block:after {
  bottom: -15px;
  right: 0;
  transform: rotate(180deg);
}

.sec05_block .scroll_txt ul {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100vw;
  height: auto;
  margin: 0 auto 5rem;
}
.sec05_block .scroll_txt ul li {
  margin: 0 3rem;
}
.sec05_block .scroll_txt img {
  width: auto;
  height: auto;
}

/* SP ------------------_------------*/
@media screen and (max-width: 768px) {
  #anc03 {
    margin: -5rem 0 0;
    padding: 5rem 0 0;
  }

  .sec05 {
    padding: 0 0 6rem;
  }
  
  .sec05 .upper .inner {
    padding: 4rem 0 0;
  }
  .sec05 .upper .inner:before {
    right: inherit;
    left: 0;
    transform: translate(0,0);
    background: url("img/sec05_01.png") left top no-repeat;
    background-size: contain;
    width: 50%;
    height: 0;
    padding-top: calc(50%*152/364);
    margin: -5rem 0 0;
  }
  .sec05 .upper .inner:after {
    top: 100%;
    left: 0;
    transform: translate(0,0);
    background: url("img/sec05_02_sp.png") left top no-repeat;
    background-size: 100% auto;
    width: 100%;
    height: 0;
    margin: -5rem 0 0;
    padding-top: calc(100%*300/750);
  }

  .sec05 .main_ttl_wrap {
    max-width: 100%;
    top: 0;
  }

  .sec05 .main_ttl01 .m_ttl span {
    padding: 0 0.5rem;
  }


  .sec05_block {
    margin: 3rem 0 0;
    padding: 3rem 0 1rem;
  }
  .sec05_block::before,
  .sec05_block::after {
    background: url("img/deco_01.png") left top no-repeat;
    background-size: 100% auto;
    width: 30%;
    height: 0;
    padding-top: calc(30%*15/364);
  }
  .sec05_block:before {
    top: -4px;
  }
  .sec05_block:after {
    bottom: -4px;
  }

  .sec05_block .scroll_txt ul {
    margin: 0 auto 3rem;
  }
  .sec05_block .scroll_txt ul li {
    margin: 0 1.5rem;
  }
}






/*--------------------------------------
　sec06
---------------------------------------*/
.sec06 {
  background: #e0e0e5 url("img/bg_dot_01.png") center center repeat;
  background-size: 20px auto;
  padding: 4rem 0 12rem;
  position: relative;
  z-index: 0;
}
.sec06::after {
  content: "";
  position: absolute;
  top: 0;
  background: #ececee;
  width: 100%;
  height: 290px;
  z-index: -1;
}

.sec06 p {
  margin: 0 0 0;
}

.sec06 .sec06_img {
  width: 230px;
}

.sec06 .main_ttl_wrap {
  position: relative;
  top: -120px;
}

.sec06 .lead {
  margin: -9rem auto 0!important;
}


.sec06_block {
  margin: 5rem 0 0;
}

.sec06_block .item {
  margin: 0 2rem 1rem;
  text-align: center;
}

.sec06_block .item a {
  display: block;
  background: #fff;
  padding: 4rem 4rem 4rem;
  box-sizing: border-box;
  border-radius: 10px;
  box-shadow: 10px 10px 0 0 #20bbc6;
}

.sec06_block .img_box {
  width: 162px;
  margin: auto;
}

.sec06_block .ttl01 {
  display: inline-block;
  margin: 2rem 0 0;
  padding: 0 3rem 0 0;
  font-size: 2rem;
  font-weight: bold;
  line-height: 1.4;
  position: relative;
}
.sec06_block .ttl01:after {
	content: "";
	position: absolute;
	top: 50%;
	right: 0;
  transform: translate(0,-50%);
  background: url("img/arrow_03.png") left top no-repeat;
  background-size: 100% auto;
	width: 20px;
	height: 16px;
}

/* SP ------------------------------*/
@media screen and (max-width: 768px) {
  .sec06 {
    background: #e0e0e5 url("img/bg_dot_01.png") center center repeat;
    background-size: 15px auto;
    padding: 4rem 0 6rem;
  }
  .sec06::after {
    height: 150px;
  }

  .sec06 .sec06_img {
    width: 30%;
  }

  .sec06 .main_ttl_wrap {
    top: -90px;
    padding: 0 1.5rem;
  }

  .sec06 .lead {
    margin: -7rem auto 0!important;
    padding: 0 1.5rem;
  }


  .sec06_block {
    margin: 3rem 0 0;
    padding: 0 0 0 1.5rem;
  }

  .sec06_block .item {
    max-width: 220px;
    margin: 0 0 0;
    margin-right: 2rem;
  }
  .sec06_block .item:last-child {
    margin-right: 0;
  }

  .sec06_block .item a {
    padding: 2rem 2rem 2rem;
    border-radius: 5px;
    box-shadow: 5px 5px 0 0 #20bbc6;
  }

  .sec06_block .img_box {
    width: 50%;
  }

  .sec06_block .ttl01 {
    margin: 1rem 0 0;
    padding: 0 2rem 0 0;
    font-size: 1.6rem;
  }
  .sec06_block .ttl01:after {
    background: url("img/arrow_03.png") left top no-repeat;
    background-size: 100% auto;
    width: 16px;
    height: 13px;
  }
}






/*--------------------------------------
　sec07
---------------------------------------*/
.sec07 {
  padding: 15rem 0 0;
  position: relative;
  z-index: 0;
}
.sec07::before,
.sec07::after {
  content: "";
  position: absolute;
  z-index: -1;
}
.sec07::before {
  top: 25%;
  left: 0;
  background: url("img/bg_03.png") left top no-repeat;
  background-size: 100% auto;
  width: 25%;
  height: 0;
  padding-top: calc(25%*300/350);
}
.sec07::after {
  top: 70px;
  right: 0;
  background: url("img/bg_05.png") left top no-repeat;
  background-size: 100% auto;
  width: 14%;
  height: 0;
  padding-top: calc(14%*190/140);
}

.sec07 p {
  margin: 0 0 0;
}


.sec07 .belong {
  line-height: 1.7;
}
.sec07 .belong span {
  background: #fff;
  padding: 0 1rem;
  font-size: 1.6rem;
  font-weight: bold;
}

.sec07 .name {
  display: inline-block;
  background: #020202;
  margin: 0.5rem 0 0;
  padding: 0.8rem 4rem 0.8rem 1.5rem;
  color: #fff;
  font-size: 1.6rem;
  position: relative;
}
.sec07 .name span {
  font-size: 2.2rem;
  font-weight: bold;
}
.sec07 .name:after {
	content: "";
	position: absolute;
	top: 50%;
	right: 15px;
  transform: translate(0,-50%);
  background: url("img/arrow_04.png") left top no-repeat;
  background-size: 100% auto;
	width: 20px;
	height: 16px;
}


.sec07 .parts01 {
  padding: 0 0 8rem;
  position: relative;
  z-index: 0;
}
.sec07 .parts01::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  background: #e64f35;
  width: 100%;
  height: 55%;
  z-index: -1;
}

.sec07 .parts01 .inner {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  margin: 5rem auto 0;
}

.sec07 .parts01 .item {
  width: 50%;
  max-width: 340px;
  box-sizing: border-box;
  flex: 1;
  position: relative;
}
.sec07 .parts01 .item + .item {
  margin-left: 8rem;
}

.sec07 .parts01 .img_box img {
  border: 2px solid #020202;
  box-shadow: 10px 10px 0 0 #20bbc6;
}

.sec07 .parts01 .box {
  position: absolute;
  bottom: -15px;
  left: -30px;
}


.sec07 .parts02 {
  background: #20bbc6;
  padding: 6rem 0 6rem;
  margin: 5rem auto 0;
}

.sec07 .parts02 .item {
  background: #e0e0e5;
  margin: 0 2rem 1rem;
  padding: 1.5rem 1.5rem 2rem;
  box-sizing: border-box;
  border: 2px solid #020202;
  box-shadow: 10px 10px 0 0 #9edade;
}
.sec07 .parts02 .item a {
  display: block;
}

.sec07 .parts02 .box {
  margin: -3rem 0 0;
}

/* SP ------------------------------*/
@media screen and (max-width: 768px) {
  .sec07 {
    padding: 6rem 0 0;
  }
  .sec07::before {
    top: 15%;
    background: url("img/bg_03.png") left top no-repeat;
    background-size: 100% auto;
    width: 30%;
    height: 0;
    padding-top: calc(30%*300/350);
  }
  .sec07::after {
    top: 40px;
    background: url("img/bg_05.png") left top no-repeat;
    background-size: 100% auto;
    width: 15%;
    height: 0;
    padding-top: calc(15%*190/140);
  }

  
  .sec07 .belong {
    line-height: 1.5;
  }
  .sec07 .belong span {
    padding: 0 0.5rem;
    font-size: 1.3rem;
  }

  .sec07 .name {
    margin: 0.5rem 0 0;
    padding: 0.5rem 3rem 0.5rem 1rem;
    font-size: 1.3rem;
  }
  .sec07 .name span {
    font-size: 1.8rem;
  }
  .sec07 .name:after {
    right: 10px;
    background: url("img/arrow_04.png") left top no-repeat;
    background-size: 100% auto;
    width: 16px;
    height: 13px;
  }


  .sec07 .parts01 {
    padding: 0 1.5rem 6rem;
  }
  .sec07 .parts01::after {
    height: 80%;
  }

  .sec07 .parts01 .inner {
    display: block;
    margin: 3rem auto 0;
  }

  .sec07 .parts01 .item {
    width: 100%;
    max-width: 100%;
  }
  .sec07 .parts01 .item + .item {
    margin-left: 0;
    margin-top: 4rem;
  }

  .sec07 .parts01 .img_box {
    width: 80%;
    margin: auto;
  }
  .sec07 .parts01 .img_box img {
    border: 1px solid #020202;
    box-shadow: 5px 5px 0 0 #20bbc6;
  }

  .sec07 .parts01 .box {
    bottom: -10px;
    left: 0;
  }


  .sec07 .parts02 {
    padding: 4rem 0 5rem 1.5rem;
  }

  .sec07 .parts02 .item {
    max-width: 240px;
    margin: 0 0 0;
    margin-right: 2rem;
    padding: 1rem 1rem 2rem;
    border: 1px solid #020202;
    box-shadow: 5px 5px 0 0 #9edade;
  }

  .sec07 .parts02 .box {
    margin: -3rem 0 0;
  }
}






/*--------------------------------------
　sec08
---------------------------------------*/
.sec08 {
  padding: 12rem 0 12rem;
}

.sec08 p {
  margin: 0 0 0;
}


.sec08 .upper {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.sec08 .upper .l_box {
  width: 440px;
  box-sizing: border-box;
}

.sec08 .upper .r_box {
  width: calc(100% - 440px);
  padding: 0 0 0 7rem;
  box-sizing: border-box;
}

.sec08 .eng_wrap {
  text-align: left;
}

.sec08 .main_ttl01 {
  text-align: left;
}
.sec08 .main_ttl01 .m_ttl a {
  padding: 0 6rem 0 0;
}


.sec08_block {
  background: #49bdcd url("img/bg_dot_01.png") center center repeat;
  background-size: 20px auto;
  max-width: 840px;
  margin: -10rem auto 0;
  padding: 10rem 4rem 6rem;
  box-sizing: border-box;
  box-shadow: 20px 20px 0 0 #e0e0e5;
}

.sec08_block ul {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  margin: 4rem 0 0;
}
.sec08_block ul li {
  width: calc(33.33% - 1rem);
  box-sizing: border-box;
}

.sec08_block .btn-internal a {
  background: #fff;
  max-width: 100%;
  margin: 0 0 0;
  padding: 1.8rem 3rem;
  color: #020202;
  font-size: 1.6rem;
  border: 2px solid #020202;
  box-shadow: none;
}
.sec08_block .btn-internal a:after {
	right: 15px;
  background: url("img/arrow_03.png") left top no-repeat;
  background-size: 100% auto;
	width: 20px;
	height: 16px;
}

/* SP ------------------------------*/
@media screen and (max-width: 768px) {
  .sec08 {
    padding: 6rem 1.5rem 6rem;
  }


  .sec08 .upper {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
  }

  .sec08 .upper .l_box {
    width: 100%;
    margin: 2rem 0 0;
    order: 2;
  }

  .sec08 .upper .img_box {
    width: 80%;
  }

  .sec08 .upper .r_box {
    width: 100%;
    padding: 0 0 0 0;
    order: 1;
  }

  .sec08 .eng_wrap {
    text-align: center;
  }

  .sec08 .main_ttl01 {
    text-align: center;
  }
  .sec08 .main_ttl01 .m_ttl a {
    padding: 0 3rem 0 3rem;
  }


  .sec08_block {
    background: #49bdcd url("img/bg_dot_01.png") center center repeat;
    background-size: 20px auto;
    max-width: calc(100% - 2rem);
    margin: -8rem 0 0 auto;
    padding: 7rem 2rem 3rem;
    box-shadow: 10px 10px 0 0 #e0e0e5;
  }

  .sec08_block ul {
    display: block;
    margin: 3rem 0 0;
  }
  .sec08_block ul li {
    width: 100%;
    margin: 0 0 1rem;
  }
  .sec08_block ul li:last-child {
    margin: 0 0 0;
  }

  .sec08_block .btn-internal a {
    padding: 1.3rem 4rem 1.3rem 2rem;
    font-size: 1.6rem;
    text-align: left;
    border: 1px solid #020202;
  }
  .sec08_block .btn-internal a:after {
    right: 15px;
    background: url("img/arrow_03.png") left top no-repeat;
    background-size: 100% auto;
    width: 16px;
    height: 13px;
  }
}





/*--------------------------------------
　sec09
---------------------------------------*/
.sec09 p {
  margin: 0 0 0;
}

.sec09 .block_wrap {
  display: flex;
  justify-content: space-between;
}

.sec09 .sec09_block {
  width: 50%;
  padding: 0 0 8rem;
  box-sizing: border-box;
}
.sec09 .sec09_block01 {
  background: url("img/sec09_bg_01.jpg") center center no-repeat;
  background-size: cover;
}
.sec09 .sec09_block02 {
  background: url("img/sec09_bg_02.jpg") center center no-repeat;
  background-size: cover;
}

.sec09 .sec09_block .inner {
  max-width: 440px;
}

.sec09 .main_ttl_wrap {
  position: relative;
  top: -35px;
}

.sec09 .eng {
  font-size: 5rem;
}

.sec09 .main_ttl01 .m_ttl {
  font-size: 3.8rem;
}

.sec09 .txt {
  margin: -1.5rem 0 0;
}

.sec09_block .btn-web a {
  background: #fff;
  margin: 4rem auto 0;
  padding: 2.5rem 6rem;
  color: #e64f35;
  border: none;
  box-shadow: 6px 6px 0px 0px #9d301e;
  position: relative;
}
.sec09_block .btn-web a:after {
	content: "";
	position: absolute;
	top: 50%;
	right: 25px;
  transform: translate(0,-50%);
  background: url("img/icon_link_02.png") left top no-repeat;
  background-size: 100% auto;
	width: 20px;
	height: 20px;
}

.sec09_block .btn-link a {
	margin: 4rem 0 0;
  color: #fff;
	font-size: 1.6rem;
}
.sec09_block .btn-link a:after {
	background: url("img/arrow_04.png") left top no-repeat;
	background-size: 100% auto;
	width: 20px;
	height: 16px;
}

/* SP ------------------------------*/
@media screen and (max-width: 768px) {
  .sec09 .block_wrap {
    display: block;
  }

  .sec09 .sec09_block {
    width: 100%;
    padding: 0 1.5rem 7rem;
  }

  .sec09 .sec09_block .inner {
    max-width: 100%;
  }

  .sec09 .main_ttl_wrap {
    top: -25px;
  }

  .sec09 .eng {
    font-size: 4rem;
  }

  .sec09 .main_ttl01 .m_ttl {
    font-size: 2.2rem;
  }

  .sec09 .txt {
    margin: 0 0 0;
  }

  .sec09_block .btn-web a {
    max-width: 80%;
    margin: 2rem auto 0;
    padding: 1.8rem 4rem;
    box-shadow: 4px 4px 0px 0px #9d301e;
  }
  .sec09_block .btn-web a:after {
    right: 15px;
    background: url("img/icon_link_02.png") left top no-repeat;
    background-size: 100% auto;
    width: 12px;
    height: 12px;
  }
  .sec09_block .btn-tel a {
      max-width: 80%;
  }

  .sec09_block .btn-link a {
    margin: 2rem 0 0;
    font-size: 1.6rem;
  }
  .sec09_block .btn-link a:after {
    background: url("img/arrow_04.png") left top no-repeat;
    background-size: 100% auto;
    width: 16px;
    height: 13px;
  }
}






/*--------------------------------------
　slick
---------------------------------------*/
.slick-slide:focus {
  outline: none;
}
.slick-slide a:focus {
  outline: none;
}

.slick-slide {
  display: none;
}
.slick-initialized .slick-slide{
  display: block;
}

button {
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

/* arrow */
.slide-arrow {
	display: block;
	position: absolute;
	top: 50%;
  transform: translate(0,-50%);
	width: 60px;
	height: 60px;
	z-index: 999;
	cursor: pointer;
  transition: all 0.3s ease;
}
.prev-arrow {
	left: -20px;
  background: url("img/arrow_prev.png") left top no-repeat;
  background-size: 100% auto;
}
.next-arrow {
	right: -20px;
  background: url("img/arrow_next.png") left top no-repeat;
  background-size: 100% auto;
}
.slide-arrow:hover {
	opacity: 0.6;
  filter: alpha(opacity=60);
  -ms-filter: "alpha(opacity=60)";
}

/* SP ------------------------------*/
@media screen and (max-width: 768px) {
  /* arrow */
  .slide-arrow {
    width: 40px;
    height: 40px;
  }
  .prev-arrow {
    left: 0;
    background: url("img/arrow_prev.png") left top no-repeat;
    background-size: 100% auto;
  }
  .next-arrow {
    right: 0;
    background: url("img/arrow_next.png") left top no-repeat;
    background-size: 100% auto;
  }
  .slide-arrow:hover {
    opacity: 1;
    filter: alpha(opacity=100);
    -ms-filter: "alpha(opacity=100)";
  }
  
  .slider_02 .prev-arrow {
    left: -15px;
  }
  
  .slider_02 .slick-list {
    overflow: visible;
  }
  .slider_02 .slick-disabled {
    display: none !important;
  }
}
@charset "utf-8";

.load_fadeup {
  transition: all 0.3s linear;
}
.load_fadeup.active {
  -webkit-animation: load_fadeup 0.8s ease-in-out forwards;
          animation: load_fadeup 0.8s ease-in-out forwards;
}
@keyframes load_fadeup {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, 10%, 0);
    transform: translate3d(0, 10%, 0);
  }

  100% {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.js_scroll_animation {
  opacity: 0;
  transition: all 0.5s linear;
}
.js_scroll_animation.isActive {
  -webkit-animation: slideUp 0.8s ease-in-out forwards;
          animation: slideUp 0.8s ease-in-out forwards;
}
@keyframes slideUp {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, 10%, 0);
    transform: translate3d(0, 10%, 0);
  }

  100% {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}




/*--------------------------------------
　header_home
---------------------------------------*/
.header_home {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  min-width: 1000px;
  padding: 1.5rem 2rem 0;
}

.header_home .inner {
	max-width: 1000px;
}

/* SP ------------------------------*/
@media screen and (max-width: 768px) {
  .header_home {
    min-width: 100%;
    padding: 1rem 1rem 0;
  }

  .header_home .inner {
    max-width: 100%;
  }
}





/*--------------------------------------
　MV
---------------------------------------*/
.mv_home {
  background: #ececee;
  width: 100%;
  min-width: 1000px;
  padding: 2rem 0 6rem;
  box-sizing: border-box;
}

.mv_home .mv_inner {
  max-width: 1215px;
  margin: auto;
  box-sizing: border-box;
}

.mv_home .mv_bg {
  background: url("img/mv_home_bg.png") center top no-repeat;
  background-size: 1215px auto;
  width: 100%;
  height: 660px;
  position: relative;
}

.mv_home .mv_logo {
  position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
  width: 450px;
  margin: 5rem auto 0;
}

.mv_home .mv_txt {
  width: 50%;
  margin: -4rem auto 0 10rem;
  font-size: 1.6rem;
  font-weight: bold;
  line-height: 1.8;
}

/* SP ------------------------------*/
@media screen and (max-width: 768px) {
  .mv_home {
    min-width: 100%;
    padding: 7rem 0 2.5rem;
    position: relative;
    z-index: 0;
  }
  .mv_home::after {
    content: "";
    position: absolute;
    right: 0.5rem;
    bottom: 0;
    background: url("img/bg_02.png") left top no-repeat;
    background-size: 100% auto;
    width: 35%;
    height: 0;
    margin: 0 0 0 0;
    padding-top: 35%;
    z-index: -1;
  }

  .mv_home .mv_inner {
    max-width: 100%;
  }

  .mv_home .mv_bg {
    background: url("img/mv_home_bg_sp.png") center top no-repeat;
    background-size: 100% auto;
    width: 100%;
    height: 0;
    padding-top: calc(100%*934/750);
    position: relative;
  }

  .mv_home .mv_logo {
    position: absolute;
    top: 0;
    left: 0;
    transform: translate(0,0);
    width: 55%;
    margin: 0 0 0 1.5rem;
  }

  .mv_home .mv_txt {
    width: 100%;
    margin: 0 0 0 0;
    padding: 0 1.5rem;
    box-sizing: border-box;
    font-size: 1.6rem;
    text-align: center;
    line-height: 1.6;
  }
}





/*--------------------------------------
　Main Index
---------------------------------------*/
.contents_top {
  background: #ececee;
	width: 100%;
	min-width: 1000px;
	margin: auto;
	box-sizing: border-box;
  position: relative;
  z-index: 0;
}
.contents_top .wrap {
  overflow: hidden;
}
.sec {
	width: 100%;
	min-width: 1000px;
	margin: auto;
	box-sizing: border-box;
	position: relative;
}
.sec .inner {
	max-width: 1000px;
	margin: auto;
	box-sizing: border-box;
}

/* SP ------------------------------*/
@media screen and (max-width: 768px) {
	.contents_top {
		min-width: 100%;
	}
	.sec {
		min-width: 100%;
	}
	.sec .inner {
		max-width: 100%;
	}
}





/*--------------------------------------
　eng
---------------------------------------*/
.contents_top .eng_wrap {
  text-align: center;
}

.contents_top .eng {
  font-size: 7rem;
}

/* SP ------------------------------*/
@media screen and (max-width: 768px) {
  .contents_top .eng {
    font-size: 4rem;
  }
}





/*--------------------------------------
　Title
---------------------------------------*/
.main_ttl01 {
  margin: 2rem 0 0;
  text-align: center;
}

.main_ttl01 .m_ttl {
  font-size: 4.6rem;
}
.main_ttl01 .m_ttl span {
  font-size: 3rem;
}

.main_ttl01 .m_ttl a {
  display: inline-block;
  padding: 0 6rem;
  position: relative;
}
.main_ttl01 .m_ttl a:after{
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  transform: translate(0,-50%);
	background: url("img/arrow_01.png") left top no-repeat;
  background-size: contain;
  width: 32px;
  height: 28px;
}

/* SP ------------------------------*/
@media screen and (max-width: 768px) {
  .main_ttl01 {
    margin: 1.5rem 0 0;
  }

  .main_ttl01 .m_ttl {
    font-size: 2.5rem;
  }
  .main_ttl01 .m_ttl span {
    font-size: 1.6rem;
  }

  .main_ttl01 .m_ttl a {
    padding: 0 3rem;
  }
  .main_ttl01 .m_ttl a:after{
    background: url("img/arrow_01.png") left top no-repeat;
    background-size: contain;
    width: 23px;
    height: 30px;
  }
}





/*--------------------------------------
　テキスト
---------------------------------------*/
.contents_top p {
	margin: 3rem 0 3rem;
	font-size: 1.6rem;
	line-height: 2;
}

.txt {
	margin: 3rem 0 3rem;
	font-size: 1.6rem;
	text-align: justify;
	line-height: 2;
}

.lead {
  width: 80%;
	margin: 3rem auto 0!important;
	font-size: 1.6rem;
	line-height: 2;
  box-sizing: border-box;
  text-align: center;
}

/* SP ------------------------------*/
@media screen and (max-width: 768px) {
	.contents_top p {
		margin: 2rem 0 2rem;
		line-height: 1.8;
		font-size: 1.5rem;
	}

	.txt {
		margin: 2rem 0 2rem;
		line-height: 1.8;
	}

	.lead {
    width: 95%;
		margin: 2rem auto 0 !important;
		line-height: 1.8;
	}
}





/*--------------------------------------
　guide
---------------------------------------*/
.guide .inner {
  position: relative;
  z-index: 0;
}
.guide .inner::before,
.guide .inner::after {
  content: "";
  position: absolute;
  z-index: -1;
}
.guide .inner::before {
  right: 100%;
  top: 100%;
  background: url("img/bg_01.png") left top no-repeat;
  background-size: 100% auto;
  width: 508px;
  height: 508px;
  margin: -254px -254px 0 0;
}
.guide .inner::after {
  left: 100%;
  bottom: 100%;
  background: url("img/bg_02.png") left top no-repeat;
  background-size: 100% auto;
  width: 308px;
  height: 308px;
  margin: 0 0 -250px -154px;
}

.guide .guide_block {
  background: #fff;
  margin: -3rem 0 0;
  padding: 7rem 5rem 3rem;
  box-sizing: border-box;
}

.guide .guide_link {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
}
.guide .guide_link li {
  width: calc(50% - 1.5rem);
  margin: 0 0 3rem;
  box-sizing: border-box;
}
.guide .guide_link li:nth-child(2) {
  margin: -1.2rem 0 3rem;
}
.guide .guide_link li:nth-child(4) {
  margin: 0.5rem 0 3rem;
}
.guide .guide_link li a {
  display: block;
}

.guide .guide_block .new_article {
  
}
.guide .guide_block .new_article h2 {
  font-size: 3rem;
  margin-bottom: 2rem;
  border-bottom: 1px solid #000;
  padding-bottom: 0.5rem;
}
.guide .guide_block .new_article ul li:before {
  content: "";
  display: block;
	position: absolute;
  top: 0.5rem;
  left: 0;
	background: #20bbd0;
  width: 10px;
  height: 10px;
	box-sizing: border-box;
  border-radius: 50%;
}
.guide .guide_block .new_article ul li{
  margin-bottom:1.5rem;
  position: relative;
  display: block;
  padding-left: 2rem;
}
.guide .guide_block .new_article ul li a {
  text-decoration: underline;
  padding-left:1.5rem;
  display: inline-block;
  position:relative;
  text-decoration: none;
  padding-right: 1.5rem;
  line-height: 1.4em;
}
.guide .guide_block .new_article ul li a:before {
	content: "";
	position: absolute;
	top: 70%;
	right: 0;
  transform: translate(0,-50%);
  background: url("img/arrow_03.png") left top no-repeat;
  background-size: 100% auto;
	width: 13px;
	height: 13px;
}


/* SP ------------------------------*/
@media screen and (max-width: 768px) {
  .guide {
    padding: 0 1.5rem;
  }

  .guide .inner::before {
    left: -15px;
    right: inherit;
    top: 100%;
    background: url("img/bg_01.png") left top no-repeat;
    background-size: 100% auto;
    width: 45%;
    height: 0;
    margin: -20% 0 0 0;
    padding-top: 45%;
  }
  .guide .inner::after {
    display: none;
  }

  .guide .guide_block {
    margin: -1.5rem 0 0;
    padding: 3rem 2rem 2.5rem;
  }

  .guide .guide_link {
    display: none;
    margin: 1rem 0 0;
  }
  .guide .guide_link li {
    width: 100%;
    margin: 0 0 1.5rem;
  }
  .guide .guide_link li:nth-child(2) {
    margin: 0 0 1.5rem;
  }
  .guide .guide_link li:nth-child(4) {
    margin: 0 0 1.5rem;
  }
  
  
  .guide .acc_btn {
    padding: 0 3rem;
    box-sizing: border-box;
    font-size: 1.6rem;
    font-weight: bold;
    text-align: center;
    line-height: 1.4;
    cursor: pointer;
    position: relative;
  }
  .guide .acc_btn:before,
  .guide .acc_btn:after {
    content: "";
    position: absolute;
    top: 50%;
    right: 0;
    background: #020202;
    width: 20px;
    height: 1px;
    transition: all 0.4s;
  }
  .guide .acc_btn:after {
    transform: rotate(90deg);
  }
  .guide .acc_btn.open:before {
    display: none;
  }
  .guide .acc_btn.open::after {
    transform: rotate(180deg);
  }
  .guide .guide_block .new_article {
    margin-top:4rem;
  }
  .guide .guide_block .new_article h2 {
    font-size:2rem;
  }
  .guide .guide_block .new_article ul li {
    padding-left:2rem;
  }
}





/*--------------------------------------
　sec01
---------------------------------------*/
.sec01 {
  padding: 12rem 0 0;
  position: relative;
  z-index: 0;
}
.sec01::before,
.sec01::after {
  content: "";
  position: absolute;
  z-index: -1;
}
.sec01::before {
  top: 35%;
  left: 0;
  background: url("img/bg_03.png") left top no-repeat;
  background-size: 100% auto;
  width: 25%;
  height: 0;
  padding-top: calc(25%*300/350);
}
.sec01::after {
  top: 0;
  right: 0;
  background: url("img/bg_04.png") left top no-repeat;
  background-size: 100% auto;
  width: 25%;
  height: 0;
  padding-top: calc(25%*330/270);
}

.sec01 p {
  margin: 0 0 0;
}


.sec01_block {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  flex-wrap: wrap;
  margin: 5rem 0 0;
}

.sec01_block .item {
  background: #fff;
  width: 290px;
  margin: 0 6.5rem 0 0;
  box-sizing: border-box;
  border: 2px solid #020202;
  box-shadow: 10px 10px 0 0 #20bbc6;
}
.sec01_block .item:nth-child(2),
.sec01_block .item:nth-child(4) {
  margin: 4rem 6.5rem 0 0;
}
.sec01_block .item:nth-child(3),
.sec01_block .item:nth-child(5) {
  margin: 8rem 0 0 0;
}
.sec01_block .item:nth-child(5) {
  width: 370px;
}
.sec01_block .item:nth-child(5) .box ul li:nth-child(even){
  width: calc(50% - 1rem);
}
.sec01_block .item:nth-child(5) .box ul li:nth-child(odd){
  width: calc(50% - 0.5rem);
}

.sec01_block .ttl01_wrap {
  display: flex;
  justify-content: space-between;
  height: 65px;
  border-bottom: 2px solid #020202;
}

.sec01_block .icon {
  display: flex;
  align-items: center;
  background: #020202;
  width: 65px;
  box-sizing: border-box;
}
.sec01_block .icon img {
  width: 48px;
  margin: auto;
}

.sec01_block .ttl01 {
  display: flex;
  align-items: center;
  width: calc(100% - 65px);
  padding: 0 2rem;
  box-sizing: border-box;
  font-size: 3.5rem;
}
.sec01_block .ttl01 a {
  width: 100%;
	position: relative;
}
.sec01_block .ttl01 a::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  transform: translate(0,-50%);
	background: url("img/arrow_01.png") left top no-repeat;
  background-size: contain;
  width: 26px;
  height: 22px;
}

.sec01_block .box {
  padding: 2rem 2rem 1rem;
  box-sizing: border-box;
}

.sec01_block .box ul {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}
.sec01_block .box ul li {
  width: calc(50% - 1rem);
  margin: 0 0 1rem;
  padding: 0 0 0 1.5rem;
  box-sizing: border-box;
  font-size: 1.6rem;
  line-height: 1.4;
  position: relative;
}
.sec01_block .box ul li:before {
  content: "";
  display: block;
	position: absolute;
  top: 8px;
  left: 0;
	background: #20bbd0;
  width: 10px;
  height: 10px;
	box-sizing: border-box;
  border-radius: 50%;
}
.sec01_block .box ul li a {
  font-weight: bold;
  text-decoration: underline;
}
.sec01_block .box ul li a span {
  font-size:1.3rem;
  display: block;
}

/* SP ------------------------------*/
@media screen and (max-width: 768px) {
  .sec01 {
    padding: 6rem 1.5rem 0;
  }
  .sec01::before {
    top: 30%;
    left: 0;
    background: url("img/bg_03.png") left top no-repeat;
    background-size: contain;
    width: 30%;
    height: 0;
    padding-top: calc(30%*300/350);
  }
  .sec01::after {
    top: 20px;
    right: 0;
    background: url("img/bg_04.png") right top no-repeat;
    background-size: contain;
    width: 25%;
    height: 0;
    padding-top: calc(25%*330/270);
  }


  .sec01_block {
    display: block;
    margin: 3rem 0 0;
    padding: 0 1.5rem;
    box-sizing: border-box;
  }

  .sec01_block .item {
    width: 100%;
    margin: 0 0 2rem 0;
    border: 1px solid #020202;
    box-shadow: 5px 5px 0 0 #20bbc6;
  }
  .sec01_block .item:nth-child(2),
  .sec01_block .item:nth-child(4) {
    margin: 0 0 2rem 0;
  }
  .sec01_block .item:nth-child(3),
  .sec01_block .item:nth-child(5) {
    margin: 0 0 2rem 0;
    width: inherit;
  }
  .sec01_block .item:nth-child(5) .box ul li:nth-child(even){
   width: calc(50% - 0.3rem);
}
.sec01_block .item:nth-child(5) .box ul li:nth-child(odd){
   width: calc(50% - 0.5rem);
}

  .sec01_block .ttl01_wrap {
    height: 50px;
    border-bottom: 1px solid #020202;
  }

  .sec01_block .icon {
    width: 50px;
  }
  .sec01_block .icon img {
    width: 80%;
  }

  .sec01_block .ttl01 {
    width: calc(100% - 50px);
    padding: 0 1.5rem;
    font-size: 2.5rem;
  }
  .sec01_block .ttl01 a::after {
    background: url("img/arrow_01.png") left top no-repeat;
    background-size: contain;
    width: 16px;
    height: 14px;
  }

  .sec01_block .box {
    padding: 1rem 2rem 1rem;
  }

  .sec01_block .box ul li {
    width: calc(50% - 1rem);
    margin: 0 0 0.5rem;
    padding: 0 0 0 1.5rem;
    font-size: 1.4rem;
  }
  .sec01_block .box ul li:before {
    top: 6px;
    width: 8px;
    height: 8px;
  }
}





/*--------------------------------------
　sec02
---------------------------------------*/
.sec02 {
  padding: 18rem 0 22rem;
}

.sec02 p {
  margin: 0 0 0;
}


.sec02_block {
  background: #fff;
  box-sizing: border-box;
  position: relative;
}

.sec02_block .deco01,
.sec02_block .deco02 {
  position: relative;
}
.sec02_block .deco01::before,
.sec02_block .deco01::after,
.sec02_block .deco02::before,
.sec02_block .deco02::after {
	content: "";
  position: absolute;
	width: 112px;
	height: 112px;
	box-sizing: border-box;
}
.sec02_block .deco01::before {
  top: -10px;
	left: -10px;
	border-top: 10px solid #e64f35;
	border-left: 10px solid #e64f35;
}
.sec02_block .deco01::after {
  top: -10px;
	right: -10px;
	border-top: 10px solid #e64f35;
	border-right: 10px solid #e64f35;
}
.sec02_block .deco02::before {
  bottom: -10px;
	left: -10px;
	border-bottom: 10px solid #e64f35;
	border-left: 10px solid #e64f35;
}
.sec02_block .deco02::after {
  bottom: -10px;
	right: -10px;
	border-bottom: 10px solid #e64f35;
	border-right: 10px solid #e64f35;
}

.sec02_block .block_inner {
  padding: 0 7rem 8rem;
  box-sizing: border-box;
}

.sec02_block .main_ttl_wrap {
  position: relative;
  top: -45px;
}

.sec02_block .lead {
  margin: -2.5rem auto 0!important;
}

.sec02_block .item_wrap {
  margin: 6rem 0 0;
}

.sec02_block .item {
  margin: 0 0 8rem;
}
.sec02_block .item:last-child {
  margin: 0 0 0;
}

.sec02_block .item .g_ttl {
  font-size: 3rem;
  font-weight: bold;
  text-align: center;
  line-height: 1.4;
}

.sec02_block .item .img_box {
  margin: 1.5rem 0 0;
}

.sec02_block .item .cc {
  font-size: 2.6rem;
}

.sec02_block .item .txt {
  margin: 2rem 0 0;
}

.sec02_block .item01 {
  display: flex;
  justify-content: space-between;
}
.sec02_block .item01 .l_box {
  width: 430px;
  box-sizing: border-box;
}
.sec02_block .item01 .r_box {
  width: calc(100% - 430px);
  margin: 5rem 0 0;
  box-sizing: border-box;
}
.sec02_block .item01 .l_box.ord01 {
  order: 1;
}
.sec02_block .item01 .l_box.ord02 {
  order: 2;
}
.sec02_block .item01 .r_box.ord01 {
  order: 1;
  padding: 0 4rem 0 0;
}
.sec02_block .item01 .r_box.ord02 {
  order: 2;
  padding: 0 0 0 4rem;
}

.sec02_block .item02 .cc {
  margin: 3rem 0 0;
  text-align: center;
}
.sec02_block .item02 .txt {
  width: 70%;
  margin: 2rem auto 0;
}

/* SP ------------------------------*/
@media screen and (max-width: 768px) {
  .sec02 {
    padding: 8rem 1.5rem 10rem;
  }


  .sec02_block .deco01::before,
  .sec02_block .deco01::after,
  .sec02_block .deco02::before,
  .sec02_block .deco02::after {
    width: 40px;
    height: 40px;
  }
  .sec02_block .deco01::before {
    top: -4px;
    left: -4px;
    border-top: 4px solid #e64f35;
    border-left: 4px solid #e64f35;
  }
  .sec02_block .deco01::after {
    top: -4px;
    right: -4px;
    border-top: 4px solid #e64f35;
    border-right: 4px solid #e64f35;
  }
  .sec02_block .deco02::before {
    bottom: -4px;
    left: -4px;
    border-bottom: 4px solid #e64f35;
    border-left: 4px solid #e64f35;
  }
  .sec02_block .deco02::after {
    bottom: -4px;
    right: -4px;
    border-bottom: 4px solid #e64f35;
    border-right: 4px solid #e64f35;
  }

  .sec02_block .block_inner {
    padding: 0 0 3rem;
  }

  .sec02_block .main_ttl_wrap {
    top: -25px;
    padding: 0 1rem;
  }

  .sec02_block .lead {
    margin: -0.5rem auto 0!important;
    padding: 0 1.5rem;
  }

  .sec02_block .item_wrap {
    margin: 3rem 0 0;
    padding: 0 2rem;
  }

  .sec02_block .item {
    margin: 0 0 4rem;
  }

  .sec02_block .item .g_ttl {
    font-size: 2rem;
  }

  .sec02_block .item .img_box {
    margin: 1rem 0 0;
  }

  .sec02_block .item .cc {
    font-size: 1.6rem;
  }

  .sec02_block .item .txt {
    margin: 1.5rem 0 0;
  }

  .sec02_block .item01 {
    display: block;
  }
  .sec02_block .item01 .l_box {
    width: 100%;
  }
  .sec02_block .item01 .r_box {
    width: 100%;
    margin: 2rem 0 0;
  }
  .sec02_block .item01 .r_box.ord01 {
    padding: 0 0 0 0;
  }
  .sec02_block .item01 .r_box.ord02 {
    padding: 0 0 0 0;
  }

  .sec02_block .item02 .cc {
    margin: 2rem 0 0;
    text-align: left;
  }
  .sec02_block .item02 .txt {
    width: 100%;
    margin: 1.5rem auto 0;
  }
}





/*--------------------------------------
　sec03
---------------------------------------*/
.sec03 {
  background: #e0e0e5;
  padding: 0 0 10rem;
}

.sec03 .inner {
  max-width: 1100px;
  margin: auto;
}

.sec03 p {
  margin: 0 0 0;
}

.sec03 .main_ttl_wrap {
  position: relative;
  top: -80px;
}

.sec03 .eng_bg {
  color: rgba(255,255,255,0.5);
  font-size: 13rem;
  font-weight: bold;
  text-align: center;
  letter-spacing: 0.05em;
  position: relative;
}

.sec03 .main_ttl01 {
  position: absolute;
  top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
  width: 100%;
  box-sizing: border-box;
}

.sec03 .lead {
  margin: -3rem auto 0!important;
}


.sec03_block {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  margin: 3rem 0 0;
}

.sec03_block .item {
  width: 25%;
  max-width: 240px;
  box-sizing: border-box;
  flex: 1;
  text-align: center;
}
.sec03_block .item + .item {
 margin-left: 5rem;
}
.sec03_block .item:nth-child(even) {
 margin-top: 6rem;
}

.sec03_block .item a {
  display: block;
}

.sec03_block .ttl01 {
  display: inline-block;
  margin: 2rem 0 0;
  padding: 0 3rem;
  font-size: 1.8rem;
  position: relative;
}
.sec03_block .ttl01:after {
	content: "";
	position: absolute;
	top: 50%;
	right: 0;
  transform: translate(0,-50%);
  background: url("img/arrow_03.png") left top no-repeat;
  background-size: 100% auto;
	width: 20px;
	height: 16px;
}

/* SP ------------------------------*/
@media screen and (max-width: 768px) {
  .sec03 {
    padding: 0 0 6rem;
  }

  .sec03 .inner {
    max-width: 100%;
  }

  .sec03 .main_ttl_wrap {
    top: -40px;
    padding: 0 1.5rem;
  }

  .sec03 .eng_bg {
    font-size: 6rem;
  }

  .sec03 .lead {
    margin: -2rem auto 0!important;
    padding: 0 1.5rem;
  }


  .sec03_block {
    display: block;
    margin: 2rem 0 0;
    padding: 0 0 0 1.5rem;
  }

  .sec03_block .item {
    width: 25%;
    max-width: 180px;
    margin-right: 1.5rem;
  }
  .sec03_block .item + .item {
   margin-left: 0;
  }
  .sec03_block .item:nth-child(even) {
   margin-top: 0;
  }
  .sec03_block .item:last-child {
    margin-right: 0; 
  }

  .sec03_block .ttl01 {
    margin: 1rem 0 0;
    padding: 0 2rem;
    font-size: 1.5rem;
  }
  .sec03_block .ttl01:after {
    background: url("img/arrow_03.png") left top no-repeat;
    background-size: 100% auto;
    width: 16px;
    height: 13px;
  }
  

  .slider_01 .slick-list {
    overflow: visible;
  }
  .slider_01 .slick-disabled {
    display: none !important;
  }
}





/*--------------------------------------
　sec04
---------------------------------------*/
.sec04 {
  padding: 15rem 0 22rem;
}

.sec04 p {
  margin: 0 0 0;
}

.sec04_block {
  background: #e64f35 url("img/sec04_bg.png") center center no-repeat;
  background-size: 930px auto;
  padding: 6rem 12rem 7rem;
  box-sizing: border-box;
  border: 2px solid #020202;
  box-shadow: 20px 20px 0px 0px #ffafa1;
}

.sec04_block .ttl {
  text-align: center;
  font-size: 3rem;
}
.sec04_block .ttl span {
  font-size: 5rem;
}
.sec04_block .ttl a {
  color: #fff;
  position: relative;
}
.sec04_block .ttl a::after {
  content: "";
  display: inline-block;
  background: url("img/icon_link_01.png") left top no-repeat;
  background-size: 100% auto;
  width: 32px;
  height: 32px;
  margin: 0 0 0 2rem;
}

.sec04_block .txt {
  margin: 3rem 0 0;
}

.sec04_block .btn-web a {
  background: #fff;
  margin: 4rem auto 0;
  padding: 2.5rem 6rem;
  color: #e64f35;
  border: none;
  box-shadow: 6px 6px 0px 0px #9d301e;
  position: relative;
}
.sec04_block .btn-web a:after {
	content: "";
	position: absolute;
	top: 50%;
	right: 25px;
  transform: translate(0,-50%);
  background: url("img/icon_link_02.png") left top no-repeat;
  background-size: 100% auto;
	width: 20px;
	height: 20px;
}

/* SP ------------------------------*/
@media screen and (max-width: 768px) {
  .sec04 {
    padding: 6rem 1.5rem 12rem;
  }

  .sec04_block {
    background: #e64f35 url("img/sec04_bg.png") center top no-repeat;
    background-size: 100% auto;
    padding: 3rem 2rem 4rem;
    border: 1px solid #020202;
    box-shadow: 10px 10px 0px 0px #ffafa1;
  }

  .sec04_block .ttl {
    font-size: 1.6rem;
  }
  .sec04_block .ttl span {
    font-size: 2.6rem;
  }
  .sec04_block .ttl a::after {
    background: url("img/icon_link_01.png") left top no-repeat;
    background-size: 100% auto;
    width: 18px;
    height: 18px;
    margin: 0 0 0 1rem;
  }

  .sec04_block .txt {
    margin: 2rem 0 0;
  }

  .sec04_block .btn-web a {
    max-width: 85%;
    margin: 2rem auto 0;
    padding: 1.8rem 4rem;
    box-shadow: 4px 4px 0px 0px #9d301e;
  }
  .sec04_block .btn-web a:after {
    right: 15px;
    background: url("img/icon_link_02.png") left top no-repeat;
    background-size: 100% auto;
    width: 12px;
    height: 12px;
  }
  
  .sec04_block .btn-tel a {
    max-width: 85%;
    margin: 1.5rem auto 0;
  }
}






/*--------------------------------------
　sec05
---------------------------------------*/
#anc03 {
  margin: -8rem 0 0;
  padding: 8rem 0 0;
}

.sec05 {
  background: #20bbc6;
  padding: 0 0 10rem;
}

.sec05 p {
  margin: 0 0 0;
}

.sec05 .upper .inner {
  position: relative;
}
.sec05 .upper .inner:before,
.sec05 .upper .inner:after {
  content: "";
  position: absolute;
}
.sec05 .upper .inner:before {
  top: 0;
  right: 100%;
  transform: translate(40%,0);
  background: url("img/sec05_01.png") left top no-repeat;
  background-size: 100% auto;
  width: 364px;
  height: 152px;
  margin: -2rem 0 0;
}
.sec05 .upper .inner:after {
  top: 0;
  left: 100%;
  transform: translate(-40%,0);
  background: url("img/sec05_02.png") left top no-repeat;
  background-size: 100% auto;
  width: 302px;
  height: 500px;
  margin: -8rem 0 0;
  z-index: 1;
}

.sec05 .main_ttl_wrap {
  max-width: 70%;
  margin: auto;
  position: relative;
  top: -40px;
}

.sec05 .main_ttl01 .m_ttl span {
  background: #020202;
  padding: 0 2rem;
}


.sec05_block {
  background: #fff;
  margin: 3rem 0 0;
  padding: 5rem 0 2rem;
  position: relative!important;
}
.sec05_block::before,
.sec05_block::after {
  content: "";
  position: absolute;
  background: url("img/deco_01.png") left top no-repeat;
  background-size: 100% auto;
  width: 364px;
  height: 15px;
}
.sec05_block:before {
  top: -15px;
  left: 0;
}
.sec05_block:after {
  bottom: -15px;
  right: 0;
  transform: rotate(180deg);
}

.sec05_block .scroll_txt ul {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100vw;
  height: auto;
  margin: 0 auto 5rem;
}
.sec05_block .scroll_txt ul li {
  margin: 0 3rem;
}
.sec05_block .scroll_txt img {
  width: auto;
  height: auto;
}

/* SP ------------------_------------*/
@media screen and (max-width: 768px) {
  #anc03 {
    margin: -5rem 0 0;
    padding: 5rem 0 0;
  }

  .sec05 {
    padding: 0 0 6rem;
  }
  
  .sec05 .upper .inner {
    padding: 4rem 0 0;
  }
  .sec05 .upper .inner:before {
    right: inherit;
    left: 0;
    transform: translate(0,0);
    background: url("img/sec05_01.png") left top no-repeat;
    background-size: contain;
    width: 50%;
    height: 0;
    padding-top: calc(50%*152/364);
    margin: -5rem 0 0;
  }
  .sec05 .upper .inner:after {
    top: 100%;
    left: 0;
    transform: translate(0,0);
    background: url("img/sec05_02_sp.png") left top no-repeat;
    background-size: 100% auto;
    width: 100%;
    height: 0;
    margin: -5rem 0 0;
    padding-top: calc(100%*300/750);
  }

  .sec05 .main_ttl_wrap {
    max-width: 100%;
    top: 0;
  }

  .sec05 .main_ttl01 .m_ttl span {
    padding: 0 0.5rem;
  }


  .sec05_block {
    margin: 3rem 0 0;
    padding: 3rem 0 1rem;
  }
  .sec05_block::before,
  .sec05_block::after {
    background: url("img/deco_01.png") left top no-repeat;
    background-size: 100% auto;
    width: 30%;
    height: 0;
    padding-top: calc(30%*15/364);
  }
  .sec05_block:before {
    top: -4px;
  }
  .sec05_block:after {
    bottom: -4px;
  }

  .sec05_block .scroll_txt ul {
    margin: 0 auto 3rem;
  }
  .sec05_block .scroll_txt ul li {
    margin: 0 1.5rem;
  }
}






/*--------------------------------------
　sec06
---------------------------------------*/
.sec06 {
  background: #e0e0e5 url("img/bg_dot_01.png") center center repeat;
  background-size: 20px auto;
  padding: 4rem 0 12rem;
  position: relative;
  z-index: 0;
}
.sec06::after {
  content: "";
  position: absolute;
  top: 0;
  background: #ececee;
  width: 100%;
  height: 290px;
  z-index: -1;
}

.sec06 p {
  margin: 0 0 0;
}

.sec06 .sec06_img {
  width: 230px;
}

.sec06 .main_ttl_wrap {
  position: relative;
  top: -120px;
}

.sec06 .lead {
  margin: -9rem auto 0!important;
}


.sec06_block {
  margin: 5rem 0 0;
}

.sec06_block .item {
  margin: 0 2rem 1rem;
  text-align: center;
}

.sec06_block .item a {
  display: block;
  background: #fff;
  padding: 4rem 4rem 4rem;
  box-sizing: border-box;
  border-radius: 10px;
  box-shadow: 10px 10px 0 0 #20bbc6;
}

.sec06_block .img_box {
  width: 162px;
  margin: auto;
}

.sec06_block .ttl01 {
  display: inline-block;
  margin: 2rem 0 0;
  padding: 0 3rem 0 0;
  font-size: 2rem;
  font-weight: bold;
  line-height: 1.4;
  position: relative;
}
.sec06_block .ttl01:after {
	content: "";
	position: absolute;
	top: 50%;
	right: 0;
  transform: translate(0,-50%);
  background: url("img/arrow_03.png") left top no-repeat;
  background-size: 100% auto;
	width: 20px;
	height: 16px;
}

/* SP ------------------------------*/
@media screen and (max-width: 768px) {
  .sec06 {
    background: #e0e0e5 url("img/bg_dot_01.png") center center repeat;
    background-size: 15px auto;
    padding: 4rem 0 6rem;
  }
  .sec06::after {
    height: 150px;
  }

  .sec06 .sec06_img {
    width: 30%;
  }

  .sec06 .main_ttl_wrap {
    top: -90px;
    padding: 0 1.5rem;
  }

  .sec06 .lead {
    margin: -7rem auto 0!important;
    padding: 0 1.5rem;
  }


  .sec06_block {
    margin: 3rem 0 0;
    padding: 0 0 0 1.5rem;
  }

  .sec06_block .item {
    max-width: 220px;
    margin: 0 0 0;
    margin-right: 2rem;
  }
  .sec06_block .item:last-child {
    margin-right: 0;
  }

  .sec06_block .item a {
    padding: 2rem 2rem 2rem;
    border-radius: 5px;
    box-shadow: 5px 5px 0 0 #20bbc6;
  }

  .sec06_block .img_box {
    width: 50%;
  }

  .sec06_block .ttl01 {
    margin: 1rem 0 0;
    padding: 0 2rem 0 0;
    font-size: 1.6rem;
  }
  .sec06_block .ttl01:after {
    background: url("img/arrow_03.png") left top no-repeat;
    background-size: 100% auto;
    width: 16px;
    height: 13px;
  }
}






/*--------------------------------------
　sec07
---------------------------------------*/
.sec07 {
  padding: 15rem 0 0;
  position: relative;
  z-index: 0;
}
.sec07::before,
.sec07::after {
  content: "";
  position: absolute;
  z-index: -1;
}
.sec07::before {
  top: 25%;
  left: 0;
  background: url("img/bg_03.png") left top no-repeat;
  background-size: 100% auto;
  width: 25%;
  height: 0;
  padding-top: calc(25%*300/350);
}
.sec07::after {
  top: 70px;
  right: 0;
  background: url("img/bg_05.png") left top no-repeat;
  background-size: 100% auto;
  width: 14%;
  height: 0;
  padding-top: calc(14%*190/140);
}

.sec07 p {
  margin: 0 0 0;
}


.sec07 .belong {
  line-height: 1.7;
}
.sec07 .belong span {
  background: #fff;
  padding: 0 1rem;
  font-size: 1.6rem;
  font-weight: bold;
}

.sec07 .name {
  display: inline-block;
  background: #020202;
  margin: 0.5rem 0 0;
  padding: 0.8rem 4rem 0.8rem 1.5rem;
  color: #fff;
  font-size: 1.6rem;
  position: relative;
}
.sec07 .name span {
  font-size: 2.2rem;
  font-weight: bold;
}
.sec07 .name:after {
	content: "";
	position: absolute;
	top: 50%;
	right: 15px;
  transform: translate(0,-50%);
  background: url("img/arrow_04.png") left top no-repeat;
  background-size: 100% auto;
	width: 20px;
	height: 16px;
}


.sec07 .parts01 {
  padding: 0 0 8rem;
  position: relative;
  z-index: 0;
}
.sec07 .parts01::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  background: #e64f35;
  width: 100%;
  height: 55%;
  z-index: -1;
}

.sec07 .parts01 .inner {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  margin: 5rem auto 0;
}

.sec07 .parts01 .item {
  width: 50%;
  max-width: 340px;
  box-sizing: border-box;
  flex: 1;
  position: relative;
}
.sec07 .parts01 .item + .item {
  margin-left: 8rem;
}

.sec07 .parts01 .img_box img {
  border: 2px solid #020202;
  box-shadow: 10px 10px 0 0 #20bbc6;
}

.sec07 .parts01 .box {
  position: absolute;
  bottom: -15px;
  left: -30px;
}


.sec07 .parts02 {
  background: #20bbc6;
  padding: 6rem 0 6rem;
  margin: 5rem auto 0;
}

.sec07 .parts02 .item {
  background: #e0e0e5;
  margin: 0 2rem 1rem;
  padding: 1.5rem 1.5rem 2rem;
  box-sizing: border-box;
  border: 2px solid #020202;
  box-shadow: 10px 10px 0 0 #9edade;
}
.sec07 .parts02 .item a {
  display: block;
}

.sec07 .parts02 .box {
  margin: -3rem 0 0;
}

/* SP ------------------------------*/
@media screen and (max-width: 768px) {
  .sec07 {
    padding: 6rem 0 0;
  }
  .sec07::before {
    top: 15%;
    background: url("img/bg_03.png") left top no-repeat;
    background-size: 100% auto;
    width: 30%;
    height: 0;
    padding-top: calc(30%*300/350);
  }
  .sec07::after {
    top: 40px;
    background: url("img/bg_05.png") left top no-repeat;
    background-size: 100% auto;
    width: 15%;
    height: 0;
    padding-top: calc(15%*190/140);
  }

  
  .sec07 .belong {
    line-height: 1.5;
  }
  .sec07 .belong span {
    padding: 0 0.5rem;
    font-size: 1.3rem;
  }

  .sec07 .name {
    margin: 0.5rem 0 0;
    padding: 0.5rem 3rem 0.5rem 1rem;
    font-size: 1.3rem;
  }
  .sec07 .name span {
    font-size: 1.8rem;
  }
  .sec07 .name:after {
    right: 10px;
    background: url("img/arrow_04.png") left top no-repeat;
    background-size: 100% auto;
    width: 16px;
    height: 13px;
  }


  .sec07 .parts01 {
    padding: 0 1.5rem 6rem;
  }
  .sec07 .parts01::after {
    height: 80%;
  }

  .sec07 .parts01 .inner {
    display: block;
    margin: 3rem auto 0;
  }

  .sec07 .parts01 .item {
    width: 100%;
    max-width: 100%;
  }
  .sec07 .parts01 .item + .item {
    margin-left: 0;
    margin-top: 4rem;
  }

  .sec07 .parts01 .img_box {
    width: 80%;
    margin: auto;
  }
  .sec07 .parts01 .img_box img {
    border: 1px solid #020202;
    box-shadow: 5px 5px 0 0 #20bbc6;
  }

  .sec07 .parts01 .box {
    bottom: -10px;
    left: 0;
  }


  .sec07 .parts02 {
    padding: 4rem 0 5rem 1.5rem;
  }

  .sec07 .parts02 .item {
    max-width: 240px;
    margin: 0 0 0;
    margin-right: 2rem;
    padding: 1rem 1rem 2rem;
    border: 1px solid #020202;
    box-shadow: 5px 5px 0 0 #9edade;
  }

  .sec07 .parts02 .box {
    margin: -3rem 0 0;
  }
}






/*--------------------------------------
　sec08
---------------------------------------*/
.sec08 {
  padding: 12rem 0 12rem;
}

.sec08 p {
  margin: 0 0 0;
}


.sec08 .upper {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.sec08 .upper .l_box {
  width: 440px;
  box-sizing: border-box;
}

.sec08 .upper .r_box {
  width: calc(100% - 440px);
  padding: 0 0 0 7rem;
  box-sizing: border-box;
}

.sec08 .eng_wrap {
  text-align: left;
}

.sec08 .main_ttl01 {
  text-align: left;
}
.sec08 .main_ttl01 .m_ttl a {
  padding: 0 6rem 0 0;
}


.sec08_block {
  background: #49bdcd url("img/bg_dot_01.png") center center repeat;
  background-size: 20px auto;
  max-width: 840px;
  margin: -10rem auto 0;
  padding: 10rem 4rem 6rem;
  box-sizing: border-box;
  box-shadow: 20px 20px 0 0 #e0e0e5;
}

.sec08_block ul {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  margin: 4rem 0 0;
}
.sec08_block ul li {
  width: calc(33.33% - 1rem);
  box-sizing: border-box;
}

.sec08_block .btn-internal a {
  background: #fff;
  max-width: 100%;
  margin: 0 0 0;
  padding: 1.8rem 3rem;
  color: #020202;
  font-size: 1.6rem;
  border: 2px solid #020202;
  box-shadow: none;
}
.sec08_block .btn-internal a:after {
	right: 15px;
  background: url("img/arrow_03.png") left top no-repeat;
  background-size: 100% auto;
	width: 20px;
	height: 16px;
}

/* SP ------------------------------*/
@media screen and (max-width: 768px) {
  .sec08 {
    padding: 6rem 1.5rem 6rem;
  }


  .sec08 .upper {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
  }

  .sec08 .upper .l_box {
    width: 100%;
    margin: 2rem 0 0;
    order: 2;
  }

  .sec08 .upper .img_box {
    width: 80%;
  }

  .sec08 .upper .r_box {
    width: 100%;
    padding: 0 0 0 0;
    order: 1;
  }

  .sec08 .eng_wrap {
    text-align: center;
  }

  .sec08 .main_ttl01 {
    text-align: center;
  }
  .sec08 .main_ttl01 .m_ttl a {
    padding: 0 3rem 0 3rem;
  }


  .sec08_block {
    background: #49bdcd url("img/bg_dot_01.png") center center repeat;
    background-size: 20px auto;
    max-width: calc(100% - 2rem);
    margin: -8rem 0 0 auto;
    padding: 7rem 2rem 3rem;
    box-shadow: 10px 10px 0 0 #e0e0e5;
  }

  .sec08_block ul {
    display: block;
    margin: 3rem 0 0;
  }
  .sec08_block ul li {
    width: 100%;
    margin: 0 0 1rem;
  }
  .sec08_block ul li:last-child {
    margin: 0 0 0;
  }

  .sec08_block .btn-internal a {
    padding: 1.3rem 4rem 1.3rem 2rem;
    font-size: 1.6rem;
    text-align: left;
    border: 1px solid #020202;
  }
  .sec08_block .btn-internal a:after {
    right: 15px;
    background: url("img/arrow_03.png") left top no-repeat;
    background-size: 100% auto;
    width: 16px;
    height: 13px;
  }
}





/*--------------------------------------
　sec09
---------------------------------------*/
.sec09 p {
  margin: 0 0 0;
}

.sec09 .block_wrap {
  display: flex;
  justify-content: space-between;
}

.sec09 .sec09_block {
  width: 50%;
  padding: 0 0 8rem;
  box-sizing: border-box;
}
.sec09 .sec09_block01 {
  background: url("img/sec09_bg_01.jpg") center center no-repeat;
  background-size: cover;
}
.sec09 .sec09_block02 {
  background: url("img/sec09_bg_02.jpg") center bottom -8rem no-repeat #49BDCD;
}

.sec09 .sec09_block .inner {
  max-width: 440px;
}

.sec09 .main_ttl_wrap {
  position: relative;
  top: -35px;
}

.sec09 .eng {
  font-size: 5rem;
}

.sec09 .main_ttl01 .m_ttl {
  font-size: 3.6rem;
}

.sec09 .txt {
  margin: -1.5rem 0 0;
}

.sec09_block .btn-web a {
  background: #fff;
  margin: 4rem auto 0;
  padding: 2.5rem 6rem;
  color: #e64f35;
  border: none;
  box-shadow: 6px 6px 0px 0px #9d301e;
  position: relative;
}
.sec09_block .btn-web a:after {
	content: "";
	position: absolute;
	top: 50%;
	right: 25px;
  transform: translate(0,-50%);
  background: url("img/icon_link_02.png") left top no-repeat;
  background-size: 100% auto;
	width: 20px;
	height: 20px;
}
.sec09_block.sec09_block02 .btn-web a {
  color: #49bdcd;
  box-shadow: 6px 6px 0px 0px #c4c4c4;
}
.sec09_block.sec09_block02 .btn-web a:after {
  background: url("img/icon_link_03.png") left top no-repeat;
  background-size: 100% auto;
}

.sec09_block .btn-link a {
	margin: 4rem 0 0;
  color: #fff;
	font-size: 1.6rem;
}
.sec09_block .btn-link a:after {
	background: url("img/arrow_04.png") left top no-repeat;
	background-size: 100% auto;
	width: 20px;
	height: 16px;
}

/* SP ------------------------------*/
@media screen and (max-width: 768px) {
  .sec09 .block_wrap {
    display: block;
  }

  .sec09 .sec09_block {
    width: 100%;
    padding: 0 1.5rem 7rem;
  }
  .sec09 .sec09_block02 {
  background: url("img/sec09_bg_02.jpg") center bottom -10rem no-repeat #49BDCD;
  }
  .sec09 .sec09_block .inner {
    max-width: 100%;
  }

  .sec09 .main_ttl_wrap {
    top: -25px;
  }

  .sec09 .eng {
    font-size: 4rem;
  }

  .sec09 .main_ttl01 .m_ttl {
    font-size: 2.2rem;
  }

  .sec09 .txt {
    margin: 0 0 0;
  }

  .sec09_block .btn-web a {
    max-width: 80%;
    margin: 2rem auto 0;
    padding: 1.8rem 4rem;
    box-shadow: 4px 4px 0px 0px #9d301e;
  }
  .sec09_block .btn-web a:after {
    right: 15px;
    background: url("img/icon_link_02.png") left top no-repeat;
    background-size: 100% auto;
    width: 12px;
    height: 12px;
  }
  .sec09_block .btn-tel a {
      max-width: 80%;
  }

  .sec09_block .btn-link a {
    margin: 2rem 0 0;
    font-size: 1.6rem;
  }
  .sec09_block .btn-link a:after {
    background: url("img/arrow_04.png") left top no-repeat;
    background-size: 100% auto;
    width: 16px;
    height: 13px;
  }
}






/*--------------------------------------
　slick
---------------------------------------*/
.slick-slide:focus {
  outline: none;
}
.slick-slide a:focus {
  outline: none;
}

.slick-slide {
  display: none;
}
.slick-initialized .slick-slide{
  display: block;
}

button {
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

/* arrow */
.slide-arrow {
	display: block;
	position: absolute;
	top: 50%;
  transform: translate(0,-50%);
	width: 60px;
	height: 60px;
	z-index: 999;
	cursor: pointer;
  transition: all 0.3s ease;
}
.prev-arrow {
	left: -20px;
  background: url("img/arrow_prev.png") left top no-repeat;
  background-size: 100% auto;
}
.next-arrow {
	right: -20px;
  background: url("img/arrow_next.png") left top no-repeat;
  background-size: 100% auto;
}
.slide-arrow:hover {
	opacity: 0.6;
  filter: alpha(opacity=60);
  -ms-filter: "alpha(opacity=60)";
}

/* SP ------------------------------*/
@media screen and (max-width: 768px) {
  /* arrow */
  .slide-arrow {
    width: 40px;
    height: 40px;
  }
  .prev-arrow {
    left: 0;
    background: url("img/arrow_prev.png") left top no-repeat;
    background-size: 100% auto;
  }
  .next-arrow {
    right: 0;
    background: url("img/arrow_next.png") left top no-repeat;
    background-size: 100% auto;
  }
  .slide-arrow:hover {
    opacity: 1;
    filter: alpha(opacity=100);
    -ms-filter: "alpha(opacity=100)";
  }
  
  .slider_02 .prev-arrow {
    left: -15px;
  }
  
  .slider_02 .slick-list {
    overflow: visible;
  }
  .slider_02 .slick-disabled {
    display: none !important;
  }
}
