@charset "utf-8";
:root{
	--default-color-black: #2c2a29;
	--content-width-sp: 94vw;
	--content-color-blue: #0073e9;
	--content-color-pink: #e6214c;
	--content-color-brown: #8c6308;
	--content-color-red: #e50012;
	--content-color-yellow: #fde21f;
	--content-border_yellow: linear-gradient(transparent 70%, #fffc00 70%);	
	--content-color-line: #06c755;
}

.contents {
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 3.6vw;
	line-height: 1.5;
	color: var(--default-color-black);
	background: url("../images/bg.jpg") repeat top left / 100px;
	a {
		text-decoration: none;
	}
	img {
        width: 100%;
		height: auto;
    }
	.inner {
        width: var(--content-width-sp);
		max-width: 100%;
        margin: 0 auto;
	}
	.f-mini {
		font-size: 2.8vw;
	}
	.f-small {
		font-size: 0.8em;
	}
	.red {
		color: var(--content-color-red);
	}
}
.nosp {
	display: none!important;
}

/*----------------------------------------------
メインビジュアル
------------------------------------------------*/
#mainvisual {
	width: 100%;
	height: 82.66vw;
    background: url("../images/main-bg-sp.jpg") no-repeat top center;
    background-size: 100%;
	.title {
		width: 95vw;
		margin: 0 auto;
		padding-top: 16vw;
	}
}
/*-----------------------------------------
ページナビ
-------------------------------------------*/
#navi {
	width: 100%;
	padding: min(7vw, 20px) min(5vw, 20px);
	ul {
		width: 100%;
		display: flex;
		flex-wrap: wrap;
		gap: min(2vw, 8px) min(2%, 8px);
		li {
			width: 49%;
			font-size: min(3.6vw, 14px);
			text-align: center;
			font-weight: 700;
			position: relative;
			a {
				display: block;
				padding: min(3vw, 16px) 0;
				color: #fff;
				border-radius: 4px;
				background-color: var(--content-color-blue);
				box-shadow: 2px 2px 0px 0px rgba(0, 0, 0, 0.3);
			}
			&::after {
				font-family: "Material Symbols Rounded";
				font-weight: 500;
				content: "\e313";
				font-size: min(4vw, 14px);
				color: #fff;
				position: absolute;
				right: 1.5vw;
				top:  50%;
				transform: translateY(-50%);
			}
		}
	}
}

/*ナビ固定時*/
.fix-navi:has(.fixed) {
  height: 13vw;
}
#navi.fixed {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 1000;
	background-color: #fff;
	padding: 1vw 2vw 1.5vw;
	ul {
		flex-wrap: nowrap;
		li {
			width: 100%;
			line-height: 1.3;
			a {
				display: flex;
				align-items: center;
				justify-content: center;
				padding: min(2vw, 16px) min(1.5vw, 8px);
				font-size: min(3vw, 14px);
				height: 100%;
				&::after {
					content: '';
					position: absolute;
					bottom: min(1.3vw,8px);
					left: 8%;
					width: 84%;
					margin: 0 auto;
					height: 1px;
					background-color: #ffffff;
					transform: scaleX(0);
					transform-origin: left;
					transition: transform 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
				}
				&.active::after {
				  transform: scaleX(1);
				}
			}
			&::after {
				display: none;
			}
		}
	}
}

