@charset "utf-8";

/*PCSP共通設定*/
html {scroll-behavior: smooth;}/*smooth scroll*/


/*759px以下*/
@media screen and (max-width: 759.9px) {
#wrapper {line-height: 1.4;}
.spnone{display:none;}

/* CSS */
#dirPathBlock,
#anchorLinkBlock {
	font-size: 10px;
	margin: 1% 1% 0 1%;
}
#dirPathBlock p,
#anchorLinkBlock a{font-size: 12px;}
h1 {
	font-size: 12px;
	margin: 0 1%;
}

.inner{
        width: 93%;
        margin: 0 auto;
        padding: 24px 0;
        box-sizing: border-box;
}

/* ------------------------------------------
	Title
------------------------------------------ */
div#title img {
    width: 100%;
}
	
h2 img {
    width: 100%;
	margin:1rem auto 2rem;
}	
/* ------------------------------------------
	背景色（各セクション）
------------------------------------------ */
#campaign,
#reserve,
#negative_check_sheet__section,
#qa {
  background: #E6F0FA;
}

#nav,
#what {
  background: #DCF0F0;
}

#spot,
.circlebg {
  background: #E9F7F7;
}

svg.circlebg {
          display: block;
}


/* ------------------------------------------
	 ナビゲーション
------------------------------------------ */
.nav {
  background: #fff;
  overflow: hidden;
        border-radius: 20px;
}

.nav_list {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        grid-template-rows: repeat(2, 1fr);
        grid-row-gap: 5px;
        border-radius: 15px;
        padding: 5px 10px;
}

.nav_item {
  flex: 1;
  text-align: center;
  position: relative;
	padding: 10px;
}

.nav_link {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: 100%;
  text-decoration: none;
}

.nav_en {
  font-family: "Montserrat", sans-serif;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.24em;
  margin: 0;
}

.nav_jp {
        font-size: 0.8rem;
        line-height: 1.2;
        margin: 2px 0 0;
        font-weight: 700;
        color: #1E4E79;
}

.nav_item:nth-child(-n+2)::after {
content: "";
        position: absolute;
        bottom: -6px;
        margin: auto;
        border-bottom: 2px solid #1E4E79;
        width: 90%;
        transform: translate(-50%, -50%);
}


/* カラー設定 */
.nav_item:nth-child(1) .nav_en { color: #5FCC00; }
.nav_item:nth-child(2) .nav_en { color: #00AEEA; }
.nav_item:nth-child(3) .nav_en { color: #EF5F81; }
.nav_item:nth-child(4) .nav_en { color: #FF9500; }

/* ------------------------------------------
	 What
------------------------------------------ */
#what {
  text-align: center;
}
#what {
  background-image: url('../images/bg2.jpg');
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size:100% auto;;
  min-height: 150px;
  text-align: center;
}
    .what_txt {
color: #1E4E79;
        font-size: 1rem;
        line-height: 2;
        text-align: center;
        margin: 0 auto 2rem;
    }

 .lcimg {
        width: 95%;
        margin: 1rem auto 4rem;
 }
	


/* ------------------------------------------
	 Campaign
------------------------------------------ */
#campaign {
  text-align: center;
}


.cpbox h3 {
background-color: #2A76B6;
        color: #ffffff;
        font-size: 1.5rem;
        font-weight: bold;
        text-align: center;
        padding: 5px 0;
        border-radius: 5px;
}

    .row {
        display: flex;
        border-top: 1px solid #1E4E79;
        padding: 10px 0;
        flex-direction: column;
		        text-align: left;
    }

.row.first_row {
  border-top: none;
}

.row dt {
        font-weight: bold;
        color: #2A76B6;
        font-size: 1.25rem;
}

.row dd {
margin: 0;
        color: #1E4E79;
        flex: 1;
        font-size: 1rem;
        line-height: 1.4;
}

.attention {
        font-size: 0.85rem;
        text-indent: -1em;
        padding-left: 1em;

}

.attentionimg {
  width: 100%;
}

.attentionimg {
  border: 1px solid #1E4E79; 
  padding: 10px; 
  background-color: #FFF; 
  display: inline-block; 
        width: 90%;
        margin: 15px 0 0 0;
}	
	
#campaign .red {
  color: #FF0000;
}

/* テーブルキャンペーン詳細 */
.cp_table {
 display: flex;
        flex-direction: column;
        gap: 5px;
        margin-top: 10px;
        max-width: 100%;
        text-align: center;
        font-size: 1rem;
}

.table_row {
  display: flex;
  gap: 5px;
}

.cp_cell {
  flex: 1;
  padding: 3px 10px;
  color: #1E4E79;
  box-sizing: border-box;
}

.table_row.cp_header .cp_cell {
  background-color: #2A76B6;
  color: #FFF;
}

.table_row.cp_even .cp_cell {
  background-color: #EEF8FF;
}

.table_row.cp_odd .cp_cell {
  background-color: #FFFFFF;
}
	
	
	
	
/* ------------------------------------------
	予約ボタン
------------------------------------------ */

