@charset "utf-8";
@font-face{
	font-family : "Noto Sans JP";
	font-style : normal;
	font-weight : 100;
	src : url( "../fonts/noto-sans-jp-v25-latin-400.eot" );
	src : local( "Noto Sans Japanese Thin" ) , local( "NotoSansJapanese-Thin" ) , url( "../fonts/NotoSansJP-Thin.ttf" ) format( "ttf" ) ,;
	font-display : swap;
}
@font-face{
	font-family : "Noto Sans JP";
	font-style : normal;
	font-weight : 300;
	src : url( "../fonts/noto-sans-jp-v25-latin-400.eot" );
	src : local( "Noto Sans Japanese Light" ) , local( "NotoSansJapanese-Light" ) , url( "../fonts/NotoSansJP-Light.ttf" ) format( "ttf" ) ,;
	font-display : swap;
}
@font-face{
	font-family : "Noto Sans JP";
	font-style : normal;
	font-weight : 400;
	src : url( "../fonts/noto-sans-jp-v25-latin-400.eot" );
	src : local( "Noto Sans Japanese Regular" ) , local( "NotoSansJapanese-Regular" ) , url( "../fonts/NotoSansJP-Regular.ttf" ) format( "ttf" ) ,;
	font-display : swap;
}
@font-face{
	font-family : "Noto Sans JP";
	font-style : normal;
	font-weight : 500;
	src : url( "../fonts/noto-sans-jp-v25-latin-700.eot" );
	src : local( "Noto Sans Japanese Medium" ) , local( "NotoSansJapanese-Medium" ) , url( "../fonts/NotoSansJP-Medium.ttf" ) format( "ttf" ) ,;
	font-display : swap;
}
@font-face{
	font-family : "Noto Sans JP";
	font-style : normal;
	font-weight : 700;
	src : url( "../fonts/noto-sans-jp-v25-latin-700.eot" ); /* IE9 Compat Modes */
	src : local( "Noto Sans Japanese Bold" ) , local( "NotoSansJapanese-Bold" ) , url( "../fonts/NotoSansJP-Black.ttf" ) format( "ttf" );
	font-display : swap;
}
@font-face{
	font-family : "Noto Sans JP";
	font-style : normal;
	font-weight : 900;
	src : url( "../fonts/noto-sans-jp-v25-latin-700.eot" ); /* IE9 Compat Modes */
	src : local( "Noto Sans Japanese Black" ) , local( "NotoSansJapanese-Black" ) , url( "../fonts/NotoSansJP-Bold.ttf" ) format( "ttf" );
	font-display : swap;
}

/* ------------------------------------------------------------
	共有
------------------------------------------------------------ */
.cta-btn{
	position : relative;
	z-index : 100;
	display : inline-block;
	width : fit-content;
	margin : auto;
	text-align : center;
}
.cta-btn-t{
	position : relative;
	z-index : 100;
	display : inline-block;
	width : fit-content;
	padding : 16px 60px;
	margin : auto;
	font-size : 18px;
	font-weight : 700;
	line-height : 1.5em;
	color : white;
	text-align : center;
	text-decoration : none;
	background : linear-gradient( #e70019 , #b60014 );
	border-radius : 50px;
}
@media all and ( min-width : 769px ){
	.cta-btn-t{
		font-size : 20px;
	}
}
.cta-btn img{
	width : 90%;
	max-width : 320px;
}
#container{
	width : 100%;
}
@media all and ( min-width : 769px ){
	.cta-btn img{
		max-width : 476px;
	}
}
.pc{
	display : none ! important;
}
.sp{
	display : block ! important;
}
@media all and ( min-width : 769px ){
	.pc{
		display : block ! important;
	}
	.sp{
		display : none ! important;
	}
}

/* ------------------------------------------------------------
	header
------------------------------------------------------------ */
body{
	width : 100%;
	margin : 0;
	font-family : "Noto Sans JP" , sans-serif;
}
#g-header{
	display : flex;
	max-width : 1200px;
	padding : 0 24px;
	margin : auto;
}
#g-header h1{
	display : inline-block;
	height : 44px;
	padding : 12px;
	margin : 0;
}
#g-header h1 a {

}
#g-header h1 img{
	height : 44px;
}