/*-----------------------------------------
キャンペーン
-------------------------------------------*/
#cpn {
	width: 100%;
	h2 {
		text-align: center;
		margin-bottom: 3vw;
		.title-inner {
			display: inline-block;
			font-size: min(6vw,40px);
			/*line-height: 1.3;*/
      line-height: 1.2;
			font-weight: 900;
			color: var(--content-color-pink);
			vertical-align: bottom;
      & .f-small {
        display: inline-block;
        margin-bottom: 1vw;
      }
		}
		&::before,&::after {
			content: "";
			display: inline-block;
			width: 10vw;
			height: 10vw;
			background: url("../images/fukidashi.svg") no-repeat;
			background-size: contain;
			transform: translateY(1vw);
		}
		&::after {
			transform: translateY(1vw) scaleX(-1);
		}
	}
	.cpn-box {
		width: 90vw;
		margin: 0 auto 5vw;
		border-radius: 8px;
		background: #fff url("../images/cpn-bg-sp.png") no-repeat top center / 100%;
		padding: 13vw 4vw 7vw;
		.cashbak {
			width: min(74vw,500px);
			margin: 0 auto min(5vw,24px);
		}
		.detail {
			dt {
				font-size: min(3.6vw,20px);
				font-weight: 700;
			}
			dd {
				font-size: min(3.3vw,20px);
				border-bottom: dashed 1px #ccc;
				padding-bottom: 1vw;
				margin-bottom: 1vw;
			}
		}
		.note {
			font-size: min(3.0vw,16px);
			margin-top: 3vw;
		}
		.btn {
			width: 66vw;
			margin: 5vw auto 0;
			a {
				display: block;
				background-color: #e6214c;
				border-radius: 5vw;
				font-size: min(3.4vw,22px);
				font-weight: 500;
				color: #fff;
				text-align: center;
				padding: min(2vw,8px) 0;
				position: relative;
				&::after {
					font-family: "Material Symbols Rounded";
					font-size: 4.0vw;
					font-weight: 500;
					content: "\e313";
					position: absolute;
					right: 2vw;
					top: 50%;
					transform: translateY(-50%);
				}
			}
		}
	}
	.cebcpn {
		width: 90vw;
		margin: 0 auto;
		border-radius: 8px;
		background: #fff;
		padding: 7vw 3vw;
		text-align: center;
		h3 {
			font-size: min(5vw,36px);
			font-weight: 700;
			margin-bottom: 2vw;
		}
		.bnr {
			margin-bottom: 5vw;
		}
		.btn {
			width: 66vw;
			margin: 0 auto;
			a {
				display: block;
				background-color: #ff7800;
				border-radius: 5vw;
				font-size: min(3.4vw,22px);
				font-weight: 500;
				color: #fff;
				text-align: center;
				padding: min(2vw,8px) 0;
				position: relative;
				&::after {
					font-family: "Material Symbols Rounded";
					font-size: 4.0vw;
					font-weight: 500;
					content: "\e5cc";
					position: absolute;
					right: 2vw;
					top: 50%;
					transform: translateY(-50%);
				}
			}
		}
	}
}
/*-----------------------------------------
見出しタイトル
-------------------------------------------*/
#tour h2,#fit h2 {
	padding-top: min(10vw,40px);
	font-size: min(6.5vw,44px);
	font-weight: 900;
	text-align: center;
	margin-bottom: 3vw;
	&::before,&::after {
		content: "";
		display: inline-block;
		width: 9vw;
		height: 10vw;
		background: url("../images/kazari-yashi.png") no-repeat;
		background-size: contain;
		margin: 0 1.5vw;
		transform: translateY(1vw);
	}
	&::after {
		transform: translateY(1vw) scaleX(-1);
	}
}

.product__list--contents h3{
		text-align: center;
        font-size: min(5vw, 36px);
        font-weight: 700;
        margin: 8vw 0 2vw;
	      &::before, &::after {
			content: "";
    		display: inline-block;
   			width: 50px;
   			height: 2px;
    		background-color: #2c2a29;
    		vertical-align: middle;
    		margin: 0 15px;
        }
}


/*-----------------------------------------
下部背景
-------------------------------------------*/
#fit {
	padding-bottom: 32vw;
	background: url("../images/bg-bottm-sp.jpg") no-repeat bottom center / 100%;
}
/*-----------------------------------------
その他ツアーボタン
-------------------------------------------*/
.product .other-button {
	margin-top: 3vw;
	h4 {
		text-align: center;
		font-size: min(3.8vw,24px);
		line-height: 1.8;
		font-weight: 700;
		border-bottom: solid 1px var(--default-color-black);
		margin-bottom: 3vw;
	}
	ul {
		width: 86vw;
		margin: 0 auto;
		&.flex {
			display: flex;
			flex-wrap: wrap;
		}
		li {
			font-size: min(3.3vw,18px);
			text-align: center;
			margin: 0 min(1vw,4px) min(2vw,8px);
			a {
				color: #fff;
				display: block;
				text-decoration: none;
				border-radius: 999px;
				padding: min(2.5vw,8px) min(6vw,32px) min(3vw,8px) min(5vw,24px);
				position: relative;
				box-shadow: 2px 2px 0px 0 rgba(0, 0, 0, .25);
				background-color: var(--content-color-brown);
				&::after {
					font-family: "Material Symbols Rounded";
					font-weight: 500;
					content: "\e5cc";
					font-size: min(5vw,14px);
					position: absolute;
					right: min(2vw,4px);
					top: 50%;
					transform: translateY(-50%);
				}
			}
		}
	}
	&.list ul{
		width: 100%;
	}
}

