@charset "utf-8";

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@700&display=swap');

/* ****************************************************
Title: layout.css
***************************************************** */
/***************
VELTRA-共通フォント設定
***************/
.fsLarge {
	font-size: 17px !important;
}

.ftSmall {
	font-size: 15px !important;
}

.ftCopy {
	font-size: 10px !important;
	line-height: 1.35 !important;
	letter-spacing: 0 !important;
}

.ftBodyL {
	font-size: 17px !important;
	line-height: 1.9 !important;
}

.ftBodyM {
	font-size: 16px !important;
	line-height: 1.9 !important;
}

.ftBodyS {
	font-size: 15px !important;
	line-height: 1.75 !important;
}

.ftCapL {
	font-size: 14px !important;
	line-height: 1.5 !important;
}

.ftCapM {
	font-size: 13px !important;
	line-height: 1.5 !important;
}

.ftCapS {
	font-size: 12px !important;
	line-height: 1.5 !important;
}

.ftLiTitL {
	font-size: 17px !important;
	line-height: 1.35 !important;
	font-weight: 600 !important;
}

.ftLiTitM {
	font-size: 16px !important;
	line-height: 1.35 !important;
	font-weight: 600 !important;
}

.ftLiTitS {
	font-size: 15px !important;
	line-height: 1.35 !important;
	font-weight: 600 !important;
}

.ftLiDescM {
	font-size: 14px !important;
	line-height: 1.35 !important;
}

.ftLiDescS {
	font-size: 13px !important;
	line-height: 1.35 !important;
}

.fontMontserrat {
	font-family: Montserrat-VF;
	line-height: 1.2em;
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.fontMontserrat.none {
	text-transform: none;
}

.fontW {
	color: #FFF;
}

.fsBigger {
	font-size: 1.2em
}

.ib {
	display: inline-block;
}

.ssContentsText {
	margin-top: 32px;
}

a.text_link {
	text-decoration: underline !important;
	color: #2379C3;
	font-weight: bold;
}

/* pc時bodyM-sp時bodyS */
.ftBodyM-spS {
	font-size: 16px !important;
	line-height: 1.9 !important;
}

@media screen and (max-width:569px) {
	.ftBodyM-spS {
		font-size: 15px !important;
		line-height: 1.75 !important;
		letter-spacing: 0.01em !important;
	}
}

/* pc時bodyL-sp時bodyM */
.ftBodyL-spM {
	font-size: 17px !important;
	line-height: 1.9 !important;
}

@media screen and (max-width:569px) {
	.ftBodyL-spM {
		font-size: 16px !important;
		line-height: 1.9 !important;
		letter-spacing: 0.01em !important;
	}
}

/******************************************************************
今回のコース固有のFMT
*******************************************************************/
/* 指定フォント */



/* 観光局・航空会社カラー */


/* --------------------------------------------------------------------
 body
-------------------------------------------------------------------- */
body {
	font-family: "Noto Sans JP", sans-serif;
	font-size: 16px;
	letter-spacing: 0.01em;
	line-height: 1.90;
	font-weight: 500;
	text-align: center;
	text-size-adjust: 100%;
	-moz-text-size-adjust: none;
	-ms-text-size-adjust: 100%;
	-webkit-text-size-adjust: 100%;
	max-height: 999999px;
	-webkit-font-smoothing: antialiased;
	color: var(--vt-black);

}

#wrap {
	margin: 0 auto;
	padding: 0;
}

img {
	vertical-align: bottom;
	max-width: 100%;
	height: auto;
}

a {
	display: inline-block;
}

a:link {
	text-decoration: none;
}

.relative-wrap {
	position: relative;
}

p,
span,
dt,
dd,
th,
td,
li,
h1,
h2,
h3,
h4 {
	max-height: 999999px;
}

.r-50 {
	border-radius: 50%;
}

.r-9 {
	border-radius: 9px;
}

.r-18 {
	border-radius: 18px;
}

.r-24 {
	border-radius: 24px;
}

.r-36 {
	border-radius: 36px;
}

/*-----------------------*/
.pc {
	display: block !important;
}

.sp {
	display: none !important;
}

.pcBr {
	display: inline !important;
}

.pcTabletBr {
	display: inline !important;
}

.spBr {
	display: none !important;
}

.pcTable {
	display: table !important;
}

.spTable {
	display: none !important;
}

.tabletBr {
	display: none !important;
}

.spTabletBr {
	display: none !important;
}

/*-----------------------*/
.t-align-L {
	text-align: left;
}

.bold {
	font-weight: bold;
}

/*タブレット*/
@media screen and (min-width:570px) and (max-width:959px) {
	.pcBr {
		display: none !important;
	}

	.pcTabletBr {
		display: inline !important;
	}

	.tabletBr {
		display: inline !important;
	}

	.spTabletBr {
		display: inline !important;
	}
}

/*スマートフォン*/
@media screen and (max-width:569px) {

	/*デバイスwidth、～799px用のスタイルを記入*/
	.pc {
		display: none !important;
	}

	.sp {
		display: block !important;
	}

	.pcBr {
		display: none !important;
	}

	.spBr {
		display: inline !important;
	}

	.pcTabletBr {
		display: none !important;
	}

	.pcTable {
		display: none !important;
	}

	.spTable {
		display: table !important;
	}

	.tabletBr {
		display: none !important;
	}

	.spTabletBr {
		display: inline !important;
	}
}

/* --------------------------------------------------------------------
スクロール時フェードで出現
-------------------------------------------------------------------- */
.fadeIn {
	opacity: 0;
	animation-duration: 1.0s;
	animation-delay: 0s;
	-webkit-animation-delay: 0s;
	animation-name: fadeIn;
	animation-fill-mode: both;
}

