@charset "utf-8";
/*211219*/
* {
	margin: 0;
	padding: 0;
}
*, *:before, *:after {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	-ms-box-sizing: border-box;
	box-sizing: border-box;
}
/*  font
-----------------------------------------------------------------------------*/
@font-face {
  font-family: 'Poppins';
  src: url('../fonts/Poppins-Light.ttf') format('truetype');
  font-weight: 300;
}

@font-face {
  font-family: 'Poppins';
  src: url('../fonts/Poppins-Medium.ttf') format('truetype');
  font-weight: 500;
}

@font-face {
  font-family: 'Poppins';
  src: url('../fonts/Poppins-Bold.ttf') format('truetype');
  font-weight: bold;
}

@font-face {
  font-family: 'Poppins';
  src: url('../fonts/Poppins-Thin.ttf') format('truetype');
  font-weight: 100;
}


html,body {
	height: 100%;
}

html {
	 font-size: 62.5%;
	 -webkit-text-size-adjust: 100%;
    -moz-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
    -o-text-size-adjust: 100%;
    text-size-adjust: 100%;
}
body {
  position: relative;
  line-height: 1.7;
  margin: 0;
  color: #333;
  overflow-x: hidden;
  letter-spacing: 0.1em;
  font-family: Helvetica, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}
html,body { height:100%;}
body { font-size: 1.5rem;}
img {
	border: 0px;
	vertical-align: top;
	line-height: 0px;
	width: 100%;
	height: auto
}
ul,li,dl,dt,dd,p,h1,h2,h3,h4,em { margin:0; padding:0; font-style: normal}
ul,li {	list-style-type: none}
h2 { margin-bottom: 80px}
th,td { padding: 15px 30px; text-align: left; vertical-align: top}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
article { padding: 50px 5%;}
section { margin: 0 auto; width: 100%;max-width: 1000px}

a { 
	color:#333; cursor:pointer;
	-webkit-transition: all 0.3s;
	transition: all 0.3s;
	text-decoration: none
}
a:visited { cursor:pointer;}
a:hover { cursor:pointer;}

a.page_link{
	text-decoration: underline
}
a.page_link:hover{
	text-decoration:none
}

.c_01 { color: #74bb31}

.flex {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -moz-flex;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  justify-content: space-between
}
main { 
	width: 90%;
	max-width: 1180px;
	margin: 0 auto
}
main p {
	margin-bottom: 1em;
	line-height: 1.9;
}

.fig { position: relative; padding: 0 10px 10px 0; width: 40%}
.fig .fig-pic { position: relative; z-index: 2}
.fig .fig-bg { position: absolute; top: 5px; left: 10px; z-index: 1}

/*[data-sr] { visibility: hidden;}
#main {display:none;}
#loading{
	position:absolute;
	left:50%;
	top:50%;
	margin-left:-27px;
	margin-top:-28px;
} */
@media (min-width: 769px) {
	.hidden-xs { display: none !important}
}
@media (max-width: 768px) {
	.visible-xs { display: none !important}
	th,td { padding: 10px 15px}
}

/*------------------------------------------------

	メインビジュアル　#main_visual

------------------------------------------------*/
.page #main_visual { 
	padding: 60px 5% 150px;
	/*background: url("../images/common/mv.jpg") no-repeat center;
	background-size: cover;*/
	height: 70vh;
	min-height: 500px;
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center
}
.page #main_visual .catch_copy { 
	width: 100%;
	max-width: 1160px; 
	margin-top: auto;
	font-size: 5rem;
	color: #fff;
}
.page #main_visual .catch_copy small { 
	font-size: 3rem;
	display: block;
}
.course_01 #main_visual { 
	background: url("../images/common/mv_route_01.jpg") no-repeat center;
	background-size: cover;
	height: 30vh;
	min-height: 300px;
}
.course_02 #main_visual { 
	background: url("../images/common/mv_route_02.jpg") no-repeat center bottom;
	background-size: cover;
	height: 30vh;
	min-height: 300px;
}
.course_03 #main_visual { 
	background: url("../images/common/mv_route_03.jpg") no-repeat center;
	background-size: cover;
	height: 30vh;
	min-height: 300px;
}
.course_04 #main_visual { 
	background: url("../images/common/mv_route_04.jpg") no-repeat center bottom;
	background-size: cover;
	height: 30vh;
	min-height: 300px;
}
.access #main_visual { 
	background: url("../images/common/banner.jpg") no-repeat center bottom;
	background-size: cover;
	height: 30vh;
	min-height: 300px;
}
.access #main_visual p{
	transform: translateY(30px)
}
.home #main_visual {
	margin-top: 30px;
	/*height: 70vh;
	background: url("../images/home/mv.jpg") no-repeat 50%;
	background-size: cover;*/
}

.course_model #main{
	padding-top: 80px;
}

