@charset "utf-8";
:root{
	--default-color-black: #2c2a29;
    --content-width-pc: 1104px;
	--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;
}
.main {
	-webkit-text-size-adjust: none;
}
.contents {
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 16px;
	line-height: 1.5;
	color: var(--default-color-black);
	background: url("../images/bg.jpg");
	a {
		text-decoration: none;
		&:hover {
			opacity: 0.8;
			transition: all 0.6s ease;
		}
	}
	img {
        max-width: 100%;
		height: auto;
    }
	.inner {
        width: var(--content-width-pc);
		max-width: 100%;
        margin: 0 auto;
	}
	.f-mini {
		font-size: 12px;
	}
	.f-small {
		font-size: 0.8em;
	}
	.red {
		color: var(--content-color-red);
	}	
}
.nopc {
	display: none!important;
}

/*-----------------------------------------
メインビジュアル
-------------------------------------------*/
#mainvisual {
	width: 100%;
	height: 560px;
    background: url("../images/main-bg-pc.jpg") no-repeat top center;
	.title {
		text-align: center;
		padding-top: 52px;
	}
}
/*-----------------------------------------
ページナビ
-------------------------------------------*/
#navi {
	width: 100%;
	padding: 64px 0;
	ul {
		width: var(--content-width-pc);
		margin: 0 auto;
		display: flex;
		justify-content: center;
		gap: 16px;
		li {
			width: 100%;
			font-size: 16px;
			text-align: center;
			font-weight: 700;
			position: relative;
			a {
				display: block;
				padding: 16px 0;
				color: #fff;
				border-radius: 8px;
				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: 24px;
				color: #fff;
				position: absolute;
				right: 10px;
				top:  50%;
				transform: translateY(-50%);
			}
		}
	}
}

/*ナビ固定時*/
.fix-navi:has(.fixed) {
	height: 80px;
}
#navi.fixed {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 1000;
	background-color: #fff;
	padding: 8px 0;
	a {
		padding: 12px 0;
		position: relative;
		&::after {
		  content: '';
		  position: absolute;
		  bottom: 5px;
		  left: 8%;
		  width: 84%;
		  margin: 0 auto;
		  height: 2px;
		  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);
		}
	}
}

/*-----------------------------------------
キャンペーン
-------------------------------------------*/
#cpn {
	width: 100%;
	padding-bottom: 40px;
	h2 {
		text-align: center;
		margin-bottom: 24px;
		.title-inner {
			display: inline-block;
			font-size: 36px;
			font-weight: 900;
			color: var(--content-color-pink);
			vertical-align: bottom;
		}
		&::before,&::after {
			content: "";
			display: inline-block;
			width: 60px;
			height: 60px;
			background: url("../images/fukidashi.svg") no-repeat;
			background-size: contain;
		}
		&::after {
			transform: scaleX(-1);
		}
	}
	.cpn-box {
		width: 100%;
		border-radius: 8px;
		background: #fff url("../images/cpn-bg-pc.png") no-repeat top center;
		padding: 64px 64px 40px;
		margin-bottom: 40px;
		.cashbak {
			text-align: center;
			margin-bottom: 40px;
		}
		.detail {
			display: flex;
			flex-wrap: wrap;
			justify-content: space-between;
			dt {
				font-weight: 700;
				width: 15%;
				border-bottom: dashed 1px #ccc;
				padding: 4px 8px;
			}
			dd {
				width: 85%;
				border-bottom: dashed 1px #ccc;
				padding: 4px 0;
			}
		}
		.note {
			font-size: 14px;
			margin-top: 16px;
		}
		.btn {
			width: 240px;
			margin: 24px 0 0 auto;
			a {
				display: block;
				background-color: #e6214c;
				border-radius: 20px;
				font-size: 14px;
				font-weight: 500;
				color: #fff;
				text-align: center;
				padding: 8px 0;
				position: relative;
				&::after {
					font-family: "Material Symbols Rounded";
					font-size: 18px;
					font-weight: 500;
					content: "\e313";
					position: absolute;
					right: 10px;
					top: 50%;
					transform: translateY(-50%);
				}
			}
		}
	}
	.cebcpn {
		width: 100%;
		border-radius: 8px;
		background: #fff;
		padding: 40px 64px;
		text-align: center;
		h3 {
			font-size: 30px;
			font-weight: 700;
			margin-bottom:16px;
		}
		.bnr {
			margin-bottom: 24px;
		}
		.btn {
			width: 700px;
			margin: 0 auto;
			a {
				display: block;
				background-color: #ff7800;
				border-radius: 999px;
				font-size: 16px;
				font-weight: 500;
				color: #fff;
				text-align: center;
				padding: 10px 35px 12px 20px;
				position: relative;
				&::after {
					font-family: "Material Symbols Rounded";
					font-size: 20px;
					font-weight: 500;
					content: "\e5cc";
					position: absolute;
					right: 10px;
					top: 50%;
					transform: translateY(-50%);
				}
			}
		}
	}
}
/*-----------------------------------------
見出しタイトル
-------------------------------------------*/
#tour h2,#fit h2 {
	padding-top: 64px;
	font-size: 40px;
	font-weight: 900;
	text-align: center;
	margin-bottom: 40px;
	&::before,&::after {
		content: "";
		display: inline-block;
		width: 60px;
		height: 70px;
		background: url("../images/kazari-yashi.png") no-repeat;
		background-size: contain;
		margin: 0 24px;
		transform: translateY(10px);
	}
	&::after {
		transform: translateY(10px) scaleX(-1);
	}
}

