@charset "utf-8";

#main { width:1100px; margin:10px auto; }
#main .sp { display:none!important; }


/*----------------------�X�}�z��-----------------------*/

@media screen and (max-width: 768px) {
#main .pc { display:none!important; }
}


/*----------------------top�֖߂�----------------------*/
#return_top { text-align:center; margin:10px; }
#return_top a { background: url("https://image.stworld.jp/images/common/tri01.gif") no-repeat scroll left 5px rgba(0, 0, 0, 0); line-height: 1em; padding-left: 10px; }


/*------------------------------------------------------------
  body
------------------------------------------------------------*/
#main {
	width: 100%;
	/* min-width: 1100px; */
	color: #111;
	font-size: 15px;
	font-family: "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
	line-height: 1.5em;
	margin: 0 auto 100px;
}
#main a {
	text-decoration: none;
}
#main a:hover {
  opacity: 0.8;
  filter: alpha(opacity=80);
  -ms-filter: "alpha(opacity=80)";
}
.clearfix:after {
  content: "";
  clear: both;
  display: block;
}
.hide {
  height: 0;
  margin: 0 auto;
  overflow: hidden;
  text-indent: 100%;
  white-space: nowrap;
}
.pc-no01 {
  display: none;
}
.fl01 {
	display: -webkit-flex;
	display: flex;
	-webkit-justify-content: space-between;
	justify-content: space-between;
}
.fl02 {
	display: -webkit-flex;
	display: flex;
	-webkit-justify-content: space-between;
	justify-content: space-between;
	-webkit-flex-wrap: wrap;
	flex-wrap: wrap;
}

@media screen and (max-width: 768px) {
	#main {
		min-width: 100%;
		font-size: 13px;
		line-height: 1.4em;
		margin: 0 auto 50px;
	}
	.pc-no01 {
		display: block;
	}
	.sp-no01 {
		display: none;
	}
	.fl01 {
		display: block;
	}
	.fl02 {
		display: block;
	}
}


/*------------------------------------------------------------
  font
------------------------------------------------------------*/
.ff01 {
	/* font-family: "ヒラギノ明朝 ProN", "HG明朝E", "MS P明朝", "MS 明朝", "serif"; */
}
.ff02 {
	font-family: "A-OTF 新ゴ Pro", "A-OTF Shin Go Pro", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}
.fb {
	font-weight: bold;
}


/*------------------------------------------------------------
  txt
------------------------------------------------------------*/
.txt {
	text-align: justify;
	line-height: 1.5em;
}


/*------------------------------------------------------------
  mv
------------------------------------------------------------*/
#main .mv {
	background: url("../images/mv-img.jpg") center center no-repeat;
	background-size: cover;
	width: 100%;
	height: 610px;
	box-sizing: border-box;	
	margin: auto;
	/* padding: 110px 0; */
	/* padding: 140px 0; */
	overflow: hidden;
}
#main .mv .inner {
	position: relative;
}
#main .mv .mv-ttl {
	background: url("../images/mv-ttl.png") center center no-repeat;
	background-size: 100% auto;
	width: 800px;
	height: 540px;
	margin: auto;
	position: reltive;
}
#main .mv .mv-txt {
	position: absolute;
	left: 0;
	right: 0;
	/* bottom: 80px; */
	bottom: 105px;
	color: #fff;
	font-size: 16px;
	font-weight: bold;
	line-height: 1.8em;
	text-align: center;
}

@media screen and (max-width: 768px) {
	#main .mv {
		background: none;
		background-size: 100% auto;
		width: 100%;
		height: auto;
		padding: 0 0;
	}
	#main .mv .mv-ttl {
		background: url("../images/sp-mv.jpg") 0 0 no-repeat;
		background-size: 100% auto;
		width: 100%;
		height: 0;
		padding-top: 114.29%;
	}
	#main .mv .mv-txt {
		position: static;
		left: inherit;
		right: inherit;
		bottom: inherit;
		color: #111;
		font-size: 14px;
		text-align: justify;
		margin: 20px auto;
		padding: 0 15px;
	}
}


/*------------------------------------------------------------
  ttl
------------------------------------------------------------*/
.ttl-box {
	text-align: center;
	position: relative;
}
.ttl-box h3 {
	line-height: 1.1em;
}
.ttl-box h3,
.ttl-box h3 span {
	font-weight: bold;
}

/*----- ttl-box01 -----*/
.ttl-box01 h3 span {
	color: #2a63b8;
	font-size: 26px;
}
.ttl-box01 h3 {
	color: #2a63b8;
	font-size: 50px;
}

/*----- ttl-box02 -----*/
.ttl-box02 h3 span {
	display: inline-block;
	background: #fff;
	width: 510px;
	color: #1f3e7c;
	font-size: 26px;
	line-height: 40px;
	margin-bottom: 20px;
}
.ttl-box02 h3 {
	color: #fff;
	font-size: 38px;
}

/*----- ttl-box03 -----*/
.ttl-box03 h3 span {
	color: #fff;
	font-size: 28px;
}
.ttl-box03 h3 {
	color: #faf8d6;
	font-size: 42px;
}

/*----- ttl-box04 -----*/
.ttl-box04 h3 span {
	color: #16346e;
	font-size: 26px;
}
.ttl-box04 h3 {
	color: #16346e;
	font-size: 45px;
}

@media screen and (max-width: 768px) {
	.ttl-box h3 {
		line-height: 1.2em;
	}

	/*----- ttl-box01 -----*/
	.ttl-box01 h3 span {
		font-size: 4vw;
	}
	.ttl-box01 h3 {
		font-size: 6vw;
	}

	/*----- ttl-box02 -----*/
	.ttl-box02 h3 span {
		display: block;
		width: 40%;
		font-size: 4vw;
		line-height: 30px;
		margin-bottom: 0;
		margin: 0 auto;
	}
	.ttl-box02 h3 {
		font-size: 4vw;
		line-height: 0.6em;
	}

	/*----- ttl-box03 -----*/
	.ttl-box03 h3 span {
		font-size: 4vw;
	}
	.ttl-box03 h3 {
		font-size: 5.8vw;
	}

	/*----- ttl-box04 -----*/
	.ttl-box04 h3 span {
		font-size: 4vw;
	}
	.ttl-box04 h3 {
		font-size: 6vw;
	}
}


/*------------------------------------------------------------
  btn
------------------------------------------------------------*/
.btn-box .btn a {
	display: block;
	width: 100%;
	color: #fff;
	font-weight: bold;
	text-align: center;
	position: relative;
}
.btn-box .btn a:after {
	display: block;
	content: "";
	position: absolute;
	top: 50%;
	right: 15px;
	width: 8px;
	height: 8px;
	border-top: solid 2px #fff;
	border-right: solid 2px #fff;
	margin-top: -4px;
	-webkit-transform: rotate(45deg);
	transform: rotate(45deg);
}

@media screen and (max-width: 768px) {
	.btn-box .btn a:after {
		right: 10%;
		width: 6px;
		height: 6px;
		margin-top: -3px;
	}
}


/*------------------------------------------------------------
  con
------------------------------------------------------------*/
.con {
	width: 100%;
	box-sizing: border-box;
	margin: auto;
}
.con .inner {
	max-width: 1100px;
	margin: auto;
}

@media screen and (max-width: 768px) {
	.con .inner {
		max-width: 100%;
	}
}


/*------------------------------------------------------------
  model-course
------------------------------------------------------------*/
#model-course {
	background: url("../images/bg01.jpg") center center no-repeat;
	background-size: cover;
	padding: 90px 0;
}
#model-course .block {
	margin-top: 65px;
}
#model-course .box {
	border-top: 5px solid #2a63b8;
	box-sizing: border-box;
	padding: 25px 0 0;
}
#model-course .box li {
	width: 23%;
	position: relative;
}
#model-course .box img {
	width: 100%;
}
#model-course .box .tour_country{
   font-weight:bold;
}
#model-course .box .txt-box {
	background: #fff;
	box-sizing: border-box;
	padding: 20px 20px 30px;
	position: relative;
}
#model-course .box .txt-box .tour_des{
	background: #2a63b8;
	color:#fff;
	font-size:12px;
	line-height:1.2;
	padding:5px;
	margin:0 0 10px 0;
	border-radius: 5px;
	vertical-align: middle;
}
#model-course .box h4 {
	color: #95802f;
	font-size: 20px;
	font-weight: bold;
}
#model-course .box .txt {
	font-size: 14px;
	margin-top: 20px;
}
#model-course .box .price {
	color: #c03737;
	font-size: 22px;
	font-weight: bold;
	text-align: center;
	letter-spacing: -0.03em;
	margin-top: 20px;
}
#model-course .box .price span {
	font-size: 24px;
	font-weight: bold;
}

/*---------- btn-box ----------*/
#model-course .btn-box {
	margin-top: 20px;
}
#model-course .btn {
	width: 100%;
	margin: auto;
}
#model-course .btn-box .btn a {
	background: #b4a165;
	font-size: 17px;
	line-height: 50px;
}
#model-course .btn-box .btn a:after {
	right: 10px;
	width: 6px;
	height: 6px;
	margin-top: -3px;
}

/*---------- tour-btn ----------*/
#model-course .tour-btn {
	margin-top: 70px;
}
#model-course .tour-btn .btn {
	width: 700px;
	position: relative;
}
#model-course .tour-btn .btn a {
  background: #16346e;
  font-size: 22px;
  line-height: 100px;
  border: 5px solid #16346e;
  -webkit-box-shadow: 0px 0px 0px 1px #ffffff inset;
  -moz-box-shadow: 0px 0px 0px 1px #ffffff inset;
  box-shadow: 0px 0px 0px 1px #ffffff inset;
}
#model-course .tour-btn .btn span {
	display: inline-block;
	background: #fff;
	width: 80px;
	line-height: 36px;
	color: #16346e;
	font-size: 20px;
	font-weight: bold;
	margin-right: 40px;
}
#model-course .tour-btn .btn a:after {
	right: 30px;
	width: 10px;
	height: 10px;
	margin-top: -5px;
}

/*---------- tab-area ----------*/
/*タブのスタイル*/
.tab-item {
	display: block;
	background: #fff;
	width: 32.66%;
	height: 65px;
	line-height: 65px;
	color: #576fa0;
	font-size: 28px;
	font-weight: bold;
	text-align: center;
	box-sizing: border-box;
	border-radius: 5px 5px 0 0;
	border: 2px solid #2a63b8;
	border-bottom: none;
	float: left;
	cursor: pointer;
	margin: 15px 0 0 0;
	transition: all 0.3s ease;
}
.tab-item02 {
	margin: 15px 1% 0 1%;
}
.tab-item:hover {
	opacity: 0.8;
}
/*ラジオボタンを全て消す*/
input[name="tab-item"] {
	display: none;
}
/*タブ切り替えの中身のスタイル*/
.tab-content {
	display: none;
	padding: 0;
	clear: both;
}
/*選択されているタブのコンテンツのみを表示*/
	#tab01:checked ~ #tab01-content,
	#tab02:checked ~ #tab02-content,
	#tab03:checked ~ #tab03-content {
	display: block;
}
/*選択されているタブのスタイルを変える*/
.tab-area input:checked + .tab-item {
	line-height: 80px;
	height: 80px;
	background: #2a63b8;
	color: #fff;
	margin-top: 0;
}

@media screen and (max-width: 768px) {
	#model-course {
		padding: 30px 15px 40px;
	}
	#model-course .block {
		margin-top: 30px;
	}
	#model-course .box {
		border-top: 3px solid #2a63b8;
		padding: 15px 0 0;
	}
	#model-course .box li {
		width: 48%;
		margin:0 1% 20px 1%;
		float:left;
	}
	#model-course .box li:last-child {
		margin-bottom: 0;
	}
	#model-course .box .txt-box {
		padding: 20px 15px 20px;
	}
	#model-course .box h4 {
		font-size: 16px;
	}
	#model-course .box .txt {
		font-size: 13px;
		margin-top: 10px;
	}
	#model-course .box .price {
		font-size: 20px;
		line-height:1.2;
		margin-top: 20px;
		text-align:left;
	}
	#model-course .box .price span {
		font-size: 20px;
	}

	/*---------- btn-box ----------*/
	#model-course .btn-box {
		margin-top: 15px;
	}
	#model-course .btn-box .btn a {
		font-size: 14px;
		line-height: 45px;
	}
	#model-course .btn-box .btn a:after {
		right: 5%;
	}

	/*---------- tour-btn ----------*/
	#model-course .tour-btn {
		margin-top: 30px;
	}
	#model-course .tour-btn .btn {
		width: 100%;
	}
	#model-course .tour-btn .btn a {
		font-size: 3.5vw;
		line-height: 1.3em;
		border: 3px solid #16346e;
		padding: 10px 0;
	}
	#model-course .tour-btn .btn span {
		display: block;
		width: 30%;
		line-height: 25px;
		font-size: 14px;
		margin-right: 0;
		margin: 0 auto 5px;
	}
	#model-course .tour-btn .btn a:after {
		right: 5%;
		width: 6px;
		height: 6px;
		margin-top: -3px;
	}

	/*---------- tab-area ----------*/
	/*タブのスタイル*/
	.tab-item {
		height: 40px;
		line-height: 40px;
		font-size: 16px;
	}
	/*選択されているタブのスタイルを変える*/
	.tab-area input:checked + .tab-item {
		line-height: 55px;
		height: 55px;
	}
}