@keyframes fadeIn {
	from {
		opacity: 0;
	}

	to {
		opacity: 1;
	}
}

.inviewfadeIn {
	opacity: 0;
	transition-duration: 1.0s;
}

.vue_content {
	opacity: 1 !important;
}

/* lazyLoad画像のフェードイン処理 */
img.lazyload {
	opacity: 0;
}

img.lazyloaded {
	animation: fadeIn 1s forwards;
}


/*---------------------
コンテンツ枠組FMT
---------------------*/
.contIn1224 {
	box-sizing: border-box;
	max-width: 1296px;
	margin: 0 auto;
	position: relative;
	padding: 0 36px;
}

.contIn1476 {
	box-sizing: border-box;
	max-width: 1536px;
	margin: 0 auto;
	position: relative;
	padding: 0 30px;
}

@media screen and (max-width:959px) and (min-width:570px) {
	.contIn1224 {
		padding: 0 30px;
	}
}

@media screen and (max-width:569px) {
	.contIn1224 {
		padding: 0 30px;
	}
}

/*---------------------
spacing
---------------------*/
.mgt-quart {
	margin-top: 9px !important;
}

.mgt-half {
	margin-top: 18px !important;
}

.mgt-single {
	margin-top: 36px !important;
}

.mgt-double {
	margin-top: 72px !important;
}

.mgt-triple {
	margin-top: 108px !important;
}

.mgt-quad {
	margin-top: 144px !important;
}

.mgt-single-half {
	margin-top: 36px !important;
}

.pdt-144-72 {
	padding-top: 144px;
}

.pdt-108-72-72 {
	padding-top: 108px;
}

.pdt-108-72-36 {
	padding-top: 108px;
}

.pdt-108 {
	padding-top: 108px;
}

.pdt-72-36 {
	padding-top: 72px;
}

.pdt-72 {
	padding-top: 72px;
}

.pdt-64 {
	padding-top: 64px;
}

.pdb-144-72-72 {
	padding-bottom: 144px;
}

.pdb-108-72-72 {
	padding-bottom: 108px;
}

.pdb-108-72-36 {
	padding-bottom: 108px;
}

.pdb-72-54 {
	padding-bottom: 72px;
}

.pdb-72-36 {
	padding-bottom: 72px;
}

.pdb-72 {
	padding-bottom: 72px;
}

.pdb-64 {
	padding-bottom: 64px;
}

.pdb-36 {
	padding-bottom: 36px;
}

@media screen and (max-width:959px) and (min-width:570px) {
	.pdt-108-72-72 {
		padding-top: 72px;
	}

	.pdt-108-72-36 {
		padding-top: 72px;
	}

	.pdb-144-72-72 {
		padding-bottom: 72px;
	}

	.pdb-108-72-72 {
		padding-bottom: 72px;
	}

	.pdb-108-72-36 {
		padding-bottom: 72px;
	}
}

@media screen and (max-width:569px) {
	.pdt-144-72 {
		padding-top: 72px;
	}

	.pdt-108-72-72 {
		padding-top: 72px;
	}

	.pdt-108-72-36 {
		padding-top: 36px;
	}

	.pdt-72-36 {
		padding-top: 36px;
	}

	.pdb-144-72-72 {
		padding-bottom: 72px;
	}

	.pdb-108-72-72 {
		padding-bottom: 72px;
	}

	.pdb-108-72-36 {
		padding-bottom: 36px;
	}

	.pdb-72-54 {
		padding-bottom: 54px;
	}

	.pdb-72-36 {
		padding-bottom: 36px;
	}

	.mgt-single-half {
		margin-top: 18px !important;
	}

}




/* --------------------------------------------------------------------
ヘッダー
-------------------------------------------------------------------- */
.headerWrap01 {
	width: 100%;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 100;
	transition: all 0.5s;
	pointer-events: none;
}

.headerLogo01 {
	padding: 27px 36px;
	text-align: left;
	opacity: 1;
	transition-duration: 0.3s;
	margin: auto;
	line-height: 1;
}

.headerLogo01 a {
	pointer-events: initial;
}

.headerLogo01 img {
	display: block;
	width: auto;
	height: 28px;
}

.headerWrap02 {
	position: fixed;
	width: 100%;
	height: auto;
	background-color: #FFF;
	z-index: 110;
	top: 0;
	left: 0;
	opacity: 0;
	transform: translateY(-90px);
	transition: all 0.5s;
	box-shadow: 0 2px 24px rgba(0, 0, 0, 0.05);
}

nav {
	position: absolute;
	top: 0;
	left: 160px;
	width: calc(100% - 160px);
}

nav ul {
	display: flex;
	gap: 9px;
	justify-content: space-around;
	max-width: 800px;
	margin: 0 auto;
}

nav ul li a {
	color: #2379C3;
	font-weight: bold;
	padding: 0 4px;
	font-size: 14px;
	line-height: 1.4;
	display: block;
	height: 83px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.headerWrap02:not(.DownMove) nav {
	pointer-events: none;
}

#hbg_sp {
	display: none;
	height: 36px;
	width: 36px;
	background-color: #FFF;
	position: absolute;
	right: 18px;
	top: 14px;
}

#hbg_sp .bar1,
#hbg_sp .bar2,
#hbg_sp .bar3 {
	position: absolute;
	background-color: #2379C3;
	height: 3px;
	border-radius: 2px;
	width: 30px;
	left: 50%;
	transform: translate(-50%, -50%);
	transition: all 0.5s;
}

