@charset "utf-8";
/* CSS Document */

/*基本*/

body{
	margin: 0 auto;
	background: #FFFEF8;
}

ul{
	list-style: none;
}

a{
	text-decoration: none;
	color: #3D3838;
	transition: 0.25s;
}

a:hover{
	opacity: 0.7;
}

section{
	padding: 50px 20px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap:50px 0;
}

img{
	width: 100%;
}

.green{
	background: #E6F8CB;
	position: relative;
}

.blue{
	background: #CEF2EC;
}

video{
	width: 100%;
	height: 600px;
	object-fit: cover;
}

main{
	padding-bottom: 100px;
}

.wave{
	position: relative;
	margin:20px auto;
}

.green.wave::before{
	content: "";
	background: url("images/border_wave_green.svg") no-repeat bottom;
	width: 100%;
	height: 21px;
	position: absolute;
	top:-20px;
	left: 0;
	background-size: 100% auto;
}

.green.wave::after{
	content: "";
	background: url("images/border_wave_green.svg") no-repeat bottom;
	width: 100%;
	height: 21px;
	position: absolute;
	bottom:-20px;
	right: 0;
	transform: rotate(180deg);
	background-size: 100% auto;
}

.blue.wave::before{
	content: "";
	background: url("images/border_wave_blue.svg") no-repeat bottom;
	width: 100%;
	height: 21px;
	position: absolute;
	top:-20px;
	left: 0;
	background-size: 100% auto;
}

.blue.wave::after{
	content: "";
	background: url("images/border_wave_blue.svg") no-repeat bottom;
	width: 100%;
	height: 21px;
	position: absolute;
	bottom:-20px;
	right: 0;
	transform: rotate(180deg);
	background-size: 100% auto;
}



/*font*/

body{
	font-family: "Zen Maru Gothic", serif;
	color: #3D3838;
	}

h1{
	font-size: 0;
}

h2,h3,h4,.T_top_tour_en,.T_sub_youtube,.tour_tags_column,
.TAG,th{
	font-family: "Kaisei Opti", serif;
	font-weight: 500;
}

h2{
	font-size: 25px;
	text-align: center;
}


@media screen and (min-width:800px){
	h2{
		font-size: 40px;
	}
	section{
		gap:70px 0}
}

/*moreボタン*/
.BT_more{
	display: inline-block;
	padding: 25px 75px;
	border: 1px solid #3D3838;
	font-size: 14px;
	font-weight: 500;
	position: relative;
}

.BT_more::before {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  background: #333;
  transform-origin: 100% 50%;
  transform: scaleX(0);
  transition: transform ease .3s;
}

.BT_more:hover {
  color: #FFFEF8;
}

.BT_more:hover::before {
  transform-origin: 0% 50%;
  transform: scaleX(1);
}




/*ページトップ*/

.booking_BT_wrap{
	display: block;
	position: sticky;
  bottom: 20px;
}

.booking_BT{
	text-align: center;
	position: absolute;
	display: flex;
	justify-content: center;
	align-items: center;
	bottom: 5px;
	right: 10px;
	width: 100px;
	height: 100px;
	background: url("images/BT_top.svg");
	background-size: cover;
	font-family: "Kaisei Opti", serif;
	font-weight: 700;
	font-size: 14px;
	transition: 0.25s;
}

.booking_BT:hover{
	transform: rotate(5deg);
}

@media screen and (min-width:800px){
	.booking_BT_wrap{
		bottom: 90px;
	}
	
	.booking_BT{
		width: 150px;
		height: 150px;
		bottom: -60px;
		right: 15px;
		font-size: 20px;
	}
	
}

/*アイキャッチ*/
.eyecatch{
	height: 200px;
	display: flex;
	justify-content: center;
	align-items: center;
}

.eyecatch h2{
	margin-top: 25px;
}

@media screen and (min-width:800px){
	.eyecatch{
		height: 400px;
	}	
	.eyecatch h2{
	margin-top: 50px;
}
}

/***************header***************/

header{
	font-weight: 500;
	position: fixed;
	width: 100%;
	z-index: 100;
}

.header_wrap{
	display: flex;
}

.menu ul{
	display: flex;
}