/*------------------------------------------------------------
  charm
------------------------------------------------------------*/
#charm {
	padding: 90px 0;
}
#charm .inner {
	background: url("../images/bg02.jpg") 0 0 repeat;
	background-size: 100% auto;
	width: 100%;
	height: 890px;
	box-sizing: border-box;
	border: 2px solid #b5a256;
	padding: 60px 40px;
}
#charm .block {
	margin-top: 65px;
}
#charm .block li {
	width: 32%;
	position: relative;
}
#charm .block img {
	width: 100%;
}
#charm .block .txt-box  {
	background: #fff;
	min-height: 270px;
	box-sizing: border-box;
	padding: 20px 20px 30px;
}
#charm .block .txt-box img {
	display: block;
	width: 108px;
	margin: -60px auto 0;
}
#charm .block h4 {
	color: #2a63b8;
	font-size: 20px;
	line-height:1.5rem;
	font-weight: bold;
	text-align: left;
	margin-top: 30px;
}
#charm .block .txt {
	font-size: 14px;
	margin-top: 20px;
}

@media screen and (max-width: 768px) {
	.lead-theme{
		padding: 0;
	}
	#charm {
		padding: 0;
	}
	#charm .inner {
		background: url("../images/bg02.jpg") 0 0 repeat;
		background-size: 100% auto;
		width: 100%;
		height: auto;
		padding: 30px 15px;
	}
	#charm .block {
		margin-top: 30px;
	}
	#charm .block img {
		display:none;
	}
	#charm .block li {
		width: 100%;
		margin-bottom: 20px;
	}
	#charm .block li:last-child {
		margin-bottom: 0;
	}
	#charm .block .txt-box  {
		min-height: auto;
		padding: 20px 15px 30px;
	}
	#charm .block .txt-box img {
		display: block;
		width: 70px;
		margin: -40px auto 0;
	}
	#charm .block h4 {
		font-size: 18px;
		margin-top: 20px;
	}
	#charm .block .txt {
		font-size: 13px;
		margin-top: 10px;
	}
}



/*------------------------------------------------------------
  add_where
------------------------------------------------------------*/
/* sec02 */


#sec01 .ttl-box {
	display: table;
	background: url("../images/bg03.jpg") center 0 no-repeat;
	background-size: 100% auto;
	width: 100%;
	height: 200px;
	box-sizing: border-box;
}
#sec01 .ttl-box h3 {
	display: table-cell;
	vertical-align: middle;
}
#sec01 .c-wrap {
	background: #fff;
	padding: 70px 0 0;
}
#sec01 .box {
	width: 45%;
	box-sizing: border-box;
	margin-bottom: 6%;
}


#main .sec02 .inner{
	padding:30px 0 0;
	width: 1100px;
	margin: 0 auto;
}

#main .sec02 .town__body{
	overflow:hidden;
}

#main .sec02 .town__body .town__item{
	width:24%;
	padding:0 1.33333% 20px 0;
	float:left;
}

#main .sec02 .town__body .town__item:nth-child(4n){
	padding-right:0;
}

#main .sec02 .town__body .town__item a{
	display:block;
	background:url("../images/icon_link.png") no-repeat right bottom;
	background-color:#f8f2e4;
	padding:3%;
}

#main .sec02 .town__body .town__item .town__img{
	width:100px;
	padding:0 10px 0 0;
	float:left;
}

#main .sec02 .town__body .town__item .town__title{
	font-family:"筑紫明朝 Pr6 M", serif;
	font-size:15.2px;
	font-weight:bold;
	line-height:1.5;
	padding:10px 0 0;
	float:left;
	color: #ac2323;
}
/*
#main .sec02 .town__body .town__item:nth-child(9) .town__title,
#main .sec02 .town__body .town__item:nth-child(7) .town__title,
#main .sec02 .town__body .town__item:nth-child(11) .town__title{
	padding:25px 0 0;
	font-size:21px;
}

#main .sec02 .town__body .town__item:nth-child(10) .town__title,
#main .sec02 .town__body .town__item:nth-child(11) .town__title,
#main .sec02 .town__body .town__item:nth-child(12) .town__title{
	padding:22px 0 0;
}
*/

/*
#main .sec02 .town__body .town__item .flag_it::before {
	content:url("../images/flag-i01_min.jpg") ;
	display:block;
	padding:0 0 10% 10%;
}
#main .sec02 .town__body .town__item .flag_fr::before {
	content:url("../images/flag-f01_min.jpg") ;
	display:block;
	padding:0 0 10% 10%;
}
#main .sec02 .town__body .town__item .flag_es::before {
	content:url("../images/flag-s01_min.jpg") ;
	display:block;
	padding:0 0 10% 10%;
}
#main .sec02 .town__body .town__item .flag_pt::before {
	content:url("../images/flag-p01_min.jpg") ;
	display:block;
	padding:0 0 10% 10%;
}
#main .sec02 .town__body .town__item .flag_gb::before {
	content:url("../images/flag-e01_min.jpg") ;
	display:block;
	padding:0 0 10% 10%;
}
#main .sec02 .town__body .town__item .flag_cz::before {
	content:url("../images/flag-c01_min.jpg") ;
	display:block;
	padding:0 0 10% 10%;
}
*/

#main .sec02 .town__body .town__item .town__text{
	clear:both;
	padding:15px 0 5px 0;
	line-height:1.6;
	font-size: 80%;
}


@media screen and (max-width: 640px) {
	/* sec02 */
	#sec02 .ttl-box {
		background: url("../images/bg03.jpg") center 0 no-repeat;
		/*background-size: auto 100%;*/
		width: 100%;
		height: auto;
		padding: 20px 0;
	}
	#sec02 .c-wrap {
		padding: 30px 15px 0;
	}
	#sec02 .box {
		width: 100%;
		margin-bottom: 40px;
	}
	#sec02 .box:last-child {
		margin-bottom: 0;
	}
	#sec02 .sec02{
		padding:0 0 50px;
		width: auto;
		margin: 0 auto;
		padding: 0 10px;
	}
	#main #sec02 .inner{
		width:96%;
	}
	#main .sec02 .town__body{
		display:flex;
		align-items: stretch;
		gap: 8px 2%;
		flex-wrap: wrap;
		justify-content: flex-start;
	}
	
	#main .sec02 .town__body .town__item{
		width:32%;
		float:none;
		padding:0!important;
	}

	#main .sec02 .town__body .town__item:nth-child(4n){
		padding-right:0;
	}
	#main .sec02 .town__body .town__item:nth-child(3n){
		padding-right:0;
	}

	#main .sec02 .town__body .town__item a{
		background-size:6px auto;
	}

	#main .sec02 .town__body .town__item .town__img{
		width:100%;
		padding:0 0 10px;
		float:none;
		text-align: center;
	}

	#main .sec02 .town__body .town__item .town__title{
		padding:0;
		font-size:15px;
		text-align:center;
		width:100%;
	}

	#main .sec02 .town__body .town__item:nth-child(9) .town__title{
		padding:0;
		font-size:15px;
	}

	#main .sec02 .town__body .town__item:nth-child(10) .town__title,
	#main .sec02 .town__body .town__item:nth-child(11) .town__title,
	#main .sec02 .town__body .town__item:nth-child(12) .town__title{
		padding:0;
	}

	#main .sec02 .town__body .town__item .town__text{
		padding:10px 0;
	}
	#main .sec02 .town__body .town__item .flag_it::before,
	#main .sec02 .town__body .town__item .flag_fr::before,
	#main .sec02 .town__body .town__item .flag_es::before,
	#main .sec02 .town__body .town__item .flag_gb::before,
	#main .sec02 .town__body .town__item .flag_pt::before,
	#main .sec02 .town__body .town__item .flag_cz::before{
		padding: 0 0 10% 0;
	}
}



/*------------------------------------------------------------
  where
------------------------------------------------------------*/
#where .ttl-box {
	display: table;
	background: url("../images/ttl-bg01.jpg") center 0 no-repeat;
	background-size: 100% auto;
	width: 100%;
	height: 200px;
	box-sizing: border-box;
}
#where .ttl-box h3 {
	display: table-cell;
	vertical-align: middle;
}
#where .c-wrap {
	background: #fff;
	padding: 70px 0 0;
}
#where .box {
	width: 45%;
	box-sizing: border-box;
	margin-bottom: 6%;
}

/*---------- h4 ----------*/
#where .box h4 {
	font-size: 28px;
	font-weight: bold;
	border-bottom: 2px dotted #9fc4d7;
	line-height: 1;
	padding-bottom: 20px;
	padding-left: 95px;
	position: relative;
}
#where .box h4:before {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	width: 80px;
	height: 50px;
	margin-top: -35px;
}
#where .box.ita h4:before {
	background: url("../images/flag-i01.jpg") 0 0 no-repeat;
	background-size: 100% auto;
}
#where .box.fra h4::before {
	background: url("../images/flag-f01.jpg") 0 0 no-repeat;
	background-size: 100% auto;
}
#where .box.esp h4::before {
	background: url("../images/flag-s01.jpg") 0 0 no-repeat;
	background-size: 100% auto;
}
#where .box.prt h4::before {
	background: url("../images/flag-p01.jpg") 0 0 no-repeat;
	background-size: 100% auto;
}
#where .box.gbr h4::before{
	background: url("../images/flag-e01.jpg") 0 0 no-repeat;
	background-size: 100% auto;
}
#where .box.cze h4::before {
	background: url("../images/flag-c01.jpg") 0 0 no-repeat;
	background-size: 100% auto;
}

/*---------- link-area ----------*/
#where .link-area {
	margin-top: 20px;
}
#where .link-area ul {
	font-size: 0;
	text-align: center;
}
#where .link-area li {
	display: inline-block;
	vertical-align: middle;
}
#where .link-area li:nth-child(2){
	margin: 0 10px;
}
#where .link-area li a {
	display: table;
	width: 142px;
	height: 142px;
	color: #fff;
	font-size: 18px;
	line-height: 1.5em;
	position: relative;
}
#where .link-area li a:after {
	display: block;
	content: "";
	position: absolute;
	bottom: 20px;
	right: 0;
	left: 0;
	width: 10px;
	height: 10px;
	border-top: solid 2px #fff;
	border-right: solid 2px #fff;
	margin: auto;
	-webkit-transform: rotate(135deg);
	transform: rotate(135deg);
}
#where .link-area li span {
	display: table-cell;
	vertical-align: middle;
	font-weight: bold;
}
/* イタリア */
#where .ita .link-area li:nth-child(1) a {
	background: url("../images/link-ita01.png") 0 0 no-repeat;
	background-size: 100% auto;
}
#where .ita .link-area li:nth-child(2) a {
	background: url("../images/link-ita01.png") 0 0 no-repeat;
	background-size: 100% auto;
}
#where .ita .link-area li:nth-child(3) a {
	background: url("../images/link-ita01.png") 0 0 no-repeat;
	background-size: 100% auto;
}
/* フランス */
#where .fra .link-area li:nth-child(1) a {
	background: url("../images/link-fra01.png") 0 0 no-repeat;
	background-size: 100% auto;
}
#where .fra .link-area li:nth-child(2) a {
	background: url("../images/link-fra02.png") 0 0 no-repeat;
	background-size: 100% auto;
}
#where .fra .link-area li:nth-child(3) a {
	background: url("../images/link-fra03.png") 0 0 no-repeat;
	background-size: 100% auto;
}
/* スペイン */
#where .esp .link-area li:nth-child(1) a {
	background: url("../images/link-esp01.png") 0 0 no-repeat;
	background-size: 100% auto;
}
#where .esp .link-area li:nth-child(2) a {
	background: url("../images/link-esp03.png") 0 0 no-repeat;
	background-size: 100% auto;
}
#where .esp .link-area li:nth-child(3) a {
	background: url("../images/link-esp02.png") 0 0 no-repeat;
	background-size: 100% auto;
}
/* ポルトガル */
#where .prt .link-area li:nth-child(1) a {
	background: url("../images/link-prt01.png") 0 0 no-repeat;
	background-size: 100% auto;
}
#where .prt .link-area li:nth-child(2) a {
	background: url("../images/link-prt02.png") 0 0 no-repeat;
	background-size: 100% auto;
}
#where .prt .link-area li:nth-child(3) a {
	background: url("../images/link-prt03.png") 0 0 no-repeat;
	background-size: 100% auto;
}
/* イギリス */
#where .gbr .link-area li:nth-child(1) a {
	background: url("../images/link-gbr01.png") 0 0 no-repeat;
	background-size: 100% auto;
}
#where .gbr .link-area li:nth-child(2) a {
	background: url("../images/link-gbr02.png") 0 0 no-repeat;
	background-size: 100% auto;
}
#where .gbr .link-area li:nth-child(3) a {
	background: url("../images/link-gbr03.png") 0 0 no-repeat;
	background-size: 100% auto;
}
/* チェコ */
#where .cze .link-area li:nth-child(1) a {
	background: url("../images/link-cze01.png") 0 0 no-repeat;
	background-size: 100% auto;
}
#where .cze .link-area li:nth-child(2) a {
	background: url("../images/link-cze02.png") 0 0 no-repeat;
	background-size: 100% auto;
}
#where .cze .link-area li:nth-child(3) a {
	background: url("../images/link-cze03.png") 0 0 no-repeat;
	background-size: 100% auto;
}

@media screen and (max-width: 768px) {
	#where .ttl-box {
		background: url("../images/ttl-bg01.jpg") center 0 no-repeat;
		background-size: auto 100%;
		width: 100%;
		height: auto;
		padding: 20px 0;
	}
	#where .c-wrap {
		padding: 30px 15px 0;
	}
	#where .box {
		width: 100%;
		margin-bottom: 40px;
	}
	#where .box:last-child {
		margin-bottom: 0;
	}

	/*---------- h4 ----------*/
	#where .box h4 {
		font-size: 18px;
		padding-bottom: 15px;
		padding-left: 50px;
	}
	#where .box h4:before {
		width: 40px;
		height: 25px;
		margin-top: -20px;
	}

	/*---------- link-area ----------*/
	#where .link-area {
		margin-top: 10px;
		
	}
	#where .link-area li {
		display: inline-block;
		vertical-align: middle;
		width: 32%;
	}
	#where .link-area li:nth-child(2){
		margin: 0 2%;
	}
	#where .link-area li a {
		width: 100%;
		height: 0;
		padding-top: 100%;
		font-size: 3.8vw;
		line-height: 1.5em;
		position: relative;
	}
	#where .link-area li a:after {
		bottom: 15%;
		width: 6px;
		height: 6px;
	}
	#where .link-area li span {
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translateY(-50%) translateX(-50%);
		width: 100%;
	}
}