#hbg_sp .bar1 {
	top: 23%;
}

#hbg_sp .bar2 {
	top: 50%;
}

#hbg_sp .bar3 {
	top: 77%;
}

#hbg_sp.close .bar1 {
	transform: translate(-50%, -50%) rotate(225deg);
	top: 50%;
}

#hbg_sp.close .bar2 {
	opacity: 0;
}

#hbg_sp.close .bar3 {
	transform: translate(-50%, -50%) rotate(-225deg);
	top: 50%;
}

@media screen and (max-width:569px) {
	.headerLogo01 {
		padding: 18px 18px;
		text-align: left;
	}

	.headerLogo01 img {
		height: 26px;
	}

	.headerWrap02 .headerLogo01 {
		background-color: #FFF;
	}

	nav {
		top: 63px;
		left: 0;
		width: 100%;
		background-color: rgba(255, 255, 255, 0.8);
		padding-top: 0;
		backdrop-filter: blur(5px);
		-webkit-backdrop-filter: blur(5px);
		/* transform: scaleY(0); */
		transform: translateY(-100%);
		transform-origin: center top;
		overflow: hidden;
		transition: all 0.3s;
		z-index: -1;
	}

	nav.open {
		/* transform: scaleY(1); */
		transform: translateY(0);
	}

	nav ul {
		flex-direction: column;
		gap: 0;
		padding: 9px 0;
	}

	nav ul li {
		padding: 0;
	}

	nav ul li a {
		height: 36px;
	}

	#hbg_sp {
		display: block;
	}
}

/* ヘッダーの出し入れアニメーション */

.DownMove {
	transition: all 0.5s;
	opacity: 1;
	transform: translateY(0);
}

.visitAnc01 {
	transition: all 0.5s;
	opacity: 1;
	transform: translateY(0);
}

/*-----------------------
MV
-----------------------*/
.mainVisualWrap01 {
	position: relative;
	box-sizing: border-box;
	height: 100%;
	transition: all 2s;
	overflow: hidden;
}

.mainVisualCont01 {
	box-sizing: border-box;
	width: 100%;
	height: 100%;
	padding: 82px 32px;
	position: absolute;
	left: 0;
	top: -16px;
	display: flex;
	justify-content: center;
	align-items: center;
	pointer-events: none;
}

.mainVisualFlex01 {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	width: 100%;
}

.mainTitWrap01 {
	color: #ffffff;
	pointer-events: auto;
	width: 66%;
}

