@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@500;700;900&display=swap');
:root{
	--content-color-blue: #07b0e9;
	--content-color-pink: #ed3b91;
	--content-color-yellow: #fff100;
	--content-color-navy: #0065b4;
	--content-color-navy-d: #003e85;
	--content-border_yellow: linear-gradient(transparent 70%, #ffff00 70%);
}

.nosp{
  display: none
}
.breadcrumb {
	width: 100%!important;
}
.contents {
	font-family: 'Noto Sans JP', sans-serif;
	font-weight: 500;
	font-size: 3.4vw;
	line-height: 1.5em;
	color: #222;
	background-color: #dbf6ff;
}
.inner {
	width: 95vw;
	margin: 0 auto;
}

/*----------------------------------------------
	メインビジュアル
------------------------------------------------*/
#mainVisual {
	width: 100%;
	height: 85.33vw;
    background: url("../images/sp/main-bg.jpg") no-repeat top center;
    background-size: 100%;
}
#mainVisual .inner {
	width: 100%;
}
#mainVisual .logo {
    text-align:center;
    padding-top: 4vw;
}
#mainVisual .logo img {
    width: 95vw;
}
/*-----------------------------------------
海外国内切り替え
-------------------------------------------*/
#switch {
    width: 90vw;
	margin: 8vw auto;	
}

#switch ul {
    display: flex;
	justify-content: space-between;
	gap: calc(20vw / 7.5);	
}
#switch li {
	position: relative;
    width: 50%;
	font-size: 5vw;
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #9a9a9a;
	border-radius: 8px;
    font-weight: bold;	
}
#switch li a {
    height: calc(100vw / 7.5);
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
	color: #fff;
	text-decoration: none;
}
#switch li:not(.active):hover {
	opacity: 0.8;
	transition: all 0.6s ease;
}
#switch .kaigai.active {background: var(--content-color-navy)}
#switch .kokunai.active {background: #04a008;}

#switch li.active:after {
    content: "";
    width: 0;
    height: 0;
    border-left: 4vw solid transparent;
    border-right: 4vw solid transparent;
    border-top: 4vw solid var(--content-color-navy);
    position: absolute;
    bottom: -3vw;
    right: 0;
    left: 0;
    margin: 0 auto;
}
#switch li.kokunai.active:after{ border-top: 4vw solid #04a008;}

/*-----------------------------------------
　Gナビ
-------------------------------------------*/
#g-navi {
	width: 90vw;
	margin: 0 auto;
	text-align: center;
	background: #b9ebfc;
	padding: 3vw;
	margin-bottom: 8vw;
}
#g-navi ul {
	width: 100%;
	display: flex;
	align-items: center;
	gap: calc(20vw / 7.5);
}
#g-navi ul li {
	width: 50%;
}
#g-navi ul li a {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	height: 14vw;
	font-size: 3.6vw;
	line-height: 1.3em;
	font-weight: 900;
	color: var(--content-color-navy);
	text-decoration: none;
	border-radius: 10px;
	background: #fff;
	border: solid 1px var(--content-color-navy);
}
#g-navi ul li a:after {
	font-family: "Font Awesome 5 Free";
	font-weight: bold;
    content: "\f107";
	position: absolute;
	right: 1.8vw;
}
/*-----------------------------------------
　見出し
-------------------------------------------*/
.contents h2 {
	width: 90vw;
	margin: 0 auto;
    display: flex;
    align-items: center;
	font-size: 6.4vw;
	font-weight: bold;
	color: #191919;
    text-align: center;
    line-height: 1.2em;
	padding-top: 6vw;
}
.contents h2::before, .contents h2::after {
    content: "";
    height: 2px;
    flex-grow: 1;
    background-color: #191919;
}
.contents h2:before { margin-right: 2.4vw;}
.contents h2:after {margin-left: 2.4vw;}

.contents .product h3:after {
	transform: scaleX(-1);
}

.contents .product h3 {
	color: var(--content-color-navy-d);
	font-size: 5.2vw;
	font-weight: 900;
	line-height: 1.6em;
	text-align: center;
	margin-bottom: 3vw;
}
.contents .product h3:before,
.contents .product h3:after {
	content: "";
	display: inline-block;
	width: 10vw;
	height: 3vw;
	background: url("../images/icon-h3-blue.svg") no-repeat;
	background-size: contain;
	margin: 0 1.5vw;
}
.contents .product h3:after {
	transform: scaleX(-1);
}
#tour .product .area-title {
	color: var(--content-color-navy-d);
	font-size: 6.0vw;
	font-weight: 900;
	line-height: 1.0em;
	text-align: center;
	margin-bottom: 5vw;
}
#tour .product .area-title:before,
#tour .product .area-title:after {
	content: "";
	display: inline-block;
	width: 16vw;
	height: 4vw;
	background: url("../images/icon-area-title.svg") no-repeat;
	background-size: contain;
	margin: 0 1vw;
}
#tour .product .area-title:after {
	transform: scaleX(-1);
}