/*------------------------------------------------------------
  plan
------------------------------------------------------------*/
.plan {
	margin: 100px auto;
	max-width: 1140px;
    border: 1px solid #ddd3c8;
}

/*---------- ttl-box  ----------*/
.plan .ttl-box {
	display: table;
	width: 100%;
	height: 150px;
}
.plan .ttl-inner {
	display: table-cell;
	vertical-align: middle;
}
.plan .ttl-box h3 {
	max-width: 1100px;
	margin: auto;
	position: relative;
}
.plan .ttl-box h3:before {
	content: "";
	position: absolute;
	left: 0;
	width: 100px;
	height: 90px;
}
/* plan01 */
.plan01 .ttl-box {
	background: url("../images/bg_plan01.jpg") center center no-repeat;
	background-size: 100% auto;
}
/*
.plan01 .ttl-box h3:before {
	background: url("../images/flag-i02.png") 0 0 no-repeat;
	background-size: 100% auto;
}
*/

/* plan02 */
.plan02 .ttl-box {
	background: url("../images/bg_plan02.jpg") center center no-repeat;
	background-size: 100% auto;
}
/*
.plan02 .ttl-box h3:before {
	background: url("../images/flag-f02.png") 0 0 no-repeat;
	background-size: 100% auto;
}
*/
/* plan03 */
.plan03 .ttl-box {
	background: url("../images/bg_plan03.jpg") center center no-repeat;
	background-size: 100% auto;
}
/*
.plan03 .ttl-box h3:before {
	background: url("../images/flag-s02.png") 0 0 no-repeat;
	background-size: 100% auto;
}
*/
/* plan04 */
.plan04 .ttl-box {
	background: url("../images/bg_plan04.jpg") center center no-repeat;
	background-size: 100% auto;
}
/*
.plan04 .ttl-box h3:before {
	background: url("../images/flag-p02.png") 0 0 no-repeat;
	background-size: 100% auto;
	width: 120px;
}
*/
/* plan05 */
.plan05 .ttl-box {
	background: url("../images/bg_plan05.jpg") center center no-repeat;
	background-size: 100% auto;
}
/*
.plan05 .ttl-box h3:before {
	background: url("../images/flag-e02.png") 0 0 no-repeat;
	background-size: 100% auto;
	width: 105px;
}
*/
/* plan06 */
.plan06 .ttl-box {
	background: url("../images/bg_plan06.jpg") center center no-repeat;
	background-size: 100% auto;
}
/*
.plan06 .ttl-box h3:before {
	background: url("../images/flag-c02.png") 0 0 no-repeat;
	background-size: 100% auto;
}
*/
/* plan07 */
.plan07 .ttl-box {
	background: url("../images/bg_plan07.jpg") center center no-repeat;
	background-size: 100% auto;
}
/*
.plan07 .ttl-box h3:before {
	background: url("../images/flag-c02.png") 0 0 no-repeat;
	background-size: 100% auto;
}
*/

/* plan08 */
.plan08 .ttl-box {
	background: url("../images/bg_plan08.jpg") center center no-repeat;
	background-size: 100% auto;
}
/*
.plan08 .ttl-box h3:before {
	background: url("../images/flag-c02.png") 0 0 no-repeat;
	background-size: 100% auto;
}
*/

/* plan09 */
.plan09 .ttl-box {
	background: url("../images/bg_plan09.jpg") center center no-repeat;
	background-size: 100% auto;
}
/*
.plan09 .ttl-box h3:before {
	background: url("../images/flag-c02.png") 0 0 no-repeat;
	background-size: 100% auto;
}
*/

/* plan10 */
.plan10 .ttl-box {
	background: url("../images/bg_plan10.jpg") center center no-repeat;
	background-size: 100% auto;
}
/*
.plan11 .ttl-box h3:before {
	background: url("../images/flag-c02.png") 0 0 no-repeat;
	background-size: 100% auto;
}
*/

/* plan11 */
.plan11 .ttl-box {
	background: url("../images/bg_plan11.jpg") center center no-repeat;
	background-size: 100% auto;
}
/*
.plan11 .ttl-box h3:before {
	background: url("../images/flag-c02.png") 0 0 no-repeat;
	background-size: 100% auto;
}
*/
/*---------- block ----------*/
.plan .block {
	margin-top: 50px;
}
.plan .m-txt {
	font-size: 18px;
	margin-top: 40px;
}
.plan .link01 {
	text-align: right;
	margin-top: 25px;
}
.plan .link01 a {
	display: inline-block;
	color: #d48b23;
	font-size: 18px;
	font-weight: bold;
	border-bottom: 2px solid #d48b23;
	padding-right: 30px;
	position: relative;
}
.plan .link01 a:after {
	display: block;
	content: "";
	position: absolute;
	top: 50%;
	right: 10px;
	width: 6px;
	height: 6px;
	border-top: solid 2px #d48b23;
	border-right: solid 2px #d48b23;
	margin-top: -3px;
	-webkit-transform: rotate(45deg);
	transform: rotate(45deg);
}

/*----- block-inner -----*/
.plan .block-inner {
	margin: 30px auto;
}
.plan .block-inner .left,
.plan .block-inner .right {
	width: 48%;
}
.plan .block-inner h4 {
	color: #fff;
	text-align: center;
	font-size: 22px;
	font-weight: bold;
	line-height: 70px;
	position: relative;
}
.plan .block-inner h4:before {
	content: "";
	position: absolute;
	top: 50%;
}
.plan .block-inner h4:after {
	content: "";
	position: absolute;
	top: 100%;
	left: 50%;
	border: 12px solid transparent;
	margin-left: -16px;
}

/* visit */
.plan .visit h4 {
	background: #ac9c5f;
}
.plan .visit h4:before {
	margin-top: -21px;
	background: url("../images/icon04.png") 0 0 no-repeat;
	background-size: 100% auto;
	width: 52px;
	height: 42px;
	left: 110px;
}
.plan .visit h4:after {
	border-top: 16px solid #ac9c5f;
}
.plan .visit .box {
	background: #f4f3ef;
	box-sizing: border-box;
	border: 2px solid #ac9c5f;
	padding: 40px 30px 30px;
}
.plan .visit .box dl {
	margin-bottom: 20px;
}
.plan .visit .box dl:last-child {
	margin-top: 0;
}
.plan .visit .box dt {
	width: 33%;
}
.plan .visit .box dt img {
	width: 100%;
	height: 120px;
}
.plan .visit .box dd {
	background: #fff;
	width: 65%;
	height: 120px;
	box-sizing: border-box;
	padding: 8px 15px;
}
.plan .visit h5 {
	font-size: 14px;
	font-weight: bold;
	margin-bottom: 3px;
}
.plan .visit .txt {
	font-size: 13px;
}

/* map-box */
.plan .map-box {
	margin-top: 40px;
}
.plan .map-box img {
	width: 100%;
}

/* modelplan */
.plan .modelplan h4 {
	background: #26437a;
}
.plan .modelplan h4:before {
	margin-top: -22px;
	background: url("../images/icon03.png") 0 0 no-repeat;
	background-size: 100% auto;
	width: 41px;
	height: 42px;
	left: 114px;
}
.plan .modelplan h4:after {
	border-top: 16px solid #26437a;
}
.plan .modelplan .box {
	background: #fff;
	box-sizing: border-box;
	border: 2px solid #26437a;
	border-top: none;
	padding: 40px 40px;
}
.plan .modelplan dl {
	font-size: 0;
}
.plan .modelplan dt {
	display: inline-block;
	vertical-align: top;
	background: #5373bf;
	box-sizing: border-box;
	width: 12%;
	line-height: 1;
	color: #fff;
	font-size: 16px;
	font-weight: bold;
	text-align: center;
	padding: 4px 0;
}
#prt01 .modelplan dt {
	width: 30%;
}
.plan .modelplan dd {
	display: inline-block;
	vertical-align: top;
	box-sizing: border-box;
	width: 88%;
	color: #333;
	font-size: 16px;
	/*font-weight: bold;*/
	text-align: justify;
	line-height: 1.8em;
	padding: 0 0 25px 20px;
}
#prt01 .modelplan dd {
	width: 70%;
}
.plan .modelplan dd span {
	color: #3e81a3;
	font-weight: bold;
}
.plan .modelplan .note {
	font-size: 14px;
}

/*---------- btn-box  ----------*/
.plan .btn-box li {
	width: 48%;
	margin: 0 auto;
}
.plan .btn-box p {
	color: #6f5d4a;
	text-align: center;
    padding: 10px 0;
}
.plan .btn-box li a {
	background: #6f5d4a;
	font-size: 24px;
	line-height: 1.3em;
	padding: 20px 0;
}
.plan .btn-box .btn a:after {
	right: 30px;
	width: 10px;
	height: 10px;
	margin-top: -5px;
}

/*---------- slider  ----------*/
#main .slider {
	width: 100%;
	height: 400px;
	max-height: 400px;
}
#main .slider .photo {
	margin: 0 15px;
	position: relative;
}
#main .slider img {
	width: 100%;
	height: 400px;
	max-height: 400px;
}
#main .slider .caption {
	position: absolute;
	bottom: 0;
	background: rgba(0,0,0,0.6);
	width: 100%;
	box-sizing: border-box;
	color: #fff;
	font-size: 14px;
	padding: 15px 20px;
}
#main button {
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
#main .slide-arrow {
  position: absolute;
	top: 50%;
	cursor: pointer;
	z-index: 999;
}
#main .prev-arrow,
#main .next-arrow {
	position: absolute;
	top: 50%;
	background: rgba(255,255,255,0.7);
	width: 48px;
	height: 48px;
	border-radius: 50%;
	margin-top: -24px;
}
#main .prev-arrow {
	left: 20px;
}
#main .next-arrow {
	right: 20px;
}
#main .prev-arrow:after,
#main .next-arrow:after {
	content: "";
	position: absolute;
	top: 50%;
	width: 14px;
	height: 14px;
	border: 0px;
	border-top: solid 6px #151e1e;
	border-right: solid 6px #151e1e;
	margin-top: -9px;
}
#main .prev-arrow:after {
	left: 17px;
	-ms-transform: rotate(-135deg);
	-webkit-transform: rotate(-135deg);
	transform: rotate(-135deg);
}
#main .next-arrow:after {
	right: 17px;
	-ms-transform: rotate(45deg);
	-webkit-transform: rotate(45deg);
	transform: rotate(45deg);
}
/*-----------model_tour------------*/
#main .model_tour{
	background: #ebf1f6;
	border:1px solid #3e81a3;
	padding:20px;
	margin:0 0 30px 0;
	overflow:hidden;
	position: relative;
	margin-top: 20px;
}
#main .model_tour_01,
#main .model_tour_02,
#main .model_tour_03{
	float:left;
}
#main .model_tour_01{
	width:160px;
	margin:0 20px 0 0;
}
#main .model_tour img{
	width:160px;
}
#main .model_tour_02{
	width:580px;
	margin:0 20px 0 0;
}
#main .model_tour_02 .dep{
	background: #26437a;
	padding:2px;
	width:auto;
	color:#fff;
	text-align:center;
	width:120px;
	margin:0 10px 10px 0;
	display: inline-block;
}
#main .model_tour_02 .tour_category{
	background: #ac9c5f;
	padding:2px;
	width:auto;
	color:#fff;
	text-align:center;
	width:140px;
	margin:0 10px 10px 0;
	display: inline-block;
}
#main .model_tour_03{
	width:280px;
	margin:0;
	position: absolute;
	right:20px;
	bottom:20px;
}
#main .model_tour_03 p{
	color:#c03737;
	font-weight: bold!important;
}
#main .model_tour_03 .STF_TERM,
#main .model_tour_03 .STF_MINPRICE{
	color:#c03737;
	font-weight: bold;
	font-size: 28px;
	margin: 0 0 80px 0;
	line-height: 1.6;
}
#main .model_tour_03 a{
	background:#3e81a3;
	font-size: 24px;
	line-height: 1.3em;
	padding: 20px 0;
	display: block;
	width: 100%;
	color:#fff;
	font-weight: bold;
	text-align: center;
	position: relative;
}
#main .model_tour_03 a:after{
	display: block;
	content: "";
	position: absolute;
	top: 50%;
	right: 15px;
	width: 8px;
	height: 8px;
	border-top: solid 2px #fff;
	border-right: solid 2px #fff;
	margin-top: -4px;
	-webkit-transform: rotate(45deg);
	transform: rotate(45deg);
}