.product__list--contents h3{
		text-align: center;
		font-size: 28px;
		line-height: 1.8;
		font-weight: 700;
		margin: 40px 0 16px;
	      &::before, &::after {
			content: "";
    		display: inline-block;
   			width: 100px;
   			height: 2px;
    		background-color: #2c2a29;
    		vertical-align: middle;
    		margin: 0 15px;
        }
}



/*-----------------------------------------
下部背景
-------------------------------------------*/
#fit {
	padding-bottom: 300px;
	background: url("../images/bg-bottm-pc.jpg") no-repeat bottom center;
}
/*-----------------------------------------
その他ツアーボタン
-------------------------------------------*/
.product .other-button {
	width: 960px;
	margin: 32px auto 0;
	h4 {
		text-align: center;
		font-size: 18px;
		line-height: 1.8;
		font-weight: 700;
		border-bottom: solid 1px var(--default-color-black);
		margin-bottom: 16px;
	}
	ul {
		&.flex {
			display: flex;
			flex-wrap: wrap;
		}
		li {
			font-size: 16px;
			text-align: center;
			margin: 0 5px 10px;
			a {
				color: #fff;
				display: block;
				text-decoration: none;
				border-radius: 999px;
				padding: 10px 35px 12px 20px;
				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: 700;
					content: "\e5cc";
					position: absolute;
					right: 12px;
				}
			}
		}
	}
}

/*-----------------------------------------
バナー
-------------------------------------------*/
.bnr-area {
	padding: 64px 0 0;
	text-align: center;
	.aori {
		font-size: 32px;
		line-height: 1.5;
		font-weight: 700;
		margin-bottom: 16px;
	}
	ul {
		width: 960px;
		margin: 0 auto;
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		li {
			margin-bottom: 10px;
			&.col-1 {width: 100%;}
			&.col-2 {width: 49.4%;}
			&.col-3 {width: 32.2%; margin-top: 14px;}
			img {
				width: 100%;
			}
		}
	}
	&.foot {
		padding: 40px 0;
		background-color: #d6ecff;
	}
}
.product .product__wrapper .bnr {
	text-align: center;
	margin-top: 30px;	
}

/*------------------------------------------------
応募方法
--------------------------------------------------*/
#oubo {
    width: 100%;
	background-color: #f3f3f3;
	padding: 64px 0 96px;
	.oubo-box {
		border-radius: 30px;
		background-color: #fffbdc;
		.title-box {
			background-color: var(--content-color-yellow);
			border-top-left-radius: 30px;
			border-top-right-radius: 30px;
			padding: 16px 30px;
			text-align: center;
			h2 {
				text-align: center;
				margin-bottom: 15px;
				font-size: 36px;
				line-height: 1.3;
				font-weight: 900;
				span {
					color: var(--content-color-pink);	
					.strong {
						font-size: 54px;
					}
				}
			}
			.note {
				font-size: 14px;
				font-weight: 500;
			}
		}
	}
	
	.flex-box {
		width: 920px;
		margin: 0 auto;
		padding: 40px 0;
		display: flex;
		flex-wrap: wrap;
		li {
			width: 280px;
			background-color: #fff;
			border-radius: 20px;
			padding-bottom: 30px;
			margin-right: 40px;
			margin-bottom: 30px;
			position: relative;
			&::after {
				content: "▶";
				font-size: 24px;
				position: absolute;
				top: 160px;
				right: -30px;
				color: #06c755;
			}
			&:nth-child(3n),&:last-child {
				margin-right: 0;
				&::after {
					content: none;
				}
			}
		}
		h3 {
			background-color: var(--content-color-line);
			color: #fff;
			font-size: 18px;
			letter-spacing: 0.1em;
			line-height: 1.8;
			border-top-left-radius: 20px;
			border-top-right-radius: 20px;
			text-align: center;
			margin-bottom: 30px;
		}
		.icon {
			width: 100px;
			height: 100px;
			margin: 0 auto 30px;
		}
		.text {
			font-size: 16px;
			padding: 0 20px;
		}
		.btn {
			width: 230px;
			margin: 20px auto 0;
			a {
				display: block;
				background-color: var(--content-color-line);
				color: #fff;
				font-size: 14px;
				font-weight: 600;
				text-align: center;
				padding: 10px 0;
				border-radius: 30px;
				position: relative;
				&::after {
					font-family: "Material Symbols Rounded";
					font-weight: 400;
					content: "\e5cc";
					position: absolute;
					right: 10px;
					top: 50%;
					transform: translateY(-50%);
					font-size: 20px;
				}
			}
		}
		.capture {
			width: 220px;
			margin: 15px auto 0;
		}
	}
}