.reserve_title {
  font-size: 25px;
  font-weight: bold;
  letter-spacing: 3px;
  color: #2A76B6;
  text-align: center;
          padding: 0 0 1rem 0;
}

.reserve_title::before,
.reserve_title::after {
  content: "";
  display: inline-block;
  background-color: #2A76B6;
  width: 20px;
  height: 2px;
  margin: 0 25px 5px 23px;
}

.reserve_title::before {
  transform: rotate(45deg);
  transform-origin: center;
}

.reserve_title::after {
  transform: rotate(-45deg);
  transform-origin: center;
}

.reserve_btn_area {
         display: flex;
        justify-content: space-evenly;
        gap: 0.5rem;
        flex-wrap: wrap;
        flex-direction: column;
	text-align: center;
}

.reserve_btn {
       flex: 1;
        font-size: 1.2rem;
        text-decoration: none;
        padding: 0.5rem 2rem;
        border-radius: 10px;
        position: relative;
        font-weight: bold;
        display: inline-block;
        transition: background-color 0.3s ease;
}

a.reserve_btn {
  color: #fff;
}

.reserve_btn.jr {
  background-color: #2A76B6;
}

.reserve_btn.flight {
  background-color: #1DA592;
}

.reserve_btn.hotel {
  background-color: #FFA04B;
}

.reserve_btn::after {
  content: '';
  width: 10px;
  height: 10px;
  border-top: 2px solid #FFF;
  border-right: 2px solid #FFF;
  transform: rotate(45deg) translateY(-50%);
  position: absolute;
  top:48%;
  right: 20px;
  border-radius: 1px;
  transition: 0.3s ease-in-out;
}

/* 予約ボタン流用学び旅のボタン */
p.reserve_title.activity_area {
  padding: 2rem 0 1rem;
}

.reserve_btn_area.activity_area {
  text-align: center;
}

p.reserve_title.activity_area {
  font-size: 1.1rem;
  letter-spacing: 0px;
}

p.reserve_title.activity_area::before,
p.reserve_title.activity_area::after {
  margin: 0 3px 4px 3px;
}
	
p.reserve_title.activity_area::before {
	transform: rotate(50deg);
	width: 15px!important;
	}
p.reserve_title.activity_area::after {
	transform: rotate(-50deg);
		width: 15px!important;
	}

/*agree*/
#overlay_coupon_area { position: relative;}

p.check_sheet_text {
    color: #1E4E79;
    font-size: 1rem;
    line-height: 1.5;
    text-align: center;
    margin: 0 auto 1rem;
}	
#negative_check_sheet{
	width: 100%;
    margin: auto;
    padding: 7px 0 1px;
    font-size: 14px;
    background: #FFFFCC;
	color:#434343;
}
#negative_check_sheet li{
	list-style: inside;
    width: 90%;
    margin: 0 5% 3%;
}
#negative_check_sheet .policy{margin: 12px;}
#negative_check_sheet .policy input{float: left;}
#negative_check_sheet .policy label{
	vertical-align: middle;
    display: grid;
	font-weight: bold;
}
#negative_check_sheet__img{display:none;}
#negative_check_sheet .policy input[type="checkbox"] {
    border: 1px solid #aaaaaa;
    vertical-align: -8px;
    -webkit-appearance: none;
    position: relative;
    margin-right: 5px;
    -webkit-border-radius: 3px;
    border-radius: 3px;
    -webkit-box-sizing: border-box;
    width: 26px;
    height: 26px;
    background: #fff;
    background: -webkit-gradient( linear, left top, left bottom, color-stop(0.00, #fff), color-stop(1.00, #fff) );
    background: linear-gradient( to bottom, #fff 0%, #fff 100% );
}
#negative_check_sheet .policy input[type="checkbox"]:checked:before {
    position: absolute;
    left: 1px;
    top: 16px;
    display: block;
    -webkit-box-shadow: 0 1px 1px rgb(0 0 0 / 50%);
    content: "";
    width: 10px;
    height: 4px;
    background: #ffffff;
    -webkit-transform: rotate(45deg);
    -webkit-transform-origin: right center;
}
#negative_check_sheet .policy input[type="checkbox"]:checked:after {
    display: block;
    position: absolute;
    left: 9px;
    top: 16px;
    content: "";
    -webkit-box-shadow: 0 1px 1px rgb(0 0 0 / 50%);
    width: 16px;
    height: 4px;
    background: #ffffff;
    -webkit-transform: rotate(-53deg);
    -webkit-transform-origin: left center;
}
#negative_check_sheet .policy input[type="checkbox"]:checked {
    background: #99cc00;
    background: -webkit-gradient( linear, left top, left bottom, color-stop(0.00, #99cc00), color-stop(1.00, #87b400) );
    background: linear-gradient( to bottom, #99cc00 0%, #87b400 100% );
    border: 1px solid #336600;
}
#overlay_coupon{
	position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    color: #FFF;
    font-size: 20px;
    font-weight: bold;
    text-align: center;
    padding-top: 0 !important;
    display: grid;
    align-items: baseline;
	visibility: hidden;
	z-index: 0;
	transition: 0.1s;
}
#overlay_coupon p {
	padding-top: 20px;
}
#overlay_coupon.close{
	visibility: visible;
    background: rgba(0,0,0,0.6);
	z-index: 2;
	transition: 0.1s;
}



	
/* ------------------------------------------
	おすすめの体験
------------------------------------------ */
.hotel_spot,.activity_spot {
        margin: 0rem auto 3rem;
        background-color: #ffffff;
        padding: 10px;
        border-radius: 20px;
}
	
