@charset "UTF-8";
/* ===========================
1.目次＆ブレークポイント
============================== */
/*
1.目次＆ブレークポイント
2.MV
3.お知らせ（information）
4.楽しみ方
5.会場マップ
6.各エリア共通
7.スポット
8.グルメ
9.グッズ
10.開催概要
11.メインビジュアルスライダー
*/
@media screen and (max-width: 119.99em) { /* 1920px xxl */
}
@media screen and (max-width: 89.99em) { /* 1440px xl2 */
}
@media screen and (max-width: 79.99em) { /* 1280px xl */
}
@media screen and (max-width: 69.99em) { /* 1120px lg2 */
}
@media screen and (max-width: 63.99em) { /* 1024px lg */
}
@media screen and (max-width: 54.99em) { /* 880px md2 */
}
@media screen and (max-width: 47.99em) { /* 768px md */
}
@media screen and (max-width: 35.499em) { /* 568px sm */
}
@media screen and (max-width: 29.99em) { /* 480px xs */
}

/* ===========================
2.MV
============================== */
#mV {
	position: relative;
}
#mVUnder {
	display: none;
	background-color: #41220b;
	padding: 20px;
	color: #fff;
	text-align: center;
	line-height: 1.7;
}
.mv_back {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
}
.mv_back.sp {
	display: none;
}
.mv_inner {
	position: absolute;
	top: 80px;
	left: 0;
	width: 100%;
	height: calc(100% - 80px);
}
.mv_inner_inner {
	position: relative;
	margin: 0 auto;
	width: calc(100% - 40px);
	max-width: 1200px;
	height: 100%;
}
.mv_text_area {
	position: absolute;
	top: 17%;
	left: 50%;
	transform: translateX(-50%);
	width: 48.33%;
	text-align: center;
}
.mv_text_area .ttl_page {
	text-align: center;
}
.mv_text_area .ttl_page img {
	max-width: 500px;
	width: 100%;
	height: auto;
}
.mv_text_area .period {
	margin: 0.4em 0 1.2em;
	font-size: 2.4375rem;
	color: #fff;
	font-weight: 600;
	text-align: center;
	filter: drop-shadow(3px 3px 6px #000000ee);
}
.mv_text_area .txt_copy {
	color: #fff;
	text-align: center;
	line-height: 1.875;
	filter: drop-shadow(3px 3px 5px #000000ee);
}
@media screen and (max-width: 89.99em) { /* 1440px xl2 */
	.mv_text_area {
		width: 44%;
		top: 13%;
		left: 52%;
		right: auto;
	}
	.mv_text_area .ttl_page img {
		max-width: 460px;
	}
	.mv_text_area .period {
		font-size: 2.125rem;
	}
	.mv_text_area .txt_copy {
		font-size: 0.9375rem;
	}
}
@media screen and (max-width: 79.99em) { /* 1280px xl */
	.mv_text_area {
		width: 46%;
		top: 10%;
		left: 49%;
	}
	.mv_text_area .ttl_page img {
		max-width: 420px;
	}
	.mv_text_area .period {
		margin: 0.3em 0 1em;
		font-size: 2rem;
	}
}
@media screen and (max-width: 69.99em) { /* 1120px lg2 */
	.mv_inner {
		top: 40px;
	}
	.mv_text_area {
		width: 49%;
		top: 0;
		left: 47%;
	}
	.mv_text_area .ttl_page img {
		max-width: 380px;
	}
	.mv_text_area .period {
		margin: 0.3em 0 0.875em;
		font-size: 1.675rem;
	}
	.mv_text_area .txt_copy {
		background-color: #00000033;
		border-radius: 50%;
		font-size: 0.875rem;
		line-height: 1.875;
	}
}
@media screen and (max-width: 54.99em) { /* 880px md2 */
	.mv_text_area {
		width: 49%;
		top: 0;
		left: 47%;
	}
	.mv_text_area .ttl_page img {
		max-width: 320px;
	}
	.mv_text_area .period {
		margin: 0.25em 0 0.5em;
		font-size: 1.5rem;
	}
	.mv_text_area .txt_copy {
		line-height: 1.5;
	}
}
@media screen and (max-width: 47.99em) { /* 768px md */
	#mVUnder {
		display: block;
		font-size: 0.875rem;
	}
	.mv_back.sp {
		display: block;
	}
	.mv_back.pc {
		display: none;
	}
	.mv_text_area {
		width: 96%;
		top: 4%;
		left: 50%;
		right: auto;
		transform: translateX(-50%);
		text-align: center;
	}
	.mv_text_area .ttl_page img {
		max-width: 420px;
	}
	.mv_text_area .period {
		margin: 0.25em 0 0.5em;
		font-size: 1.75rem;
	}
	.mv_text_area .txt_copy {
		display: none;
	}
}
@media screen and (max-width: 35.499em) { /* 568px sm */
	.mv_text_area .ttl_page img {
		max-width: 360px;
	}
	.mv_text_area .period {
		margin: 0.25em 0 0.5em;
		font-size: 1.675rem;
	}
}
@media screen and (max-width: 29.99em) { /* 480px xs */
	#mVUnder {
		font-size: 0.8125rem;
	}
	.mv_text_area .ttl_page img {
		width: 82%;
	}
	.mv_text_area .period {
		font-size: 5.3vw;
	}
}
/* ===========================
3.お知らせ（information）
============================== */
.information {
	background: url(../img/top/information_back.gif) repeat center center;
}
.information_inner {
	margin: 0 auto;
	padding: 80px 10px;
	width: calc(100% - 40px);
	max-width: 1040px;
}
.information .ttl_sec {
	margin-bottom: 12px;
	font-size: 1.875rem;
	line-height: 1.6;
	color: #fff;
	font-weight: 600;
}
.info_content_outer {
	padding: 12px;
	max-height: 180px;
	background-color: #fff;
	overflow-y: scroll;
}
.info_content_inner {
	font-size: 1rem;
	line-height: 1.5;
	color: #a54440;
}
.info_content_inner p + p {
	margin-top: 1.5em;
}
@media screen and (max-width: 63.99em) { /* 1024px lg */
	.information_inner {
		padding:60px 10px;
	}
	.information .ttl_sec {
		margin-bottom: 8px;
		font-size: 1.5rem;
	}
	.information .ttl_sec .ttl_sec_before {
		display: inline-block;
		width: 20px;
	}
	.info_content_inner {
		font-size: 0.875rem;
	}
}
@media screen and (max-width: 47.99em) { /* 768px md */
	.information_inner {
		padding: 40px 10px;
	}
}
@media screen and (max-width: 35.499em) { /* 568px sm */
	.information_inner {
		padding: 30px 6px;
	}
}
@media screen and (max-width: 29.99em) { /* 480px xs */
	.info_content_outer {
		max-height: 236px;
	}
}
/* ===========================
4.楽しみ方
============================== */
.enjoyments {
	background: url(../img/top/enjoyments_back.jpg) repeat center top;
}
.enjoyments_inner {
	margin: 0 auto;
	padding: 36px 0 118px;
	width: calc(100% - 40px);
	max-width: 1200px;
}
.enjoyments .ttl_sec {
	margin-bottom: 40px;
}
.enjoyments_item {
	margin-top: 40px;
	padding: 2.5% 3%;
	background-color: #fff;
}
.enjoyments_item:first-child {
	margin-top: 60px;
}
.enjoyments_item .item_row {
	display: flex;
	width: 100%;
	justify-content: space-between;
}
.enjoyments_item .item_text_area {
	padding: 0 2em;
	max-width: 60%;
}
.enjoyments_item .ttl {
	margin-bottom: 1.5em;
	font-size: 1.25rem;
	color: #a54440;
	font-weight: bold;
	line-height: 1.3;
	padding-left: 1em;
	text-indent: -1em;
}
.enjoyments_item .txt {
	line-height: 1.5;
}
@media screen and (max-width: 63.99em) { /* 1024px lg */
	.enjoyments_item .item_text_area {
		padding: 0 2em 0 0;
		max-width: 60%;
	}
}
@media screen and (max-width: 47.99em) { /* 768px md */
	.enjoyments_inner {
		padding: 20px 0 60px;
	}
	.enjoyments .ttl_sec {
		margin-bottom: 20px;
	}
	.enjoyments_item {
		margin-top: 30px;
	}
	.enjoyments_item:first-child {
		margin-top: 40px;
	}
	.enjoyments_item .item_row {
		display: flex;
		flex-direction: column; 
	}
	.enjoyments_item .item_text_area {
		max-width: 100%;
		margin-bottom: 1em;
		padding: 0;
	  }
	.enjoyments_item .ttl {
		font-size: 1.125rem;
	}
	.enjoyments_item .txt {
		font-size: 0.9375rem;
	}
	.enjoyments_item .item_image_area {
		width: 100%;      /* 左右100% */
		max-width: 100%;  /* 制限解除 */
	  }
	.enjoyments_item .item_image_area img {
		width: 100%;   /* 横幅いっぱい */
		height: auto;  /* 縦横比維持 */
		display: block;
	  }
}
@media screen and (max-width: 35.499em) { /* 568px sm */
	.enjoyments_item {
		margin-top: 20px;
	}
	.enjoyments_item:first-child {
		margin-top: 30px;
	}
	.enjoyments_item .item_image_area {
		width: 80%;
	}
}
@media screen and (max-width: 29.99em) { /* 480px xs */
	.enjoyments_item .item_image_area {
		width: 100%;
	}
}