.block-book {
	text-align: center;
	padding: 50px;
}
.block-book .btn-book{
	display: inline-block;
	background: #e38b00;
	color: #fff;
	line-height: 1;
	padding: 20px 60px;
}
.block-book .btn-book:hover{
	background: #ec9814;
}

@media screen and (max-width: 768px){
	.page #main_visual { 
		height: 40vh!important;
		min-height: 200px;
	}
	#main_visual .catch_copy { 
		font-size: 2rem;
		position: absolute;
		left: 20px;
		bottom: 15%;
	}
	.home #main_visual {
		margin-top: 45px;
	}
	.course_model #main{
		padding-top: 40px;
	}
	.block-book {
		padding: 25px;
	}
}



/*------------------------------------------------

	ナビ　nav

------------------------------------------------*/

@media screen and (min-width: 991px){
    .sp-navigation { display: none}    
}
@media screen and (max-width: 990px){
    nav { display: none}  
}
/* ----------------------------------------------------
	
	モーダルナビ　sp-navigation
	 
---------------------------------------------------- */	
.menu-btn {
    position: fixed;
    top: 18px;
    right: 3%;
    width: 50px;
    height: 50px;
    line-height: 50px;
    cursor: pointer;
    z-index: 101;
	background:url( ../images/open.png) no-repeat 0 0;
	background-size: 50px auto; -webkit-background-size: 50px auto;
	text-indent: 100%;
	overflow: hidden;
	white-space: nowrap;
}

.menu-btn span:after {
    content: attr(data-txt-menu);
}

/* 開閉用ボタンがクリックされた時のスタイル */
.open .menu-btn {
	background:url(../images/close.png) no-repeat 0 0;
	background-size: 50px auto; -webkit-background-size: 50px auto;
	text-indent: 100%;
	overflow: hidden;
	white-space: nowrap;
}

.menu {
    position: fixed;
    display: table;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(255,255,255,.97);
    -webkit-transition: all .5s;
    transition: all .5s;
    visibility: hidden;
    opacity: 0;
	z-index: 100;
}

.menu ul {
    display: table-cell;
    vertical-align: middle;
	padding-top: 30px;
}

.menu li {
    width: 90%;
    height: 50px;
    line-height: 50px;
    margin: 0 auto;
	padding-left: 0;
    text-align: left;
	border-top: solid 1px #ddd;
	background: url(../images/arrow-1.png) no-repeat 95% 50%;
}
@media (max-width:320px){
.menu li { line-height: 40px; height: 40px;}
}
.menu li:last-child { border-bottom: solid 1px #ddd;}

.menu li a {
    display: block;
    font-size: 1.4rem;
    color: #333;
	font-weight: 200;
	padding-left: 5%;
	-webkit-transition: all 0s;
    transition: all 0s;
}
.menu li a:hover {
    color: #111;
	text-decoration: none;
	background: url(../images/arrow-1.png) no-repeat 95% 50% #ddd;
	-webkit-transition: all 0s;
    transition: all 0s;
}

.hover {
	color: #111;
	text-decoration: none;
	background: url(../images/arrow-1.png) no-repeat 94% 50% #ddd;
}
/* 開閉用ボタンがクリックされた時のスタイル */
.open .menu {
    cursor: url(../images/cross.svg),auto;
    -webkit-transition: all .5s;
    transition: all .5s;
    visibility: visible;
    opacity: 1;
}


#sp-nav{
    /*position:fixed;にし、z-indexの数値を小さくして最背面へ*/
    position:fixed;
  z-index: -1;
  opacity: 0;/*はじめは透過0*/
    /*ナビの位置と形状*/
  top:0;
  width:100%;
  height: 100vh;/*ナビの高さ*/
  background:#fff;
    /*動き*/
  transition: all 0.3s;
}

/*アクティブクラスがついたら透過なしにして最前面へ*/
#sp-nav.panelactive{
  opacity: 1;
  z-index:999;
}

/*ナビゲーションの縦スクロール*/
#sp-nav.panelactive #sp-nav-list{
    /*ナビの数が増えた場合縦スクロール*/
    position: fixed;
    z-index: 999; 
    width: 100%;
    height: 100vh;/*表示する高さ*/
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}

/*ナビゲーション*/
#sp-nav ul {
    display: none;
    /*ナビゲーション天地中央揃え*/
    position: absolute;
    z-index: 999;
    top:35%;
    left:50%;
    transform: translate(-50%,-50%);
}

#sp-nav.panelactive ul {
    display: block;
}

/*リストのレイアウト設定*/

#sp-nav li{
  list-style: none;
    text-align: center; 
}

#sp-nav li a{
  color: #333;
  text-decoration: none;
  padding:10px;
  display: block;
  /*text-transform: uppercase;*/
  letter-spacing: 0.1em;
  font-weight: bold;
}