/* ------------------------------------------------------------
	top
------------------------------------------------------------ */
#main .top{
	position : relative;
}
#main .top .kv{
	width : 100%;
}
#main .top .kv img{
	width : 100%;
}
@media all and ( min-width : 769px ){
	#main .top .kv.kv-rw img{
		min-height : 450px;
		object-fit : cover;
	}
}
#main .top .cta-area{
	position : absolute;
	bottom : -40px;
	left : 0;
	right : 0;
	display : flex;
	flex-direction : column;
	margin : auto;
	text-align : center;
}
#main .top .cta-area.cta-area-t{
	bottom : -50px;
}
#main .top .cta-area .cta-btn{
	margin : auto;
}
#main .top .cta-area p{
	display : inline-block;
	margin : 0 auto 8px;
	font-size : 18px;
	font-weight : 600;
	color : #b20214;
	background : rgb( 255 255 255 / .6 );
	box-shadow : 2px 2px 8px 8px rgb( 255 255 255 / .6 );
}
#main .top .cta-area.cta-area-t p{
	font-size : 16px;
}
@media all and ( min-width : 769px ){
	#main .top .cta-area{
		bottom : -60px;
	}
	#main .top .cta-area-t{
		bottom : -30px;
	}
	#main .top .cta-area p{
		font-size : 24px;
		box-shadow : 2px 0 8px 8px rgb( 255 255 255 / .6 );
	}
	#main .top .cta-area.cta-area-t p{
		font-size : 22px;
	}
}

/* ------------------------------------------------------------
	section
------------------------------------------------------------ */
#main section{
	box-sizing : border-box;
	width : 100%;
	padding : 12px;
	margin-top : 64px;
}
#main section .sec-container{
	position : relative;
}
#main .section-title{
	margin : 0;
	font-size : 24px;
	font-weight : 600;
	text-align : center;
}
#main .section-en{
	position : absolute;
	top : -30px;
	left : -36px;
	width : 70px;
}
#main .section-en img{
	width : 100%;
}
@media all and ( min-width : 769px ){
	#main section .sec-container{
		max-width : 1200px;
		margin : auto;
	}
	#main .section-title{
		margin : 0 auto 48px;
		font-size : 36px;
		text-align : center;
	}
	#main .section-en{
		position : absolute;
		top : -80px;
		left : -24px;
		width : 150px;
	}
	#main .section-en img{
		width : 100%;
	}
}
#main .section-inner{
	width : 90%;
	max-width : 1088px;
	margin : 0 auto;
}