/* ------------------------------------------
	タイトル
------------------------------------------ */
h3.spot_hotel {
	text-align: center;
	color: #F27795;
	font-weight: bold;
	margin: 2rem auto;
}

p.sbtxt_sp {
	font-size: 1.25rem;
	border-bottom: dashed 2px;
	display: inline;
	letter-spacing: 4px;
}

p.maintxt_sp {
        padding: 10px 0 0;
        font-size: 2rem;
	        line-height: 1.2;
}


h3.spot_activity {
	text-align: center;
	color: #00AEEA;
	font-weight: bold;
	margin: 2rem auto;
}	
	
/* ------------------------------------------
	スライダー
------------------------------------------ */
.slider {
	margin: 25px 0 0;
}

.slick-track {
        display: flex;
        justify-content: center;
}

.slider_box {
	background-color: #ffffff;
	box-sizing: border-box;
	text-align: center;
	display: flex !important;
	flex-direction: column;
	align-items: center;
}

.slider_box_image {
  width: 100%;
  height: auto;
  display: block;
}

.slider_contxt_box {
	padding: 20px;
}
.slick-slide img {
    display: block;
        width: 92%;
        margin: auto;
    }
.slider_box_title {
	font-size: 1.5rem;
	color: #1E4E79;
	margin: 23px 0 18px;
	height: 55px;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	font-weight: bold;
}



/* ------------------------------------------
	エリア・カテゴリ ラベル
------------------------------------------ */
.hotel_label {
	position: relative;
	height: 50px;
	width: 95%;
}

p.area_label {
	position: absolute;
	top: 0;
	left: 5px;
	background: #1E4E79;
	color: #FFF;
	font-size: 1.5rem;
	font-weight: bold;
	padding: 5px 20px;
	letter-spacing: 2px;
}

p.category_label {
        padding: 10px 0;
        text-align: right;
}

p.category_label span {
font-size: 1.3rem;
        font-weight: bold;
        color: #FFF;
        border-radius: 3px;
                padding: 1px 5px 2px;
        margin: 0px 5px 0 0;
}

/* カテゴリ別色 */
span.food {
	background: #F05F82;
}

span.activity {
	background: #1DA592;
}

span.history {
	background: #2A76B6;
}