/*----------------------------------------------
	特典
------------------------------------------------*/
.contents .ttn {
    width: 100%;
    padding: 8vw 0;
}
.contents #fit .ttn {
	padding: 8vw 0 0;
}
.contents .ttn .inner {
	width: 90vw;
}
.contents .ttn h3 {
	text-align: center;
	margin-bottom: 3vw;
}
.contents .ttn h3 img {
	width: 86vw;
}
.contents .ttn-list {
	width: 100%;
}
.contents .ttn-list li {
	margin-bottom: 2vw;
}
.contents .ttn-list li img {
	width: 100%;
	border-radius: 2vw;
}
/*特典終了対応*/
.contents .ttn-list li.end {
	position: relative;
}
.contents .ttn-list li.end a {
	pointer-events: none;
}
.contents .ttn-list li.end:before {
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background: rgba(0,0,0,0.3);
    z-index: 101;
	border-radius: 2vw;
}
.contents .ttn-list li.end:after {
	content: "終了しました";
    position: absolute;
    top: 23vw;
    right: 0;
    left: 0;
    margin: auto;
    font-size: 6.0vw;
    font-weight: bold;
    background-color: #f00;
    color: #fff;
    text-align: center;
    z-index: 102;
    width: 40vw;
    padding: 2vw 0;
    transform: rotate(-7deg);
}

/*-----------------------------------------
方面ナビ
-------------------------------------------*/
#navi {
	width: 100%;
	background-color: var(--content-color-blue);
	padding: 2vw;
}
#navi ul {
	display:flex;
	flex-wrap: wrap;
}
#navi ul li{
	font-size: 3.4vw;
	line-height: 1.5em;
	text-align: center;
    width: 48%;
    margin: 1%;
    position:relative;
    justify-content: center;
    align-items: stretch;
    background-color: #fff;
}
#navi ul li a {
	display: flex;
	width: 100%;
	height: 100%;
    text-decoration: inherit;
    color: inherit;
	align-items: center;
	justify-content: center;
	padding: 2vw 3vw 2vw 2vw;
}
#navi ul li a:after{
	font-family: "Font Awesome 5 Free";
	font-weight: bold;
	content: "\f107";
    position: absolute;
    right: 3px;
}

/*上部固定時のcss*/
#navi.fixed {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1000;
    box-shadow: 0px 1px 2px 0px rgb(0 0 0 / 30%);
	padding: 0;
}

#navi.fixed ul {
	flex-wrap: nowrap;
	justify-content: space-between;
}
#navi.fixed ul li{
	width: 100%;
	font-size: 3.0vw;
	line-height: 1.2em;
    margin: 0;
	border-right: dotted 1px #fff;
	background-color: transparent;
}
#navi.fixed ul li:last-child {
	border-right: none;
}
#navi.fixed ul li a {
	padding: 2vw 1vw 3vw;
	position: relative;
	color: #fff;
}
#navi.fixed ul li a:after{
	position: absolute;
	bottom: 0;
	right: 0;
	left: 0;
	margin: 0 auto;
}

