@charset "utf-8";
* {
	box-sizing: border-box;
}

/* -----------------------------------
  basic
----------------------------------- */
html{
  margin-top: 0px !important;
  font-size: 62.5%;
}
body {
  font-size: 1.7rem;
  color: #000000;
  background: #ffffff;
  margin: 0;
	padding: 0;
	height: 100%;
	font-family: "Shippori Mincho" ,"Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", メイリオ, Meiryo, "ＭＳ Ｐゴシック", "Helvetica Neue", Helvetica, Arial, sans-serif;
	background-color: #e6e6e6;
	letter-spacing : 0.2em;
  line-height:1.6;
}

a {
  text-decoration: none;
	color: #000000;
  transition: .3s;
}

p {
  margin:1.5rem 0 0 0;
}
.btn{
  text-align: center;
  margin:5% auto;
}

.btn-sub{
  position: relative;
  border: 1px solid #555;
  border-radius:30px;
  padding: 15px 50px;
  display: inline-block;
  text-align: center;
  text-decoration: none;
  color: #333;
  outline: none;
  transition: all .2s linear;
  background:#fff;
}

.btn-sub:hover{
background:#333;
color:#fff;
}

/*矢印と下線の形状*/
.btn-sub::before{
content:"";
position: absolute;
top:50%;
right:-25px;
width:50px;
height:1px;
background:#333;
  transition: all .2s linear;
}

.btn-sub::after{
content:"";
  /*絶対配置で矢印の位置を決める*/
position: absolute;
  top: 30%;
  right: -20px;
  /*矢印の形状*/
width:1px;
height:12px;
background:#333;
  transform:skewX(45deg);
  /*アニメーションの指定*/
  transition: all .2s linear;
}

/*hoverした際の移動*/
.btn-sub:hover::before{
right:-30px;
}

.btn-sub:hover::after{
right:-25px;
}



/* -----------------------------------
  pc
----------------------------------- */


header {
	padding: 30px 4% 10px;
	position: fixed;
	top: 0;
	width: 100%;
	background-color: #fff;
	display: flex;
	align-items: center;
  z-index: 99;
}
h1 {
	margin: 0; padding: 0;
	font-size: 20px;
}
a {	
	text-decoration: none;
	color: #000;
}
nav {
	margin: 0 0 0 auto;
}
ul {
	list-style: none;
	margin: 0;
	display: flex;
}
li {
	margin: 0 0 0 15px;
	font-size: 14px;
}
.main-visual {
	display: flex;
	justify-content: center;
	align-items: center;
	height: 100vh;
	background: url('main_visual.jpg') top center / cover no-repeat;
}
h2 {
	margin: 0;
	font-size: 30px;
	font-weight: normal;
	color: #fff;
}

.sp-nav {
	display: none;
}

#top-main {
  position: relative;
  padding: 70px 0 0 0;
  height: 100vh;

}

#slider-area{
  background-color: #fff;
  padding-top: 1%;
  height: 50%;
}

#slider {
  background-color: #e6e6e6;
  width: 80%;
  height: 80vh;/*スライダー全体の縦幅を画面の高さいっぱい（100vh）にする*/
  margin-left: 20%;
  border-radius: 25px 0 0 25px;
}
.top-lead {
  position: relative;
  top: 60%;
  left: 60%;
  width: 100%;
  height: 50vh;
  writing-mode: horizontal-tb;
  font-size: 4.5rem;
  font-weight: 700;
  letter-spacing: 0.15em;
}
.top-lead2 {
  position:absolute;
  top: 30%;
  left: 6.5%;
  height: 55vh;
   writing-mode: vertical-rl;
   text-orientation: upright;
  font-size: 3.5rem;
  font-weight: 700;

}


.top-lead span{
  padding: 0.5%;
  background-color: #fff;
  
}
.top-lead2 span{
  padding:  1%;
  background-color: #fff;
  
}

.grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr); /* 4列 */
  grid-column-gap: 30px; /* 間隔 */
  grid-row-gap: 30px; /* 縦間隔 */
  width: 80%;
  margin: 0 auto;
  text-align: center;
  
}
.col{
  border: solid 1px #000;
  padding: 10%;
  width: 100%;
  height: auto;
}
.col:first-child{
  background: url(/images/base1.jpg)
  no-repeat center;
    background-size: cover;
    filter: opacity(0.8);
}
.col:nth-child(2) {
  background: url(/images/base2.jpg)
  no-repeat center;
    background-size: cover;
    filter: opacity(0.8);
}
.col:nth-child(3) {
  background: url(/images/base3.jpg)
  no-repeat center;
    background-size: cover;
    filter: opacity(0.8);
}
.col:last-child{
  background: url(/images/base4.jpg)
  no-repeat center;
    background-size: cover;
    filter: opacity(0.8);
}