/* ------------------------------------------
	体験紹介テキスト
------------------------------------------ */
.slider_box_text {
	font-size: 1rem;
	color: #1E4E79;
	text-align: left;
	margin-bottom: 20px;
	line-height: 1.5;
}
.slider_box_maintext {
    margin: 0 auto 2rem;
}	
/* ------------------------------------------
	詳細情報（営業時間・定休日・住所など）
------------------------------------------ */
.fc_description_wrap {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.fc_description {
	display: flex;
}

    .fc_description dt {
        flex: 0 0 85px;
        text-align: center;
        display: flex;
        align-items: flex-start;
        justify-content: center;
    }

.fc_description dt span {
display: inline-block;
        background-color: #1E4E79;
        color: #FFF;
        font-size: 1rem;
        font-weight: bold;
        width: 85px;
}

.fc_description dd {
	margin: 0;
	color: #1E4E79;
	flex: 1;
	text-align: left;
	padding-left: 10px;
	font-size:  1rem;
	line-height: 1.4;
}

	.nop{
		font-size: 14px!important;
		font-weight: normal!important;
		padding: 0 !important;
	}
/* ------------------------------------------
	リンクボタン（宿泊・JR・航空）
------------------------------------------ */
.sl_btn {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.slider_box_button {
	position: relative;
	display: inline-block;
	color: #FFF;
	text-decoration: none;
	padding: 10px 0;
	border-radius: 4px;
	font-size: 18px;
	font-weight: bold;
	width: 100%;
}

.slider_box_button.jr {
	background-color: #2A76B6;
}

.slider_box_button.flight {
	background-color: #1DA592;
}


.slider_box_button.hotel {
	background-color: #FFA04B;
}

/* ボタン内矢印 */
a.slider_box_button {
	color: #FFF;
}

a.slider_box_button::after {
	position: absolute;
	top: 16px;
	right: 10px;
	content: '';
	width: 10px;
	height: 10px;
	border-top: 2px solid #FFF;
	border-right: 2px solid #FFF;
	transform: rotate(45deg);
}

	

	
/* ------------------------------------------
	画像スライダー
------------------------------------------ */	
.slider_inner .slick-dots li button:before {
  font-size: 12px;
  color: #A6A6A6;
  content: '■'; /* 四角に変更 */
}

.slider_inner .slick-dots li.slick-active button:before {
  color: #1E4E79;
}
	
	
/* ------------------------------------------
	Slickナビゲーションのスタイル
---------------------------------------- */
.slick-prev,
.slick-next {
	z-index: 1;
}

/* ----.slick-prev,.slick-next {
        transform: translate(0, 0%);
    }--- */
.slick-next {
    right: 0!important;
}
    .slick-prev {
        left: -24px !important;
    }

.slick-prev:before,
.slick-next:before {
	color: #A6A6A6;
	font-size: 35px;
}

.slick-dots li button:before {
	color: #A6A6A6;
	font-size: 12px;
}

	
.slick-dots li.slick-active button:before {
	color: #1E4E79;
}

	
/* テキスト選択を有効にする */
.slick-slide,
.slick-track,
.slick-list,
.slider_box,
.slider_box_text,
.slider_box_title,
.fc_description,
.fc_description dd {
  user-select: text !important;
  -webkit-user-select: text !important;
}
	
/* ------------------------------------------
	タブ切り替え
---------------------------------------- */
	
/* ここからタブ切り替えCSS */
.tab .tab_wrap {
	display: -webkit-flex;
	display: -moz-flex;
	display: -ms-flex;
	display: -o-flex;
	display: flex;
	-webkit-flex-wrap: wrap;
	-moz-flex-wrap: wrap;
	-ms-flex-wrap: wrap;
	-o-flex-wrap: wrap;
	flex-wrap: wrap;
}
.tab .tab_wrap .tab_label {	/* タブ */
position: relative;
        padding: 7px 0 7px 20px;
        -webkit-order: -1;
        -moz-order: -1;
        -ms-order: -1;
        -o-order: -1;
        order: -1;
        border: 1px solid #A6A6A6;
        border-radius: 5px;
        background: #fff;
        transition: .5s;
        cursor: pointer;
        font-size: 1.25rem;
        font-weight: bold;
        color: #A6A6A6;
        letter-spacing: 2px;
        text-align: center;
        line-height: 1.2;
        width: 41%;
        margin: 5px 0;
}
	
	.tab .tab_wrap .tab_label:nth-child(odd){
		margin-left: 15px;
	}
	
.tab_spot_hotel .tab_wrap .tab_label:hover {
	background: #F27795;
	color: #fff;
    border: 1px solid #F27795;
}

/*アクティブ（選ばれている時の）設定*/
.tab_spot_hotel .tab_wrap input:checked + .tab_label {
        background: #F27795;
        color: #fff;
        border: 1px solid #F27795;
}
	
	
.tab_spot_activity .tab_wrap .tab_label:hover {
	background: #00AEEA;
	color: #fff;
    border: 1px solid #00AEEA;
}

/*アクティブ（選ばれている時の）設定*/
.tab_spot_activity .tab_wrap input:checked + .tab_label {
        background: #00AEEA;
        color: #fff;
        border: 1px solid #00AEEA;
}
		
	
	
.tab .tab_wrap .tab_label:hover::after  {
  content: "\f14a"!important; 
  color: #FFF!important;
}

.tab .tab_wrap .tab_label:nth-last-of-type(1){ margin-right: 0; }
.tab .tab_wrap input {		/* ラジオボタン非表示 */
	display: none;
}
.tab .tab_wrap .tab_content {	/* 本文 */
	width: 100%;
	height: 0;
	overflow: hidden;
	opacity: 0;
}

.tab .tab_wrap input:checked + .tab_label + .tab_content {
	margin: 15px 0 0;
	padding: 0;
	height: auto;
	        overflow: visible;
	transition: .5s opacity;
	opacity: 1;
}
	
.tab .tab_wrap .tab_label::after {
  font-family: "Font Awesome 5 Free";
  font-weight: 900; 
  content: "\f0c8";
  color: #A6A6A6;
  position: absolute;
  left: 8px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.5em;
}

.tab .tab_wrap input:checked + .tab_label::after {
  content: "\f14a"!important; 
  color: #FFF!important;
}		
/* ここまでタブ切り替えCSS */



/* ------------------------------------------
	質問と回答
------------------------------------------ */	

	
    .qa_block {
      margin-bottom: 30px;
    }

    .question {
      background-color: #2A76B6;
      color: white;
      font-weight: bold;
      padding: 10px 20px;
      border-radius: 5px;
      font-size:  1.25rem;
    }

    .question .q_label {
      font-size: 24px;
      margin-right: 10px;
      vertical-align: middle;
    }

    .answer {
      color: #1E4E79;
      font-weight: bold;
      padding: 10px 20px;
      font-size:  1.25rem;
    }

    .answer .a_label {
      font-size:  1.5rem;
      margin-right: 10px;
      vertical-align: middle;
    }
}


/*760px以上*/
@media screen and (min-width: 760px),print {
/* CSS */
#wrapper {line-height: 1.231;}
#dirPathBlock,
h1,
.iframe_end-content_gadget,
#anchorLinkBlock{
	width: 100%;
	max-width:1080px;
	min-width:760px;
	margin: auto;
}

/*panlist&back*/
#dirPathBlock,
#anchorLinkBlock {
	width: 100%;
	margin: 0 auto;
	display: block;
	font-size: 12px;
}
#dirPathBlock p,
#anchorLinkBlock a{font-size: 12px;}
h1 {
	font-size: 14px;
    width: auto;
	max-width:1080px;
	min-width:760px;
    margin: 0 auto 5px;
}
h2 {
	text-align: center;
	margin: 3rem auto 5rem
}
	