/*  詳細はこちらボタン  */
.enjoyments_inner .text_area_btn {
margin-top: 1em;
text-align: right;
}

.enjoyments_inner .text_area_btn a {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	min-height: 40px;
	padding: 6px 10px;
	font-size: 0.95rem;
	font-weight: 700;
	color: #9c541d;
	text-decoration: none;
	line-height: 1.45;
	-webkit-tap-highlight-color: transparent;
	transition: opacity .2s ease, transform .2s ease;
}
.enjoyments_inner .text_area_btn a:hover { opacity: .85; transform: translateY(-1px); }

.enjoyments_inner .text_area_btn .enjoy_icon {
	display: inline-block;
	width: 24px;
	height: 24px;
	background-position: center;
	background-size: 10px 10px;
	margin-right: 0.2em;
	flex: 0 0 auto;
}

@media screen and (min-width: 48em) { /* 768px以上 */
	.enjoyments_item .item_row {
		display: grid;
		grid-template-columns: 1fr auto; /* ← 左:テキスト可変 / 右:画像は等倍 */
		column-gap: 2rem;               /* 適度な余白 */
		align-items: start;
	  }

	.enjoyments_item .item_text_area {
		max-width: none;  /* ← 60%制限を解除 */
		min-width: 420px; /* ← テキストが極端に潰れないように */
	  }
	.enjoyments_item .item_text_area .text_area_btn {
		grid-row: 3;
		margin-top: 1em;
		justify-self: end;
		text-align: right;
	}
}