@media screen and (max-width: 768px) {
	.plan {
		/* padding: 50px 0 0; */
	}

	/*---------- ttl-box  ----------*/
	.plan .ttl-box {
		width: 100%;
		height: auto;
		padding: 15px 0;
	}
	.plan .ttl-box h3 {
		max-width: 100%;
		/*color: #000000;*/
	}
	.plan .ttl-box h3:before {
		content: "";
		position: absolute;
		left: 10px;
		width: 10%;
		height: 0;
		padding-top: 9%;
	}
	/* plan01 */
	.plan01 .ttl-box {
		background-size: auto 100%;
	}
	/* plan02 */
	.plan02 .ttl-box {
		background-size: auto 100%;
	}
	/* plan03 */
	.plan03 .ttl-box {
		background-size: auto 100%;
	}
	/* plan04 */
	.plan04 .ttl-box {
		background-size: auto 100%;
	}
	.plan04 .ttl-box h3:before {
		width: 10%;
	}
	/* plan05 */
	.plan05 .ttl-box {
		background-size: auto 100%;
	}
	.plan05 .ttl-box h3:before {
		width: 10%;
	}
	/* plan06 */
	.plan06 .ttl-box {
		background-size: auto 100%;
	}
	/* plan07 */
	.plan07 .ttl-box {
		background-size: auto 100%;
	}
	/* plan08 */
	.plan08 .ttl-box {
		background-size: auto 100%;
	}
	/* plan09 */
	.plan09 .ttl-box {
		background-size: auto 100%;
	}
	/* plan10 */
	.plan10 .ttl-box {
		background-size: auto 100%;
	}
	/* plan11 */
	.plan11 .ttl-box {
		background-size: auto 100%;
	}

	/*---------- block ----------*/
	.plan .block {
		margin-top: 20px;
		/* padding: 0 15px; */
	}
	.plan .m-txt {
		font-size: 13px;
		margin-top: 20px;
	}
	.plan .link01 {
		margin-top: 10px;
	}
	.plan .link01 a {
		font-size: 13px;
		border-bottom: 1px solid #d48b23;
		padding-right: 20px;
	}
	.plan .link01 a:after {
		right: 5px;
		margin-top: -4px;
	}

	/*----- block-inner -----*/
	.plan .block-inner {
		margin: 0 auto 20px;
	}
	.plan .block-inner .left,
	.plan .block-inner .right {
		width: 100%;
		padding-bottom: 30px;
	}
	.plan .block-inner h4 {
		font-size: 4vw;
		line-height: 48px;
	}
	.plan .block-inner h4:before {
		left: 20%;
	}
	.plan .block-inner h4:after {
		border: 10px solid transparent;
		margin-left: -14px;
	}

	/* visit */
	.plan .visit h4:before {
		margin-top: -3.2%;
		width: 8%;
		height: 0;
		padding-top: 6.46%;
	}
	.plan .visit h4:after {
		border-top: 14px solid #ac9c5f;
	}
	.plan .visit .box {
		border: 2px solid #ac9c5f;
		padding: 30px 15px 10px;
	}
	.plan .visit .box dl {
		margin-bottom: 20px;
		display: -webkit-flex;
		display: flex;
		-webkit-justify-content: space-between;
		justify-content: space-between;
	}
	.plan .visit .box dt {
		width: 45%;
	}
	.plan .visit .box dt img {
		width: 100%;
		height: 135px;
		object-fit: cover;
	}
	.plan .visit .box dd {
		width: 55%;
		height: 135px;
		padding: 15px 15px;
	}
	.plan .visit h5 {
		font-size: 3vw;
	}
	.plan .visit .txt {
		font-size: 2.8vw;
	}

	/* map-box */
	.plan .map-box {
		margin-top: 30px;
		margin-bottom: 30px;
	}
	.plan .map-box iframe{
		width:100%;
		height:250px;
	}

	/* modelplan */
	.plan .modelplan h4:before {
		margin-top: -3.5%;
		width: 7%;
		height: 0;
		padding-top: 7.86%;
	}
	.plan .modelplan h4:after {
		border-top: 14px solid #26437a;
	}
	.plan .modelplan .box {
		padding: 20px 15px;
	}
	.plan .modelplan dt {
		width: 15%;
		font-size: 13px;
		padding: 4px 0;
	}
	.plan .modelplan dd {
		width: 85%;
		font-size: 13px;
		line-height: 1.5em;
		padding: 0 0 15px 15px;
	}
	.plan .modelplan .note {
		font-size: 13px;
	}

	/*---------- btn-box  ----------*/
	.plan .btn-box li {
		width: 100%;
	}
	.plan .btn-box li:first-child {
		margin-bottom: 10px;
	}
	.plan .btn-box li a {
		font-size: 14px;
		padding: 10px 0;
	}
	.plan .btn-box .btn a:after {
		right: 5%;
		width: 6px;
		height: 6px;
		margin-top: -3px;
	}

	/*---------- slider  ----------*/
	#main .slider {
		height: auto;
		max-height: auto;
	}
	#main .slider .photo {
		margin: 0 0;
	}
	#main .slider img {
		height: auto;
		max-height: 200px;
	}
	#main .slider .caption {
		font-size: 2.8vw;
		padding: 10px 10px;
	}
	#main .prev-arrow,
	#main .next-arrow {
		width: 30px;
		height: 30px;
		margin-top: -15px;
	}
	#main .prev-arrow {
		left: 5px;
	}
	#main .next-arrow {
		right: 5px;
	}
	#main .prev-arrow:after,
	#main .next-arrow:after {
		width: 8px;
		height: 8px;
		border-top: solid 3px #151e1e;
		border-right: solid 3px #151e1e;
		margin-top: -5px;
	}
	#main .prev-arrow:after {
		left: 11px;
	}
	#main .next-arrow:after {
		right: 11px;
	}
	/*-----------model_tour--------*/
	#main .model_tour {
		padding: 15px;
		position:static;
	}
	#main .model_tour_01 {
		width:30%;
		margin:0 5% 5% 0;
	}
	#main .model_tour img{
		width:100%;
	}
	#main .model_tour_02 {
		width:65%;
		margin:0;
	}
	#main .model_tour_03 {
		float:none;
		position:static;
		margin:0 auto;
		width:100%;
		text-align:right;
	}
	#main .model_tour_03 .STF_TERM,
	#main .model_tour_03 .STF_MINPRICE{
		font-size:24px;
	}
	#main .model_tour_03 a{
		font-size:16px;
		padding: 10px 0;
	}
}


/*------------------------------------------------------------
  form-area
------------------------------------------------------------*/
#form-area {
	padding-top: 80px;
}
#form-area .block {
	background: url("../images/bg03.jpg") center center no-repeat;
	background-size: cover;
	box-sizing: border-box;
	padding: 60px 60px;
}
#form-area h3 {
	color: #fff;
	font-size: 34px;
	font-weight: bold;
	text-align: center;
	line-height: 1.6em;
}
#form-area h3 span {
	display: inline-block;
	background: #fff;
	width: 400px;
	line-height: 40px;
	color: #2a3930;
	font-size: 26px;
	font-weight: bold;
	margin-bottom: 15px;
}
#form-area .btn-box {
	margin-top: 35px;
}
#form-area .btn-box .btn {
	width: 48%;
}
#form-area .btn-box .btn a {
	line-height: 1.3em;
	box-sizing: border-box;
	border: 2px solid #fff;
	font-size: 22px;
	padding: 20px 0;
}
#form-area .btn-box .btn a:after {
	right: 30px;
	width: 10px;
	height: 10px;
	margin-top: -5px;
}

@media screen and (max-width: 768px) {
	#form-area {
		padding-top: 0;
	}
	#form-area .block {
		padding: 30px 15px;
	}
	#form-area h3 {
		font-size: 5vw;
		line-height: 1.3em;
	}
	#form-area h3 span {
		display: block;
		width: 80%;
		line-height: 30px;
		font-size: 14px;
		margin-bottom: 0;
		margin: 0 auto -1em;
	}
	#form-area .btn-box {
		margin-top: 25px;
	}
	#form-area .btn-box .btn {
		width: 100%;
	}
	#form-area .btn-box .btn:first-child {
		margin-bottom: 10px;
	}
	#form-area .btn-box .btn a {
		font-size: 14px;
		padding: 10px 0;
	}
	#form-area .btn-box .btn a:after {
		right: 5%;
		width: 6px;
		height: 6px;
		margin-top: -3px;
	}
}


/*------------------------------------------------------------
  tour-link
------------------------------------------------------------*/
.tour-link {
	background: url("../images/bg04.jpg") center center no-repeat;
	background-size: cover;
	padding: 70px 0;
	margin-top: 100px;
}
.tour-link .btn-box {
	margin-top: 70px;
}
.tour-link .btn-box li {
	width: 160px;
	height: 65px;
	line-height: 65px;
}
.tour-link .btn-box li a {
	display: block;
	background: #3e81a3;
	font-size: 22px;
}

@media screen and (max-width: 640px) {
	.tour-link {
		padding: 30px 15px 20px;
		margin-top: 30px;
	}
	.tour-link .btn-box {
		margin-top: 20px;
	}
	.tour-link .btn-box ul {
		font-size: 0;
	}
	.tour-link .btn-box li {
		display: inline-block;
		width: 48%;
		height: 45px;
		line-height: 45px;
		margin-right: 4%;
		margin-bottom: 4%;
	}
	.tour-link .btn-box li:nth-child(2n) {
		margin-right: 0;
	}
	.tour-link .btn-box li a {
		font-size: 14px;
	}
}










/*■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
  スライドショー  slick
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/

/* Slider */
.slick-slider
{
    position: relative;

    display: block;
    box-sizing: border-box;

    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;

    -webkit-touch-callout: none;
    -khtml-user-select: none;
    -ms-touch-action: pan-y;
        touch-action: pan-y;
    -webkit-tap-highlight-color: transparent;
}
.slick-list
{	
    position: relative;

    display: block;
    overflow: hidden;

    margin: 0;
    padding: 0;
}
.slick-list:focus
{
    outline: none;
}
.slick-list.dragging
{
    cursor: pointer;
    cursor: hand;
}
.slick-slider .slick-track,
.slick-slider .slick-list
{
    -webkit-transform: translate3d(0, 0, 0);
       -moz-transform: translate3d(0, 0, 0);
        -ms-transform: translate3d(0, 0, 0);
         -o-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
}
.slick-track
{
    position: relative;
    top: 0;
    left: 0;

    display: block;
    margin-left: auto;
    margin-right: auto;
}
.slick-track:before,
.slick-track:after
{
    display: table;

    content: '';
}
.slick-track:after
{
    clear: both;
}
.slick-loading .slick-track
{
    visibility: hidden;
}

.slick-slide
{
    display: none;
    float: left;

    height: 100%;
    min-height: 1px;
}
[dir='rtl'] .slick-slide
{
    float: right;
}
.slick-slide img
{
    display: block;
	
		max-width: 100%;
    height: auto;
}
.slick-slide.slick-loading img
{
    display: none;
}
.slick-slide.dragging img
{
    pointer-events: none;
}
.slick-initialized .slick-slide
{
    display: block;
}
.slick-loading .slick-slide
{
    visibility: hidden;
}
.slick-vertical .slick-slide
{
    display: block;

    height: auto;

    border: 1px solid transparent;
}
.slick-arrow.slick-hidden {
    display: none;
}


/* トップに戻る */
.bt_pagetop {
position: fixed;
bottom: 20px;
right: 20px;
z-index: 10000;
}

.bt_pagetop a {
background: #b4a165;
border-radius: 10px;
color: #fff;
display: block;
height: 60px;
text-align: center;
text-decoration: none;
width: 60px;
}

.bt_pagetop a img{
width:100%;
}
/* トップに戻る */
.bt_pagetop a {
 height: 40px;
 width: 40px;
}



/************/
    :root {
      --text-main: #333;
      --text-sub: #555;
      --white: #fff;
    }



    /* ===== 各セクション共通 ===== */
    .europe-section {
      max-width: 1100px;
      margin: 0 auto;
      padding: 48px 24px 64px;
      /* セクション間に区切り線 */
      border-top: 1px solid #e8e8e8;
    }

    .europe-section:first-of-type {
      border-top: none;
    }

    /* ===== セクションヘッダー ===== */
    .section-top {
      text-align: center;
      margin-bottom: 32px;
    }

    /*
      h4 リセット
      ブラウザデフォルトの余白・フォントサイズを打ち消す
    */
    .section-top h4 {
      margin: 0 0 12px;
      padding: 0;
      font-size: 0;
      line-height: 0;
    }

    /*
      タイトル画像
      ▼ 各セクションの src を差し替えてください
        例: src="images/title-europe-01.png"
    */
    .section-title-img {
      display: block;
      margin: 0 auto;
      max-width: 100%;
      height: auto;
    }

    .section-subtitle {
      line-height: 1.8;
	  margin-top: 30px;
    }

    /* ===== カードグリッド（PC: 3列）===== */
    .cards-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 20px;
    }

    /* カード */
    .tour-card {
      display: block;
      text-decoration: none;
      color: inherit;
      background: var(--white);
      border: 1px solid #e0e0e0;
      border-radius: 4px;
      overflow: hidden;
      transition: box-shadow 0.25s ease, transform 0.25s ease;
    }

    .tour-card:hover {
      box-shadow: 0 6px 24px rgba(0,0,0,0.14);
      transform: translateY(-3px);
    }

    /* カード画像エリア */
    .card-image-wrap {
      position: relative;
      width: 100%;
      aspect-ratio: 600 / 324; /* 画像サイズ 600×324px に合わせた縦横比 */
      background: #1a1a1a;
      overflow: hidden;
    }

    /*
      カード画像
      ▼ 各 src に実際のパスを入れてください
    */
    .card-image-wrap img.card-img {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center;
    }

    /* タグ（画像左上に重ねる）*/
    .card-tags {
      position: absolute;
      top: 10px;
      left: 10px;
      display: flex;
      flex-direction: column;
      gap: 5px;
      z-index: 1;
    }

    .tag {
      display: inline-block;
      background: rgb(1 70 173 / 62%);
      color: #ffffff;
      border: 1px solid rgba(255,255,255,0.18);
      font-size: 1.1rem;
      padding: 4px 12px;
      border-radius: 16px;
      width: fit-content;
      backdrop-filter: blur(2px);
    }

    /* カード本文 */
    .card-body {
      padding: 14px 16px 16px;
    }

    .card-title {
      font-size: 13.5px;
      font-weight: 700;
      color: #c0392b;
      margin-bottom: 8px;
      line-height: 1.5;
    }

    .card-destinations {
      font-size: 11.5px;
      color: var(--text-sub);
      line-height: 1.7;
    }
  /* ===== RIGHT PANEL ===== */
  .right-panel {
    flex: 1;
    background: #fff;
    border-radius: 4px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    overflow: hidden;
  }

  /* .itinerary-header {
    background: linear-gradient(135deg, #2c4a7c 0%, #3a5f99 100%);
    padding: 14px 20px;
    display: flex;
    align-items: center;
    gap: 10px;
  }
  .itinerary-header h2 {
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.05em;
  } */

  /* Day rows */
  .day-row {
    display: flex;
    padding: 18px 20px;
    border-bottom: 1px solid #eef0f4;
    align-items: flex-start;
  }

  .day-badge {
    background: #2c4a7c;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    padding: 4px 12px;
    border-radius: 3px;
    white-space: nowrap;
    flex-shrink: 0;
    margin-right: 18px;
    margin-top: 2px;
    letter-spacing: 0.05em;
  }

  .day-content { flex: 1; }

  .day-schedule {

  }


  .meal-info {
    color: #777;
    margin-top: 8px;
  }

  .stay-lavel{
	background: #2d74b3;
    padding: 4px 10px;
    color: white;
	display: inline-block;
  }