.mainTitShadowWrap {
	filter: drop-shadow(0 0 160px #005E72);
}

.mainTit01 {}

.mainTit01 img {
	width: 32vw;
}

.mainTit02 img {
	width: 32vw;
	margin-top: 32px;
}

.mainTit03 {
	font-size: 44px;
	line-height: 1.15;
	letter-spacing: 0.01em;
	font-weight: 700;
	text-align: center;
	color: #fff;
	margin-top: 4%;
}

.mainTitDot {
	font-size: 58px;
	line-height: 1.15;
	letter-spacing: 0.01em;
	font-weight: 700;
	text-align: center;
	color: #ffffff;
}

.mainTit04 {
	font-family: Montserrat-VF;
	color: #fff;
	font-size: 21px;
	font-weight: bold;
	line-height: 1.5;
	margin-top: 16px;
}

.mainTit03br {
	display: none;
}

@media screen and (max-width:1000px) and (min-width:570px) {
	.mainTitShadowWrap {
		filter: drop-shadow(0 0 110px #005E72);
	}

	.mainVisualCont01 {
		padding: 82px 30px 72px;
		min-height: initial;
	}

	.mainVisualFlex01 {
		flex-direction: column;
		height: 78vh;
	}

	.mainTitWrap01 {
		width: 100%;
	}

	.mainTit01 img {
		width: 42vw;
	}

	.mainTit02 img {
		width: 42vw;
		margin-top: 24px;
	}

	.mainTit03 {
		font-size: 7vw;
		line-height: 1.07;
	}

	.mainTitDot {
		display: none;
	}

	.mainTit03br {
		display: block;
	}

	.mainTit04 {
		font-size: 2vw;
		padding: 5px 10px;
		margin-top: 2%;
	}
}

@media screen and (max-width:569px) {
	.mainTitShadowWrap {
		filter: drop-shadow(0 0 60px #005E72);
	}

	.mainVisualFlex01 {
		flex-direction: column;
		height: 84vh;

	}

	.mainTitWrap01 {
		width: 100%;
	}

	.mainTitDot {
		display: none;
	}

	.mainTit03br {
		display: block;
	}

	.mainTit01 img {
		width: 72%;
	}

	.mainTit02 img {
		width: 72%;
		margin-top: 16px;
	}

	.mainTit03 {
		font-size: 38px;
		line-height: 1.07;
		margin-top: 8%;
	}

	.mainTit04 {
		font-size: 12px;
		padding: 5px 10px;

	}
}

@media screen and (max-width:370px) {
	.mainTit01 img {
		width: 75%;
	}

	.mainTit02 {}

	.mainTit03 {
		font-size: 36px;
	}
}

/*-----------------------
MVアニメーション
-----------------------*/
.headerLogo01 {
	will-change: opacity;
	opacity: 0;
}

.headerLogo01.appear {
	animation: mvFadeIn 1.5s ease-in-out 0s forwards;
}

.mainVisualWrap01 {
	will-change: opacity;
	opacity: 0;
}

.mainVisualWrap01.appear {
	animation: mvFadeIn 1.5s ease-in-out 0s forwards;
}

.mainTitWrap01 {
	opacity: 0;
	will-change: transform, opacity;
}

.mainTitWrap01.appear {
	animation: mvFadeUp 1s ease-in-out 1s forwards;
}

.mainAncBtn01 {
	will-change: transform, opacity;
	opacity: 0;
}

.mainAncBtn01.appear {
	animation: mvFadeUp 1s ease-in-out 1.5s forwards;
}

.mainAncBtn01.appear a:hover {
	opacity: 0.7;
	transition: opacity 0.3s;
}

@keyframes mvFadeIn {
	0% {
		opacity: 0;
	}

	100% {
		opacity: 1;
	}
}

@keyframes mvFadeUp {
	0% {
		opacity: 0;
		transform: translateY(20px);
	}

	100% {
		opacity: 1;
		transform: translateY(0);
	}
}



/*-----------------------
slick
-----------------------*/
.slick-list picture:before {
	position: absolute;
	content: "";
	width: 100%;
	height: 118px;
	bottom: 0;
	left: 0;
	background: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.2));
	border-bottom-left-radius: 18px;
	border-bottom-right-radius: 18px;
}

.slick-dots {
	position: absolute;
	bottom: 0;
	display: block;
	width: 100%;
	padding: 0;
	list-style: none;
}

.slick-dots li.slick-active button {
	background-color: #2379C3;
	opacity: 1;
}

.slick-dots li button {
	background-color: #C0DAF0;
	opacity: 0.5;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	padding: 0;
	outline: none;
	width: 8px;
	height: 8px;
	border-radius: 100%;
	font-size: 0px;
	line-height: 0px;
	text-indent: -9999px;
}

.slick-slider {
	margin-bottom: 0;
	line-height: 0;
}

@media screen and (max-width:569px) {}


/*-----------------------
ボタンFMT
-----------------------*/

.contBtn01 {
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: #ff9713;
	box-sizing: border-box;
	padding: 13px 25px;
	width: fit-content;
	border-radius: 100px;
	color: #ffffff;
	font-size: 14px;
	line-height: 1.35;
	font-weight: bold;
	margin: 0 auto;
	border: 1px solid #ff9713;
	transition: all 0.3s;
	text-align: center;
}

¥ a.contBtn01:link,
a.contBtn01:visited,
a.contBtn01:hover,
a.contBtn01:active {
	text-decoration: none;
}

a.contBtn01:hover {
	color: #ff9713;
	background-color: #FFF;

}

@media screen and (max-width:569px) {
	.contBtn01 {
		width: 100%;
	}

	.coupon_btn_wrap .contBtn01 {
		padding: 13px 18px;
	}
}


/*-----------------------
MV
-----------------------*/
.mainImg {
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
	height: calc(100vh + 28px);
}

.mainImg01 {
	background-image: url("../img/mainVisual.jpg");
	background-position: 70% center;
}

@media screen and (max-width:959px) and (min-width:570px) {
	.mainImg01 {
		background-image: url("../img/mainVisual_tb.jpg");
	}
}

@media screen and (max-width:569px) {
	.mainImg01 {
		background-image: url("../img/mainVisual_sp.jpg");
	}
}

/*-----------------------
contents-slick
-----------------------*/
.halfPicBox .slick-dots li {
	display: inline-block;
	margin-bottom: 0;
}

.contSlickWrap01 .contSlickText01 {
	font-size: 10px;
	line-height: 1.2em;
	text-shadow: 1px 1px 6px rgba(0, 0, 0, 0.2);
	color: #ffffff;
	position: absolute;
	right: 30px;
	bottom: 45px;
}

@media screen and (max-width:569px) {
	.contSlickWrap01 .contSlickText01 {
		right: 10px;
		bottom: 35px;
	}
}



/*---------------------
intro
---------------------*/
#intro {
	position: relative;
}

#intro>div {
	color: #2379C3;
	text-align: center;
	background-image: url(../img/intro_bg.jpg);
	background-size: cover;
	background-repeat: no-repeat;
}

#intro .contH201 {
	font-size: 36px;
	line-height: 1.35;
	font-weight: 700;
}

#intro .contH202 {
	font-size: 24px;
	line-height: 1.6;
	font-weight: 700;
}

#intro .contH202sub {
	font-size: 17px;
	line-height: 1.6;
	font-weight: 700;
}

.intro_circle_more {
	height: 68px;
	width: 68px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid #2379C3;
	margin: 0 auto;
	border-radius: 50%;
	line-height: 1.2;
	font-size: 15px;
}

.intro_entry_box {
	border-top: 1px solid #2379C3;
	border-bottom: 1px solid #2379C3;
	font-size: 13px;
	line-height: 1.7;
	text-align: center;
	margin: 32px auto 0;
	max-width: 640px;
	padding: 18px 0;
}

.intro_btn01 {
	padding: 13px 25px;
	min-width: 210px;
}

@media screen and (max-width:569px) {
	#intro>div {
		text-align: left;
	}

	#intro .contH201 {
		font-size: 24px;
		line-height: 1.6;
		text-align: center;
	}

	.intro_entry_box {
		text-align: left;
	}

	#intro .contH202sub {
		text-align: center;
	}

	#intro .contH202 {
		text-align: center;
	}

}

/*----------------------
points
----------------------*/
#coupons>div {
	background: url(../img/intro_bg.png) repeat center center;
	background-size: 48px;
}

.couponsHeader01 {
	font-size: 35px;
	line-height: 1.35;
	font-weight: 600;
	color: #FFF;
}