@media screen and (max-width: 47.99em) { /* 768px未満 */
	.enjoyments_item .item_text_area .text_area_btn {
		text-align: left; 
		margin-top: 0.75em;
	}
}
		

/* ===========================
5.会場マップ
============================== */
.guide_map {
	background: url(../img/top/guide_map_back.jpg) repeat center top;
}

.guideMap_inner {
	margin: 0 auto;
	padding: 36px 0 80px;
	width: calc(100% - 40px);
	max-width: 1200px;
}

.guide_map .ttl_sec {
	margin-bottom: 40px;
}

.guide_map .map_notice {
	display: none;
	text-align: center;
	margin: 0 0 8px;
	color: inherit;
}

.guide_map .map_area {
	position: relative;
}

.guide_map .map_area .map_btn {
	position: absolute;
	top: 0;
	transition: all 0.3s;
}

.guide_map .map_area > a {
	display: block;
}

.guide_map .map_area .map_btn:hover {
	filter: brightness(1.15);
}

.guide_map .map_area .map_btn.a {
	top: 27.4%;
	right: 1.333%;
	width: 24%;
}

.guide_map .map_area .map_btn.b {
	top: 66.15%;
	right: 1.333%;
	width: 24%;
}

.guide_map .map_area .map_btn.c {
	top: auto;
	bottom: 5.5%;
	right: 27.833%;
	width: 21.5%;
}