.col-body{
  background-color: #fff;
  filter: opacity(0.8);
  width:100%;
  height: 30vh;
}
.col-body h2{
  color: #000;
  text-align:center;
  height:60px;
  line-height:60px;
  font-size: 0.8rem;

}
.col-body p{
  text-align:center;
  height:60px;
  line-height:30px;
  font-weight: 700;
  margin-top: 40px;
  font-size: 2.2rem;
}




.access {
  position: relative;
  padding-bottom: 35%; 
  height: 0;
  overflow: hidden;
  }
  .access iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100% !important;
  height: 100% !important;
  }

footer{
      height: 40vh;
      border-radius: 50% / 100% 100% 0 0;
      background: #fff;

  }
  footer p{
    writing-mode: vertical-rl;
    text-align: center;
    margin:0 auto ;
    padding-top: 5%;
  }



.parent {
  display: grid;
  grid-template-columns: minmax(50%, 50%) 1fr;
  width: 80%;
  margin: 30px auto;
}
.parent .img {
  background: url(../images/pickup.png)
  no-repeat center;
  background-position: center center;
  background-size: contain;
  background-repeat: no-repeat;
}

.parent .comment {
  text-align: center;
}
.parent .comment h2 {
  color: #000;
}
.parent .comment p{
  text-align: center;
  padding: 5%;
}



.interview {
  display: grid;
  grid-template-columns: minmax(50%, 50%) 1fr;
  width: 60%;
  margin: 30px auto;

  border-radius: 25px;
  background-color: #fff;
  height:40vh;
  
}
.interview .img {
  background: url(../images/interview1.png)
  no-repeat center;
  background-size: contain;
  background-repeat: no-repeat; 
  margin: 0px 30px;
}

.interview .comment {
  text-align: center;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
}
.interview .comment h2 {
  color: #000;
  margin-top: 40px;
  font-size: 1.8rem;
}
.interview .comment p{
  text-align: center;
  font-size: 2.2rem;
  margin: 0px;
}



/* -----------------------------------
	tablet
----------------------------------- */
@media screen and (max-width: 1279px) {
	
	/* この上に記述 */
}

/* -----------------------------------
  sp
----------------------------------- */
@media screen and (max-width: 767px) {
  h1 {
    margin: 0; padding: 0;
    font-size: 19px;
  }
  .btn{
    text-align: center;
    margin:15% auto;
  }

  #top-main {
    position: relative;
    padding: 70px 0 0 0;
    height: 100vh;
  
  }
  
  #slider-area{
    background-color: #fff;
    padding-top: 5%;
    height: 50%;
  }
  
  #slider {
    background-color: #e6e6e6;
    height: 80vh;/*スライダー全体の縦幅を画面の高さいっぱい（100vh）にする*/
    margin-left: 20%;
    border-radius: 0px ;
  }

  .top-lead {
    position: relative;
    top: 70%;
    left:15%;
    writing-mode:unset;
    font-size: 2.5rem;
    font-weight: 700;
  }

  .top-lead2 {
    position:absolute;
    top: 25%;
    left: 5%;
    height: 50vh;
     writing-mode: vertical-rl;
    font-size: 2.5rem;
    font-weight: 700;
    z-index: 55;
  }

.parent {
  display: grid;
  grid-template-columns: 1fr;
  width: 80%;
  margin: 30px auto;
}
.parent .img {
  border: solid 1px #000 ;
  background: url(../images/pickup.png)
  no-repeat center;
    background-size: cover;
    height: 30vh;
}
.parent .comment {
   border: solid 1px #000 ;
   text-align: center;
   height: 30vh;
   background-color: #fff;
}

.parent .comment p{
  text-align: center;
  padding: 5%;
  font-size: 1.4rem;
}



.grid {
  display: grid;
  grid-template-columns: 1fr;
  grid-column-gap: 10px; /* 間隔 */
  grid-row-gap: 10px; /* 縦間隔 */
  width: 95%;
  margin: 0 auto;
  text-align: center;
  
}
.col{
  border: solid 1px #000;
  padding: 10%;
  width: 100%;
  height: 25vh;
}
.col-body{
  background-color: #fff;
  filter: opacity(0.8);
  width:100%;
  height: auto;
}
.col-body h2{
  color: #000;
  text-align:center;
  height:0px;
  line-height:60px;
  font-size: 0.8rem;
}
.col-body p{
  text-align:center;
  margin-top: 30px;
  line-height:60px;
  font-weight: 700;

}
.access {
  position: relative;
  padding-bottom: 100%; 
  height: 0;
  overflow: hidden;
  }
  .access iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100% !important;
  height: 100% !important;
  }
  
  footer{
    height: 35vh;
    border-radius: 200% / 100% 100% 0 0;
    background: #fff;

}