.couponsHeader01sub {
	font-size: 16px;
	font-weight: 600;
	line-height: 1.35;
	color: #FFF;

}

.couponsFlexbox01 {
	display: flex;
	flex-direction: row;
	gap: 36px;
	overflow: visible;
	margin-top: 48px;
}

.couponsItem {
	flex: 1;
	text-align: left;
}

.couponsItem_pic {
	width: 100%;
	position: relative;
}

.couponsItem_pic img {
	border-radius: 24px;
}

.couponsItem_pictxt_wrap {
	position: absolute;
	top: -32px;
	left: 0;

}

.couponsItem_pictxt {
	position: relative;
	font-size: 18px;
	font-weight: bold;
	line-height: 1.3;
	color: #2379C3;
	margin: 0;
	padding: 18px 0 0;
	text-align: center;
	width: 96px;
	height: 96px;
	border-radius: 96px;
	background-color: #FFEE57;
	box-shadow: 0px 4px 16px 0px rgba(0, 0, 0, 0.25);
}

.couponsItem_pictxt.smallpictxt {
	padding: 26px 0 0;
}

.couponsItem_pictxt span {
	font-size: 26px;
}

.couponsItem_pictxt:before {
	content: '';
	position: absolute;
	top: 98%;
	left: 50%;
	transform: translateX(-50%);
	border-top: 15px solid #FFEE57;
	border-right: 8px solid transparent;
	border-left: 8px solid transparent;
}

.couponsItem h3 {
	font-size: 18px;
	font-weight: 600;
	line-height: 1.5;
	color: #FFF;
	margin-top: 18px;
}

.couponsItem div p {
	color: #FFF;
	margin-top: 9px;
}

.coupon_btn01 {
	margin: 16px auto 0 0;
}

.coupon_btn_wrap {
	display: flex;
	margin: 16px 0 0;
	justify-content: flex-start;
	gap: 16px;
	/* flex-wrap: wrap; */
}

.coupon_btn_wrap a {
	margin: 0;
}

.coupons_banner_wrap {
	max-width: 640px;
	margin: 48px auto 0;
	display: flex;
	flex-direction: column;
	gap: 32px;
}

.coupons_banner_wrap a:hover {
	opacity: 0.7;
}

.coupons_banner_wrap a {
	transition: all 0.3s;
}

@media screen and (max-width:959px) and (min-width:570px) {
	.couponsFlexbox01 {
		flex-direction: column;
	}

	.couponsItem {
		width: 100%;
		display: flex;
		gap: 18px;
		align-items: center;
	}

	.coupon_btn01 {
		width: fit-content;
	}

	.couponsItem h3 {
		margin-top: 0;
	}

	.couponsItem_pic {
		width: 240px;
	}

	.couponsItem_pic img {
		border-radius: 18px;
	}

	.couponsItem_text {
		flex: 1;
	}
}

@media screen and (max-width:569px) {
	.couponsFlexbox01 {
		flex-direction: column;
		margin-top: 36px;
	}

	.point_slick .slick-dots {
		bottom: 0;
	}

	.couponsItem {
		padding: 0
	}

	.couponsItem h3 {
		margin-top: 9px;
		font-size: 18px;
	}

	.couponsHeader01 {
		font-size: 22px;
		line-height: 1.5;
	}

	#coupons>div {}

	.coupon_btn01 {
		width: fit-content;
		margin: 16px auto 0;
	}

	.couponsItem_pic img {
		border-radius: 24px;
	}
}

/*------------
summer sale
-------------*/
.ssHeader01sub {
	font-family: Montserrat-VF;
	line-height: 1.35;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-size: 14px;
	color: var(--vt-black-dark);

}

.ssHeader01 {
	font-size: 36px;
	line-height: 1.35;
	font-weight: 700;
	color: var(--vt-black-dark);
}

.ssHeader02 {
	font-size: 32px;
	line-height: 1.35;
	font-weight: 700;
	color: var(--vt-black-dark);
	margin-top: 64px;
}

.ss_wrapper {
	position: relative;
}

/* Tab */
#ssTabList {
	display: flex;
	margin-top: 48px;
	justify-content: center;
	position: sticky;
	top: 0;
	left: 0;
	background-color: #FFF;
	z-index: 10;
	width: -webkit-fill-available;
	transition: all 0.5s;
}

/* #ssTabList.flag.tabDown {
	transform: translateY(83px);
} */

.ssTabItem {
	color: #4B92CE;
	opacity: 0.25;
	border-bottom: 2px solid #4B92CE;
	padding: 24px 12px;
	text-align: center;
	flex: 1;
	font-weight: bold;
	cursor: pointer;
	transition: all 0.3s;
	font-size: 14px;
}

.ssTabItem:hover {
	opacity: 1;
}

.ssTabItem.active {
	opacity: 1;
}

/* Contents */
.ssContentsItem {
	padding: 64px 0;
	display: none;
	opacity: 0;
	transition: all 0.3s;
}

.ssContentsItem.active {
	display: block;
	opacity: 1;
}

.ssContItem_btn_wrap01 {
	margin-top: 48px;
	display: flex;
	gap: 36px;
	justify-content: center;
}

.ssCont_btn01 {
	background-color: #2379C3;
	border: 1px solid #2379C3;
	margin: 0;
	font-size: 15.5px;
	max-width: 240px;
}

a.ssCont_btn01:hover {
	color: #2379C3;
}

.ssCont_btn02 {
	background-color: #FFF;
	border: 1px solid #2379C3;
	color: #2379C3;
	margin: 0;
	padding-left: 32px;
	position: relative;
	font-size: 15.5px;
	width: 240px;
	cursor: pointer;
}