/*========= ボタンのためのCSS ===============*/
.openbtn1{
  position:fixed;
    z-index: 9999;/*ボタンを最前面に*/
  top:5px;
  right: 20px;
  cursor: pointer;
    width: 50px;
    height:50px;
}
  
/*×に変化*/  
.openbtn1 span{
    display: inline-block;
    transition: all .4s;
    position: absolute;
    left: 14px;
    height: 3px;
    border-radius: 2px;
  background-color: #333;
    width: 45%;
  }

.openbtn1 span:nth-of-type(1) {
  top:15px; 
}

.openbtn1 span:nth-of-type(2) {
  top:23px;
}

.openbtn1 span:nth-of-type(3) {
  top:31px;
}

.openbtn1.active span:nth-of-type(1) {
    top: 18px;
    left: 18px;
    transform: translateY(6px) rotate(-45deg);
    width: 30%;
}

.openbtn1.active span:nth-of-type(2) {
  opacity: 0;
}

.openbtn1.active span:nth-of-type(3){
    top: 30px;
    left: 18px;
    transform: translateY(-6px) rotate(45deg);
    width: 30%;
}
/*------------------------------------------------

	ごあいさつ　#greeting

------------------------------------------------*/
#greeting .greeting-inner {
	display: flex;
	justify-content: center
}
#greeting .summary {
	width: 80%
}
#greeting figure {
	width: 40%
}
#greeting h2{
	margin-bottom: 1em
}
@media screen and (min-width: 769px){
	/*#greeting .greeting-inner-wrap{
		margin-right:  calc( 50% - 50vw);
		padding-bottom: 50px
	}*/
}
@media screen and (max-width: 768px){
	#greeting {
		padding: 0
	}
	#greeting .greeting-inner{
		flex-wrap: wrap
	}
	#greeting .summary,
	#greeting figure {
		width: 100%
	}
}
/*------------------------------------------------

	YouTube　#yt_area

------------------------------------------------*/
.home_yt {
	margin: 100px auto 60px;/* 40px auto 60px*/
	width: 100%;
	max-width: 870px;
	aspect-ratio: 16 / 9;
}
.home_yt iframe {
	width: 100%;
	height: 100%;
}
.yt_area { 
	background:#edece7;margin: 50px calc(50% - 50vw);
	padding: 50px 20px
}
.yt_area iframe {
	border: none;
	width: 100%;
	max-width: 870px;
	margin: 0 auto;
	display: block
}
.band_image {
	margin: 0 calc(50% - 50vw);
	background: url("../images/band_image.jpg") no-repeat center;
	background-size: cover;
	height: 50vh
}
.band_wrap {
	background-size: cover;
  height: 100%;
  bottom: 30%;
  right: 0;
  left: 0;
  top: 0;
}
@media screen and (min-width: 769px){
	.yt_area iframe {
		height: 500px
	}
}
@media screen and (max-width: 768px){
	.yt_area iframe {
		height: 300px
	}
}




/*------------------------------------------------

	モデルコース　

------------------------------------------------*/