/*-----------------------------------------
LINEボタン
-------------------------------------------*/
.contents .line-button {
	background-color: #dbf6ff;
	text-align: center;
	padding: 3vw;
}
.contents .line-button img {
	width: 80vw;
}
.contents .line-button a {
	display: block;
}
/*-----------------------------------------
商品部分・方面別特典
-------------------------------------------*/
.product {
	padding: 0 0 10vw 0;
}
.product .area-ttn {
	width: 100%;
	background-color: #fff;
	border: solid 0.7vw var(--content-color-blue);
	border-radius: 2vw;
	padding: 10vw 2vw 2vw 2vw;
	margin-bottom: 5vw;
	position: relative;
}
.product .area-ttn li {
	font-size: 3.4vw;
	font-weight: 700;
	line-height: 1.4em;
	margin-bottom: 1.5vw;
	padding-left: 5vw;
	position: relative;
}
.product .area-ttn li:before {
	content: "";
	display: inline-block;
	width: 4vw;
	height: 4vw;
	background: url("../images/icon-check.svg") no-repeat;
	background-size: contain;
	position: absolute;
	left: 0;
	top: 0;
}
.product .area-ttn li .city-group,
.product .area-ttn li .city {
	display: inline-block;
	font-size: 0.95em;
	background-color: #aceaff;
	padding: 0 1vw;
	margin-right: 0.5vw;
}
.product .area-ttn li:has(.city-group) {
	padding-left: 0;
}
.product .area-ttn li:has(.city-group):before {
	content: none;
}
.product .area-ttn li .f-small {
	font-size:0.8em;
}
.product .area-ttn li strong {
	color: var(--content-color-pink);
}
.product .area-ttn:before {
	content: "";
	display: block;
	width: 100%;
	height: 7vw;
	border-top-right-radius: 2vw;
	border-top-left-radius: 2vw;
	background: var(--content-color-yellow) url("../images/sp/area-ttn-title.png") no-repeat;
	background-position: center center;
	background-size: 70vw;
	position: absolute;
	top: 0;
	left: 0;
}
/*-----------------------------------------
その他ツアーボタン・おすすめバナー
-------------------------------------------*/
.product .other-button {
	margin-top: 3vw;
}
.product .other-button h4 {
	text-align: center;
	font-size: 3.4vw;
	line-height: 1.8em;
	font-weight: 700;
	border-bottom: solid 1px #222;
	margin-bottom: 3vw;
}
.product .other-button ul li {
	font-size: 3.3vw;
    line-height: 2.8em;
	text-align: center;
	margin: 0 1vw 2vw;
}
.product .other-button ul.flex {
	display: flex;
	flex-wrap: wrap;
}
.product .other-button ul li a {
	color: #fff;
	display: block;
	text-decoration: none;
	border-radius: 1.4em;
    position: relative;
    box-shadow: 2px 2px 0px 0 rgba(0, 0, 0, .25);
	padding: 0 6vw 0 5vw;
	background-color: var(--content-color-navy-d);
}
.product .other-button ul li a:after {
	font-family: "Font Awesome 5 Free";
	font-weight: bold;
	content: "\f105";
    position: absolute;
    right: 2vw;
}
.product .product__contents .bnr {
	text-align: center;
	margin-top: 3vw;	
}
.product .product__contents .bnr img {
	width: 100%;
}
/*-----------------------------------------
バナーエリア
-------------------------------------------*/

#bnr-area {
	padding: 8vw 0 0;
	text-align: center;
}
#bnr-area .aori {
	font-size: 4.2vw;
	line-height: 1.2em;
	font-weight: 700;
	margin-bottom: 1vw;
}
#bnr-area ul {
	width: 94vw;
	margin: 0 auto;
}
#bnr-area ul li{
	margin-bottom: 3.8vw;
}
#bnr-area ul li img{
	width: 100%;
}
#bnr-area .note {
    font-size: 3.0vw;
    text-align: right;
        }
/*-----------------------------------------
下部バナー
-------------------------------------------*/
#foot-bnr {
	padding: 0 0 8vw;
	text-align: center;
}
#tour-foot-bnr {
	padding: 8vw 0 0;
	text-align: center;
}
#foot-bnr p,#tour-foot-bnr p {
	font-size: 5.0vw;
	line-height: 1.8em;
	font-weight: 700;
	margin-bottom: 1vw;
}
#foot-bnr ul,#tour-foot-bnr ul {
	width: 94vw;
	margin: 0 auto;
}
#foot-bnr ul li,#tour-foot-bnr ul li {
	margin-bottom: 3.8vw;
}
#foot-bnr ul li img,#tour-foot-bnr ul li img {
	width: 100%;
}
#foot-bnr .note {
    font-size: 3.0vw;
    text-align: right;
    font-weight: normal;
        }