/*スマホハンバーガー*/
@media screen and (max-width:799px){
	
	/*レイアウト*/

	.header_wrap{
		background: #CEF2EC;
		padding: 80px 20px 20px;
		flex-direction: column;
		text-align: center;
		gap:40px;
		width: 100%;
	}
	
	.menu ul{
		flex-direction: column;
		gap:25px;
	}
	
	/*ハンバーガー*/
	header{
		width: auto;
		right: 0;
	}
	
	.header_wrap {
		position: fixed;
		  top: -500px;
		  left: 0;
 		 transition: top 0.3s ease;
		z-index: -50;
	}
#drawer-toggle:checked + .drawer_btn + .header_wrap {
  top: 0;
}	
	
	/*ボタン*/

	#drawer-toggle{
		display: none;
	}
	
	/* ハンバーガーアイコンの設置スペース */
.drawer_btn {
  display: flex;
  height: 100px;
  width: 90px;
  justify-content: center;
  align-items: center;
  position: relative;
  z-index: 100;/* 重なり順を一番上に */
  cursor: pointer;
}	
	
.drawer_btn span,
.drawer_btn span:before,
.drawer_btn span:after {
  content: '';
  display: block;
  height: 6px;
  width: 36px;
  border-radius: 3px;
  background: #333;
  transition: 0.5s;
  position: absolute;
  box-shadow: 0px 0px 2px #FFFEF8;
}
	
.drawer_btn span:before {
  bottom: 13px;
}

.drawer_btn span:after {
  top: 13px;
}

/* アイコンがクリックされたら真ん中の線を透明にする */
#drawer-toggle:checked ~ .drawer_btn span {
  background: rgba(255, 255, 255, 0);
	box-shadow: 0 0 0 0 rgba(255, 255, 255, 0);
}

/* アイコンがクリックされたらアイコンが×印になように上下の線を回転 */
#drawer-toggle:checked ~ .drawer_btn span::before {
  bottom: 0;
  transform: rotate(45deg);
	box-shadow: 0 0 0 0 rgba(255, 255, 255, 0);
}

#drawer-toggle:checked ~ .drawer_btn span::after {
  top: 0;
  transform: rotate(-45deg);
	box-shadow: 0 0 0 0 rgba(255, 255, 255, 0);
}
	
	
}

/*パソコン*/
@media screen and (min-width:800px){
	
	header input,header laber{
		display: none;
	}
	
header{
	background: #FFFEF8CC;
}

.header_wrap{
	justify-content: space-between;
	align-items: center;
	padding: 20px 5.21%;
	width: 100%;
	box-sizing: border-box;
	max-width: 1440px;
	margin: 0 auto;
}

.menu ul{
	flex-wrap: wrap;
	justify-content: center;
	padding: 0 50px;
	gap:5px 56px;
}
}

/*フッター*/

footer{
	display: flex;
	flex-direction: column;
	align-items: center;
	gap:5px;
	font-size: 12px;
	text-align: center;
}

footer nav ul{
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap:10px 20px;
	font-size: 14px;
	font-weight: 500;
}



/******************TOPページ***************/

/*トップ*/
.top_movie{
	position: relative;
}

.top_movie p{
	text-align: center;
	position: absolute;
	 left: 50%;
  top: 50%;
  transform: translate(-50%,-50%);
	color: #fff;
	font-weight: 500;
	font-size: 27.5px;
	white-space: nowrap;
	filter: drop-shadow(0px 4px 4px #3D38383c);
}

@media screen and (min-width:800px){
	.top_movie p{
		font-size: 40px;
	}
	
	.top_movie br{
		display: none;
	}
}


/*アバウト*/

.about_right{
	display: flex;
	flex-direction: column;
	align-items: center;
	gap:40px;
}

#TOP_about p{
	font-size: 14px;
}

@media screen and (min-width:1000px){
	#TOP_about{
		display: flex;
		padding-left: 0;
		flex-direction: row;
		justify-content: space-between;
		align-items: flex-end;
		position: relative;
		max-width: 1440px;
		margin: 0 auto 54px;
	}
	
	#TOP_about img{
		width: 950px;
		height: auto;
	}
	
	#TOP_about p{
		font-size: 18px;
	}
	
	.about_right{
		position: absolute;
		right: 66px;
		bottom: -34px;
		background: #FFFEF8;
		width: 519px;
		padding: 30px;
	}

	
}


/*ツアー一覧*/