/* Common style */
.course_select{
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.course_select li{
	width: 48%;
	margin-bottom: 40px
}
.course_select figure {
	position: relative;
	overflow: hidden;
	background: #3085a3;
	text-align: center;
	cursor: pointer;
}
.course_select figure img {
	position: relative;
	display: block;
	min-height: 100%;
	max-width: 100%;
	opacity: 0.8;
}
.course_select figure figcaption {
	padding: 2em;
	color: #fff;
	text-transform: uppercase;
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
}
.course_select figure figcaption::before,
.course_select figure figcaption::after {
	pointer-events: none;
}
.course_select figure figcaption,
.course_select figure figcaption > a {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
/* Anchor will cover the whole item by default */
/* For some effects it will show as a button */
.course_select figure figcaption > a {
	z-index: 1000;
	text-indent: 200%;
	white-space: nowrap;
	font-size: 0;
	opacity: 0;
}
.course_select figure h2 {
	word-spacing: -0.15em;
}
.course_select figure h2 span {
	font-weight: 800;
}
.course_select figure h2,
.course_select figure p {
	margin: 0;
}
.course_select figure p {
	letter-spacing: 1px;
	font-size: 68.5%;
}
figure.effect-marley h2,
figure.effect-marley p {
	position: absolute;
	right: 30px;
	left: 30px;
	padding: 10px 0;
}
figure.effect-marley p {
	bottom: 30px;
	line-height: 1.5;
	-webkit-transform: translate3d(0,100%,0);
	transform: translate3d(0,100%,0);
}
figure.effect-marley h2 {
	top: 35%;
	font-weight: bold;
	-webkit-transition: -webkit-transform 0.35s;
	transition: transform 0.35s;
	-webkit-transform: translate3d(0,20px,0);
	transform: translate3d(0,20px,0);
}
figure.effect-marley:hover h2 {
	-webkit-transform: translate3d(0,0,0);
	transform: translate3d(0,0,0);
}
figure.effect-marley h2::after {
	position: absolute;
	top: 100%;
	left: 0;
	width: 100%;
	height: 4px;
	background: #fff;
	content: '';
	-webkit-transform: translate3d(0,40px,0);
	transform: translate3d(0,40px,0);
}
figure.effect-marley h2::after,
figure.effect-marley p {
	opacity: 0;
	-webkit-transition: opacity 0.35s, -webkit-transform 0.35s;
	transition: opacity 0.35s, transform 0.35s;
}
figure.effect-marley:hover h2::after,
figure.effect-marley:hover p {
	opacity: 1;
	-webkit-transform: translate3d(0,0,0);
	transform: translate3d(0,0,0);
}
@media screen and (max-width: 768px){
	.course_select li{
		margin-bottom: 20px
	}
	figure.effect-marley h2{
		font-size: 1rem;
		top: 20%;
	}
}


.course_information h2 {
	color: #74bb31;
	font-size: 4rem;
	margin-bottom: 1em;
	line-height: 1.3
}
.course_information h2 small {
	color: #999;
	display: block;
	font-size: 2rem
}
.course_information .subttl {
	font-weight: bold;
	display: block;
	font-size: 2rem
}
.course_map {
	max-width: 870px;
	margin: 50px auto;
	display: block
}
.course_information .media_info {
	margin: auto;
}
.course_information .media_info h3 {
	margin-bottom: 30px
}
.course_information .media_info .summary{
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between
}
.course_information .media_info .summary .fig {
	max-width: 200px;
	height: auto
}
.course_information .media_info .summary .txt {
	width: calc(100% - 240px)
}

@media screen and (max-width: 768px){
	.course_information .media_info .summary .txt {
		width: 100%
	}
	.course_information h2 {
		font-size: 2rem;
	}
	.course_information h2 small {
		font-size: 1.3rem
	}
}


.course_schedule h3 {
	margin-bottom: 50px;
	font-size: 3rem
}
.schedule_day {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	margin-bottom: 50px
}
.schedule_day .summary {
	width: 55%
}
.schedule_day .fig {
	width: 40%
}
.schedule_day .date {
	background: #74bb31;
	color: #fff;
	padding: 5px 10px;
	display: inline-block;
	margin-bottom: 1em
}
.schedule_day h4 {
	font-size: 2rem;
	margin-bottom: .3em
}
.schedule_m {
	border-left: solid 3px #74bb31;
	padding-left: 20px
}
.course_act_s {
  display: flex;
}
.course_act {
	margin: 0 calc(50% - 50vw);
	padding: 5% 5% 0;
	background: #edece7;
}
.course_act h3 {
	color: #74bb31;
	font-size: 2.4rem
}
.course_act h3 + p {
	margin-bottom: 50px
}
.course_act_inner {
	max-width: 1000px;
	margin: 0 auto;
	padding-bottom: 50px;
}
.course_act_inner:last-child{
	border-bottom: solid 1px #ccc
}
.last_act .course_act_inner:last-child{
	border: none
}
.course_act_inner h4 {
	margin-bottom: 1em;
	font-size: 2rem
}
.schedule_l {
	border-bottom: solid 1px #ccc;
	padding-bottom: 50px;
	margin-bottom: 50px
}
.schedule_l .summary {
	width: 37%
}
.schedule_day .summary.summary_02{
	width: 100%!important
}
.timeline {
	width: 60%;
	background: #f8f7f5;
	padding: 20px
}
.timeline dl {
	margin-bottom: 20px
}
.timeline .tl_vehicle {
	color: #74bb31;
	font-weight: bold;
	font-size: 1.8rem;
	padding-left: 60px;
}
.timeline .tl_vehicle.i_car {
	background: url("../images/common/i_car.png") no-repeat 0 5px;
	background-size: 42px auto;
}
.timeline .tl_vehicle.i_bus {
	background: url("../images/common/i_bus.png") no-repeat 0 6px;
	background-size: 42px auto;
}
.timeline .tl_vehicle.i_train {
	background: url("../images/common/i_train.png") no-repeat 4px 0;
	background-size: 34px auto;
}
.timeline .tl_vehicle.i_shinkansen {
	background: url("../images/common/i_shinkansen.png") no-repeat 4px 0;
	background-size: 34px auto;
}
.timeline .tl_vehicle.i_walk {
	background: url("../images/common/i_walk.png") no-repeat 4px 0;
	background-size: 34px auto;
}
.timeline .tl_place {
	width: 60%;
	position: relative
}
/*
.timeline .tl_place::before{
	content: "";
	width: 2px;
	height: calc(100% - 50px);
	background: #74bb31;
	position: absolute;
	left: 20px;
	top: 40px;
}
*/
.timeline .tl_place_name {
	font-weight: bold;
	font-size: 1.8rem;
	padding-left: 60px;
	padding-bottom: 3px
}
.timeline .tl_place_name.i_marker {
	background: url("../images/common/i_marker.png") no-repeat 0 0;
	background-size: 42px auto;
}
.timeline .tl_place_name.i_station {
	background: url("../images/common/i_station.png") no-repeat 0 0;
	background-size: 42px auto;
}
.tl_place_info {
	padding-left: 60px;
}
.timeline .fig {
	padding: 0 0 10px 10px;
}
.timeline dd {
	display: flex;
	justify-content: space-between;
}
.timeline dl:last-of-type .tl_place::before{
	content: none
}

.timeline dd{
	position: relative
}
.timeline dd::before{
	content: "";
	width: 2px;
	height: calc(100% - 50px);
	background: #74bb31;
	position: absolute;
	left: 20px;
	top: 40px;
}
.timeline dl:last-of-type dd::before{
	content: none
}

.sticky {
	overflow: scroll
}

.entry-wrap {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	gap:3%
}
.entry-wrap::after{
	content: "";
	width: 22.75%;
	display: block;
}
.entry-item {
	width:  22.75%;
	margin-bottom: 30px;
	background: #aaa;
}
.entry {
	padding-bottom: 0px;/*20px*/
	height: 100%;
	position: relative;
	display: flex;
	flex-direction: column;
	background: #edece7;/*fff*/
	-webkit-transition: all 0.3s ease-in-out;
    -o-transition: all 0.3s ease-in-out;
    transition: all 0.3s ease-in-out;
}
.entry a {
	position: absolute;
	top: 0;
	left:0;
	bottom: 0;
	right: 0;
	z-index: 1
}
.entry:hover {
	-webkit-transition: all 0.3s ease-in-out;
    -o-transition: all 0.3s ease-in-out;
    transition: all 0.3s ease-in-out;
	transform: translateY(-3px)
	/*box-shadow: 0 8px 15px 0 rgba(0, 0, 0, .2)!important;*/
}
.entry .summary {
	padding: 5px 0px
}
.entry .summary p {
	margin: 0;
	line-height: 1.2
}
.entry .ttl {
	color: #333;
	display: block;
	margin: 0 0 10px
}
.entry figure img {
	display: block;
    height: 200px;
    object-fit: cover;
    width: 100%;
}
.entry-wrap .level_ttl {
	width: 100%
}
.entry-wrap .level_ttl span {
	display: block;
}
.entry-wrap .level_ttl i {
	display: inline-block;
	color: #fff;
	background: #74bb31;
	padding: 0 10px;
	font-style: normal
}
@media screen and (min-width:769px){
	.course_act_s li {
		 width: calc(25% - 20px);
		margin-right: 20px
	}
	.course_act_s li:nth-of-type(4n){
		margin-right: 0
	}
}
@media screen and (max-width:768px){
	.schedule_day .summary,
	.schedule_day .fig {
		width: 100%
	}
	.entry-item {
		width:  1000%;
	}
	.course_act_s {
		flex-wrap: wrap
	}
	.course_act_s li {
		 width: calc(50% - 10px);
	}
	.course_act_s li:nth-child(odd){
		margin-right: 20px
	}
	.schedule_l .summary,
	.timeline,
	.timeline .tl_place{
		width: 100%;
		
	}
	.timeline dd {
		flex-wrap: wrap
	}
	.timeline .fig {
		transform: translateX(50px);
		width: calc(100% - 60px)
	}
}



#courses {
	background: #edece7;
	margin-bottom: 50px;
}
#courses .course_act_inner:last-child{
	border: none
}