.inner{
	width: 96%;
	max-width:1080px;
	min-width:760px;
	margin: 0 auto;
	padding:50px 0;
	display: block;
}


/* ------------------------------------------
	Title
------------------------------------------ */
#title {
  width: 100%;
  background: #FFF url(../images/mv_pc.jpg) no-repeat 50% 50%;
  background-size: cover;
  text-align: center;
}

#title img {
  width: 100%;
  max-width: 1080px;
  height: auto;
  vertical-align: top;
}


/* ------------------------------------------
	背景色（各セクション）
------------------------------------------ */
#campaign,
#reserve,
#negative_check_sheet__section,
#qa {
  background: #E6F0FA;
}

#nav,
#what {
  background: #DCF0F0;
}

#spot,
.circlebg {
  background: #E9F7F7;
}

svg.circlebg {
  margin: -1rem 0;
}


 
/* ------------------------------------------
	 ナビゲーション
------------------------------------------ */
.nav {
  background: #fff;
  border-radius: 50px;
  height: 90px;
  overflow: hidden;
}

.nav_list {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  list-style: none;
  margin: 0;
  padding: 0;
  height: 100%;
}

.nav_item {
  flex: 1;
  text-align: center;
  position: relative;
}

.nav_link {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: 100%;
  text-decoration: none;
}

.nav_en {
  font-family: "Montserrat", sans-serif;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.24em;
  margin: 0;
}

.nav_jp {
  font-size: 15px;
  line-height: 1.2;
  letter-spacing: 1px;
  margin: 7px 0 0;
  font-weight: 700;
  color: #1E4E79;
}

.nav_item:not(:last-child)::after {
  content: "";
  position: absolute;
  right: 0;
  top: 15px;
  bottom: 15px;
  margin: auto;
  border-right: 2px solid #1E4E79;
  height: 60px;
}

.nav a:hover {
  opacity: 0.5;
}

/* カラー設定 */
.nav_item:nth-child(1) .nav_en { color: #5FCC00; }
.nav_item:nth-child(2) .nav_en { color: #00AEEA; }
.nav_item:nth-child(3) .nav_en { color: #EF5F81; }
.nav_item:nth-child(4) .nav_en { color: #FF9500; }


/* ------------------------------------------
	 What
------------------------------------------ */
#what {
  background-image: url('../images/bg1.png'), url('../images/bg2.jpg');
  background-repeat: no-repeat, no-repeat;
  background-position: center top, center bottom;
  background-size: auto, 100% auto;;
  min-height: 300px;
  text-align: center;
}


.what_txt {
  color: #1E4E79;
  font-size: 22px;
  line-height: 2;
  text-align: center;
  margin: 3rem auto;
}

.lcimg {
  width: 75%;
  margin: 3rem auto 13rem;
}


/* ------------------------------------------
	 Campaign
------------------------------------------ */
#campaign {
  background-image: url('../images/bg3.png');
  background-repeat: no-repeat;
  background-position: center top;
  background-size: auto;
  min-height: 300px;
  text-align: center;
}

.cpbox {
  background-color: #ffffff;
  padding: 20px;
  border-radius: 20px;
}

.cpbox h3 {
  background-color: #2A76B6;
  color: #ffffff;
  font-size: 25px;
  font-weight: bold;
  text-align: center;
  padding: 10px;
  border-radius: 10px;
  margin: 0 0 20px 0;
}

.row {
  display: flex;
  border-top: 1px solid #1E4E79;
  padding: 20px 0;
}

.row.first_row {
  border-top: none;
}

.row dt {
  flex: 0 0 150px;
  font-weight: bold;
  color: #2A76B6;
  font-size: 20px;
}

.row dd {
  margin: 0;
  color: #1E4E79;
  flex: 1;
  text-align: left;
  font-size: 20px;
  line-height: 1.4;
}

.attention {
  font-size: 16px;
  text-indent: -1em;
  padding-left: 1em;
}

.attentionimg {
  width: 100%;
}
	
.attentionimg {
  border: 1px solid #1E4E79; 
  padding: 10px; 
  background-color: #FFF; 
  display: inline-block; 
	        width: 97%;
}	

#campaign .red {
  color: #FF0000;
}

/* テーブルキャンペーン詳細 */
.cp_table {
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin-top: 20px;
  max-width: 350px;
  text-align: center;
  font-size: 18px;
}

.table_row {
  display: flex;
  gap: 5px;
}

.cp_cell {
  flex: 1;
  padding: 5px 10px;
  color: #1E4E79;
  box-sizing: border-box;
}

.table_row.cp_header .cp_cell {
  background-color: #2A76B6;
  color: #FFF;
}

.table_row.cp_even .cp_cell {
  background-color: #EEF8FF;
}

.table_row.cp_odd .cp_cell {
  background-color: #FFFFFF;
}

	
/* ------------------------------------------
	予約ボタン
------------------------------------------ */



.reserve_title {
  font-size: 25px;
  font-weight: bold;
  letter-spacing: 3px;
  color: #2A76B6;
  text-align: center;
  padding: 0 0 2rem ;
}

.reserve_title::before,
.reserve_title::after {
  content: "";
  display: inline-block;
  background-color: #2A76B6;
  width: 25px;
  height: 2px;
  margin: 0 25px 5px 23px;
}

.reserve_title::before {
  transform: rotate(45deg);
  transform-origin: center;
}

.reserve_title::after {
  transform: rotate(-45deg);
  transform-origin: center;
}

.reserve_btn_area {
  display: flex;
  justify-content: space-evenly;
  gap: 1rem;
  flex-wrap: wrap;
  text-align: center;
}

.reserve_btn {
  flex: 1;
  font-size: 20px;
  text-decoration: none;
  padding: 1rem 2rem;
  border-radius: 10px;
  position: relative;
  font-weight: bold;
  display: inline-block;
  transition: background-color 0.3s ease;
}

a.reserve_btn {
  color: #fff;
}

.reserve_btn.jr {
  background-color: #2A76B6;
}

.reserve_btn.flight {
  background-color: #1DA592;
}

.reserve_btn.hotel {
  background-color: #FFA04B;
}

.reserve_btn::after {
  content: '';
  width: 10px;
  height: 10px;
  border-top: 2px solid #FFF;
  border-right: 2px solid #FFF;
  transform: rotate(45deg) translateY(-50%);
  position: absolute;
  top: 50%;
  right: 20px;
  border-radius: 1px;
  transition: 0.3s ease-in-out;
}


/* 予約ボタン流用学び旅のボタン */
p.reserve_title.activity_area {
    padding: 2rem 0 1rem!important;
}
.reserve_btn_area.activity_area {
    text-align: center;
	
}

/* agree */
#negative_check_sheet__section {
  background-image: url('../images/bg4.png');
  background-repeat: no-repeat;
  background-position: center top;
  background-size: auto;
  min-height: 300px;
  text-align: center;
}	
	