.day-options-content{
	background: #ffffff;
    padding: 10px;
}
  .day-options-title {
    color: #2a7ab5;
    font-size: 12.5px;
    font-weight: 700;
    margin-bottom: 8px;
  }
  .day-option {
    font-size: 12px;
    color: #333;
    line-height: 2;
  }

  /* === ACCORDION WITH GRADIENT === */
  /* .accordion-wrapper {
    position: relative;
  }

  .accordion-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.5s cubic-bezier(0.4, 0, 0.2, 1);
  }
  .accordion-content.open {
    max-height: 800px;
  } */
   .accordion-content {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}
.accordion-inner{
  overflow: hidden; /* 直下の子要素に必須 */
}
.accordion-content.open {
  grid-template-rows: 1fr;
}
  .extra-day-row {
    display: flex;
    padding: 18px 20px;
    border-top: 1px solid #eef0f4;
    align-items: flex-start;
  }

  /* Gradient fade overlay */
  .gradient-fade {
    position: relative;
	background-color: #f2f6ff;
    /* Last visible day row gets the fade */
  }
  .gradient-fade::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 80px;
    background: linear-gradient(to bottom, rgba(255,255,255,0) 0%, rgba(255,255,255,0.85) 60%, rgba(255,255,255,1) 100%);
    pointer-events: none;
    transition: opacity 0.4s ease;
  }
  .gradient-fade.open::after {
    opacity: 0;
  }

  /* Toggle button */
  .accordion-toggle {
    width: 100%;
    background: none;
    border: none;
    border-top: 1px solid #eef0f4;
    cursor: pointer;
    padding: 14px 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    color: #2a7ab5;
    font-size: 13px;
    font-weight: 700;
    font-family: 'Noto Sans JP', sans-serif;
    transition: background 0.2s;
  }
  .accordion-toggle:hover { background: #f0f5ff; }

  .toggle-icon {
    display: inline-block;
    font-size: 10px;
    transition: transform 0.35s ease;
  }
  .accordion-toggle.open .toggle-icon {
    transform: rotate(180deg);
  }
    /* ===== SP（〜768px）===== */
    @media (max-width: 768px) {
      .europe-section {
        padding: 32px 0 48px;
      }

      .section-top {
        padding: 0 16px;
        margin-bottom: 20px;
      }

      /* 横スクロールカルーセル */
      .cards-grid {
        display: flex;
        grid-template-columns: none;
        gap: 0;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        padding: 0 16px 12px;
      }

      .cards-grid::-webkit-scrollbar { display: none; }

      .tour-card {
        flex: 0 0 80vw;
        max-width: 300px;
        scroll-snap-align: start;
        margin-right: 12px;
      }

      .tour-card:last-child { margin-right: 0; }

      /* スワイプヒント */
      .sp-scroll-hint {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        padding: 0 16px 8px;
        font-size: 11px;
        color: #999;
      }

      .sp-scroll-hint::after {
        content: ' ›';
        font-size: 16px;
        color: #c0392b;
      }
    }

    @media (min-width: 769px) {
      .sp-scroll-hint { display: none; }
    }




.visit{
	background-color: #f4f3ef;
}

.visit-imgMap{
	max-width: 300px;
    margin: 28px auto 0;
    display: block;
}

.visit-slider{
max-width:760px;
margin:auto;
padding:10px;
}

.visit-slider__viewport{
overflow:hidden;
}

.visit-slider__track{
display:flex;
/* transition: transform 1s ease; */
}

.visit-slider__item{
min-width:100%;
display:flex;
gap:25px;
align-items:center;
padding-top: 10px;
}

.visit-slider__item img{
width:180px;
height:120px;
object-fit:cover;
border-radius:6px;
}



/* 下部ナビ */
.visit-slider__nav{
display:flex;
justify-content:space-between;
align-items:center;
gap:25px;
margin-top:28px;
}

.visit-slider__btn{
width:42px;
height:42px;
border:none;
border-radius:50%;
background:#fff;
box-shadow:0 3px 10px rgba(0,0,0,.15);
font-size:28px;
cursor:pointer;
color:#b59b55;
}

.visit-slider__dots{
display:flex;
gap:10px;
}

.visit-slider__dots button{
width:11px;
height:11px;
border:none !important;
border-radius:50% !important;
background:#d8c693 !important;
padding:0;
cursor:pointer;
}

.visit-slider__dots button.active{
background:#b89a45;
}

@media(max-width:768px){
	.visit-imgMap {
    margin: 0 auto;
}


.visit{
	display: none;
}

.visit-imgMap{
	max-width: 100%;
}

.visit-slider{
padding:15px;
}

.visit-slider__item{
display:flex;
gap:14px;
align-items:flex-start;
}

.visit-slider__item img{
width:120px;
height:120px;
object-fit:cover;
border-radius:6px;
flex-shrink:0;
}

.visit-slider__text{
flex:1;
}

.visit-slider__text h3{
font-size:22px;
margin:0 0 8px;
line-height:1.3;
}

.visit-slider__text p{
font-size:13px;
line-height:1.75;
margin:0;
}

.visit-slider__nav{
margin-top:18px;
gap:18px;
}

.visit-slider__btn{
width:38px;
height:38px;
font-size:24px;
}

}



/*タイトル仮*/
.europe-title-band {
  max-width: 600px;
  width: 100%;
  margin: 0 auto;
  padding: 14px 18px;
  box-sizing: border-box;
  background: linear-gradient(90deg, #fff 0%, #fff7f9 100%);
  border: 2px solid #c8a96a;
  position: relative;
  display: flex;
  align-items: center;
  gap: 18px;
  min-height: 130px;
}

.europe-title-band::before {
  content: "";
  position: absolute;
  inset: 6px;
  border: 1px solid #c8a96a;
  pointer-events: none;
}

.europe-title-band__icon {
  flex: 0 0 82px;
  width: 82px;
  height: 82px;
  border-radius: 50%;
  overflow: hidden;
  border: 2px solid #c8a96a;
  background: #fff;
  position: relative;
  z-index: 1;
}

.europe-title-band__icon img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}




.europe-title-band__text {
  position: relative;
  z-index: 1;
  flex: 1;
}

.europe-title-band__sub {
  margin: 0 0 8px;
  /* color: #e78b9a; */
  color: #c8a96a;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(18px, 4vw, 26px);
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.4;
}

.europe-title-band__accent{
  color: #c8a96a;
   margin-right: 0.15em;
   font-size: 2.2rem;
   font-weight: bold;
   display: inline-block;
}

.europe-title-band__title {
  color: #333;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0.05em;
  display: inline-block;
}

.ttl-theme{
	color: #333;
	font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 0.05em;
}

.lead-theme{
	margin-top: 40px;
	padding: 10px;
    font-size: 15px;
	line-height: 2.0;
}

.title-wrap {
  text-align: center;
  padding: 20px 0;
  position: relative;
}

.title-wrap::before {
  content: "";
  width: 2px;
  height: 30px;
  background: #c8a96a; /* ゴールドっぽい色 */
  display: block;
  margin: 0 auto 10px;
}
.title-wrap2 {
  text-align: center;
  padding: 20px 0;
  position: relative;
}

.title-wrap2::before {
  content: "";
  width: 2px;
  height: 30px;
  display: block;
  margin: 0 auto 10px;
}
.m-leadArea{
	display: flex;
	width: 100%;
	margin-top: 0;
	flex-direction: row;
	gap: 30px;
	align-items: center;
}

@media screen and (max-width: 480px) {
  .pd-wrap-sp{
	padding: 0 20px;
  }
  .europe-title-band {
    gap: 12px;
    padding: 12px 14px;
    min-height: 110px;
  }
  .europe-title-band__title {
  font-size: 1.5rem;
}

  .europe-title-band__icon {
    flex-basis: 64px;
    width: 64px;
    height: 64px;
  }
  .europe-title-band__accent{
   font-size: 1.8rem;
}
.m-leadArea{
	flex-direction: column;
}
.stay-lavel {
    margin-top: 10px;
}
.ttl-theme{
	font-size: 1.2rem;
}
}


   .anchor-nav {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 12px;
      width: 100%;
      max-width: 680px;
	  margin: 0 auto;
    }

     .anchor-item {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 0;
      text-decoration: none;
      position: relative;
    }

    /* 上向き矢印アイコン */
    .anchor-item .arrow-btn {
      width: clamp(24px, 6vw, 36px);
      height: clamp(24px, 6vw, 36px);
      background: #2c2c2c;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      position: relative;
      z-index: 2;
      margin-bottom: -12px;
      transition: background 0.3s ease, transform 0.3s ease;
      box-shadow: 0 2px 8px rgba(0,0,0,0.25);
    }

    /* シェブロン矢印（CSS描画） */
    .anchor-item .arrow-btn::before {
      content: '';
      position: absolute;
      top: 50%;
      left: 50%;
      width: clamp(7px, 2vw, 11px);
      height: clamp(7px, 2vw, 11px);
      border-top: 2.5px solid #fff;
      border-right: 2.5px solid #fff;
      transform: translate(-50%, -25%) rotate(-45deg);
    }

    /* 円形画像 */
    .anchor-item .circle-img {
      width: 100%;
      aspect-ratio: 1 / 1;
      border-radius: 50%;
      overflow: hidden;
      position: relative;
      filter: drop-shadow(0px 5px 3px rgba(0,0,0,0.25));
      transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                  filter 0.4s ease;
				  margin: 0 auto 10px;
    }

    .anchor-item .circle-img img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
      transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    }

    /* 画像上のテキストオーバーレイ */
    .anchor-item .circle-img .overlay {
      position: absolute;
      inset: 0;
      background: linear-gradient(
        to bottom,
        rgba(0,0,0,0.05) 0%,
        rgba(0,0,0,0.45) 60%,
        rgba(0,0,0,0.65) 100%
      );
      border-radius: 50%;
      display: flex;
      align-items: flex-end;
      justify-content: center;
      padding-bottom: 20px;
    }

    .anchor-item .circle-img .label {
      text-align: center;
      color: #fff;
      line-height: 1.45;
      font-size: clamp(8px, 2.2vw, 15px);
      font-weight: 700;
      letter-spacing: 0.03em;
      text-shadow: 0 1px 4px rgba(0,0,0,0.5);
    }

    .anchor-item .circle-img .label .sub {
      font-size: clamp(7px, 1.8vw, 14px);
      font-weight: 400;
      display: block;
      margin-top: 1px;
      opacity: 0.9;
      letter-spacing: 0.08em;
    }

    /* Hover */
    .anchor-item:hover .circle-img {
      transform: translateY(-4px);
      filter: drop-shadow(0 14px 20px rgba(0,0,0,0.4));
    }

    .anchor-item:hover .circle-img img {
      transform: scale(1.08);
    }

    .anchor-item:hover .arrow-btn {
      background: #c0392b;
      transform: translateY(-2px);
    }

    /* active */
    .anchor-item:active .circle-img {
      transform: translateY(0);
    }


	/*QA*/
.faq-eu {
  margin: 0 auto;
  padding: 10px 0 120px;
  background: #fbfbfb;
  font-family: "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
}

.faq-eu__title {
  text-align: center;
  margin-bottom: 28px;
}

.faq-eu__title span {
  display: inline-block;
  font-size: 13px;
  letter-spacing: .12em;
  color: #b08a3c;
  font-weight: bold;
  margin-bottom: 8px;
}

.faq-eu__title h2 {
  font-size: 28px;
  line-height: 1.4;
  color: #1f2f46;
  margin: 0;
  font-weight: bold;
}

.faq-eu__item {
  background: #fff;
  border: 1px solid #e6dfd2;
  border-radius: 4px;
  margin: 0 auto 16px;
  box-shadow: 0 6px 18px rgba(31,47,70,.08);
  overflow: hidden;
  max-width: 870px;
}

.faq-eu__q {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 18px 54px 18px 22px;
  background: #264169;
  color: #fff;
  font-size: 17px;
  line-height: 1.6;
  font-weight: bold;
  cursor: pointer;
  list-style: none;
}

.faq-eu__q::-webkit-details-marker {
  display: none;
}

.faq-eu__q::before {
  content: "Q";
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #b08a3c;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: Georgia, serif;
  font-size: 18px;
  line-height: 1;
}

.faq-eu__q::after {
  content: "+";
  position: absolute;
  right: 22px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 28px;
  font-weight: normal;
  color: #d8bd7a;
}

.faq-eu__item[open] .faq-eu__q::after {
  content: "−";
}

.faq-eu__a {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 20px 22px 22px;
  color: #333;
  font-size: 15px;
  line-height: 1.9;
}