.T_top_tour,.T_top_tour_en{
	font-size: 20px;
}

.T_top_tour_day{
	font-size: 14px;
	opacity: 0.7;
}

.top_tours_wrap{
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap:30px;
}

.top_tour{
	display: flex;
	flex-direction: column;
	width: 310px;
}

.top_tour_ex{
	display: flex;
	gap:5px;
	flex-direction: column;
	align-items: center;
	background: #FFFEF8CC;
	padding: 10px;
}



/*ブログ一覧*/


.top_blog{
	display: flex;
	flex-direction: column;
	max-width: 400px;
	font-size: 12px;
	gap:20px;
}

.top_blog h3{
	font-size: 16px;
}

.top_blog_new{
	margin-bottom:30px;
}

.top_blog_old{
	display: flex;
	flex-direction: column;
	align-items: center;
	gap:30px;
}

.top_blog_right{
	display: flex;
	flex-direction: column;
	align-items: center;
	gap:40px;
}

@media screen and (min-width:1000px){
	.top_blog_wrap{
		display: flex;
		gap:90px;
		padding: 30px 50px;
	}
	
	.top_blog{
		flex-direction: row;
		width: auto;
	}
	
	.top_blog img{
		width: 125px;
		height: 94px;
	}
	
	.top_blog_ex{
		width: 250px;
	}
	
	.top_blog_new .top_blog{
		flex-direction: column;
	}
	
	.top_blog_new .top_blog img{
		height: auto;
		width: auto;
		max-height: 434px;
		max-width: 575px;
	}
	
	.top_blog_new{
		max-width: 575px;
	}
	
	.top_blog_new .top_blog_ex{
		width: auto;
	}
	
	
	.top_blog_old{
		gap:20px;
	}
	
	.top_blog_new h3{
		font-size: 20px;
	}
	
	.top_blog_new p{
		font-size: 16px;
	}
	
}

/*youtube*/

#TOP_youtube img{
	max-width: 946px;
	height: auto;
}

.T_youtube{
	text-align: center;
}

.T_sub_youtube{
	font-size: 15px;
}

@media screen and (min-width:800px){
	.T_sub_youtube{
	font-size: 20px;
}
}

/*******************ツアー一覧************************/

.T_tours_tour{
	text-align: center;
	font-size: 20px;
}

.T_tours_tour_day{
	text-align: center;
	font-size: 20px;
	opacity: 0.7;
}

.tours_tours_wrap{
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap:50px;
	z-index: 0;
}

.tours_tours_wrap li{
	border: 1px solid rgba(61, 56, 56, 0.5);
	width: 290px;
}

.tours_tour{
	display: flex;
	flex-direction: column;
}


.tours_tour_ex{
	display: flex;
	gap:5px;
	flex-direction: column;
	align-items: center;
	background: #FFFEF8CC;
	padding: 10px;
}

.tour_sentence{
	padding:  40px 0px;
}

.tour_tag{
	display: inline-block;
	color: #FFFEF8;
	background: #3D3838;
	padding: 5px 10px
}

.tour_tags_column{
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 14px;
	gap:10px;
}

#tours .BT_more{
	padding: 20px 50px;
	margin-top: 40px;
}


/*************************BLOG***************************/

.blog_list{
	display: flex;
	flex-direction: column;
	gap:40px;
	max-width: 1000px;
}

.blog{
	display: flex;
	flex-direction: column;
	gap:20px;
	align-items: center;
	justify-content: center;
	border-bottom: 1px solid;
	
}

.TD_blog{
	margin-bottom: 10px;
}

.T_blog{
	font-size: 20px;
}

.TD_blog p{
	font-size: 15px;
}

.blog_ex{
	margin-bottom: 30px;
	font-size: 14px;
	text-align: center;
	display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 6;
    overflow: hidden;
	max-width: 400px;
}
.blog img{
	max-height: 350px;
	height: 100%;
	width: auto;
}


@media screen and (min-width:800px){
	.blog{
	flex-direction: row;
}
	.blog img{
	max-height: 250px;
}
	.T_blog{
	font-size: 20px;
}
	.TD_blog p{
	font-size: 18px;
}
	.TD_blog{
	margin-bottom: 20px;
}
	.blog_ex{
	text-align: left;
	font-size: 16px;
    -webkit-line-clamp: 7;
}
}




/******************about*********************/