/*------------------------------------------------

	お問い合わせ　#inquiry

------------------------------------------------*/
#inquiry { margin-top: 100px}
#inquiry h3 span { display: inline-block;
	background-image: linear-gradient( to right,#ded548, #ded548);
	background-size: auto 8px;
	background-position: left bottom 3px;
	background-repeat: repeat-x
	}
#inquiry h3 img { max-width: 273px}
#inquiry div { border: solid 1px #333; padding: 50px 30px; text-align: center}
#inquiry small { font-size: 1.6rem}
@media screen and (min-width:1025px){
	#inquiry ul { margin: 0 auto; width: 50%}
}
@media screen and (max-width:1024px){
	#inquiry ul { margin: 0 auto; width: 60%}
}
@media screen and (min-width: 769px){
	#inquiry h3 { margin-bottom: 50px}
	#inquiry li { font-size: 2.4rem; line-height: 48px; text-align: left}
	#inquiry small { margin-right: 1em}
	#inquiry .tel span { background: url(../images/icon-sp.png) no-repeat 0 0; display: inline-block; padding-left: 68px; background-size: 48px auto; -webkit-background-size: 48px auto}
	#inquiry .mail span { background: url(../images/icon-mail.png) no-repeat 0 0; display: inline-block; padding-left: 68px; background-size: 48px auto; -webkit-background-size: 48px auto}
}
@media screen and (max-width:768px){
	#inquiry h3 { margin-bottom: 60px}
	#inquiry h3 img { max-width: 200px}
	#inquiry ul { margin: 0 auto; width: 100%}
	#inquiry p { margin-bottom: 50px}
	#inquiry p span,
	#inquiry small { display: block}
	#inquiry .tel { margin-bottom: 50px}
	#inquiry .tel span { font-size: 2rem; background: url(../images/icon-sp.png) no-repeat 50% 0; padding-top: 40px; background-size: 34px auto; -webkit-background-size: 34px auto}
	#inquiry .mail span { font-size: 2rem; background: url(../images/icon-mail.png) no-repeat 50% 0; padding-top: 40px; background-size: 34px auto; -webkit-background-size: 34px auto}
}
@media screen and (max-width:320px){
	#inquiry .mail span { font-size: 1.7rem}
}