.guideMap_inner .map_area {
	min-width: 860px;
}

.guide_map .swipe-icon {
	display: none;
}
@media screen and (max-width: 54.99em) { /* 880px md2 */
	.guide_map .swipe-icon {
		display: block;
	}
	.guide_map .map_notice {
		display: block;
	}
}
@media screen and (max-width: 47.99em) { /* 768px md */
	.guideMap_inner {
		padding: 20px 0 30px;
	}
	.guide_map .ttl_sec {
		margin-bottom: 20px;
	}
}

/* MAP下ボタン */
.guideMap_buttons {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 1.25em 1.5em;
	margin-top: 2em;
}

/* 個別ボタン：中央揃え・押しやすさ・視認性 */
.guideMap_buttons .gm_btn {
	display: inline-flex;
	align-items: center;
	gap: 0.6em;
	padding: 0.7em 1.5em;
	min-height: 44px;
	min-width: 220px;
	max-width: 260px;
	flex: 1 1 220px;
	justify-content: space-between;
	border-radius: 9999px;
	font-weight: 700;
	font-size: 1rem;
	color: #fff;
	text-align: center;
	text-decoration: none;
	-webkit-tap-highlight-color: transparent;
	transition: opacity .2s ease, transform .2s ease;
}
.guideMap_buttons .gm_icon {
	margin-left: auto;
  }
.guideMap_buttons .gm_btn:hover { opacity: .88; transform: translateY(-1px); }