p.check_sheet_text{
		color: #1E4E79;
        font-size: 22px;
        line-height: 2;
        text-align: center;
        margin: 1rem auto;
}	
	
#overlay_coupon_area { position: relative;}

#negative_check_sheet{
	width: 100%;
	max-width:1080px;
	min-width:760px;
	margin: auto;
    font-size: 16px;
    background: #FFFFCC;
	color: #434343;
	position: relative;
}
	
	
#negative_check_sheet ul{
	background: #FFFFCC;
	padding: 5px 0;
}
#negative_check_sheet li{
	list-style: inside;
    list-style-position: outside;
    width: 90%;
    margin: 0 0 -3px 5%;
}
#negative_check_sheet .policy{
margin: 0rem auto;
        text-align: center;
        font-weight: bold;
        padding: 1rem 0;
}
#negative_check_sheet__img{
	background: url(../images/cbx_arrow.png) no-repeat;
    width: 88px;
    height: 270px;
    position: absolute;
    top: -24px;
    left: -24px;
}
@media screen and (max-width: 949.9px) {
#negative_check_sheet__img{display: none;}
}

#negative_check_sheet .policy input#chkbox[type=checkbox] {
	display: none; /* checkboxを非表示にする */
}
.chkbox_label {
	position: relative; /* ボックスの位置を指定する */
	padding: 5px 0 0 50px; /* ボックス内側の余白を指定する */
 	font-size: 22px;
}
.chkbox_label:after,
.chkbox_label:before{
	position: absolute; /* ボックスの位置を指定する */
	content: ""; /* ボックスのコンテンツ */
	display: block; /* ブロックレベル要素化する */
	top: 50%; /* 上部から配置の基準位置を決める */
}
.chkbox_label:after {
	left: 15px; /* 左から配置の基準位置を決める */
	margin-top: -10px; /* チェック枠の位置 */
	width: 20px; /* ボックスの横幅を指定する */
	height: 20px; /* ボックスの高さを指定する */
	border: 2px solid #555; /* ボックスの境界線を実線で指定する */
	background: #FFF;
}
.chkbox_label:before {
	left: 24px;
    margin-top: -15px;
    width: 8px;
    height: 20px;
    border-right: 3px solid #0171bd;
    border-bottom: 3px solid #0171bd;
    transform: rotate(45deg);
    opacity: 0;
	z-index: 1;
}
#negative_check_sheet .policy input#chkbox[type=checkbox]:checked + .chkbox_label:before {
	opacity: 1; /* 要素を表示する */
}

#overlay_coupon{
	position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    color: #FFF;
    font-size: 48px;
    font-weight: bold;
    text-align: center;
    padding-top: 0 !important;
    display: grid;
    align-items: baseline;
	visibility: hidden;
	z-index: 0;
	transition: 0.1s;
}

#overlay_coupon p {
	padding-top: 50px;
}