#group-banner ul { max-width: 600px; margin: 0 auto}
#group-banner li { width: 28%}
#group-banner li img { border: solid 1px #ccc}


/*------------------------------------------------

	フッター　footer

------------------------------------------------*/
footer .btn-return { width: 60px; position:fixed; bottom: 5%; right: 1%;}
footer .btn-return a {background: #555; color: #fff; width: 60px; line-height: 60px; border-radius: 50%; display: block}
footer .btn-return a:hover{transform: translateY(-5px)}
.more_info {
	background: #f5f4ee;
	text-align: center;
	padding:  5%
}
.more_info h2 {
	margin-bottom: 1em
}
.more_info img {
	max-width: 200px;
	height: auto
}


#footer {
  background: #fff;
  border-top: 4px solid #e8e8e8;
  padding: 40px 0 40px;
  position: relative;
  z-index: 10;
  width: 100%;
}

.copry_right {
  color: #848484;
  text-align: center;
}
.cc-revoke.cc-bottom {
  position: absolute;
  font-size: 12px;
  color: #000 !important;
  background-color: #fff !important;
  border: 1px solid #000 !important;
  bottom: 55px !important;
  left: 0 !important;
  right: 0 !important;
  margin: auto;
  width: 150px !important;
  border-radius: 5em !important;
  justify-content: center;
}

.b_ttl {
  font-size: 30px;
  font-weight: 500;
  font-family: 'Poppins', sans-serif;
  line-height: 40px;
  text-align: center;
  margin-bottom: 50px;
	
}

.b_ttl.fontB {
  font-size: 120px;
  line-height: 125px;
}
.b_ttl span {
  display: block;
}

.b_ttl .small_txt {
  font-size: 60px;
  line-height: 70px;
  margin-top: 10px;
}

.fl_item {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
/*
.js-fadein {
  opacity: 0;
  transform: translateY(30px);
  transition: 2s ease;
}

.js-fadein.done {
  opacity: 1;
  transform: translateY(0);
}

.fadein_order>* {
  opacity: 0;
  transform: translateY(30px);
  transition: 2s ease;
}

.fadein_order .done {
  opacity: 1;
  transform: translateY(0);
}

.fadein_order li:nth-child(2) {
  transition-delay: 0.5s;
}

.fadein_order li:nth-child(3) {
  transition-delay: 1s;
}

.fadein_order li:nth-child(4) {
  transition-delay: 1.5s;
}

.fadein_order li:nth-child(5) {
  transition-delay: 2s;
}

.fadein_order li:nth-child(6) {
  transition-delay: 2.5s;
}

.fadein_order li:nth-child(7) {
  transition-delay: 3s;
}

.fadein_order li:nth-child(8) {
  transition-delay: 3.5s;
}

.fadein_order li:nth-child(9) {
  transition-delay: 4s;
}

.fadein_order li:nth-child(10) {
  transition-delay: 4.5s;
}
*/

.inner {
  margin: 0 auto;
  padding: 0 20px;
  max-width: 1166px;
  position: relative;
  z-index: 2;
}
/* hotel_section */
#hotel_section {
  background: url(../images/common/bg_hotel.jpg) no-repeat center top;
  background-size: cover;
  margin-top: 145px;
  padding: 0 0 170px;
}

#hotel_section .b_ttl {
  position: relative;
  top: -62px;
}

#hotel_section .hotel_list li {
  width: 24%;
  position: relative;
}

#hotel_section .hotel_list li a {
  background: #fff;
  border-radius: 10px;
  -webkit-border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 40px;
  transition: all 1s;
  height: 100%;
  width: 100%;
}

#hotel_section .hotel_list li a:hover {
  opacity: 0.7;
  transform: scale(1.05);
}

#info_section {
  padding: 100px 0 0;
}

#info_section h2,
#product_section h2{
  font-weight: bold!important;
}