/*--------------------------------------------
FIT円バナー
--------------------------------------------*/
#fix-bnr-sp {
    display: none;
    position: fixed;
    right: 0;
    bottom: 15vw;
    z-index: 100;
}
@media (orientation: landscape){
	#fix-bnr-sp {
		display: none;
	}
}
#fix-bnr-sp a {
    display: block;
}
#fix-bnr-sp a img {
	width: 90px;
}
#fix-bnr-sp .close {
  position: absolute;
  right: 3px;
  top: 3px;
}
#fix-bnr-sp .close a{
	width: 20px;
	height: 20px;
	background-color: #888;
	border-radius: 50%;
	text-align: center;
	font-size: 13px;
	font-weight: bold;
	line-height: 20px;
	color: #fff;
	text-decoration: none;
}
/*----------------------------------------------
サイドボタン
------------------------------------------------*/
#side-btn-sp {
    position: fixed;
    top: 36vw;
    right: 0;
    writing-mode: vertical-rl;
	font-size: 12px;
    line-height: 2.5em;
    padding: 10px 0;
    opacity: 0.8;
    z-index: 1000;
    border-bottom-left-radius: 5px;
    border-top-left-radius: 5px;
    display: none;
}
.is-kaigai #side-btn-sp {background-color: #04a008;}
.is-kokunai #side-btn-sp {background-color: var(--content-color-navy);}
#side-btn-sp a {
	display: block;
	color: #fff;
	text-decoration: none;
}

@media (orientation: landscape){
	#side-btn-sp {
		bottom: 10vw;
	}
}
/*-----------------------------------------
検索ボックス 調整
-------------------------------------------*/
#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--label > [class*="product__list--label--"] {
    width: 24vw;
    font-size: calc(23vw / 7.5);
    padding: 0.25em!important;
}
.airhotel .product__list--label > [class*="product__list--label--"] {
    width: initial;
}

/*.product__list--label > [class*="product__list--label--"]:empty {
    display: none;
}*/
/*▼関西用jsonのアイコン設置用CSS（関東の商材を読み込んでるのを除く）*/
body:not(.is-kaigai) .product__list:not(.is-activities):not(.is-oe) .product__list--label > [class*="product__list--label--"]:empty {
    display: none;
}
.is-kaigai .product__list:not(.is-hotels):not(.is-cars):not(.is-activities):not(.is-oe) .product__list--label > [class*="product__list--label--"]:empty {
    display: none;
}
/*国内ホテルアワード用*/
.product__list--label--awbest,
.product__list--label--awgood {
	display: block!important;
}

/*▲---------------------------*/
.product__list--label--fair,
.product__list--label--shien,
.product__list--label--goto,
.product__list--label--awbest,
.product__list--label--awgood {
    text-indent: 120%;
    white-space: nowrap;
    overflow: hidden;
}
.product__list--label--cm {
	background: #e70012;
}
.product__list--label--tv {
	font-size: calc(22vw / 7.5)!important;
	background: #e70012;
}
.product__list--label--line {
  background: #07b53b;
}
.product__list--label--news {
  background: #ff6000;
}
.product__list--label--mail {
    background: #ff6000;
}
.product__list--label--other {
  background: #e70012!important;
}
/*▼下層スクロール用*/
.sp_scroll .product__list--label {
    position:absolute;
    width: 90px;
}
.sp_scroll .product__list--label > [class*="product__list--label--"] {
    padding: 0.2em;
    margin-bottom: 0;
    /*font-size: calc(20vw / 7.5);
    height: calc(40vw / 7.5);*/
}
.sp_scroll .product__list--label--fair {
    background-size: contain;
    background-color: #1853a4;
    background-position: center;
}
/*▲下層スクロール用*/
.product__list--point:empty {
    display: none!important;
}

/*------------------------------------
 商品空のとき
-------------------------------------*/
.product__list--item:empty,
.product__list--item--sp: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,
.product__list--type--sp .js-split-airport:not(:empty) + span{
  display: none;
}
.product__list--dep .js-split-departure::after,
.product__list--dep span[id*="dep_"]::after{
  content: "出発"
}
.product__list--type.port-type::after,
.product__list--type--sp.port-type::after{
  content: "発着"
}
.product__list--type.port-type.hotel::after,
.product__list--type--sp.port-type.hotel::after{
  content: ""
}
.product__list--type.port-type.train::after,
.product__list--type--sp.port-type.train::after{
  content: "発"
}
.product__list--dep .js-split-departure:empty::after,
.product__list--dep span[id*="dep_"]:empty::after,
.js-split-airport:empty::after{
  display: none;
}
.product__list--dep, .product__list--notes {
	width: 100%;
}

/*------------------------------------
FIT特典部分調整
-------------------------------------*/
.is-air .product__list--tokuten,
.is-airhotel .product__list--tokuten {
    border-top:none;
}
.is-air .product__list--tokuten--item,
.is-airhotel .product__list--tokuten--item {
    border-top: calc(1vw / 7.5) dashed;
    padding-top: 2vw;
}
.is-air .product__list--tokuten--item:empty,
.is-airhotel .product__list--tokuten--item:empty {
    display: none;
}