footer p{
  writing-mode: vertical-rl;
  text-align: center;
  margin:0 auto ;
  padding-top: 10%;
}


.interview {
  display: grid;
  grid-template-columns: 1fr;
  width: 90%;
  height: 60vh;
}
.interview .img {
  background: url(../images/interview1.png)
  no-repeat center;
  background-size: 80%;
  background-repeat: no-repeat; 
  margin: 0px;
  margin-top: 20px;
  height: 30vh;
}

.interview .comment {
  text-align: center;
  display:block;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 0px;
}
.interview .comment h2 {
  color: #000;
  margin-top: 0px;
  margin-bottom: 25px;
  font-size: 1.2rem;
}
.interview .comment p{
  text-align: center;
  font-size: 2.0rem;
  margin: 0px;
}

}





@media screen and (max-width: 640px) {
	/*ハンバーガーメニュー*/
	.pc-nav {
		display: none;
	}
	.sp-nav {
		z-index: 1;
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100vh;
		display: block;
		width: 100%;
		background: rgba(0, 0, 0, .8);
		opacity: 0;
		transform: translateY(-100%);
		transition: all .2s ease-in-out;
	}
	#hamburger {
		position: relative;
		display: block;
		width: 30px;
		height: 25px;
		margin: 0 0 0 auto;
	}
	#hamburger span {
		position: absolute;
		top: 50%;
		left: 0;
		display: block;
		width: 100%;
		height: 2px;
		background-color: #000;
		transform: translateY(-50%);
	}
	#hamburger::before {
		content: '';
		display: block;
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 2px;
		background-color: #000;
	}
	#hamburger::after {
		content: '';
		display: block;
		position: absolute;
		bottom: 0;
		left: 0;
		width: 70%;
		height: 2px;
		background-color: #000;
	}
	/*スマホメニュー*/
	.sp-nav ul {
		padding: 0;
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		height: 100%;
	}
	.sp-nav li {
		margin: 0;
		padding: 0;
	}
	.sp-nav li span {
		font-size: 15px;
		color: #fff;
	}
	.sp-nav li a, .sp-nav li span {
		display: block;
		padding: 20px 0;
    color: #fff;
	}
	/*-閉じるアイコンー*/
	.sp-nav .close {
		position: relative;
		padding-left: 20px;
	}
	.sp-nav .close::before {
		content: '';
		position: absolute;
		top: 50%;
		left: 0;
		display: block;
		width: 16px;
		height: 1px;
		background: #fff;
		transform: rotate( 45deg );
	}
	.sp-nav .close::after {
		content: '';
		position: absolute;
		top: 50%;
		left: 0;
		display: block;
		width: 16px;
		height: 1px;
		background: #fff;
		transform: rotate( -45deg );
	}
	.toggle {
		transform: translateY( 0 );
		opacity: 1;
	}
	.main-visual {
		padding: 0 4%;
	}
	h2 {
		line-height: 1.6;
		text-align: center;
	}
}
@media screen and (min-width: 768px){
  .brsp {display: none; }
  }

/*== 線の上を別の線が伸びる */

.btnlinestretches4{
  /*線の基点とするためrelativeを指定*/
position:relative;
  /*リンクの形状*/ 
color:#333;
  padding: 10px 50px 10px 30px;
display:inline-block;
  text-decoration: none;
  outline: none;
}

/*線の設定*/
.btnlinestretches4::before,
.btnlinestretches4::after{
content:'';
  /*絶対配置で線の位置を決める*/
position:absolute;
z-index:1;
bottom:0;
left:0;
   /*線の形状*/   
background:#333;
width:100%;
height:2px;
  /*アニメーションの指定*/
transition:all 0.3s ease-in-out;
}

/*hover時に伸びる線の形状*/   
.btnlinestretches4::after{
width:0;
background:#ccc;
}

/*hover時に100%に伸びる*/   
.btnlinestretches4:hover::after {
width:100%;
}

/*矢印の設定*/   
.btnlinestretches4 span::after {
  content: '';
  /*絶対配置で矢印の位置を決める*/
  position: absolute;
  top: 2.0em;
  right: 20px;
  /*矢印の形状*/   
  width: 5px;
  height: 5px;
  border-top: 1px solid #000;
  border-right: 1px solid #000;
  transform: rotate(45deg);
  /*アニメーションの指定*/
  transition: all .3s;
}

/*hover時に矢印が移動*/   
.btnlinestretches4:hover span::after {
right:15px;
}