.ssCont_btn02::before {
	position: absolute;
	top: calc(50% - 8px);
	left: 24px;
	right: auto;
	width: 12px;
	height: 12px;
	padding: 0;
	content: '';
	border-left: 1px solid #2379C3;
	border-bottom: 1px solid #2379C3;
	border-top: none;
	border-right: none;
	transform: rotate(-45deg);
}

a.ssCont_btn02:hover {
	color: #2379C3;
}

.ssContItem_btn_wrap02 {
	max-width: 640px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: 32px;
	padding-top: 64px;
}

.ssContItem_btn_wrap02 a {
	transition: all 0.3s;
}

.ssContItem_btn_wrap02 a:hover {
	opacity: 0.7;
}

/*************
全ルート一覧
*************/

.cp_ipselect {
	overflow: hidden;
	position: relative;
	border-radius: 100px;
	border: 1px solid #2379C3;
	background: #ffffff;
	box-shadow: none;
}

.cp_ipselect::before {
	position: absolute;
	top: calc(50% - 9px);
	right: 24px;
	width: 12px;
	height: 12px;
	padding: 0;
	content: '';
	border-left: 1px solid #2379C3;
	border-bottom: 1px solid #2379C3;
	border-top: none;
	border-right: none;
	transform: rotate(-45deg);
	pointer-events: none;
}

.cp_ipselect select {
	width: 100%;
	cursor: pointer;
	text-indent: 0.01px;
	text-overflow: ellipsis;
	border: none;
	outline: none;
	background: transparent;
	background-image: none;
	box-shadow: none;
	-webkit-appearance: none;
	appearance: none;
	padding: 18px 48px 18px 24px;
	color: #2379C3;
	line-height: 1;
	font-size: 17px;
}

.select_wrapper {
	display: flex;
	gap: 32px;
	justify-content: center;
	margin-top: 36px;
	margin-bottom: 36px;
}

.routeList_select {
	max-width: 310px;
	flex: 1;
}

.acbox a {
	color: var(--vt-black-dark);
	text-align: left;
	width: 100%;
}

.routeList_box {
	display: flex;
	flex-wrap: wrap;
	row-gap: 60px;
	column-gap: 36px;
}

.routeList_item {
	flex: 0 0 auto;
	width: calc(100% / 3 - 24px);
	line-height: 1.5;
}

.routeList_item a {
	transition: all 0.5s;
}

.routeList_item a:hover {
	opacity: 0.7;
}

.routeList_item .title {
	font-weight: bold;
	line-height: 1.5;
	margin-top: 18px;
}

.routeList_item .lead {
	line-height: 1.7;
	margin-top: 9px;
	font-size: 14px;
}

.routeList_item .dep,
.routeList_item .cpn,
.routeList_item .price {
	font-size: 13px;
	font-family: Montserrat-VF, "Noto Sans JP";
	line-height: 1.15;
	font-weight: 600;
	color: var(--vt-black-dark);
}

.routeList_item .price {
	font-size: 18px;
	font-family: Montserrat-VF, "Noto Sans JP";
	line-height: 1.15;
	font-weight: bold;
	color: var(--vt-black-dark);
	color: #F17052;
	font-weight: bold;
}

.routeList_pic {
	border-radius: 24px;
	overflow: hidden;
	position: relative;
	width: 100%;
	padding-top: 66.66%;
}

.routeList_pic img {
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0;
	left: 0;
	object-fit: cover;
	object-position: center;
	width: 100%;
}

.popular {
	position: absolute;
	left: -1px;
	top: 8%;
	color: #FFF;
	font-size: 14px;
	padding: 2px 18px 3px 8px;
	clip-path: polygon(0 0, 100% 0, calc(100% - 8px) 100%, 0 100%);
	font-weight: bold;
}

.popular.no1 {
	background-color: #ffcc33;
}

.popular.no2 {
	background-color: #999999;
}

.popular.no3 {
	background-color: #cc6600;
}

@media screen and (max-width:959px) and (min-width:570px) {
	.select_wrapper {
		gap: 9px;
	}

	.routeList_select {
		max-width: 260px;
	}

	.cp_ipselect select {
		font-size: 14px;
		padding: 14px 40px 14px 16px;
	}

	.routeList_select {
		width: 330px;
	}

	.routeList_box {
		row-gap: 36px;
		column-gap: 18px;
	}

	.routeList_item {
		width: calc(100% / 2 - 9px);
	}

	.ssTabItem {
		font-size: 14px;
	}
}

@media screen and (max-width:569px) {

	.ssTabItem {
		font-size: 12px;
		flex: auto;
		padding: 18px 12px;
	}

	.select_wrapper {
		flex-direction: column;
		align-items: center;
		gap: 18px;
	}

	.routeList_select {
		width: 100%;
	}

	.routeList_box {
		row-gap: 48px;
		column-gap: 18px;
	}

	#ssTabList {
		margin-top: 18px;
		margin-left: -10px;
		margin-right: -10px;
	}

	/* #ssTabList.flag.tabDown {
		transform: translateY(63px);
	} */

	.ssHeader01sub {
		font-size: 12px;
	}

	.ssHeader01 {
		font-size: 22px;
	}

	.ssHeader02 {
		font-size: 20px;
		margin-top: 40px;
	}

	.routeList_item {
		width: 100%;
	}

	.ssContItem_btn_wrap01 {
		margin-top: 48px;
		flex-direction: column;
		gap: 18px;
		align-items: center;
	}
}

/*------------
exTour
-------------*/