/* ファミリー旅行相談会
------------------------------ */
.section.info {
	width: 100%;
	margin: 5vw 0;
}
.section .section_innerbox {
	width: 96%;
	margin: 0 auto;
	padding: 4vw 8vw;
	background-color: #fcddf0;
	border-radius: 4vw;	
}
/* 見出し */
.section .section_innerbox h3.title {
	text-align: center;
	font-weight: bold;
	width: 100%;
	margin-bottom: 3vw;
}
.section .section_innerbox h3.title img {
	width: 100%;
}
/* 説明会日程 */
.section .section_innerbox dl {
	width: 100%;
	margin-bottom: 4vw;
}
.section .section_innerbox dl .info_item{
	padding: 3vw 9vw;
	background-color: #fff;
	margin-bottom: 2vw;
	border-radius: 2vw;
}
.section .section_innerbox dl dt{
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	margin-bottom: 1.5vw;
}
.section .section_innerbox dl dt div:first-child{
	font-size: 3.2vw;
	padding: 1vw 2vw;
	background-color: #00479d;
	color: #fff;
}
.section .section_innerbox dl dt div:nth-child(2){
	padding-left: 3vw;
	font-size: 3.5vw;
}
.section .section_innerbox dl dt div:nth-child(2) span{
	font-size: 80%;
}

/* 申し込みボタン */
.section .section_innerbox dl button {
	display: block;
	margin: 0 auto;
	border: none;
	background: none;
}
.section .section_innerbox dl button a {
	display: block;
	width: 60vw;
	padding: 2.8vw 3vw;
	color: #1d4097;
	font-size: 3.2vw;
	border-radius: 2em;
	background-color: #fbf33f;
	border: solid 1px #1d4097;	
	position: relative;
	font-weight: bold;
	text-decoration: none;
	line-height: 1;	
}
.section .section_innerbox dl button a::after {
    font-family: "FontAwesome", "Font Awesome 5 Free";
	content: "\f105";
	position: absolute;
	right: 3.5vw;
}
/* 申し込みボタン・終了時 */
.section .section_innerbox dl button a.end {
	background-color: #c7c7c7;
	pointer-events: none;
	color: #313131;
	border: none;
}
.section .section_innerbox dl button a.end::after {
	content: "";
}
/* 説明会・あおり */
.section .section_innerbox .copy{
	font-size: 3.4vw;
	text-align: center;
	color: #c6125e;
	font-weight: bold;	
}
/*------------------------------------------------
	クローズ
--------------------------------------------------*/
#close {
	background-color: #dbf6ff;
    padding: 20vw 0;
    text-align: center;
    font-size: 4.0vw;
    line-height: 1.6em;
}
#close a {
    color: #1a7acd;
}

/*------------------------------------------------
        LINEお友達登録ボタン
--------------------------------------------------*/
.line-wrap-simple {
        padding: 5vw 0;
}
.line-wrap-detail {
        padding: 5vw 0 0;
        background-color: #fff;
}
.is-kokunai .line-wrap-detail {
	margin-bottom: 8vw;
}
.line-inner {
        width: 94vw;
        margin: 0 auto;
        text-align: center;
        letter-spacing: 0.1vw;
        line-height: 1.5;
}
.line-wrap-detail .line-inner {
        border: solid 1px #d3d3d3;
}
.line-inner .fukidashi {
        font-size: 4.1vw;
        font-weight: bold;
        margin-bottom: 2vw;
}
.line-inner .head {
    background-color: #15c618;
    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.4vw;
        line-height: 1.5em;
        margin-bottom: 1vw;
}
.line-inner .text1 span {
        display: inline-block;
        font-weight: bold;
        color: #fb0b0b;
        background-color: #ffe1e1;
        padding: 0 0.5vw;
}
.line-inner .text2 {
        font-size: 4.1vw;
        font-weight: bold;
        background: linear-gradient(transparent 60%, #fff231 0%);
        line-height: 1.7em;        
        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: #15c618;
        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: "FontAwesome", "Font Awesome 5 Free";
        font-weight: 900;
        content: "\f138";
        font-size: 4vw;
        margin-left: 1.4vw;
}
.line-button a span.line-friend {
        font-size: 1.3em;
        color: #fff231;
        padding: 0 0.5vw;
}