.faq-eu__a::before {
  content: "A";
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #fff;
  border: 1px solid #b08a3c;
  color: #b08a3c;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: Georgia, serif;
  font-size: 18px;
  font-weight: bold;
  line-height: 1;
}

.faq-eu__a p {
  margin: 0;
}

.faq-eu__note {
  display: block;
  margin-top: 8px;
  font-size: 13px;
  color: #666;
}

@media screen and (max-width: 767px) {
  .faq-eu {
    margin: 36px auto;
    padding: 0 12px;
  }

  .faq-eu__title h2 {
    font-size: 22px;
  }

  .faq-eu__q {
    padding: 15px 48px 15px 16px;
    font-size: 15px;
  }

  .faq-eu__a {
    padding: 16px;
    font-size: 14px;
  }

  .faq-eu__q::before,
  .faq-eu__a::before {
    flex-basis: 26px;
    width: 26px;
    height: 26px;
    font-size: 16px;
  }

  .faq-eu__q::after {
    right: 16px;
  }
}

/*ツアーポイント*/
/* .tour-point {
  max-width: 1080px;
  margin: 50px auto;
  padding: 0 16px;
  font-family: "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
}

.tour-point__title {
  text-align: center;
  margin-bottom: 34px;
}

.tour-point__title span {
  display: inline-block;
  font-size: 13px;
  letter-spacing: .14em;
  color: #b69a4b;
  font-weight: bold;
  margin-bottom: 8px;
}

.tour-point__title h2 {
  margin: 0;
  color: #1f2f46;
  font-size: 28px;
  line-height: 1.4;
  font-weight: bold;
}

.tour-point__list {
  display: flex;
  gap: 24px;
}

.tour-point__card {
  position: relative;
  flex: 1;
  background: #fffdf8;
  border: 1px solid #d5bd72;
  border-radius: 10px;
  padding: 42px 24px 26px;
  box-shadow: 0 8px 20px rgba(31,47,70,.08);
  text-align: center;
}

.tour-point__card::before,
.tour-point__card::after {
  content: "";
  position: absolute;
  left: 12px;
  right: 12px;
  height: 1px;
  background-image: linear-gradient(to right, #d5bd72 50%, transparent 50%);
  background-size: 6px 1px;
}

.tour-point__card::before {
  top: 12px;
}

.tour-point__card::after {
  bottom: 12px;
}

.tour-point__num {
  position: absolute;
  top: -30px;
  left: 50%;
  transform: translateX(-50%);
  color: #b69a4b;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 58px;
  line-height: 1;
  background: #fffdf8;
  padding: 0 14px;
}

.tour-point__head {
  margin: 0 0 18px;
  color: #b08a3c;
  font-size: 17px;
  line-height: 1.65;
  font-weight: bold;
}

.tour-point__head strong {
  display: block;
  color: #1f2f46;
  font-size: 18px;
}

.tour-point__text {
  margin: 0;
  color: #333;
  font-size: 14px;
  line-height: 1.9;
  text-align: left;
}

@media screen and (max-width: 767px) {
  .tour-point {
    margin: 38px auto;
    padding: 0 12px;
  }

  .tour-point__title h2 {
    font-size: 22px;
  }

  .tour-point__list {
    display: block;
  }

  .tour-point__card {
    margin-bottom: 38px;
    padding: 38px 20px 24px;
  }

  .tour-point__num {
    font-size: 50px;
    top: -26px;
  }

  .tour-point__head {
    font-size: 16px;
  }

  .tour-point__head strong {
    font-size: 17px;
  }

  .tour-point__text {
    font-size: 14px;
  }
} */
 .tour-point {
  max-width: 1080px;
  margin: 50px auto;
  padding: 0 16px;
  font-family: "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
}

.tour-point__title {
  text-align: center;
  margin-bottom: 34px;
}

.tour-point__title span {
  display: inline-block;
  font-size: 13px;
  letter-spacing: .14em;
  color: #b69a4b;
  font-weight: bold;
  margin-bottom: 8px;
}

.tour-point__title h2 {
  margin: 0;
  color: #1f2f46;
  font-size: 28px;
  line-height: 1.4;
  font-weight: bold;
}

.tour-point__list {
  display: flex;
  gap: 24px;
}

.tour-point__card {
  position: relative;
  flex: 1;
  background: #fffdf8;
  border: 1px solid #d5bd72;
  border-radius: 10px;
  box-shadow: 0 8px 20px rgba(31,47,70,.08);
  overflow: visible;
}

.tour-point__card::before,
.tour-point__card::after {
  content: "";
  position: absolute;
  left: 12px;
  right: 12px;
  height: 1px;
  background-image: linear-gradient(to right, #d5bd72 50%, transparent 50%);
  background-size: 6px 1px;
}

.tour-point__card::before {
  top: 12px;
}

.tour-point__card::after {
  bottom: 12px;
}

.tour-point__summary {
  position: relative;
  padding: 42px 24px 22px;
  text-align: center;
  cursor: pointer;
  list-style: none;
}

.tour-point__summary::-webkit-details-marker {
  display: none;
}

.tour-point__num {
  position: absolute;
  top: -30px;
  left: 50%;
  transform: translateX(-50%);
  color: #b69a4b;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 58px;
  line-height: 1;
  background: #fffdf8;
  padding: 0 14px;
}

.tour-point__head {
  margin: 0 0 8px;
  color: #1f2f46;
  font-size: 1.1rem;
  font-weight: bold;
}

.tour-point__sub {
  display: block;
  /* color: #b08a3c; */
  color: #1f2f46;
  font-size: 1.1rem;
  font-weight: bold;
}

.tour-point__toggle::before {
  content: "詳しく見る";
}

.tour-point__card[open] .tour-point__toggle::before {
  content: "閉じる";
}

.tour-point__toggle {
  display: inline-block;
  margin-top: 16px;
  color: #1f2f46;
  font-size: 13px;
  font-weight: bold;
  letter-spacing: .08em;
}

.tour-point__toggle::after {
  content: "＋";
  margin-left: 8px;
  color: #b69a4b;
  font-size: 16px;
}

.tour-point__card[open] .tour-point__toggle::after {
  content: "−";
}

.tour-point__body {
  padding: 0 24px 26px;
}

.tour-point__text {
  margin: 0;
  color: #333;
  font-size: 14px;
  line-height: 1.9;
}

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

  .tour-point {
    margin: 40px auto;
    padding: 0 12px;
  }

  .tour-point__title h2 {
    font-size: 22px;
  }

  .tour-point__list {
    display: block;
  }

  .tour-point__card {
    margin-bottom: 26px;
  }

  .tour-point__summary {
    padding: 38px 18px 20px;
  }

  .tour-point__num {
    font-size: 48px;
    top: -24px;
  }

  .tour-point__head {
    font-size: 19px;
  }

  .tour-point__sub {
    font-size: 13px;
  }

  .tour-point__body {
    padding: 0 18px 22px;
  }

  .tour-point__text {
    font-size: 13px;
    line-height: 1.8;
  }
}

      /* =============================
       セクション全体
    ============================= */
    .stw-section {
      padding: 3rem 1.5rem;
      max-width: 1100px;
      margin: 0 auto;
    }

    /* =============================
       見出し
    ============================= */
    .stw-header-wrap {
      display: flex;
      justify-content: center;
    }

    .stw-header {
      background: #ac9c5f;
      color: #fff;
      font-family: 'Noto Serif JP', serif;
      font-size: 18px;
      font-weight: 600;
      letter-spacing: 0.1em;
      padding: 10px 40px;
      border-radius: 40px;
      display: inline-block;
    }

    /* =============================
       カードグリッド（PC）
    ============================= */
    .stw-cards {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 1.5rem;
      padding-top: 1.5rem;
    }

    /* =============================
       カード
    ============================= */
    .stw-card {
      position: relative;
      border: 1.5px solid #d9cfa8;
      border-radius: 12px;
      background: #fff;
      padding: 3rem 1.25rem 1.25rem;
      margin-top: 2rem;
    }

    /* 上部はみ出し番号 */
    .stw-num {
      position: absolute;
      top: -1.75rem;
      left: 50%;
      transform: translateX(-50%);
      font-family: 'Noto Serif JP', serif;
      font-size: 3.7rem;
      font-weight: 600;
      color: #ac9c5f;
      line-height: 1;
      display: block;
    }

    .stw-divider {
      width: 100%;
      height: 1px;
      background: #d9cfa8;
      margin: 0.6rem 0;
    }

    .stw-subtitle {
      font-weight: 700;
      color: #222;
      line-height: 1.6;
      margin-bottom: 0.75rem;
	  text-align: center;
    }

    .stw-body {
      font-size: 12px;
      color: #555;
      line-height: 1.9;
    }

    /* =============================
       SP：横スクロール
    ============================= */
    @media (max-width: 768px) {
      .stw-section {
        padding: 2rem 0;
      }

      .stw-cards {
        display: flex;
        flex-wrap: nowrap;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        gap: 1rem;
        padding: 1rem 1.5rem 1.25rem;
        /* スクロールバー非表示 */
        scrollbar-width: none;
        -ms-overflow-style: none;
      }

      .stw-cards::-webkit-scrollbar {
        display: none;
      }

      .stw-card {
        flex: 0 0 70vw;
        scroll-snap-align: start;
      }
	  
      /* カスタムスクロールバー */
      .stw-cards {
        scrollbar-width: thin;
        scrollbar-color: #ac9c5f #d9cfa8;
      }

      .stw-cards::-webkit-scrollbar {
        height: 4px;
      }

      .stw-cards::-webkit-scrollbar-track {
        background: #d9cfa8;
        border-radius: 4px;
      }

      .stw-cards::-webkit-scrollbar-thumb {
        background: #ac9c5f;
        border-radius: 4px;
      }
    }


#main .list__item{
	margin: 20px auto 0;
    padding: 20px;
    background: #ffffff;
    border: 1px solid #d1c0a5;
    overflow: hidden;
    position: relative;
    max-width: 1000px;
}
#main .list__item__img{
	width:200px;
	float:left;
}

#main .list__item__detail{
	width:780px;
	float:right;
}
#main .list__item__title{
	width:780px;
	float:right;
	text-align: left;
}
#main .list__item__title p{
	background:#ede8e1;
	padding:16px 10px;
	/* color:#14aaba; */
	font-weight:bold;
	margin:0 0 14px;
}
#main .list__item__desc p{
	margin:0 0 28px;
	text-align: left;
}
#main .list__item__price span{
	color:#8639b1;
	font-weight:bold;
	font-size:24px;
}
#main .list__item__link{
	width:240px;
	position:absolute;
	right:20px;
	bottom:20px;
	background: #7d18b5;
}

#main .list__item__link a{
	background: url("../images/bg_btn_yellow.png");
	border-radius: 5px;
	box-shadow: 0 4px 0 #c2aecd;
	display: block;
	height: 50px;
	position: relative;
	transition: none;
}
#main .list__item__link a:hover {
	box-shadow: 0 2px 0 #c2aecd;
	top: 2px;
}

#main .list__item__link a:after{
	content: "";
	background: url("../images/icon_arrow_brown.png") no-repeat center top;
	display: block;
	width: 24px;
	height: 24px;
	margin-top: -12px;
	position: absolute;
	right: 20px;
	top: 50%;
}

#main .list__item__link a span {
	color: #ffffff;
	display: block;
	font-size: 16px;
	font-weight: bold;
	position: absolute;
	text-align: center;
	top: 50%;
	-webkit-transform: translate(0px, -50%);
	transform: translate(0px, -50%);
	width: 100%;
	line-height:1.375em;
}


@media screen and (max-width: 768px) {
	#main .list__item{
		margin:10px 0 0;
		padding:10px;
	}
	#main .list__item__img{
		width:38%;
		padding:0 0 10px;
	}
	#main .list__item__img img{
		width:100%;
	}
	
	#main .list__item__detail{
		width:58%;
	}
	#main .list__item__title{
		width:auto;
		float:none;
	}
	#main .list__item__title p{
		padding:10px;
		margin:0 0 10px;
	}
	#main .list__item__desc p{
		margin:0 0 10px;
		font-size:10px;
		line-height:1.3em;
	}
	/* #main .list__item__price span{
		font-size:12px;
	} */
	#main .list__item__link{
		width:auto;
		position:static;
		clear:both;
	}
	
	#main .list__item__link a{
		height: 50px;
	}
	
	#main .list__item__link a:after{
		background-size:cover;
		width: 12px;
		height: 12px;
		margin-top: -6px;
		right: 10px;
	}
	
	/* #main .list__item__link a span {
		font-size: 10px;
	} */
}

.tour-points {
  padding: 28px 24px;
  background: #f0ede8;
  max-width: 995px;
  margin: 0 auto;

}

.tour-points__title {
  margin: 0 0 20px;
  text-align: center;
  font-size: 1.2rem;
  line-height: 1.5;
  color: #5b3217;
}

.tour-points__list {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.tour-points__item {
  background: #fff;
  border: 1px solid #ead8bd;
  border-radius: 12px;
  padding: 18px 12px;
  text-align: center;
}

.tour-points__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  margin-bottom: 10px;
  border-radius: 50%;
  background: #8b4b22;
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  
}

.tour-points__text {
  margin: 0;
  font-size: 15px;
  line-height: 1.6;
  font-weight: 700;
  color: #3b2a1c;
}