#exTour>div {
	background-color: #FCFAF1;
}

.exTourHeader01 {
	font-size: 35px;
	line-height: 1.35;
	font-weight: 600;
	color: var(--vt-black-dark);
}

.exTourHeader01sub {
	font-size: 16px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--vt-black-dark);
}

.exTour_slick {
	margin-top: 48px;
	overflow: hidden;
	padding-bottom: 40px;
}

.exTour_item_wrap {
	width: 200px;
	height: 200px;
}

.exTour_item {
	display: block;
	position: relative;
	width: 230px;
	max-width: 200px;
	padding-top: calc(100% - 18px);
	border-radius: 24px;
	overflow: hidden;
	margin: 0 9px;
	transition: all 0.3s;
}

.exTour_item:hover {
	opacity: 0.7;
}

.exTour_img {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	object-fit: cover;
}

.exTour_title {
	position: absolute;
	display: flex;
	flex-direction: column;
	top: 0;
	left: 0;
	width: 100%;
	bottom: 0;
	align-items: center;
	justify-content: center;
}

.exTour_ja {
	font-size: 24px;
	font-weight: bold;
	color: #FFF;
	line-height: 1.5;
}

.exTour_en {
	font-size: 10px;
	color: #FFF;
	line-height: 1.5;
	font-weight: bold;
}

@media screen and (max-width:569px) {
	.exTour_ja {
		font-size: 20px;
	}

	.exTourHeader01 {
		font-size: 22px;
	}

	.exTour_item {
		width: 160px;
	}
}

exTour_ja {
	font-size: 24px;
	font-weight: bold;
	color: #FFF;
	line-height: 1.5;
}

.exTour_en {
	font-size: 10px;
	color: #FFF;
	line-height: 1.5;
	font-weight: bold;
}

@media screen and (max-width:569px) {
	.exTour_ja {
		font-size: 20px;
	}

	.exTourHeader01 {
		font-size: 22px;
	}

	.exTour_item {
		width: 160px;
	}
}

/*------------
floating_btn_wrap
-------------*/
.floating_btn_wrap {
	position: fixed;
	bottom: 20px;
	right: 20px;
	z-index: 1000;
	display: flex;
	flex-direction: row-reverse;
	gap: 9px;
}

.floating_top {
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	border-radius: 100px;
	color: #ffffff;
	line-height: 1.35;
	font-weight: bold;
	transition: all 0.3s;
	background-color: #2379C3;
	border: 1px solid #2379C3;
	margin: 0;
	font-size: 11px;
	position: relative;
	height: 60px;
	width: 60px;
	padding-top: 14px;
	box-shadow: 0 0 10px rgba(0, 0, 0, 0.13);
	opacity: 0;
	pointer-events: none;
}

.floating_top.show {
	opacity: 1;
	pointer-events: inherit;
}

.floating_top::before {
	position: absolute;
	top: 10px;
	left: calc(50% - 5px);
	right: auto;
	width: 10px;
	height: 10px;
	padding: 0;
	content: '';
	border-left: 1px solid #FFF;
	border-bottom: 1px solid #FFF;
	border-top: none;
	border-right: none;
	transform: rotate(135deg);
}

.floating_ssCont {
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	padding: 13px 25px;
	padding-left: 50px;
	border-radius: 100px;
	line-height: 1.35;
	font-weight: bold;
	border: 1px solid #ff9713;
	transition: all 0.3s;
	background-color: #FFF;
	border: 1px solid #2379C3;
	color: #2379C3;
	margin: 0;
	position: relative;
	font-size: 14px;
	box-shadow: 0 0 10px rgba(0, 0, 0, 0.13);
	opacity: 0;
	pointer-events: none;
}

.floating_ssCont.show {
	opacity: 1;
	pointer-events: inherit;
}

.floating_ssCont::before {
	position: absolute;
	top: calc(50% - 2px);
	left: 24px;
	right: auto;
	width: 12px;
	height: 12px;
	padding: 0;
	content: '';
	border-left: 1px solid #2379C3;
	border-bottom: 1px solid #2379C3;
	border-top: none;
	border-right: none;
	transform: rotate(135deg);
}

/*------------
footer
-------------*/
.footerWrap {
	display: flex;
}

.footerVeltraBox {
	width: calc(100% / 3);
}

.footerMenuBox {
	width: calc(100% / 3 * 2);
	display: flex;
	gap: 30px;
}

.footerMenuCategory {
	width: calc(100% / 3);
}

footer ul {
	list-style: none;
	margin: 0;
	padding-left: 0;
}

.footer-social-icons {
	padding-top: 30px;
	margin-left: -5px;
}

@media screen and (max-width:959px) and (min-width:570px) {}

@media screen and (max-width:569px) {
	.footerWrap {
		flex-direction: column;
		gap: 36px;
	}

	.footerVeltraBox {
		width: 100%;
	}

	.footerMenuBox {
		width: 100%;
		flex-direction: column;
		gap: 18px;
	}

	.footerMenuCategory {
		width: 100%;
	}

	.footer-social-icons {
		padding-top: 18px;
	}
}

/*-------------------*/
/*タブレット*/
@media screen and (min-width:570px) and (max-width:959px) {}

/*スマートフォン*/
@media screen and (max-width:569px) {}

/*-----*/

.popular {
	position: absolute;
	left: -1px;
	top: 8%;
	color: #FFF;
	font-size: 14px;
	padding: 2px 18px 3px 8px;
	clip-path: polygon(0 0, 100% 0, calc(100% - 8px) 100%, 0 100%);
	font-weight: bold;
}