#overlay_coupon.close{
	visibility: visible;
    background: rgba(0,0,0,0.6);
	z-index: 2;
	transition: 0.1s;
}

	
/* ------------------------------------------
	おすすめの体験
------------------------------------------ */
.hotel_spot,.activity_spot {
	margin: 5rem auto 6rem;
	background-color: #ffffff;
	padding: 30px;
	border-radius: 20px;
}

.hotel_spot,.activity_spot {
  position: relative;
}

.hotel_spot::before {
  content: "";
  position: absolute;
        top: -45px;
        right: -45px;
  width: 242px;
  height: 230px;
  background-image: url('../images/img_right.png');
  background-size: contain;
  background-repeat: no-repeat;
  display: block;
  pointer-events: none;
}
	
.activity_spot::before {
content: "";
        position: absolute;
        top: -55px;
        left: -50px;
        width: 246px;
        height: 230px;
        background-image: url(../images/img_left.png);
        background-size: contain;
        background-repeat: no-repeat;
        display: block;
        pointer-events: none;
}
		
/* ------------------------------------------
	タイトル
------------------------------------------ */
h3.spot_hotel {
	text-align: center;
	color: #F27795;
	font-weight: bold;
	margin: 2rem auto;
}

p.sbtxt_sp {
	font-size: 25px;
	border-bottom: dashed 2px;
	display: inline;
	letter-spacing: 3px;
}

p.maintxt_sp {
	padding: 20px 0 0;
	font-size: 40px;
}


h3.spot_activity {
	text-align: center;
	color: #00AEEA;
	font-weight: bold;
	margin: 2rem auto;
}	
	
/* ------------------------------------------
	スライダー
------------------------------------------ */
.slider {
	margin: 25px 0 0;
}

.slick-track {
        display: flex;
        justify-content: center;
}

.slider_box {
	background-color: #ffffff;
	box-sizing: border-box;
	text-align: center;
	display: flex !important;
	flex-direction: column;
	align-items: center;
}

.slider_box_image {
  width: 100%;
  height: auto;
  display: block;
}

.slider_contxt_box {
	padding: 20px;
}
.slick-slide img {
    display: block;
        width: 92%;
        margin: auto;
    }
.slider_box_title {
	font-size: 1.5rem;
	color: #1E4E79;
	margin: 23px 0 18px;
	height: 55px;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	font-weight: bold;
}


/* ------------------------------------------
	エリア・カテゴリ ラベル
------------------------------------------ */
.hotel_label {
	position: relative;
	height: 50px;
	width: 95%;
}

p.area_label {
	position: absolute;
	top: 0;
	left: 5px;
	background: #1E4E79;
	color: #FFF;
	font-size: 24px;
	font-weight: bold;
	padding: 10px 20px 5px;
	letter-spacing: 2px;
}

p.category_label {
        padding: 10px 0 10px 135px;
        text-align: right;
}

p.category_label span {
	font-size: 22px;
	font-weight: bold;
	color: #FFF;
	border-radius: 3px;
	padding: 2px 5px 0;
	margin: 0px 10px 0 0;
}

/* カテゴリ別色 */
span.food {
	background: #F05F82;
}

span.activity {
	background: #1DA592;
}

span.history {
	background: #2A76B6;
}

/* ------------------------------------------
	体験紹介テキスト
------------------------------------------ */

.slider_box_text {
	font-size: 16px;
	color: #1E4E79;
	text-align: left;
	margin-bottom: 20px;
	line-height: 1.5;
}
p.slider_box_maintext {
    margin: 0 auto 2rem;
}	
	