#about h3{
	font-size: 25px;
}

#about main p{
	font-size: 14px;
}

.concept p{
	max-width: 850px;
	text-align: center;
}

.concept div{
	display: flex;
flex-direction: column;
	gap:20px;
}


.feature_wrap{
	display: flex;
	flex-direction: column;
	gap: 50px 40px;
	margin:0 15%;
}

.feature{
	display: flex;
	flex-direction: column;
	align-items: center;
	max-width: 300px;
	gap:20px;
	padding: 50px 20px;
	text-align: center;
	background: #FFFEF8;
}

.feature p{
	max-width: 330px;
	min-width: 200px;
}

.feature h4{
	font-size: 20px;
	position: relative;
}

.feature img{
	width: 70%;
}

.feature h4::before{
	content: "1";
	background: #CEF2EC;
	border-radius: 50%;
	position: absolute;
	top:-70px;
	left:50%;
	transform: translateX(-50%);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 50px;
	height: 50px;
}

.feature:nth-of-type(2) h4::before {
    content: "2";
}

.feature:nth-of-type(3) h4::before {
    content: "3";
}

.guide img{
	max-width: 300px;
	max-height: 300px;
	border-radius: 50%;
}

.guide p{
	overflow-wrap: break-word;
	max-width: 500px;
}

.guide_ex{
	display: flex;
	flex-direction: column;
	text-align: center;
	gap:30px;
}

.guide{
	padding-bottom: 0;
}


@media screen and (min-width:800px){
	#about main p{
		font-size: 18px;
	}
	#about h3{
		font-size: 40px;
		text-align: center;
	}
	.feature_wrap{
	flex-direction: row;
	justify-content: space-between;
}
	.feature h4{
	font-size: 25px;
}
	.feature{
		max-width: 350px;
		gap:40px;
	}
	.feature img{
	width: 80%;
}
}

/************FAQ****************/

#faq section{
	display: block;
}

details{
	margin: 0 auto;
}

.accordion {
	max-width: 1000px;
}

.accordion:not([open]) {
    margin-bottom: 7px;
}

.accordion summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
    padding: 1em 2em;
    border-radius: 5px;
    background-color: #e6f8cb;
    font-weight: 600;
    cursor: pointer;
	font-size: 18px;
	font-family: "Kaisei Opti", serif;
}

.accordion .aco2{
	background-color: #CEF2EC;
}

.accordion summary::-webkit-details-marker {
    display: none;
}

.accordion summary::after {
    transform: translateY(-25%) rotate(45deg);
    width: 7px;
    height: 7px;
    margin-left: 10px;
    border-bottom: 3px solid #fff;
    border-right: 3px solid #fff;
    content: '';
    transition: transform .3s;
}

.accordion[open] summary::after {
    transform: rotate(225deg);
}

.accordion p {
    transform: translateY(-10px);
    opacity: 0;
    margin: 0;
    padding: 1em 2em 2em 2em;
    color: #333333;
    transition: transform .5s, opacity .5s;
	font-size: 16px;
}

.accordion[open] p {
    transform: none;
    opacity: 1;
}

@media screen and (min-width:800px){
	
}

/*プライバシーポリシー*/

#privacy h3{
	font-size: 20px;
	margin:15px 0;
	text-align:left;
}

.LongSentence{
	padding:80px 13%;
}

.sentence{
	max-width: 1000px;
	margin: 0 auto;
}


/*************お問い合わせ・予約フォーム***************/

#contact main p,#booking main p{
	text-align: center;
	margin: 50px 15px;
}

#contact main a,#booking main a{
	color:rgba(247,151,95,1.00);
	text-decoration: underline;
}


#contact table,#booking table{
  border-collapse: collapse;
	max-width: 1000px;
	margin: 0 auto;
}

input,
textarea,select {
  background: #f8f8f8;
  display: block;
  font-size: 16px;
  padding: 12px 15px;
  width: 100%;
  transition: 0.2s;
  border-radius: 0;
}
 