#info_section .banner {
  position: relative;
  text-align: center;
}

#info_section .banner a {
  display: block;
  position: relative;
  overflow: hidden;
}

#info_section .banner a .banner_img {
  transition: linear 0.5s;
}

#info_section .banner a:hover .banner_img {
  opacity: 0.7;
  transform: scale(1.05);
  transition: linear 0.5s;
}

#info_section .banner span {
  display: block;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 370px;
}

#info_section .banner span>img {
  display: block;
  margin: 0 auto;
}

#info_section .banner .logo_txt {
  margin-top: 15px;
  width: 58%;
}
#info_section .banner-osaka {
	max-width: 600px;
	margin: 80px auto
}

#info_section .info_banners {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
}
#info_section .info_banners .info_banners_item {
	width: calc((100% - 50px)/2);
	margin-bottom: 50px;
}
#info_section .info_banners .banner-osaka {
	margin: 0px auto
}

#product_section{
	padding: 100px 0
}
#product_section .logo_kochi {
  margin: 0 auto;
  width: 210px;
}

.sns_list {
  position: fixed;
  top: 35%;
  right: 20px;
  z-index: 0;
  opacity: 0;
  transition: all 0.5s;
  transition-delay: 1.6s;
}

.sns_list.foot_position {
  position: static;
  padding: 70px 0 0;
  opacity: 1;
  display: flex;
  justify-content: space-between;
  width: 380px;
  margin: auto;
}

.sns_list li {
  margin-top: 17px;
}

.sns_list li a {
  background: #fff;
  border: 2px solid #fff;
  border-radius: 50%;
  -webkit-border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 7px;
  height: 30px;
  width: 30px;
  text-align: center;
}

.sns_list.foot_position li a {
  height: 60px;
  width: 60px;
  padding: 16px;
	border: 2px solid #e8e8e8
}

.sns_list.border li a {
  border: 2px solid #e8e8e8;
}

.sns_list li .weibo {
  height: 16px;
  width: 16px;
}

.sns_list.foot_position li .weibo {
  height: 22px;
  width: 22px;
}

.sns_list li a i {
  color: #3B5998;
  font-size: 17px;
}

.sns_list.foot_position li a i {
  font-size: 26px;
}

.sns_list li a .fa-youtube-play {
  color: #ff0f0f;
}

.sns_list li a .fa-twitter {
  color: #1DA1F2;
}

.sns_list li a:hover {
  transform: scale(1.2);
}


.sp {
  display: none;
}


@media screen and (max-width:768px){
.pc {
  display: none;
}

.sp {
  display: block;
}
.inner {
  padding: 0 30px;
  max-width: 100%;
}
	.b_ttl {
  font-size: 15px;
  line-height: 30px;
  margin-bottom: 30px;
}

.b_ttl.fontB {
  font-size: 50px;
  line-height: 60px;
}

.b_ttl .small_txt {
  font-size: 25px;
  line-height: 30px;
  margin-top: 10px;
}

/* hotel_section */
#hotel_section {
  background: url(../images/common//bg_hotel.jpg) no-repeat center top;
  background-size: cover;
  margin-top: 100px;
  padding: 0 0 25px;
}

#hotel_section .b_ttl {
  margin-bottom: 0;
  top: -29px;
}

#hotel_section .hotel_list li {
  margin-bottom: 4%;
  width: 48%;
}

#hotel_section .hotel_list li a {
  padding: 0px 20px;
  height: 20vw;
}

#hotel_section .hotel_list li a img {
  width:90%;
}

#hotel_section .hotel_list li a:nth-child(4) img {
  width:100%;
}

/* info_section */
#info_section {
  padding: 70px 0 0;
}

#info_section .banner {
  margin: 0 -15px;
  position: relative;
  text-align: center;
}

#info_section .banner span {
  width: 70%;
}

#info_section .banner .logo_img {
  width: 100%;
}

#info_section .banner .logo_txt {
  margin-top: 8px;
  width: 60%;
}
	
#info_section .banner-osaka {
	max-width: 90%;
	margin: 50px auto
}
	
#product_section {
  padding: 70px 0 60px;
}

#product_section .logo_kochi {
  margin: 0 auto;
  width: 110px;
}
.sns_list.foot_position {
  width: 250px;
}

.sns_list li {
  margin: 0 10px;
}

.sns_list.foot_position li a {
  height: 40px;
  width: 40px;
  padding: 10px;
}

.sns_list.foot_position li a i {
  font-size: 20px;
}
#footer {
  border-top: 2px solid #e8e8e8;
  padding: 20px 0 20px;
}
	.copry_right {
  font-size: 10px;
  line-height: 18px;
}

.copry_right {
  color: #848484;
  text-align: center;
}

.cc-revoke.cc-bottom {
  bottom: 12px !important;
  width: 30% !important;
}

}