.guideMap_buttons .gm_btn--blue  { background: #6daed2; }
.guideMap_buttons .gm_btn--navy  { background: #2c2f80; }
.guideMap_buttons .gm_btn--brown { background: #9c541d; }

@media (max-width: 35.499em) { /* 568px以下 */
	.guideMap_buttons .gm_btn {
		flex: 1 1 100%;
		max-width: none;
	}
}


/* ===========================
6.各エリア共通
============================== */
.subsec_content {
	padding: 30px 4.333% 0;
}
.subsec_row.half_list {
	margin-top: 30px;
	display: flex;
	flex-wrap: wrap;
	column-gap: 7.6923%;
}
.area_subsec_item {
	margin-top: 20px;
	text-align: center;
}
.area_subsec_item .item_image_area {
	max-width: 100%;
}
.area_subsec_item .item_image_area img {
	width: 100%;
	height: auto;
}
.txt-copy {
	margin-top: 1em;
	font-weight: bold;
	line-height: 1.8125;
	text-align: center;
}
.subsec_row.half_list > .area_subsec_item {
	width: 46.1538%;
}
.area_subsec_item .ttl {
	margin-top: 0.5em;
	font-size: 1.125rem;
	font-weight: bold;
	line-height: 1.7;
}
.full_single .area_subsec_item .ttl {
	margin-top: 0.75em;
}
.area_subsec_item .txt {
	font-size: 0.875rem;
	line-height: 1.5;
}
.subsec_row.button_area {
	display: flex;
	justify-content: flex-end;
}
.subsec_row.button_area .button_list {
	display: flex;
	flex-direction: column;
}
.subitem_area {
	margin-top: 20px;
	padding: 20px 8.333%;
}
.subitem_area_inner {
	display: inline-block;
}
.subitem_area_inner.ali_left {
	text-align: left;
}
.subitem + .subitem {
	margin-top: 2em;
}
.description_area {
	margin-top: 30px;
	padding: 20px 4.184%;
}
.description_area.ali_left {
	text-align: left;
}
.description_item {
	margin-bottom: 1em;
}
.description_item + .description_item {
	margin-top: 2em;
}
.notation_area {
	margin-top: 20px;
	padding: 20px;
}
.notation_area_inner {
	display: inline-block;
}
.notation_area_inner.ali_left {
	text-align: left;
}
@media screen and (max-width: 63.99em) { /* 1024px lg */
	.area_subsec_item .ttl {
		font-size: 1rem;
	}
}
@media screen and (max-width: 47.99em) { /* 768px md */
	.subsec_row.half_list {
		flex-direction: column;
		align-items: center;
		column-gap: 0;
	}
	.subsec_row.half_list > .area_subsec_item {
		width: 100%;
		max-width: 480px;
	}
	.subitem_area {
		margin-top: 0;
	}
}
@media screen and (max-width: 29.99em) { /* 480px xs */
	.subitem_area {
		padding: 20px 0;
	}
}



/* ===========================
7.スポット
============================== */
.spots {
	background: url(../img/top/spots_back.jpg) repeat center center;
}
.spots_inner {
	margin: 0 auto;
	padding: 36px 0 118px;
	width: calc(100% - 40px);
	max-width: 1264px;
}
.spots_inner .ttl_sec {
	margin: 0 auto 64px;
	width: 100%;
	max-width: 1200px;
}
.spots_inner .button_area {
	margin-top: 20px;
}

@media screen and (max-width: 47.99em) { /* 768px md */
	.spots_inner {
		padding: 20px 0 40px;
	}
	.spots_inner .ttl_sec {
		margin: 0 auto 20px;
	}
}

/* ===========================
8.グルメ
============================== */
.gourmet {
	background: url(../img/top/gourmet_back.jpg) repeat center center;
}
.gourmet_inner {
	margin: 0 auto;
	padding: 36px 0 118px;
	width: calc(100% - 40px);
	max-width: 1264px;
}
.gourmet_inner .ttl_sec {
	margin: 0 auto 40px;
	width: 100%;
	max-width: 1200px;
}
.gourmet .honey_dew .full_single:first-child > .area_subsec_item {
	margin-top: 0;
}
.gourmet .honey_dew .notation_area.subsec_top {
	margin-top: 0;
}
.gourmet .honey_dew .full_single:first-child > .area_subsec_item + .area_subsec_item {
	margin-top: 3.5em;
	margin-bottom: 2.5em;
}
.gourmet .deutsch_festival .area_subsec_item.button_area {
	display: flex;
	justify-content: flex-end;
	align-items: last baseline;
}
.gourmet .deutsch_festival .area_subsec_item.button_area .button_list .yl-button {
	min-width: 22.71em;
}
.gourmet .area_subsec_item.divd_column {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	row-gap: 2em;
}
.gourmet .area_subsec_item.divd_column .drink-menu_area {
	text-align: left;
}
.gourmet .area_subsec_item.divd_column .drink-menu_area .area_subsec_subitem {
	margin: 1em 0 1.5em;
}
.gourmet .area_subsec_item.divd_column .button_area.sub_area {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	align-items: flex-end;
}
@media screen and (max-width: 47.99em) { /* 768px md */
	.gourmet_inner {
		padding: 20px 0 40px;
	}
	.gourmet_inner .ttl_sec {
		margin: 0 auto 20px;
	}
	.gourmet .deutsch_festival .area_subsec_item.button_area .button_list .yl-button {
		min-width: 0;
		max-width: 100%;
	}
}
/* ===========================
9.グッズ
============================== */
.goods {
	background: url(../img/top/goods_back.jpg) repeat center center;
}
.goods_inner {
	margin: 0 auto;
	padding: 36px 0 118px;
	width: calc(100% - 40px);
	max-width: 1264px;
}
.goods_inner .ttl_sec {
	margin: 0 auto 40px;
	width: 100%;
	max-width: 1200px;
}
.goods .area_subsec_item.itemblock_end {
	margin-bottom: 30px;
}
.goods .area_subsec_item.button_area {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	align-items: end;
}
@media screen and (max-width: 47.99em) { /* 768px md */
	.goods_inner {
		padding: 20px 0 40px;
	}
	.goods_inner .ttl_sec {
		margin: 0 auto 20px;
	}
}
/* ===========================
10.開催概要
============================== */
.overview {
	background: url(../img/common/textsect_back.jpg) repeat center center;
}
.overview .ttl_sec {
	margin-bottom: 40px;
}
.overview .yl-button {
	padding: 0.75em 1.5em;
}
.overview_inner {
	margin: 0 auto;
	padding: 36px 0 110px;
	width: calc(100% - 40px);
	max-width: 1200px;
}
.overview_detail {
	width: 100%;
	max-width: 1040px;
	margin: 0 auto;
	padding: 10px 0 0;
}
.overview-list dt {
	margin: 50px 0 0;
	font-size: 18px;
	font-weight: bold;
	line-height: 1.8;
	text-align: justify;
	letter-spacing: 0.1em;
	border-bottom: #41866D 2px solid;
}
.overview-list dd {
	margin: 5px 0 0;
	font-size: 16px;
	line-height: 1.5;
	text-align: justify;
	letter-spacing: 0.1em;
}
.overview-list .list-link {
	min-height: 75px;
	position: relative;
}
.overview-list .list-link .child {
	display: inline-block;
	margin: 0 0 0 4em;
}
.overview-list .list-link .child br {
	display: none;
}
.overview-list .list-btn {
	position: absolute;
	bottom: 0;
	right: 0;
}
.overview-list .list-btn > a {
	display: inline-block;
	width: 317px;
}
.overview_web-ticket {
	display: inline-block;
	margin: 5px 0 0 50px;
	padding: 20px 15px;
	border: #000 1px solid;
}
.overview_web-ticket span {
	font-size: 18px;
	font-weight: bold;
	line-height: 1.8;
	color: #B65B5B;
}
.overview-note {
	margin: 85px 0 0;
	padding: 20px 15px;
	border: #000 1px solid;
}
.overview-note h3 {
	font-size: 18px;
	font-weight: bold;
	line-height: 1.8;
	letter-spacing: 0.1em;
}
.overview-note p {
	margin: 15px 0 0;
	font-size: 16px;
	line-height: 1.5;
	text-align: justify;
	letter-spacing: 0.1em;
}
@media screen and (max-width: 63.99em) { /* 1024px lg */
	.overview-list .list-btn {
		display: block;
		margin: 20px 0 0;
		position: relative;
		text-align: right;
	}
}
@media screen and (max-width: 47.99em) { /* 768px md */
	.overview_inner {
		padding: 20px 0 40px;
	}
	.overview_inner .ttl_sec {
		margin: 0 auto 20px;
	}
	.overview-list dt {
		margin: 30px 0 0;
	}
	.overview-list dd {
		font-size: 14px;
	}
	.overview-list .list-btn > a {
		width: 100%;
		max-width: 317px;
	}
	.overview-list .list-link .child {
		display: inline;
		margin: 0;
	}
	.overview-list .list-link .child br {
		display: block;
	}
	.overview_web-ticket {
		margin: 5px 0 0 0;
	}
	.overview-note {
		margin: 40px 0 0;
	}
	.overview-note p {
		font-size: 14px;
	}
}

/* ===========================
11.メインビジュアルスライダー
============================== */
#mV { position: relative; } 
.mv_inner { z-index: 3; }

.swiper-pagination-bullet {
	background: #fff !important;
	opacity: 0.8;
  }
  .swiper-pagination-bullet-active {
	background: #fff !important;
	opacity: 1;
  }