/*-----------------------------------------
バナー
-------------------------------------------*/
.bnr-area {
	padding: 8vw 0 0;
	text-align: center;
	.aori {
		font-size: 4.6vw;
		line-height: 1.5;
		font-weight: 700;
		margin-bottom: 1vw;
	}
	ul {
		width: 94vw;
		margin: 0 auto;
		li {
			margin-bottom: 3.8vw;
		}
	}
	&.foot {
		padding: 5vw 0;
		background-color: #d6ecff;
	}
}
.product .product__wrapper .bnr {
	text-align: center;
	margin-top: 3vw;	
}
/*------------------------------------------------
応募方法
--------------------------------------------------*/
#oubo {
    width: 100%;
	background-color: #f3f3f3;
    padding: 7vw 0 10vw;
	.inner {
		width: 90vw;
	}
	.oubo-box {
		border-radius: 5vw;
		background-color: #fffbdc;
		.title-box {
			background-color: var(--content-color-yellow);
			border-top-left-radius: 5vw;
			border-top-right-radius: 5vw;
			padding: min(2vw,8px) 0 min(4vw,8px);
			text-align: center;
			h2 {
				text-align: center;
				margin-bottom: min(3vw,8px);
				font-size: min(5.6vw,40px);
				line-height: 1.3;
				font-weight: 900;
				span {
					color: var(--content-color-pink);	
					.strong {
						font-size: min(7vw,54px);
					}
				}
			}		
			.note {
				font-size: min(2.8vw,20px);
				font-weight: 500;
			}
		}
	}
	.flex-box {
		width: 100%;
		padding: 5vw;
		li {
			background-color: #fff;
			border-radius: 3vw;
			padding-bottom: 5vw;
			margin-bottom: 8vw;
			position: relative;
			&::after {
				content: "▼";
				text-align: center;
				font-size: 6vw;
				position: absolute;
				bottom: -8vw;
				right: 0;
				left: 0;
				color: var(--content-color-line);
			}
			&:last-child {
				margin-bottom: 0;
				&::after {
					content: none;
				}
			}
			&:nth-child(1) {
				display: flex;
				flex-wrap: wrap;
				align-items: center;    
			}
		}	
		h3 {
			width: 100%;
			background-color: var(--content-color-line);
			color: #fff;
			font-size: min(4.0vw,28px);
			letter-spacing: 0.1em;
			line-height: 1.8;
			border-top-left-radius: 3vw;
			border-top-right-radius: 3vw;
			text-align: center;
			margin-bottom: min(5vw,16px);
		}
		.icon {
			width: 30%;
			padding-left: 5vw;
			img {
				width: 15vw;
			}
		}
		.text {
			font-size: min(3.6vw,24px);
			padding: 0 5vw;
		}
		li:nth-child(1) .text {
			width: 70%;
			padding: 0 5vw 0 0;
			
		}	
		.btn {
			width: 62vw;
			margin: min(5vw,16px) auto 0;
			a {
				display: block;
				background-color: var(--content-color-line);
				color: #fff;
				font-size: min(3.4vw,22px);
				font-weight: 600;
				text-align: center;
				padding: min(3vw,8px); 0;
				border-radius: 7vw;
				position: relative;
				&::after {
					font-family: "Material Symbols Rounded";
					font-weight: 400;
					content: "\e5cc";
					position: absolute;
					right: 3vw;
					top: 50%;
					transform: translateY(-50%);
					font-size: min(6vw,28px);
				}
			}
		}
		.capture {
			width: 60vw;
			margin: 3vw auto 0;
		}
	}
}