#header{
	position: fixed;
	top:0;
	left: 0;
	right: 0;
	display: flex;
	align-items: center;
	width: 100vw;
	padding: 10px 20px;
	background: rgba(255,255,255,0.85);
	z-index: 3
}
#header h1 { 
	width: 100%;
	max-width: 180px;
	height: 36px;
}
#header .logo-osaka{
	width: 40px;
	margin-left: 25px;
	margin-right: auto;
}
#header .logo-osaka img{
	width: 100%;
	max-width: 40px;
	height: auto
}

#g-nav ul{
	list-style: none;
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
}

#g-nav ul li a{
	display: block;
	text-decoration: none;
	color: #111;
	padding:0 10px;
	transition:all 0.3s;
}
#g-nav ul li a:hover{
	color:#74bb31;	
}

.home #g-nav ul li:nth-child(1) a,
.course_01 #g-nav ul li:nth-child(2) a,
.course_02 #g-nav ul li:nth-child(3) a,
.course_03 #g-nav ul li:nth-child(4) a,
.course_04 #g-nav ul li:nth-child(5) a{color:#74bb31;}
.openbtn1{display: none}

@media screen and (max-width:1190px){
	#g-nav ul li{
		width: 35%
	}
}
@media screen and (max-width:990px){
	.openbtn1{display: block}
	#g-nav{display: none}
}
@media screen and (max-width:640px){
	#header {
		height: 54px
	}
	#header h1 { 
		max-width: 120px;
		height: 24px;
		transform: translateY(-10px)
	}
	#header .logo-osaka{
		width: 35px;
		margin-left: 20px;
		margin-right: auto;
	}
}
@media screen and (max-width:320px){
	#header .logo-osaka{
		width: 30px;
		margin-left:10px;
		margin-right: auto;
	}
}



#language {
    position: absolute;
    right: 30px;
    top: 80px;
    z-index:2
}
#language p {
    margin:0
}
#language .btn-langnav {
    color: #fff;
    text-decoration: none;
    line-height: 40px;
    background: #111;
    padding: 0px 20px 0 20px;
    display:block;
	font-size: 1.4rem
}
#language #langnav {
    position: absolute;
    right: 0;
    top: 40px;
    text-align: center;
    list-style: none;
    padding: 0;
    margin: 0;
    display:none
}
#language #langnav li {
    margin-top:1px
}
#language #langnav li span,
#language #langnav li a {
    color: #aaa;
    text-decoration: none;
    background: rgba(0, 0, 0, 0.5);
    padding: 10px 16px;
    display:block;
	font-size: 1.2rem
}

#language #langnav li a {
    color: #fff;
    background: rgba(0, 0, 0, 0.7);
    opacity: 1;
    transition:opacity .4s ease 0s
}

#language #langnav li a:hover {
    opacity:.6
}
@media screen and (max-width: 768px) {
    #language {
        position: fixed;
        right: 85px;
        top:13px
    }

    #language .btn-langnav {
        font-size: 1.2rem;
        line-height: 30px;
        padding:0 10px
    }

    #language #langnav {
        top:31px
    }
}

.access section {
	margin-bottom: 100px;
}
.access section h2 {
	color: #74bb31;
	font-size: 4rem;
	margin-bottom: 1em;
	line-height: 1.3
}
.useful_box {
	background: #f8f8f8;
	padding: 20px;
	margin-bottom: 20px;
}
.useful_box_inner {
	display: flex;
	flex-wrap: wrap
}
.useful_box_inner .summary {
	width: 85%;
}
.useful_box_inner .fig {
	width: 15%;
	text-align: right
}
.useful_box_inner .fig img {
	width: 100%;
	max-width: 80px;
	height: auto
}
.moreinfo_box {
	padding: 20px 30px;
	text-align: center;
	width: calc(100% / 3);
}
.moreinfo_box:nth-child(2){
	border: dashed #ddd;
	border-width: 0 2px
}
.moreinfo_box .fig {
	text-align: center;
	width: 100%;
	margin-top: 20px
}
.moreinfo_box .fig img {
	display: inline-block;
	margin: 0 10px 20px;
	width: 30%;
	height: auto;
}
.useful_box_inner .summary a,
.moreinfo_box a {
	word-break: break-all;
}
.moreinfo_box_container{
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
@media screen and (max-width: 768px){
	.access #main_visual {
		height: 20px!important;
	}
	.access #main_visual .catch_copy {
		width: 80%;
	}
	.access section h2{
		font-size: 2rem;
	}
	.useful_box_inner .summary,
	.useful_box_inner .fig {
		width: 100%;
	}
	.useful_box_inner .summary{
		margin: 20px;
	}
	.useful_box_inner .fig{
		text-align: center
	}
	.moreinfo_box {
		width: 100%
	}
	.moreinfo_box:nth-child(2){
		border-width: 2px 0
	}
}