/* ------------------------------------------
	詳細情報（営業時間・定休日・住所など）
------------------------------------------ */
.fc_description_wrap {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.fc_description {
	display: flex;
}

    .fc_description dt {
        flex: 0 0 85px;
        text-align: center;
        display: flex;
        align-items: flex-start;
        justify-content: center;
    }

.fc_description dt span {
display: inline-block;
        background-color: #1E4E79;
        color: #FFF;
        font-size: 16px;
        font-weight: bold;
              padding: 3px 0 0px;
        width: 85px;
}

.fc_description dd {
	margin: 0;
	color: #1E4E79;
	flex: 1;
	text-align: left;
	padding-left: 10px;
	font-size: 16px;
	line-height: 1.4;
}

	.nop{
		font-size: 14px!important;
		font-weight: normal!important;
		padding: 0 !important;
	}
/* ------------------------------------------
	リンクボタン（宿泊・JR・航空）
------------------------------------------ */
.sl_btn {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.slider_box_button {
	position: relative;
	display: inline-block;
	color: #FFF;
	text-decoration: none;
	padding: 10px 0;
	border-radius: 4px;
	font-size: 18px;
	font-weight: bold;
	width: 100%;
}

.slider_box_button.jr {
	background-color: #2A76B6;
}

.slider_box_button.flight {
	background-color: #1DA592;
}


.slider_box_button.hotel {
	background-color: #FFA04B;
}

/* ボタン内矢印 */
a.slider_box_button {
	color: #FFF;
}

a.slider_box_button::after {
	position: absolute;
	top: 16px;
	right: 10px;
	content: '';
	width: 10px;
	height: 10px;
	border-top: 2px solid #FFF;
	border-right: 2px solid #FFF;
	transform: rotate(45deg);
}


/* ------------------------------------------
	画像スライダー
------------------------------------------ */	
.slider_inner .slick-dots li button:before {
  font-size: 12px;
  color: #A6A6A6;
  content: '■'; /* 四角に変更 */
}

.slider_inner .slick-dots li.slick-active button:before {
  color: #1E4E79;
}
	
	
/* ------------------------------------------
	Slickナビゲーションのスタイル
---------------------------------------- */
.slick-prev,
.slick-next {
	z-index: 1;
}

/* ----.slick-prev,.slick-next {
        transform: translate(0, 0%);
    }--- */

.slick-prev {
    left: -45px!important;
}		

.slick-prev:before,
.slick-next:before {
	color: #A6A6A6;
	font-size: 40px;
}

.slick-dots li button:before {
	color: #A6A6A6;
	font-size: 12px;
}

	
.slick-dots li.slick-active button:before {
	color: #1E4E79;
}

	
/* テキスト選択を有効にする */
.slick-slide,
.slick-track,
.slick-list,
.slider_box,
.slider_box_text,
.slider_box_title,
.fc_description,
.fc_description dd {
  user-select: text !important;
  -webkit-user-select: text !important;
}
	
/* ------------------------------------------
	タブ切り替え
---------------------------------------- */
	
/* ここからタブ切り替えCSS */
.tab .tab_wrap {
	display: -webkit-flex;
	display: -moz-flex;
	display: -ms-flex;
	display: -o-flex;
	display: flex;
	-webkit-flex-wrap: wrap;
	-moz-flex-wrap: wrap;
	-ms-flex-wrap: wrap;
	-o-flex-wrap: wrap;
	flex-wrap: wrap;
	        padding: 10px 0 0;
}
.tab .tab_wrap .tab_label {	/* タブ */
position: relative;
        padding: 12px 0 7px 18px;
        -webkit-order: -1;
        -moz-order: -1;
        -ms-order: -1;
        -o-order: -1;
        order: -1;
        border: 1px solid #A6A6A6;
        border-radius: 5px;
        background: #fff;
        transition: .5s;
        cursor: pointer;
        font-size: 25px;
        font-weight: bold;
        color: #A6A6A6;
        letter-spacing: 2px;
        text-align: center;
        line-height: 1.2;
        width: 21%;
        margin: 0 20px 15px 0;
}
	
	
	
.tab_spot_hotel .tab_wrap .tab_label:hover {
	background: #F27795;
	color: #fff;
    border: 1px solid #F27795;
}

/*アクティブ（選ばれている時の）設定*/
.tab_spot_hotel .tab_wrap input:checked + .tab_label {
        background: #F27795;
        color: #fff;
        border: 1px solid #F27795;
}
	
	
.tab_spot_activity .tab_wrap .tab_label:hover {
	background: #00AEEA;
	color: #fff;
    border: 1px solid #00AEEA;
}

/*アクティブ（選ばれている時の）設定*/
.tab_spot_activity .tab_wrap input:checked + .tab_label {
        background: #00AEEA;
        color: #fff;
        border: 1px solid #00AEEA;
}
		
	
	
.tab .tab_wrap .tab_label:hover::after  {
  content: "\f14a"!important; 
  color: #FFF!important;
}

.tab .tab_wrap .tab_label:nth-last-of-type(1){ margin-right: 0; }
.tab .tab_wrap input {		/* ラジオボタン非表示 */
	display: none;
}
.tab .tab_wrap .tab_content {	/* 本文 */
	width: 100%;
	height: 0;
	overflow: hidden;
	opacity: 0;
}

.tab .tab_wrap input:checked + .tab_label + .tab_content {
	margin: 15px 0 0;
	padding: 0;
	height: auto;
	        overflow: visible;
	transition: .5s opacity;
	opacity: 1;
}
	
.tab .tab_wrap .tab_label::after {
  font-family: "Font Awesome 5 Free";
  font-weight: 900; 
  content: "\f0c8";
  color: #A6A6A6;
  position: absolute;
  left: 8px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.5em;
}

.tab .tab_wrap input:checked + .tab_label::after {
  content: "\f14a"!important; 
  color: #FFF!important;
}		
/* ここまでタブ切り替えCSS */



/* ------------------------------------------
	質問と回答
------------------------------------------ */	

#qa {
  background-image: url('../images/bg5.png'); 
  background-repeat: no-repeat;
  background-position: center top;
  background-size: auto;
  min-height: 300px;
}
	
	
    .qa_block {
      margin-bottom: 30px;
    }

    .question {
      background-color: #2A76B6;
      color: white;
      font-weight: bold;
      padding: 10px 20px;
      border-radius: 5px;
      font-size: 20px;
    }

    .question .q_label {
      font-size: 24px;
      margin-right: 10px;
      vertical-align: middle;
    }

    .answer {
      color: #1E4E79;
      font-weight: bold;
      padding: 10px 20px;
      font-size: 20px;
    }

    .answer .a_label {
      font-size: 24px;
      margin-right: 10px;
      vertical-align: middle;
    }
}