/*-----------------------------------------
検索BOX
-----------------------------------------*/
#searchArea {
	padding: 60px 0 0;
}
/*検索ボタンリセット*/
#searchArea {
	& select {color: #333;}
	& .rn-searchMod__inputField, .rn-searchMod__select, .rn-searchMod__toggle {
	font-size: 14px !important;
	}
	& .rn-searchMod__buttonSearchWrap a {
	font-size: 15px !important;
	padding: 14.6px 15px 16px 80px!important;  
	}
	& .rn-searchMod__formDomLink {
	font-size: 12px !important;
	}
	&.rn-searchMod__label::before {
	font-size: 10px !important;
	}
}
/*以下ブラックフライデーコピー*/
/*-----------------------------------------
商品アイコン設置
-------------------------------------------*/
.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;
}

/*------------------------------------
 カセット調整
-------------------------------------*/
.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-detail {
	padding: 50px 0 0;/*ページによって調整*/
	background-color: #fff;
}
.line-inner {
        width: 992px;
        margin: 0 auto;
        text-align: center;
        letter-spacing: 0.1em;
        line-height: 1.5;
}
.line-wrap-detail .line-inner {
        background: #fff;
        border: solid 1px #d3d3d3;
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        letter-spacing: 1px;
}
.line-inner .head {
        width: 100%;
        text-align: center;
        background-color: #06C755;
        padding: 8px;
        color: #fff;
        font-size: 20px;
        line-height: 1.5;
        font-weight: bold;
}
.line-inner .textarea {
        width: 76%;
        text-align: left;
        padding: 24px 0 32px 24px;
}
.line-inner .btnarea {
        width: 23.4%;
        padding: 8px 16px 8px 0;
}
.line-inner .text1 {
        font-size: 18px;
        line-height: 1.5;
}
.line-inner .text1 span {
        display: inline-block;
        font-weight: bold;
        color: #DF0D00;
}
.line-inner .text2 {
        font-size: 20px;
        font-weight: bold;
        background: linear-gradient(transparent 60%, #fff231 0%);
        display: inline-block;
        line-height: 1.8;
        padding: 0 4px;
}
.line-button a {
        display: block;
        color: #fff;
        font-size: 14px;
        text-align: center;
        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: 50px;
        background-position: 12px;
        background-color: #06C755;
        padding: 10px 10px 6px 70px;
        position: relative;
        text-decoration: none;
}
.line-button a:hover {
        opacity: .8;
        transition: all 0.6s ease;        
}
.line-qr {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
}
.line-qr span:nth-child(1) {
        width: 50%;
        font-size: 14px;
        font-weight: bold;
        line-height: 1.3;
        text-align: left;
}
.line-qr img {
        width: 50%;
}
.line-qr span:nth-child(3) {
        width: 100%;
        font-size: 14px;
}
.line-qr a {
        text-decoration: underline;
}
/*------------------------------------------------
	円バナー
--------------------------------------------------*/
.fix-bnr {
    display: none;
    position: fixed;
    right: 10px;
    top: 350px;
    z-index: 100;
	a {
		display: block;
	}
	p.close {
		position: absolute;
		right: 15px;
		top:15px;
		a {
		  display: block;
			span {
				font-size: 16px;
				color: #333;
				background-color: #fff;
				border-radius: 50%;
				padding: 5px;
			}
		}
	}
}
/*------------------------------------------------
	クローズ
--------------------------------------------------*/
#close {
	background-color: #dbf6ff;
    padding: 100px 0;
    text-align: center;
    font-size: 18px;
    line-height: 1.8;
}
#close a {
    color: #1a7acd;
}