@media screen and (max-width: 768px) {
  .tour-points {
    padding: 22px 16px;
	margin-bottom: 50px;
  }

  .tour-points__title {
    font-size: 20px;
  }

  .tour-points__list {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .tour-points__item {
    display: flex;
    align-items: center;
    text-align: left;
    padding: 14px;
  }

  .tour-points__num {
    flex: 0 0 34px;
    margin: 0 12px 0 0;
  }

  .tour-points__text {
    font-size: 14px;
  }
}


/* =============================
  セクション見出し（汎用パーツ）
============================= */
.c-section-heading {
  margin-bottom: 24px;
  margin-top: 70px;
}

.c-section-heading--center {
  text-align: center;
}

.c-section-heading__en {
  display: block;
  font-family: 'Cormorant Garamond', serif;
  font-weight: 300;
  font-size: 11px;
  letter-spacing: 0.4em;
  text-transform: uppercase;
  color: #999;
  margin-bottom: 10px;
}

.c-section-heading__ja {
  display: block;
  font-size: 26px;
  font-weight: 500;
  /* letter-spacing: 0.12em; */
  /* color: #1a1a1a; */
  position: relative;
  padding-bottom: 20px;
  line-height: 1.3;
}

.c-section-heading__ja::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 32px;
  height: 1px;
  background: #1a1a1a;
}

.c-section-heading--center .c-section-heading__ja::after {
  left: 50%;
  transform: translateX(-50%);
}

/* --style-bg-center：英字バック センター（c-card-grid見出し用） */
.c-section-heading--style-bg-center {
  text-align: center;
  overflow: hidden;
      margin-top: 70px;
}

.c-section-heading--style-bg-center .c-section-heading__bg {
  display: block;
  font-family: 'Cormorant Garamond', serif;
  font-weight: 300;
  font-size: 72px;
  color: #f0ede8;
  line-height: 1;
  margin-bottom: -24px;
  letter-spacing: 0.08em;
  user-select: none;
}

.c-section-heading--style-bg-center .c-section-heading__en {
  position: relative;
  color: #b8a98a;
  margin-bottom: 6px;
}

.c-section-heading--style-bg-center .c-section-heading__ja {
  position: relative;
  font-size: 1.8rem;
  padding-bottom: 0;
  /* font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; */
  margin-bottom: 40px;
  font-weight: bold;
}

.c-section-heading--style-bg-center .c-section-heading__ja::after {
  display: none;
}

/* --style-bg：英字バック 左寄せ（c-figure-block見出し用） */
.c-section-heading--style-bg {
  overflow: hidden;
}

.c-section-heading--style-bg .c-section-heading__bg {
  display: block;
  font-family: 'Cormorant Garamond', serif;
  font-weight: 300;
  font-size: 72px;
  color: #f0ede8;
  line-height: 1;
  margin-bottom: -28px;
  letter-spacing: 0.04em;
  user-select: none;
}

.c-section-heading--style-bg .c-section-heading__en {
  position: relative;
  color: #b8a98a;
  margin-bottom: 6px;
}

.c-section-heading--style-bg .c-section-heading__ja {
  position: relative;
  font-size: 1.8rem;
  padding-bottom: 0;
  line-height: 1.2;
  margin-bottom: 40px;
  font-weight: bold;
}

.c-section-heading--style-bg .c-section-heading__ja::after {
  display: none;
}

/* =============================
  c-card-grid
============================= */
.c-card-grid {
  display: grid;
  gap: 40px 32px;
}

.c-card-grid--col1 { grid-template-columns: 1fr; }
.c-card-grid--col2 { grid-template-columns: repeat(2, 1fr); }
.c-card-grid--col3 { grid-template-columns: repeat(3, 1fr); }
.c-card-grid--col4 { grid-template-columns: repeat(4, 1fr); }

/* =============================
  c-card（c-card-grid の子要素）
============================= */
.c-card {}

.c-card__title {
	font-size: 1.0rem;
    font-weight: bold;
    text-align: center;
    letter-spacing: 0.06em;
    margin-bottom: 14px;
}

.c-card__image-wrap {
  overflow: hidden;
  margin-bottom: 16px;
  aspect-ratio: 4 / 3;
}

.c-card__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.6s ease;
}

.c-card__image-wrap:hover .c-card__image {
  transform: scale(1.04);
}

.c-card__body {
  font-size: 1.0rem;
  line-height: 1.9;
  color: #555;
}

.c-card__body em {
  font-style: normal;
  font-weight: 500;
  border-bottom: 2px solid #c8a96e;
  padding-bottom: 1px;
  color: #1a1a1a;
}

/* =============================
  c-figure-block
============================= */
.c-figure-block {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
}

.c-figure-block--img-left  { direction: ltr; }
.c-figure-block--img-right { direction: rtl; }
.c-figure-block--img-right > * { direction: ltr; }

.c-figure-block__image-wrap {
  overflow: hidden;
}

.c-figure-block__image {
  width: 100%;
  height: auto;
  display: block;
}

.c-figure-block__body {}

.c-figure-block__title {
  font-size: 20px;
  font-weight: 500;
  letter-spacing: 0.06em;
  line-height: 1.6;
  margin-bottom: 20px;
}

.c-figure-block__text {
  font-size: 0.9rem;
  line-height: 2;
}

/* =============================
  デモ用ラッパー
============================= */
.l-section {
  max-width: 1080px;
  margin: 0 auto 96px;
}

/* =============================
  SP
============================= */
@media (max-width: 768px) {
  body { padding: 56px 0; }

  .c-section-heading__ja { font-size: 22px; }

  /* c-card-grid：SP はすべて1カラム */
  .c-card-grid--col1,
  .c-card-grid--col2,
  .c-card-grid--col3,
  .c-card-grid--col4 {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  /* c-figure-block：SP は画像上・テキスト下 */
  .c-figure-block,
  .c-figure-block--img-left,
  .c-figure-block--img-right {
    grid-template-columns: 1fr;
    direction: ltr;
    gap: 24px;
  }

  .c-figure-block__title { font-size: 17px; }
}
/* =============================
  bnr-widget（スクロール連動バナー）
============================= */
.bnr-widget {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
  transition: bottom 0.3s ease;
}

.bnr-widget__item {
  position: relative;
  transition: opacity 0.3s ease, transform 0.3s ease;
}

.bnr-widget__item.is-hidden {
  opacity: 0;
  transform: translateY(8px);
  pointer-events: none;
  height: 0;
  overflow: hidden;
  margin: 0;
}

.bnr-widget__link {
  display: block;
  border-radius: 8px;
  overflow: hidden;
}

.bnr-widget__img {
  display: block;
  width: 400px;
  height: auto;
}

.bnr-widget__close {
  position: absolute;
  top: -10px;
  right: -10px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 1px solid #ccc;
  background: #fff;
  cursor: pointer;
  font-size: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.bnr-widget__pagetop {
  position: static;
  bottom: 20px;
right: 20px;
z-index: 10000;
}
.bnr-widget__pagetop a {
/* background: #b4a165; */
background: #2a63b8;
border-radius: 10px;
color: #fff;
display: block;
height: 40px;
text-align: center;
text-decoration: none;
width: 40px;
}

.bnr-widget__pagetop a img{
width:100%;
}

/* SP */
@media (max-width: 768px) {
  .bnr-widget {
    /* right: 8px; */
    bottom: 16px;
    align-items: flex-end;
    flex-direction: column-reverse;
  }

  .bnr-widget__img {
    width: 90vw;
    max-width: 360px;
  }
  .bnr-widget__pagetop {
    padding-bottom: 10px;
}
}



/* =========================================
   MOROCCO ASSISTANT
   section 03 - 09
========================================= */

.ma-assist {
	color: #3f3a36;
	font-family: inherit;
	line-height: 1.8;
}

.ma-assist *,
.ma-assist *::before,
.ma-assist *::after {
	box-sizing: border-box;
}

.ma-assist img {
	display: block;
	width: 100%;
	height: auto;
}

.ma-assist a {
	color: inherit;
	text-decoration: none;
}

.ma-inner {
	width: min(1120px, calc(100% - 40px));
	margin: 0 auto;
}

.ma-section {
	padding: 90px 0;
}

.ma-section--bg {
	background: url(https://stworld.jp/feature/MA/assistant/images/bg_gara.png);
    background-size: cover;
}


/* =========================================
   COMMON TITLE
========================================= */

.ma-heading {
	margin: 0 auto 48px;
	text-align: center;
}

.ma-heading__en {
	display: block;
	margin-bottom: 8px;
	color: #b99768;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 15px;
	letter-spacing: .18em;
	text-transform: uppercase;
}

.ma-heading__title {
	margin: 0;
	font-size: clamp(26px, 3vw, 38px);
	font-weight: 600;
	line-height: 1.45;
	letter-spacing: .04em;
}

.ma-heading__lead {
	max-width: 760px;
	margin: 20px auto 0;
	font-size: 15px;
	line-height: 2;
}

.ma-em {
	color: #76543d;
	font-weight: 700;
}


/* =========================================
   03 REASON
========================================= */

.ma-reasons {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
}

.ma-reason {
	position: relative;
	padding: 54px 30px 34px;
	background: #fff;
	border: 1px solid #ddd3c8;
}

.ma-reason__num {
	position: absolute;
	top: -25px;
	left: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	transform: translateX(-50%);
	background: #34271f;
	color: #fff;
	border-radius: 50%;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 18px;
	letter-spacing: .08em;
}

.ma-reason__title {
	margin: 0 0 18px;
	color: #34271f;
	font-size: 19px;
	font-weight: 600;
	line-height: 1.6;
	text-align: center;
}

.ma-reason__text {
	margin: 0;
	font-size: 14px;
	line-height: 1.9;
}


/* =========================================
   04 TOUR SELECT / COMPARISON
========================================= */

.ma-tour-select {
	/* background: #34271f;
	color: #fff; */
	background: url(https://stworld.jp/feature/MA/model_plan/images/morocco-back.jpg);
    background-position: 0 20%;
}

/* .ma-tour-select .ma-heading__title,
.ma-tour-select .ma-heading__lead {
	color: #fff;
} */

.ma-tour-select .ma-heading__en {
	color: #d7bd98;
}

.ma-compare {
	overflow: hidden;
	background: #fff;
	color: #3f3a36;
	border-radius: 2px;
}

.ma-compare__head,
.ma-compare__row {
	display: grid;
	grid-template-columns: 1.05fr 1.25fr 1fr;
}

.ma-compare__head > div {
	padding: 16px 20px;
	background: #2a63b8;
	color: #fff;
	font-size: 14px;
	font-weight: 600;
	text-align: center;
}

.ma-compare__row > div {
	padding: 20px;
	border-right: 1px solid #ddd3c8;
	border-bottom: 1px solid #ddd3c8;
	font-size: 1.1rem;
}

.ma-compare__row:last-child > div {
	border-bottom: 0;
}

.ma-compare__row > div:last-child {
	border-right: 0;
}

.ma-compare__type {
	color: #2a63b8;
	font-weight: 700;
}

.ma-compare__point {
	display: inline-block;
	margin-bottom: 5px;
	color: #76543d;
	font-weight: 700;
}


/* =========================================
   05 - 06 TOUR CATEGORY
========================================= */

.ma-tour-category + .ma-tour-category {
	margin-top: 80px;
}

.ma-category-head {
	margin-bottom: 36px;
	padding-bottom: 20px;
	border-bottom: 1px solid #e8d8c1;
}

.ma-category-head__tag {
	display: inline-block;
	margin-bottom: 9px;
	color: #b99768;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 13px;
	letter-spacing: .15em;
}

.ma-category-head__title {
	margin: 0 0 10px;
	color: #34271f;
	font-size: clamp(23px, 2.5vw, 31px);
	font-weight: 600;
	line-height: 1.5;
}

.ma-category-head__text {
	margin: 0;
	font-size: 14px;
}

.ma-tour-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 32px;
}

.ma-tour-list--single {
	grid-template-columns: 1fr;
}

.ma-tour-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid #ddd3c8;
}

.ma-tour-list--single .ma-tour-card {
	display: grid;
	grid-template-columns: minmax(260px, .8fr) 1.2fr;
}

.ma-tour-card__visual {
	position: relative;
	min-height: 260px;
	overflow: hidden;
	background: #e7e1da;
}

.ma-tour-card__visual img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ma-tour-card__label {
	position: absolute;
	top: 0;
	left: 0;
	padding: 9px 17px;
	background: #34271f;
	color: #fff;
	font-size: 12px;
	letter-spacing: .1em;
}

.ma-tour-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 30px;
}

.ma-tour-card__catch {
	margin-bottom: 6px;
	color: #b99768;
	font-size: 13px;
	font-weight: 600;
}

.ma-tour-card__title {
	margin: 0 0 10px;
	color: #a27b46;
	font-size: 21px;
	font-weight: 600;
	line-height: 1.55;
}

.ma-tour-card__subhead {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 18px 0 8px;
	color: #34271f;
	font-size: 14px;
	font-weight: 700;
}

.ma-tour-card__subhead::before {
	content: "";
	width: 18px;
	height: 1px;
	background: #b99768;
}

.ma-point-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.ma-point-list li {
	position: relative;
	padding-left: 20px;
	font-size: 14px;
	line-height: 1.8;
}

.ma-point-list li + li {
	margin-top: 5px;
}

.ma-point-list li::before {
	content: "✓";
	position: absolute;
	top: 0;
	left: 0;
	color: #b99768;
	font-weight: 700;
}

.ma-note {
	margin-top: 14px;
	padding: 16px 18px;
	background: #f7f3ed;
	font-size: 13px;
	line-height: 1.8;
}

.ma-note__title {
	display: block;
	margin-bottom: 4px;
	color: #76543d;
	font-weight: 700;
}

.ma-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	width: 100%;
	max-width: 340px;
	min-height: 54px;
	margin: 26px auto 0;
	padding: 12px 20px;
	background: #76543d;
	color: #fff !important;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .04em;
	transition: opacity .25s;
}

.ma-btn::after {
	content: "→";
	font-size: 17px;
}

.ma-btn:hover {
	opacity: .82;
}


/* =========================================
   07 STAY ARRANGE
========================================= */

.ma-stay-intro {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	gap: 60px;
}

.ma-stay-intro__visual {
	min-height: 400px;
	background: #e5ded6;
}

.ma-stay-intro__visual img {
	height: 100%;
	object-fit: cover;
}