.popular.no1 {
	background-color: #ffcc33;
}

.popular.no2 {
	background-color: #999999;
}

.popular.no3 {
	background-color: #cc6600;
}

.popular.none {
	display: none;
}

.routeList_item .info_wrap {
	/* border-top: 1px solid #CCC; */
	/* padding-top: 12px; */
	margin-top: 8px;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.routeList_item a {
	transition: all 0.5;
}

.routeList_item a:hover {
	opacity: 0.7;
	transition: all 0.5;
}

.routeList_item .title {
	margin-top: 10px;
}

.routeList_item .dep {
	font-weight: 700;
	margin-top: 8px;
}

.routeList_item .cpn {
	font-size: 13px;
	font-weight: 700;
	border: 1px solid var(--vt-black-dark);
	border-radius: 20px;
	padding: 3px 8px 2px;
}

.routeList_item .info_item {
	/* margin-bottom: 5px; */
}

.routeList_item .info_item .price {
	padding-right: 1em;
}

.routeList_item .info_item .note {
	display: inline-block;
}

.routeList_item .info_item .price:empty {
	height: 0;
	margin: 0;
}

.routeList_item .info_item:has(.price:empty) {
	height: 0;
	margin: 0;
}

.next-page {
	background-color: #FFF;
	border: 1px solid #2379C3;
	color: #2379C3;
	margin: 0;
	padding-left: 32px;
	position: relative;
	font-size: 15.5px;
	width: 240px;
	cursor: pointer;
	pointer-events: visible;
}

.next-page::before {
	position: absolute;
	top: calc(50% - 8px);
	left: 24px;
	right: auto;
	width: 12px;
	height: 12px;
	padding: 0;
	content: '';
	border-left: 1px solid #2379C3;
	border-bottom: 1px solid #2379C3;
	border-top: none;
	border-right: none;
	transform: rotate(-45deg);
	transition: all .3s;
}

.next_page_wrap {
	width: 100%;
	display: flex;
	justify-content: center;
	margin-top: -200px;
	padding-top: 150px;
	background: linear-gradient(0deg, #FFF 20%, transparent);
	pointer-events: none;
	z-index: 1;
}

.next-page:hover {
	background-color: #2379C3;
	color: #FFF;
}

.next-page:hover::before {
	border-left: 1px solid #FFF;
	border-bottom: 1px solid #FFF;

}


/* 250602追記 */

/* CSS上書き */

.select_wrapper {
    gap: 16px;
	margin: 0;
}

.routeList_select {
	max-width: 280px;
}

.cp_ipselect select {
	width: auto;
	padding: 16px 48px 16px 24px;
	font-size: 16px;
	text-align: center;
}

.routeList_box {
    margin-top: 40px;
}

/* 絞り込みモジュール */
.select_module {
	margin-top: 48px;
	display: flex;
	justify-content: center;
	gap: 32px;
}

/* 国内・海外切り替え-タブボタン */
.tab-buttons {
	display: flex;
	gap: 8px;
	width: 42%;
	border-radius: calc(infinity * 1px);
	overflow: hidden;
}

.tab-buttons button {
	width: 100%;
	height: 50px;
	height: ;
	color: #fff;
	background-color: #CCCCCC;
	border: none;
	cursor: pointer;
	font-size: 16px;
	font-weight: bold;
	transition: all 0.3s;
}

.tab-buttons button:hover {
	color: #2379C3;
	background: #d7e5f1;
}

.tab-buttons button.active {
	color: #fff;
	background-color: #2379C3;
}

.tab-contents .content {
	display: none;
	padding: 20px 0;
	animation: fadeIn 0.3s ease-in-out;
}

.tab-contents .content.active {
	display: block;
}

@keyframes fadeIn {
	from {
		opacity: 0;
	}

	to {
		opacity: 1;
	}
}

@media screen and (max-width: 959px) and (min-width: 570px) {
	.select_module {
		margin-top: 48px;
		flex-direction: column;
		align-items: center;
		gap: 24px;
	}
	.tab-buttons {
		width: 100%;
        max-width: 576px;
	}
}

@media screen and (max-width:569px){
    .select_module {
        margin-top: 32px;
        flex-direction: column;
        align-items: center;
        gap: 24px;
    }
	.tab-buttons {
		width: 100%;
        max-width: 266px;
	}
}

.radio_group {
    display: flex;
    gap: 10px;
}

.radio_label {
    position: relative;
    cursor: pointer;
	width: 100%;
}

.radio_group .radio_label:first-child span{
	border-top-left-radius: 100px;
    border-bottom-left-radius: 100px;
	height: 50px;
}

.radio_group .radio_label:last-child span {
	border-top-right-radius: 100px;
    border-bottom-right-radius: 100px;
	height: 50px;
}


.radio_label input[type="radio"] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.radio_label span {
    display: block;
    padding: 10px 16px;
    background-color: #cccccc;
    /* border-radius: 4px; */
    transition: all 0.3s ease;
    height: 50px;
	color: #FFF;
}

.radio_label input[type="radio"]:checked + span {
    background-color: #2379c3; /* Màu xanh khi active */
    color: white;
	height: 50px;
    cursor: pointer;
    font-size: 16px;
    font-weight: bold;
    transition: all 0.3s;
}

.radio_label:hover span {
    opacity: 0.8;
}
    .routeList_select {
        width: 100%;
    }
@media screen and (max-width: 569px) {
    .routeList_select {
        width: 100%;
    }
}

@media screen and (max-width: 569px) {
.routeList_radio {
    max-width: 400px;
}
}
.routeList_select {
    max-width: 400px;
}