input:focus,
textarea:focus{
  background: #CEF2EC80;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}
 
textarea[name="content"] {
  display: inline-block;
  width: 100%;
  height: 200px;
}
 
.form-table {
  width: 100%;
}
 
.form-table th,
.form-table td {
  padding: 20px;
  display: block;
  width: 100%;
  border: none;
}
 
.form-table th {
  background: #CEF2EC;
  padding-left: 50px;
  position: relative;
  text-align: left;
  width: 100%;
}

input[type="submit"]{
	background: none;
	border: 1px solid #3D383880;
	margin: 2em auto;
	width: auto;
	padding: 12px 35px;
}

input[type="submit"]:hover,input[type="submit"]:checked{
		background: #CEF2EC;
}

select{
	
}


@media screen and (min-width:800px){
.form-table th,
.form-table td {
	display: table-cell;
	width: auto;
    border: 1px solid #3D383880;
}
	input,select,
	textarea {
		width: 480px;
	}
	form{
		margin: 0 20px;
	}
	
}

/*色変え*/

#booking input:focus,
#booking textarea:focus {
  background: #E6F8CB80;
}

#booking .form-table th {
  background: #E6F8CB;
}
#booking input[type="submit"]:hover,#booking input[type="submit"]:checked{
		background: #E6F8CB;
}


/***********会社情報***************/

#company main{
	padding-top: 50px;
	padding-bottom: 50px;
}

#company table{
	font-size: 12px;
	margin: 0 auto;
}

#company table,#company th,#company td{
	border: 1px solid;
	border-collapse: collapse;
	text-align: left;
}
#company th,#company td{
	padding: 15px;
}

#company table p{
	margin:1em 0;
}

@media screen and (min-width:800px){
	#company table{
	font-size: 14px;
}
}


/****************ツアー詳細*****************/

.days_wrap{
	background: url("tours/img/schedule_wave.svg") no-repeat center;
	display: flex;
	flex-direction: column;
	gap:50px;
}

.schedule h3{
	font-size: 25px;
	text-align: center;
	margin: 50px;
}

.schedule section{
	display: block;
	padding: 0;
}


@media screen and (min-width:800px){
	.schedule  h3{
		font-size: 40px;
	}
}

.schedule h2 img{
	margin-top: 110px;
	max-width: 1100px;
	height: auto;
}

.schedule_ex{
	max-width: 800px;
	margin: 0 auto;
}

.TAG{
	display: flex;
	justify-content: space-around;
	max-width: 400px;
	margin: 20px auto;
	flex-wrap: wrap;
	gap:5px;
}

.TAG p{
	text-align: center;
	width: 150px;
	padding: 8px;
	font-size:14px;
	display: inline-block;
	border: 1px solid;
}

@media screen and (min-width:800px){
	.TAG{
	display: flex;
	max-width: 900px;
}
	.TAG p{
	width: 200px;
	padding: 15px;
}
}

/*スケジュール*/
.schedule{
	margin: 0 auto;
	padding:  0 20px 100px;
}

.days img{
	width: 315px;
	height: 315px;
}

.days{
	display: flex;
	flex-direction: column;
	align-items: center;
	gap:20px;
}

.days_ex_wrap{
	background: url("tours/img/ex_img.svg")no-repeat bottom center;
	background-size: contain;
	font-size: 14px;
	max-width: 400px;
}

.days_ex p:nth-child(2){
	font-weight: 450;
}

.days_ex p:nth-child(3){
	display: inline-block;
	margin: 1rem 0;
}

.schedule h4{
	font-size: 20px;
}

@media screen and (min-width:800px){
	.days img{
	width: 315px;
	height: 315px;
	}
	.days{
	flex-direction: row;
	max-width: 900px;
	padding: 0 30px;
	margin: 0px auto;
	gap:40px;
	justify-content: space-between;
	}
.days:nth-child(2n){
	flex-direction: row-reverse;
	}
	.schedule h4{
	font-size: 25px;
}
	.days_ex_wrap{
		font-size: 16px;
		height: 370px;
		display: flex;
		align-items: flex-start;
	}
	.days_img_wrap{
	display: flex;
	height: 370px;
	align-items: flex-end;
}
}

/*詳細*/

.schedule table{
	font-size: 14px;
	max-width: 927px;
	margin: 0 auto;
}

.schedule table,.schedule th,.schedule td{
	border: 1px solid;
	border-collapse: collapse;
	text-align: left;
}

.schedule th,.schedule td{
	padding: 15px;
}

.schedule table p{
	margin:1em 0;
}

@media screen and (min-width:800px){
	.schedule table{
	font-size: 16px;
}
}