/*-----------------------------------------
検索ボックス 調整
-------------------------------------------*/
#searchArea {
	background-color: #fff;
	padding: 0 0 3vw 0;
}
@media (min-width:741px) {
	#searchArea {
		padding: 3vw 0;
	}
	.main .rn-searchMod__navList {
		width: 96%!important;
		margin: 0 auto!important;
	}
	.main .searchWrap .rn-searchMod__navList {
		position: relative;
		bottom: -7px;
	}
}
/*以下ブラックフライデーコピー*/
/*-----------------------------------------
商品アイコン設置
-------------------------------------------*/
.product__list--category.is-label {
	&.cm {
	--product-label-bg: #e70012;
	}
	&.tv {
    --product-label-bg: #e70012;
	}
	&.line {
    --product-label-bg: #07b53b;
	}
	&.tv {
    --product-label-bg: #ff6000;
	}
	&.news {
    --product-label-bg: #ff6000;
	}
	&.mail {
    --product-label-bg: #ff6000;
	}
	&.other {
    --product-label-bg: #e70012;
	}
	&.awbest {
		background: url(/fair/assets/common/images/product_label_award_best.png) no-repeat 0 0 / auto 100%;
		text-indent: 120%;
		white-space: nowrap;
		overflow: hidden;
		min-width: min((151vw / 7.5), 82px);
	}
	&.awgood {
		background: url(/fair/assets/common/images/product_label_award_good.png) no-repeat 0 0 / auto 100%;
		text-indent: 120%;
		white-space: nowrap;
		overflow: hidden;
		min-width: min((151vw / 7.5), 82px);
	}
}
.product__list--category.is-label:empty {
	display: none;
}
.product__list--point:empty {
    display: none;
}
/*-------------------------------------------
　カセット下検索ボタン
---------------------------------------------*/
.product__button {
	margin-top: 20px;
}
.product__button .search-title {
    text-align: center;
    border-bottom:  solid 1px #000;
    font-size: 16px;
    font-weight: bold;
    line-height: 1.3;
    margin-bottom: 15px;
	padding-bottom: 5px;
}
.product__button .button-base.flex {
    display: flex;
    flex-wrap: wrap;
}
.product__button .button-base .button-base__link {
	display: block;
    padding: 12px 0 14px;
	background: linear-gradient(#8e1507,#c81d09);
	color: #fff;
	font-size: 16px;
	line-height: 1.0;
    border-radius: 100px;
    font-weight: 700;
	text-align: center;
	position: relative;
	transition: all 0.2s ease;
	box-shadow: 3px 3px 0px 0px rgba(0, 0, 0, 0.23);
	&:hover {
		background: linear-gradient(#fff,#dfe9f3);
		color: #c21500;
	}
}
.product__button .button-base.flex .button-base__link {
    margin: 0 5px 10px 0;
    padding: 12px 40px 14px 30px;
}
.product__button .button-base .button-base__link::after {
	content: "";
	display: inline-block;
	width: 25px;
	height: 25px;
	background: url("/cmn/icon/icon_arrow_right_white.svg") no-repeat center center;
	position: absolute;
	right: 8px;
	top: 8px;
}
.is-sp {
	& .product__button .button-base.flex .button-base__link {
		padding: 12px 6.5vw 14px 5vw;
	}
	& .product__button .button-base .button-base__link::after {
		width: 20px;
		height: 20px;
		right: 5px;
		top: 11px;
	}
}
.base-button {
    & .base-button__link {
        .is-sp & {
            border-radius: 35px;
        }
    }
}
/*------------------------------------
 カセット調整
-------------------------------------*/
.is-pc .product__list--contents .product__list {
	justify-content: left;
	-webkit-text-size-adjust: none;
}
.is-pc .product__wrapper .nopc {
	display: none;
}
/*------------------------------------
 FIT用 PCだけ改行入れる
-------------------------------------*/
.headfoot-is-sp .product__list--title .nosp {
	display: none;
}
/*------------------------------------
 商品空のとき
-------------------------------------*/
.product__list--item:empty {
  display:none;
}
.product__list--notes:empty {
	display: none;
}
.product__list--tokuten:empty,
.product__list--tokuten:has(.product__list--tokuten--item:empty){
	display: none;
}

/*------------------------------------
 新旧上下限js混在応急処置
-------------------------------------*/
.product__list--minmax .minmax-new:not(:empty) + .minmax-old,
.product__list--dep .js-split-departure:not(:empty) + span,
.product__list--type .js-split-airport:not(:empty) + span{
  display: none;
}
.product__list--dep .js-split-departure:empty::after,
.product__list--dep span[id*="dep_"]:empty::after{
  display: none;
}
.product__list--dep .js-split-departure::after,
.product__list--dep span[id*="dep_"]::after{
  content: "出発"
}
.product__list--type.port-type::after{
  content: "発着"
}
.product__list--type.port-type.hotel::after{
  content: ""
}
.product__list--type.port-type.train::after{
  content: "発"
}
.product__list--type.port-type.bus::after{
  content: "発"
}


/*------------------------------------------------
        LINEお友達登録ボタン
--------------------------------------------------*/
.line-wrap-simple {
    padding: 0;/*ページによって調整*/
}
.line-wrap-detail {
    padding: 10vw 0 5vw;/*ページによって調整*/
	background-color: #fff;
}
.line-inner {
    width: 94vw;
    margin: 0 auto;
    text-align: center;
    line-height: 1.5;
}
.line-wrap-detail .line-inner {
    background: #fcfff6;/*ページによって調整*/
    border: solid 1px #d3d3d3;
}
.line-inner .fukidashi {
    font-size: 4.1vw;
    font-weight: bold;
    margin-bottom: 2vw;
}
.line-inner .head {
    background-color: #06C755;
    padding: 2vw 0;
    color: #fff;
    font-size: 4.3vw;
    font-weight: bold;
}
.line-inner .textarea {
    padding: 4vw 2vw 2vw;
}
.line-inner .btnarea {
    padding: 2vw 2vw 5vw;
}
.line-inner .text1 {
    font-size: 3.6vw;
    line-height: 1.5;
}
.line-inner .text1 span {
    display: inline-block;
    font-weight: bold;
    color: #DF0D00;
}
.line-inner .text2 {
    font-size: 4.1vw;
    font-weight: bold;
    background: linear-gradient(transparent 60%, #fff231 0%);
    line-height: 1.8;     
    display: inline-block;
}
.line-button {
    margin: 0 auto;
}
.line-wrap-simple .line-button {width: 90vw;}
.line-wrap-detail .line-button {width: 80vw;}

.line-button a {
    display: block;
    color: #fff;
    font-size: 3.5vw;
    font-weight: bold;
    border-radius: 8vw;
    box-shadow: 0px 3px 0px 0 rgba(0, 0, 0, .14);
    background: url(/kansai/images/icon/icon-linekansai.png) no-repeat;
    background-size: 12vw;
    background-position: 3vw;
    background-color: #06C755;
    padding: 2.4vw 4vw 1.8vw 16vw;
    position: relative;
    text-decoration: none;
}
.line-button a span.small {
    display: block;
    font-size: 2.8vw;
    font-weight: normal;
}
.line-button a span.strong {
    display: block;
}
.line-button a span.strong::after {
    font-family: "Material Symbols Rounded";
    font-weight: 400;
    content: "\eaaa";
    font-size: 4.5vw;
    margin-left: 1.4vw;
        position: relative;
        top: 0.8vw;
}
.line-button a span.line-friend {
    font-size: 1.3em;
    color: #fff231;
    padding: 0 0.5vw;
}
/*------------------------------------------------
	円バナー
--------------------------------------------------*/
.fix-bnr {
    display: none;
    position: fixed;
    right: 5px;
	bottom: 70px;
    z-index: 100;
	a {
		display: block;
		img {
			width: 100px;
			height: 100px;
		}
	}
	p.close {
		position: absolute;
		right: 5px;
		top: 5px;
		a {
		  display: block;
			span {
				font-size: 14px;
				color: #333;
				background-color: #fff;
				border-radius: 50%;
				padding: 3px;
			}
		}
	}
}
/*------------------------------------------------
	クローズ
--------------------------------------------------*/
#close {
	background-color: #dbf6ff;
    padding: 20vw 0;
    text-align: center;
    font-size: 4.0vw;
    line-height: 1.8;
}
#close a {
    color: #1a7acd;
}