/* ------------------------------------------------------------
	各section
------------------------------------------------------------ */
/* webp対応 */
.webp #main .sec1{
	background : url( "../images/lp/sec1_bg.webp" ) center bottom / cover no-repeat;
}
.no-webp #main .sec1{
	background : url( "../images/lp/sec1_bg.png" ) center bottom / cover no-repeat;
}
#main .sec1{
	position : relative;
	width : 100%;
	padding : 80px 16px 100px;
	margin-top : 0;
	background : url( "../images/tour2025/sec1_bg.png" ) center bottom / cover no-repeat;
}
#main .sec1-ttl{
	color : white;
}
#main .sec1-ttl-ja{
	position : relative;
}
#main .sec1-ttl-ja::before{
	position : absolute;
	bottom : -16px;
	left : 50%;
	width : 36px;
	height : 1px;
	content : "";
	background : white;
	transform : translateX( -50% );
}
#main .sec1-list{
	display : flex;
	flex-direction : column;
	gap : 16px;
	justify-content : center;
	margin-top : 56px;
}
#main .sec1-item-top{
	display : flex;
	flex-direction : column;
	gap : 16px;
	justify-content : center;
	width : 100%;
}
#main .sec1-item-bottom{
	display : flex;
	flex-direction : column;
	gap : 16px;
	justify-content : center;
	width : 100%;
}
#main .sec1-item{
	position : relative;
	display : block;
	flex-direction : column;
	width : 100%;
	max-width : 310px;
	padding : 24px 0;
	margin : auto;
	overflow : hidden;
	color : #b00000;
	text-align : center;
	letter-spacing : .1em;
	background : white;
	border-radius : 10px;
}
#main .sec1-item::before{
	position : absolute;
	bottom : -1px;
	right : -2px;
	width : 30px;
	height : 30px;
	content : "";
	background : url( "../images/tour2025/corner.png" ) 0 / contain no-repeat;
	transform : rotate( 90deg );
}
#main .sec1-item p{
	margin : auto;
	font-size : 16px;
	font-weight : 700;
	line-height : 2;
	letter-spacing : 0;
}
#main .sec1-item span{
	font-size : 18px;
	font-weight : 700;
}
#main .sec2 .section-title{
	color : #b20214;
}
#main .sec2 .section-inner{
	max-width : 975px;
	margin : auto;
}
#main .sec2-list{
	display : flex;
	flex-direction : column;
	gap : 24px;
	margin-top : 56px;
}
#main .sec2-item{
	display : flex;
	gap : 40px;
	align-items : center;
	justify-content : space-between;
	padding : 24px;
	box-shadow : 3px 3px 2px rgb( 196 196 196 );
}
#main .sec2-item img{
	width : 360px;
	object-fit : cover;
	border-radius : 10px;
}
#main .sec2-ttl{
	font-size : 22px;
	font-weight : 700;
	color : #b00000;
	letter-spacing : .1em;
}
#main .sec2-txt{
	margin-top : 16px;
}
@media all and ( max-width : 768px ){
	#main .sec2{
		width : 100%;
		height : auto;
		padding-bottom : 50px;
		background-repeat : no-repeat;
		background-size : cover;
	}
	#main .sec2-list{
		margin-top : 56px;
	}
	#main .sec2-item{
		box-sizing : border-box;
		flex-direction : column;
		grid-gap : 18px;
		width : 100%;
	}
	#main .sec2-item img{
		max-width : 100%;
	}
	#main .sec2-txt{
		margin-top : 12px;
		font-size : 16px;
		letter-spacing : 1.12px;
	}
}
#main .sec03 .section-title{
	color : #b20214;
}
#main .sec03 .content{
	box-sizing : border-box;
	padding : 0 24px;
	margin : auto;
}
#main .sec03 .content ul{
	padding : 0;
}
#main .sec03 .content li{
	display : flex;
	align-items : center;
	justify-content : flex-start;
}
#main .sec03 .content li .checkbox{
	height : 21px;
}
#main .sec03 .content li img{
	height : 21px;
	margin-right : 16px;
}
#main .sec03 .content li .text-box{
	font-size : 16px;
	font-weight : 700;
	line-height : 21px;
	color : #b20214;
}
#main .sec03 .content hr{
	height : 3px;
	margin : 20px auto;
	background-image : linear-gradient( to right , #b20214 , #b20214 7px , transparent 7px , transparent 10px );
	background-repeat : repeat-x;
	background-size : 10px 3px;
	border : none;
}
#main .sec04{
	padding-top : 64px;
	background-image : url( "../images/lp/sec04-bg.png" );
	background-repeat : no-repeat;
	background-position : 50% 0%;
	background-size : cover;
}
#main .sec04 .section-title{
	margin : 0 auto 48px;
	color : white;
}
#main .sec04 .section-en{
	top : -20px;
}
#main .sec04 .story-list{
	position : relative;
	width : 94%;
	height : 100%;
	margin : 0 auto 64px;
}
#main .sec04 .story-list .slick-list{
	height : 100%;
}
#main .sec04 .story-list .slick-track{
	display : flex;
}
#main .sec04 .story-list img.slide-arrow{
	position : absolute;
	top : calc( 50% - 16px );
	z-index : 1;
	width : 32px;
	height : 32px;
	opacity : .8;
}
#main .sec04 .story-list img.prev-arrow{
	left : -4%;
	transform : rotate( -180deg );
}
#main .sec04 .story-list img.next-arrow{
	right : -4%;
}
#main .sec04 .story{
	max-width : 96%;
	height : auto;
	padding : 16px 24px;
	margin : auto;
	background : white;
}
#main .sec04 .story h3{
	margin : 0 auto 16px;
	font-size : 24px;
	color : #b20214;
	text-align : center;
}
#main .sec04 .story img{
	width : 100%;
	margin-bottom : 6px;
}
#main .sec04 .story .description{
	font-size : 12px;
	font-weight : 700;
	line-height : 1.5em;
	color : #b20214;
}
#main .sec04 .youtube{
	margin : auto;
}
#main .sec04 .youtube-box{
	position : relative;
	width : 100%;
	padding-top : 56.25%;
	margin-bottom : 48px;
}
#main .sec04 .youtube-box iframe{
	position : absolute;
	top : 0;
	right : 0;
	width : 100%;
	height : 100%;
}
#main .sec05{
	margin : 48px auto 24px;
}
#main .sec05 .cta-area {

}
#main .sec05 .section-title{
	margin : 0 auto 24px;
	color : #b20214;
}
#main .sec05 .section-en{
	top : -10px;
}
#main .sec05 .content ul{
	padding : 0 40px;
	list-style : none;
}
#main .sec05 .content li{
	margin-bottom : 36px;
	font-size : 16px;
	font-weight : 700;
	line-height : 1.5em;
	color : #b20214;
}
#main .sec05 .content li .question{
	margin-bottom : 6px;
}
#main .sec05 .content li .answer{
	display : flex;
	align-items : flex-start;
	justify-content : flex-start;
	margin-right : 10px;
}
#main .sec05 .content li .answer img{
	width : 13px;
	padding-bottom : 10px;
	margin : 0 10px 0 6px;
}
#main .sec05 .content li .answer p{
	margin : 12px auto 0;
}
#main .sec05 .cta-area{
	margin : auto;
	text-align : center;
}
#main #contact{
	max-width : 670px;
	margin : auto;
}
#main #contact .section-title{
	margin : 0 auto 24px;
	color : #b20214;
}
#main #contact .item-table{
	width : 100%;
}
#main #contact .item-table th{
	display : block;
	width : 100%;
	margin-bottom : 6px;
	text-align : left;
}
#main #contact .item-table th .txt ,
#main #contact .item-table th .item-txt{
	vertical-align : middle;
}
#main #contact .item-table th .txt{
	padding : 0 2px;
	margin-right : 12px;
	font-size : 16px;
	font-weight : 700;
	color : #b20214;
}
#main #contact .item-table th .item-txt{
	padding : 2px 4px;
	font-size : 12px;
	color : white;
	background : rgb( 182 0 20 );
}
#main #contact .item-table tr:last-child th{
	vertical-align : top;
}
#main #contact .item-table td{
	display : block;
	width : 100%;
	margin-bottom : 20px;
}
#main #contact .item-table td input{
	box-sizing : border-box;
	width : 100%;
	height : 48px;
	padding : 10px;
	font-size : 16px;
	resize : none;
	background : rgb( 248 248 248 );
	border : 1px solid rgb( 204 204 204 );
	border-radius : 4px;
}
#main #contact .item-table td select{
	box-sizing : border-box;
	width : fit-content;
	min-width : 160px;
	height : 48px;
	padding : 10px;
	font-size : 16px;
	resize : none;
	background : rgb( 248 248 248 );
	border : 1px solid rgb( 204 204 204 );
	border-radius : 4px;
}
#main #contact .privacy{
	box-sizing : border-box;
	margin-bottom : 20px;
	overflow : auto;
}
#main #contact .privacy{
	font-size : 15px;
	line-height : 2;
}
#main #contact .privacy a{
	padding : 2px 4px;
	font-size : 15px;
	color : #b20214;
}
#main #contact .privacy p.textRight{
	margin-bottom : 20px;
	text-align : right;
}
#main p.textCenter{
	margin : 0 auto 40px;
	text-align : center;
}
#main.confirm .privacy , #main.confirm p.textCenter{
	display : none;
}
#main #contact .btn{
	display : block;
	width : fit-content;
	min-width : 180px;
	max-width : 100%;
	padding : 16px 32px;
	margin : auto;
	line-height : 1.5em;
	line-height : 1.5;
	color : white;
	text-align : center;
	cursor : pointer;
	background : rgb( 182 0 20 );
	border : none;
	border-radius : 4px;
}
#main #contact .btn-gray{
	background : #a3a3a3;
}
#main #contact .complete-message{
	display : flex;
	align-items : center;
	justify-content : center;
	padding : 40px 16px 64px;
	line-height : 1.5em;
	text-align : left;
}
#main #contact .line-btn{
	margin-bottom : 48px;
	text-align : center;
}
#main #contact .line-btn a{
	display : block;
	width : fit-content;
	padding : 16px 32px;
	margin : auto;
	font-size : 18px;
	color : white;
	text-align : center;
	text-decoration : none;
	background : #06c755;
	border-radius : 6px;
}
@media all and ( min-width : 769px ){
	#main .sec1{
		padding : 120px 16px 100px;
	}
	#main .sec1-item-top ,
	#main .sec1-item-bottom{
		flex-direction : row;
	}
	#main .sec1-item{
		max-width : 310px;
		max-width : auto;
		padding : 40px 0;
		margin : 0;
	}
	#main .sec1 p{
		margin : auto;
		font-size : auto;
		line-height : 1.6;
		letter-spacing : .11em;
	}
	#main .sec1-item span{
		font-size : 20px;
		line-height : ;
	}
	#main .sec2 .section-title{
		color : #b20214;
	}
	#main .sec2 .section-inner{
		max-width : 975px;
		margin : auto;
	}
	#main .sec2-list{
		display : flex;
		flex-direction : column;
		gap : 24px;
		margin-top : 56px;
	}
	#main .sec2-item{
		display : flex;
		gap : 40px;
		align-items : center;
		justify-content : space-between;
		padding : 24px;
		box-shadow : 3px 3px 2px rgb( 196 196 196 );
	}
	#main .sec2-item img{
		width : 360px;
		object-fit : cover;
		border-radius : 10px;
	}
	#main .sec2-ttl{
		font-size : 22px;
		font-weight : 700;
		color : #b00000;
		letter-spacing : .1em;
	}
	#main .sec2-txt{
		margin-top : 16px;
	}
	#main .sec03{
		padding : 120px 0;
	}
	#main .sec03 .content ul{
		max-width : 640px;
		margin : auto;
	}
	#main .sec03 .content li{
		padding : 0 20px;
	}
	#main .sec03 .content li .checkbox{
		height : 40px;
	}
	#main .sec03 .content li img{
		height : 40px;
		margin-right : 32px;
	}
	#main .sec03 .content li .text-box{
		font-size : 24px;
	}
	#main .sec04{
		padding : 120px 0;
		background-image : url( "../images/lp/sec04-bg-pc.png" );
	}
	#main .sec04 .section-title{
		margin-bottom : 0;
		line-height : 4em;
	}
	#main .sec04 .content{
		max-width : 1016px;
		margin : auto;
	}
	#main .sec04 .story-list{
		margin-bottom : 48px;
	}
	#main .sec04 .story{
		width : 30%;
		padding : 16px 10px;
		margin : 0 1.5%;
	}
	#main .sec04 .story h3{
		margin-bottom : 20px;
		font-size : 24px;
	}
	#main .sec04 .story img{
		margin-bottom : 20px;
	}
	#main .sec04 .story .description{
		font-size : 16px;
	}
	#main .sec04 .youtube{
		max-width : 630px;
	}
	#main .sec04 .youtube-box{
		margin : auto;
		text-align : center;
	}
	#main .sec05 .section-title{
		margin : 0 auto 64px;
	}
	#main .sec05{
		padding : 120px 0 36px;
	}
	#main .sec05 .section-en{
		top : -60px;
	}
	#main .sec05 .content ul{
		max-width : 670px;
		margin : auto;
	}
	#main .sec05 .content li{
		margin-bottom : 64px;
		font-size : 24px;
	}
	#main .sec05 .content li .question{
		margin-bottom : 10px;
	}
	#main .sec05 .content li .answer img{
		width : 24px;
		padding-bottom : 16px;
		margin : 0 10px 0 8px;
	}
	#main .sec05 .content li .answer p{
		margin-top : 26px;
	}
	#main #contact .complete-message{
		padding : 90px 16px;
		text-align : center;
	}
}

/* ------------------------------------------------------------
	footer
------------------------------------------------------------ */
footer{
	box-sizing : border-box;
	display : block;
	width : 100%;
	height : 132px;
	padding : 52px 0;
	background : #b20214;
}
footer p{
	margin : auto;
	font-size : 16px;
	line-height : 1.5em;
	color : white;
	text-align : center;
}