.ma-stay-intro__copy {
	padding-right: 20px;
}

.ma-stay-intro__catch {
	margin: 0 0 18px;
	color: #34271f;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(28px, 3vw, 40px);
	font-weight: 400;
	line-height: 1.45;
}

.ma-stay-intro__text {
	margin: 0;
	font-size: 15px;
	line-height: 2;
}


/* =========================================
   08 HOTEL VS RIAD
========================================= */

.ma-stay-type {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 30px;
}

.ma-stay-type__card {
	position: relative;
	overflow: hidden;
	background: #fff;
	border: 1px solid #ddd3c8;
}

.ma-stay-type__head {
	padding: 28px 30px 24px;
	text-align: center;
	border-bottom: 1px solid #ddd3c8;
}

.ma-stay-type__head.-hotel{
	background-image: url(https://stworld.jp/feature/MA/assistant/images/ttl_hotel.jpg);
    background-repeat: no-repeat;
    background-size: cover;
}

.ma-stay-type__head.-riad{
	background-image: url(https://stworld.jp/feature/MA/assistant/images/ttl_riad.jpg);
    background-repeat: no-repeat;
    background-size: cover;
}

.ma-stay-type__en {
	display: block;
	margin-bottom: 5px;
	color: #b99768;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 20px;
	letter-spacing: .15em;
}

.ma-stay-type__title {
	margin: 0;
	color: #ffffff;
	font-size: 19px;
	font-weight: 600;
}

.ma-stay-type__body {
	padding: 28px 30px 30px;
}

.ma-stay-type__label {
	margin: 0 0 10px;
	color: #76543d;
	font-size: 13px;
	font-weight: 700;
}

.ma-stay-type__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.ma-stay-type__list li {
	position: relative;
	padding-left: 18px;
	font-size: 14px;
	line-height: 1.8;
}

.ma-stay-type__list li + li {
	margin-top: 4px;
}

.ma-stay-type__list li::before {
	content: "・";
	position: absolute;
	left: 0;
}

.ma-stay-type__attention {
	margin-top: 22px;
	padding-top: 18px;
	border-top: 1px solid #ddd3c8;
	font-size: 13px;
	line-height: 1.8;
}

.ma-stay-type__attention strong {
	color: #34271f;
}


/* =========================================
   09 HOTEL LIST
========================================= */

.ma-hotel-list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 32px;
}

.ma-hotel-card {
	display: grid;
	grid-template-columns: 46% 54%;
	overflow: hidden;
	background: #fff;
	border: 1px solid #ddd3c8;
}

.ma-hotel-card__visual {
	min-height: 250px;
	background: #e5ded6;
}

.ma-hotel-card__visual img {
    height: 100%;
    object-fit: cover;
    max-width: 100%;
    width: 100%;
}

.ma-hotel-card__body {
	display: flex;
	flex-direction: column;
	padding: 25px;
}

.ma-hotel-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 11px;
}

.ma-hotel-card__tag {
	display: inline-block;
	padding: 3px 8px;
	background: #f7f3ed;
	color: #76543d;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .05em;
}

.ma-hotel-card__name {
	margin: 0 0 8px;
	color: #34271f;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.5;
}

.ma-hotel-card__catch {
	margin: 0 0 9px;
	color: #76543d;
	font-size: 13px;
	font-weight: 700;
}

.ma-hotel-card__text {
	margin: 0;
	font-size: 13px;
	line-height: 1.8;
}

.ma-hotel-card__link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: auto;
	padding-top: 18px;
	color: #76543d !important;
	font-size: 13px;
	font-weight: 700;
}

.ma-hotel-card__link::after {
	content: "→";
}


/* =========================================
   SP
========================================= */

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

	.ma-inner {
		width: calc(100% - 32px);
	}

	.ma-section {
		padding: 64px 0;
	}
	.plan:last-child{
		margin: 0;
	}

	.ma-heading {
		margin-bottom: 38px;
	}

	.ma-heading__title {
		font-size: 25px;
	}

	.ma-heading__lead {
		margin-top: 15px;
		font-size: 14px;
		text-align: left;
	}

	/* reason */
	.ma-reasons {
		grid-template-columns: 1fr;
		gap: 46px;
	}

	.ma-reason {
		padding: 48px 24px 28px;
	}

	/* comparison */
	.ma-compare {
		background: transparent;
		overflow: visible;
	}

	.ma-compare__head {
		display: none;
	}

	.ma-compare__row {
		display: block;
		margin-bottom: 16px;
		background: #fff;
	}

	.ma-compare__row > div {
		position: relative;
		padding: 13px 16px 13px 116px;
		border-right: 0;
		border-bottom: 1px solid #ddd3c8;
		font-size: 13px;
	}

	.ma-compare__row > div::before {
		position: absolute;
		top: 13px;
		left: 15px;
		width: 90px;
		color: #776f69;
		font-size: 11px;
		font-weight: 700;
	}

	.ma-compare__row > div:nth-child(1)::before {
		content: "ツアータイプ";
	}

	.ma-compare__row > div:nth-child(2)::before {
		content: "特徴";
	}

	.ma-compare__row > div:nth-child(3)::before {
		content: "おすすめ";
	}

	/* tour */
	.ma-tour-category + .ma-tour-category {
		margin-top: 60px;
	}

	.ma-category-head__title {
		font-size: 22px;
	}

	.ma-tour-list,
	.ma-tour-list--single {
		grid-template-columns: 1fr;
	}

	.ma-tour-list--single .ma-tour-card {
		display: flex;
	}

	.ma-tour-card__visual {
		min-height: 220px;
	}

	.ma-tour-card__body {
		padding: 24px 20px;
	}

	.ma-tour-card__title {
		font-size: 19px;
	}

	/* stay intro */
	.ma-stay-intro {
		grid-template-columns: 1fr;
		gap: 30px;
	}

	.ma-stay-intro__visual {
		min-height: 280px;
	}

	.ma-stay-intro__copy {
		padding-right: 0;
	}

	.ma-stay-intro__catch {
		font-size: 28px;
	}

	/* stay type */
	.ma-stay-type {
		grid-template-columns: 1fr;
		gap: 20px;
	}

	.ma-stay-type__head,
	.ma-stay-type__body {
		padding-left: 22px;
		padding-right: 22px;
	}

	/* hotel */
	.ma-hotel-list {
		grid-template-columns: 1fr;
		gap: 22px;
	}

	.ma-hotel-card {
		grid-template-columns: 42% 58%;
	}

	.ma-hotel-card__visual {
		min-height: 230px;
	}

	.ma-hotel-card__body {
		padding: 20px 17px;
	}

}

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

	.ma-hotel-card {
		display: block;
	}

	.ma-hotel-card__visual {
		aspect-ratio: 16 / 9;
		min-height: 0;
	}

}

/* ============================================================
   2026/09/29 追記
   ツアーパネル矢印 / プランタイトルアコーディオン
   ============================================================ */

/* ツアーパネル右下：黒丸＋下向き矢印 */
.tour-card {
  position: relative;
}

.tour-card::after {
  content: "";
  position: absolute;
  right: 12px;
  bottom: 12px;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: #2a63b8;
  z-index: 2;
  pointer-events: none;
}

.tour-card::before {
  content: "";
  position: absolute;
  right: 27px;
  bottom: 29px;
  width: 11px;
  height: 11px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(45deg);
  z-index: 3;
  pointer-events: none;
}

/* プランタイトル帯：クリック可能に */
.plan .ttl-box {
  position: relative;
  cursor: pointer;
  user-select: none;
}

/* タイトル文字と開閉ボタンが重ならないように */
.plan .ttl-box h3 {
  box-sizing: border-box;
  padding-left: 20px;
  padding-right: 90px;
}

/* 閉じている時：＋ */
.plan .ttl-box::after {
  content: "+";
  position: absolute;
  top: 50%;
  right: 32px;
  width: 52px;
  height: 52px;
  border: 1px solid rgba(255,255,255,0.9);
  border-radius: 50%;
  color: #fff;
  font-size: 38px;
  font-family: Arial, sans-serif;
  font-weight: 300;
  line-height: 49px;
  text-align: center;
  transform: translateY(-50%);
  box-sizing: border-box;
  pointer-events: none;
}

/* 開いている時：− */
.plan.is-open .ttl-box::after {
  content: "−";
  line-height: 47px;
}

.plan .ttl-box:focus-visible {
  outline: 3px solid rgba(255,255,255,0.9);
  outline-offset: -5px;
}

@media screen and (max-width: 768px) {
  .tour-card::after {
    right: 10px;
    bottom: 10px;
    width: 40px;
    height: 40px;
  }

  .tour-card::before {
    right: 24px;
    bottom: 26px;
    width: 10px;
    height: 10px;
  }

  .plan .ttl-box h3 {
    padding-left: 15px;
    padding-right: 68px;
  }

  .plan .ttl-box::after {
    right: 16px;
    width: 44px;
    height: 44px;
    font-size: 32px;
    line-height: 41px;
  }

  .plan.is-open .ttl-box::after {
    line-height: 39px;
  }
}


/* ============================================================
   2026/09/29 追加：見出し用モロッコイラスト
   ============================================================ */
.ma-illust-heading__img {
  display: block;
  width: 220px;
  max-width: 28%;
  height: auto;
  object-fit: contain;
}

/* ラインナップ：画像を見出し上部中央に */
.ma-illust-heading--center {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.ma-illust-heading--center .ma-illust-heading__img {
  margin: 0 auto 10px;
}

/* ホテル/リアド・おすすめ宿泊先：画像左、テキスト右 */
.ma-heading.ma-illust-heading--side {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 42px;
  max-width: 1050px;
  text-align: left;
}

.ma-illust-heading--side .ma-illust-heading__img {
  flex: 0 0 220px;
  width: 220px;
  max-width: 24%;
}

.ma-illust-heading--side .ma-illust-heading__text {
  flex: 1 1 auto;
  min-width: 0;
}

.ma-illust-heading--side .ma-heading__lead {
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}

/* PCではSP専用改行を非表示 */
.sp-only {
  display: none;
}

@media screen and (max-width: 768px) {
  /* SP：イラスト → テキストの縦積み */
  .ma-heading.ma-illust-heading--side,
  .ma-illust-heading--center {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    text-align: center;
  }

  .ma-illust-heading__img,
  .ma-illust-heading--side .ma-illust-heading__img {
    flex: none;
    width: 118px;
    max-width: 42%;
    margin: 0 auto 4px;
  }

  .ma-illust-heading--side .ma-illust-heading__text {
    width: 100%;
  }

  /* SP時のみ改行を有効化 */
  .sp-only {
    display: inline;
  }

  /* 指定見出しを少し小さく */
  #europe-rail .ma-heading__title {
    font-size: 20px;
    line-height: 1.5;
  }

  #europe-rail .ma-heading__title span {
    font-size: 16px !important;
    line-height: 1.5;
  }

  #hotel-riad .ma-heading__title,
  #recommended-hotel .ma-heading__title {
    font-size: 20px;
    line-height: 1.5;
    text-align: center;
  }

  .ma-illust-heading--side .ma-heading__lead {
    margin-top: 20px;
    font-size: 15px;
    line-height: 1.8;
    text-align: left;
  }
}

@media screen and (max-width: 520px) {
  #europe-rail .ma-heading__title,
  #hotel-riad .ma-heading__title,
  #recommended-hotel .ma-heading__title {
    font-size: 19px;
  }

  #europe-rail .ma-heading__title span {
    font-size: 15px !important;
  }
}

/* ============================================================
   2026/09/29 追加：指定見出しのカラー調整
   ============================================================ */
#europe-rail .ma-heading__title,
#europe-rail .ma-heading__title span,
#hotel-riad .ma-heading__title,
#recommended-hotel .ma-heading__title,
.c-section-heading__ja,
.ma-heading__title {
  color: #2a63b8;
}

/* ラインナップ内の小見出しも同色で統一 */
/* #europe-rail .ma-heading__title span {
  color: #78afe4 !important;
} */

/* ============================================================
   2026/09/29 SP見出しバランス微調整
   ============================================================ */
@media screen and (max-width: 768px) {
  /* ラインナップ見出し */
  #europe-rail .section-top {
    text-align: center;
	padding: 0;
  }

  #europe-rail .ma-illust-heading__img,
  #europe-rail .ma-illust-heading--center .ma-illust-heading__img {
    width: 104px;
    max-width: 34%;
    margin: 0 auto 8px;
  }

  #europe-rail .ma-heading__title {
    max-width: 100%;
    margin: 0 auto;
    font-size: 1.5rem;
    line-height: 1.55;
    letter-spacing: 0;
    word-break: keep-all;
  }

  #europe-rail .ma-heading__title span {
    display: inline-block;
    margin-bottom: 4px;
    font-size: 14px !important;
    line-height: 1.45;
  }

  /* ホテル/リアド・おすすめ宿泊先 */
  #hotel-riad .ma-heading,
  #recommended-hotel .ma-heading {
    gap: 8px;
    margin-bottom: 30px;
  }

  #hotel-riad .ma-illust-heading__img,
  #recommended-hotel .ma-illust-heading__img {
    width: 108px;
    max-width: 36%;
    margin: 0 auto 6px;
  }

  #hotel-riad .ma-heading__title,
  #recommended-hotel .ma-heading__title {
    max-width: 100%;
    margin: 0 auto;
    font-size: 1.5rem;
    line-height: 1.5;
    letter-spacing: 0;
    word-break: keep-all;
  }

  #hotel-riad .ma-heading__lead,
  #recommended-hotel .ma-heading__lead {
    max-width: 100%;
    margin: 20px auto 0;
    font-size: 15px;
    line-height: 1.75;
    text-align: left;
  }
}

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

  #europe-rail .ma-heading__title span {
    font-size: 13px !important;
  }

}

