@charset "utf-8";

/* --------------------------------
   □ event
-------------------------------- */
#event .contents .main{
	display: block;
	margin-bottom: 80px;
}

.main .description{
	position:relative;
	margin-bottom:48px;
	text-align:center;
}
.main .description span{
	position:relative;
	display:inline-block;
	padding:8px 30px;
	color:#fff;
	background:#be988d;
}
.main .description span:after {
	content: "";
	position: absolute;
	bottom: -10px; left: 50%;
	margin-left: -10px;
	display: block;
	width: 0px;
	height: 0px;
	border-style: solid;
	border-width: 10px 10px 0 10px;
	border-color: #be988d transparent transparent transparent;
}


.main .line{
	display: flex;
	flex-wrap: wrap;
	margin-bottom:50px;
	gap: 36px calc(7% / 2);
}

.main .list dl{
	width:31%;
}

.main .list dl dt img{
	width: 100%;
    height: auto;
}

.main .list dl dd{
	margin-top: 12px;
}

/* icon ****/
ul.icon{
	position:relative;
	zoom:1;
	overflow:hiden;
	display:flex;
	flex-wrap:wrap;
	margin-bottom:10px;
}
ul.icon li{
	margin-right:7px;
	padding:3px 8px;
	font-size:76%;
	box-sizing:border-box;
}
ul.icon li.observation{
	color:#fff;
	background:#659acf;
}
ul.icon li.culture{
	color:#fff;
	background:#9ccf65;
}
ul.icon li.event{
	color:#fff;
	background:#cfb065;
}
ul.icon li.news{
	color:#fff;
	background:#979797;
}
ul.icon li.new{
	border:1px solid #333;
}

.main .list dl dd time{
	font-size: 1.3rem;
}

.main .list dl dd em{
	font-size: 1.6rem;
	font-weight: 400;
}

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

	#event .contents .main{
		display: block;
		margin-bottom: 50px;
	}

	#event .contents{
		background:none;
	}

	.main .description{
		margin: 0 5% 48px;
	}

	.main .line{
		margin: 0 10%;
	}
	.main .list dl{
		float: inherit;
		margin: 0;
		width: 100%;
		height: auto;
	}
	
		.main .list dl > dt > a > img{
			width: 100%;
			height: auto;
		}
	
	.main p.text-center{
		display: block;
		width: 90%;
		height: auto;
		margin: 0 5%;
	}
	
}


/*---------------------------------------------------
 Details
---------------------------------------------------*/
/*
  旧 css/modules/event.css（#outline.division ul { float:left } 等）との競合打ち消し。
  新HTML（.eventInfo / .eventCv）が旧レイアウトCSSに当たると ◎＋2カラムになる。
*/
#event.details #outline.division ul.eventInfo{
	float:none;
	width:100%;
	max-width:1000px;
	margin-left:auto;
	margin-right:auto;
}
#event.details #outline.division ul.eventInfo > li:before{
	content:none;
}
#event.details #outline .eventCv{
	float:none;
	width:100%;
	max-width:789px;
	clear:both;
}

/*
  ページ地は白（透過部分＝白）
  本文・情報・地図なども白基調
  DETAILS/ACCESS見出しは全幅で独立セクションタイトル
*/
#event.details .main{
	background:#fff;
	padding-bottom:60px;
	overflow-x:hidden; /* 100vw 見出し・地図の横スクロール防止 */
}
#event.details .contents .main section.area,
#event.details section.area{
	width:100%;
	max-width:none;
	margin:0 auto 30px;
	background:transparent;
}
#event.details section.area > .container{
	width:100%;
	max-width:1000px;
	margin:0 auto;
	padding:0;
	box-sizing:border-box;
}

#event.details .main .division{
	margin-bottom:0;
	padding-bottom:0;
	border-bottom:0;
	overflow:visible;
}
#event.details .main .division.lastChild,
#event.details .main .division:last-child{
	margin-bottom:0;
	padding-bottom:0;
}

#event.details .main h3{
	margin-bottom:30px;
	padding-bottom:10px;
	font-size:210%;
	letter-spacing:0.1em;
	border-bottom:2px solid #5d5d5d;
	color:#574d43;
	text-align:left;
	background:#fff;
	padding-top:20px;
	padding-left:0;
	padding-right:0;
}

/* アイコン・タイトル行：1000px内容＋全幅白地 */
#event.details section.area > .container > ul.icon,
#event.details section.area > .container > h3{
	position:relative;
	z-index:0;
	background:transparent;
}
#event.details section.area > .container > ul.icon::before,
#event.details section.area > .container > h3::before{
	content:"";
	position:absolute;
	z-index:-1;
	left:50%;
	top:0;
	bottom:0;
	width:100vw;
	transform:translateX(-50%);
	background:#fff;
}
#event.details section.area > .container > ul.icon{
	margin:0;
	padding:20px 0 0;
}
#event.details section.area > .container > h3{
	margin-top:0;
	padding-top:10px;
	padding-bottom:10px;
	margin-bottom:20px;
}
@media only screen and (min-width: 768px) {
	#event.details section.area > .container > h3{
		margin-bottom:28px;
	}
}

/* reserve（対象外カテゴリの既存導線）
￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣*/
#event.details .reserve{
	zoom:1;
	overflow:hidden;
	padding:16px;
	box-sizing:border-box;
	background:#f1f1f1;
}
#event.details .reserve :last-chid,
#event.details .reserve .lastChild{
	margin-bottom:0;
}

/* outline
￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣*/
#event.details #outline.division{
	background:transparent;
	padding:0 0 0;
	box-sizing:border-box;
}
#event.details #outline.division p.accent{
	width:100%;
	max-width:1000px;
	margin:0 auto;
	padding:0;
	overflow:hidden;
}
#event.details #outline.division p.accent + .eventInfo,
#event.details #outline.division p.accent + p.limit + .eventInfo{
	margin-top:0;
}
#event.details #outline.division p.accent img{
	display:block;
	width:100%;
	max-width:none;
	height:auto;
	margin:0;
}

#event.details #outline.division p.limit{
	background:#eee;
	padding:8px;
	text-align:center;
	margin:16px 0 0;
}

/*
  開催情報
  コンテンツ左端=0として:
  icon≈0〜17 / label≈22 / value≈149
  行高: 通常54 / 補足80
  区切り: 上辺1px #bbbbbb
*/
#event.details .eventInfo{
	position:relative;
	z-index:0;
	width:100%;
	max-width:1000px;
	margin:0 auto;
	padding:0;
	list-style:none;
	box-sizing:border-box;
	color:#574d43;
	background:transparent;
}
#event.details .eventInfo::before{
	content:"";
	position:absolute;
	z-index:-1;
	left:50%;
	top:0;
	bottom:0;
	width:100vw;
	transform:translateX(-50%);
	background:#fff;
}
#event.details .eventInfo__item{
	display:grid;
	grid-template-columns:22px 127px minmax(0, 1fr);
	align-items:center;
	column-gap:0;
	margin:0;
	min-height:54px;
	padding:0;
	border-top:1px solid #bbbbbb;
	text-align:left;
	box-sizing:border-box;
	background:#fff;
}
#event.details .eventInfo__item:last-child{
	border-bottom:1px solid #bbbbbb;
}
#event.details .eventInfo__item--remarks{
	min-height:80px;
	align-items:flex-start;
	padding-top:18px;
	padding-bottom:18px;
}
#event.details .eventInfo__icon{
	display:flex;
	align-items:center;
	justify-content:flex-start;
	width:22px;
	min-height:22px;
	line-height:0;
}
#event.details .eventInfo__item--remarks .eventInfo__icon{
	padding-top:2px;
}
#event.details .eventInfo__icon img{
	display:block;
	width:auto;
	height:auto;
	max-width:18px;
	max-height:18px;
}
#event.details .eventInfo__label{
	font-size:15px;
	line-height:22px;
	font-weight:600;
	letter-spacing:0;
	color:#574d43;
	white-space:nowrap;
}
#event.details .eventInfo__value{
	min-width:0;
	font-size:15px;
	line-height:22px;
	font-weight:600;
	color:#574d43;
	text-align:left;
}
#event.details .eventInfo__value p,
#event.details .eventInfo__value div{
	margin:0;
	font-size:15px;
	line-height:22px;
	font-weight:600;
	color:#574d43;
}
#event.details .eventInfo__value > *:last-child{
	margin-bottom:0;
}
#event.details .eventInfo__value a.pdf{
	display:inline-block;
	vertical-align:baseline;
	min-height:24px;
	padding-left:24px;
	line-height:24px;
	background:url(../../../images/common/icon/pdf.gif) 0 0 no-repeat;
	color:#574d43;
}

#event.details #outline.division .reserve{
	max-width:100%;
	margin:40px auto 0;
	text-align:center;
}
#event.details #outline.division .reserve p{
	text-align:center;
}

/*
  CV（789x72 / radius36 / #BE988D / 文言22 Bold白）
  電話: ボタン下約14px / ラベル16 / 番号20 SemiBold
*/
#event.details .eventCv{
	width:100%;
	max-width:789px;
	margin:36px auto 0;
	padding:0;
	text-align:center;
	box-sizing:border-box;
}
#event.details #outline .eventCv{
	margin-top:36px;
	margin-bottom:40px;
}
#event.details #matter + .eventCv{
	margin-top:0;
	margin-bottom:0;
	padding:48px 0 40px;
	background:transparent;
	max-width:none;
	width:100%;
}
#event.details #matter + .eventCv .eventCv__btn{
	max-width:789px;
	margin-left:auto;
	margin-right:auto;
}
#event.details #access .eventCv{
	margin-top:40px;
	padding-bottom:10px;
}

#event.details a.eventCv__btn,
#event.details a.eventCv__btn:link,
#event.details a.eventCv__btn:visited{
	display:flex;
	align-items:center;
	justify-content:center;
	position:relative;
	width:100%;
	height:72px;
	min-height:72px;
	padding:0 56px;
	box-sizing:border-box;
	background:#623333;
	border-radius:36px;
	color:#fff !important;
	text-decoration:none;
	transition:opacity .2s ease;
}
#event.details a.eventCv__btn:hover,
#event.details a.eventCv__btn:focus{
	opacity:.88;
	color:#fff !important;
	text-decoration:none;
}
#event.details .eventCv__label{
	display:inline-block;
	font-family:"Zen Old Mincho", serif;
	font-size:22px;
	line-height:32px;
	font-weight:700;
	letter-spacing:0.04em;
	color:#fff !important;
}
#event.details .eventCv__arrow{
	position:absolute;
	right:31px; /* 1030.5 - 296 - (789-23.55) ≈ 31 */
	top:50%;
	transform:translateY(-50%);
	line-height:0;
}
#event.details .eventCv__arrow img{
	display:block;
	width:24px;
	height:8px;
}
#event.details .eventCv__tel{
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	justify-content:center;
	gap:6px 12px;
	margin:14px 0 0;
	color:#574d43;
	text-align:center;
}
#event.details .eventCv__telLabel{
	font-size:16px;
	line-height:23px;
	font-weight:400;
	color:#574d43;
}
#event.details a.eventCv__telLink,
#event.details a.eventCv__telLink:link,
#event.details a.eventCv__telLink:visited{
	display:inline-flex;
	align-items:center;
	gap:8px;
	color:#574d43 !important;
	text-decoration:none;
}
#event.details a.eventCv__telLink:hover{
	opacity:.8;
}
#event.details .eventCv__telIcon{
	display:block;
	width:18px;
	height:18px;
}
#event.details .eventCv__telNumber{
	font-size:20px;
	font-weight:600;
	letter-spacing:0.02em;
	line-height:29px;
	color:#574d43;
}

/*
  DETAILS / ACCESS 見出し
  白地の上に罫線＋中央大見出し
*/
#event.details .eventSectionHeading{
	display:block;
	position:relative;
	left:50%;
	right:auto;
	width:100vw;
	max-width:none;
	margin:0 0 0 -50vw;
	padding:0 0 26px;
	border:0;
	background:#fff;
	text-align:center;
	color:#574d43;
	box-sizing:border-box;
}
#event.details .eventSectionHeading::before{
	content:"";
	display:block;
	width:100%;
	max-width:1000px;
	margin:0 auto 36px; /* 罫線→DETAILS文字 */
	border-top:1px solid #000;
	box-sizing:border-box;
}
#event.details #matter > .eventSectionHeading{
	margin-top:40px; /* 情報欄/CV下 → DETAILS罫線 */
	margin-bottom:0;
}
#event.details #access .eventSectionHeading{
	margin-top:40px;
	margin-bottom:0;
}
#event.details .eventSectionHeading .en{
	display:block;
	width:auto;
	margin:0 auto;
	padding:0;
	font-family:"EB Garamond", "Times New Roman", serif;
	font-size:42px;
	font-weight:400;
	line-height:55px;
	letter-spacing:0.5rem;
	color:#574d43;
	text-align:center;
}
#event.details .eventSectionHeading .jp{
	display:block;
	width:auto;
	margin:7px auto 0; /* EN下端1720 → JP1727 */
	padding:0;
	font-family:"Zen Old Mincho", serif;
	font-size:17px;
	font-weight:500;
	line-height:25px;
	letter-spacing:0.05em;
	color:#574d43;
	text-align:center;
}

/* matter: 見出しはグレー地、本文ブロックのみ白 */
#event.details #matter.division{
	background:transparent;
	padding:0 0 0;
}
#event.details #matter.division .body{
	width:100%;
	max-width:1000px;
	margin:0 auto;
	padding:28px 0 48px;
	line-height:1.9;
	color:#574d43;
	text-align:left;
	overflow:hidden;
	background:#fff;
	box-sizing:border-box;
}
#event.details #matter.division .body img{
	max-width:100%;
	height:auto;
}

#event.details #matter.division p{
	line-height:1.9;
}

#event.details #matter.division dl{
	margin-bottom:20px;
	margin-left:-8px;
}

#event.details #matter.division dt{
	font-weight:700;
	margin-bottom:10px;
}

#event.details #matter.division dd{
	margin-left:10px;
}

/* album */
#event.details #matter.division .album{
	width:100%;
	max-width:1000px;
	margin:0 auto;
	padding:0 0 48px;
	display:-webkit-flex;
	display:-moz-flex;
	display:-ms-flex;
	display:-o-flex;
	display:flex;
	flex-wrap:wrap;
	justify-content:space-between;
	gap:16px;
	background:#fff;
	box-sizing:border-box;
}
#event.details #matter.division .album li{
	flex:1 1 30%;
	min-width:0;
}
#event.details #matter.division .album img{
	max-width:100%;
	height:auto;
}

/* access: 見出しは白地。地図・場所は1000pxコンテンツ幅 */
#event.details #access.division{
	background:transparent;
	padding:0 0 40px;
}
#event.details #access.division .accessPlace{
	width:100%;
	max-width:1000px;
	margin:0 auto;
	padding:12px 0;
	color:#574d43;
	text-align:left;
	line-height:1.7;
	font-size:15px;
	font-weight:600;
	background:#fff;
	box-sizing:border-box;
}
#event.details #access.division .accessMap{
	width:100%;
	max-width:1000px;
	margin:0 auto;
	overflow:hidden;
	background:transparent;
}
#event.details #access.division .accessMap iframe{
	display:block;
	width:100%;
	height:530px;
	border:0;
}
#event.details #access > .eventSectionHeading{
	padding-bottom:10px;
}
#event.details #access.division .reserve{
	margin-top:40px;
	padding:26px;
}
#event.details #access.division .reserve p{
	float:left;
	margin-bottom:0;
}
#event.details #access.division .reserve p.btn{
	float:right;
}

/* タブレット以下：コンテンツ左右余白 */
@media only screen and (max-width : 1024px) {

	#event.details section.area > .container{
		padding-left:20px;
		padding-right:20px;
	}

	#event.details .eventSectionHeading{
		left:0;
		width:100%;
		max-width:100%;
		margin-left:0;
		padding-left:0;
		padding-right:0;
	}

	#event.details .eventSectionHeading::before{
		width:100%;
		max-width:100%;
		margin-bottom:28px;
	}

	#event.details #matter > .eventSectionHeading,
	#event.details #access .eventSectionHeading{
		margin-top:32px;
	}

	#event.details .contents .main .pagenation{
		padding-left:20px;
		padding-right:20px;
	}
}

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

	#event.details section.area > .container{
		padding-left:16px;
		padding-right:16px;
	}

	#event.details .contents .main .pagenation{
		padding-left:16px;
		padding-right:16px;
	}

	#event.details .main h3 {
		font-size:22px;
	}

	#event.details .eventInfo__item{
		grid-template-columns:20px 4.8em minmax(0, 1fr);
		min-height:48px;
		column-gap:8px;
		padding:12px 0;
	}
	#event.details .eventInfo__item--remarks{
		min-height:0;
		padding-top:14px;
		padding-bottom:14px;
	}
	#event.details .eventInfo__label,
	#event.details .eventInfo__value,
	#event.details .eventInfo__value p,
	#event.details .eventInfo__value div{
		font-size:13px;
		line-height:1.6;
		white-space:normal;
	}

	#event.details .eventCv{
		max-width:100%;
		margin-left:0;
		margin-right:0;
		padding:0;
	}
	#event.details a.eventCv__btn,
	#event.details a.eventCv__btn:link,
	#event.details a.eventCv__btn:visited{
		display:grid;
		grid-template-columns:1fr auto 1fr;
		align-items:center;
		height:auto;
		min-height:56px;
		padding:14px 14px;
		border-radius:28px;
	}
	#event.details .eventCv__label{
		grid-column:1 / -1;
		grid-row:1;
		justify-self:center;
		font-size:16px;
		line-height:1.4;
		letter-spacing:0.02em;
		text-align:center;
	}
	#event.details .eventCv__arrow{
		grid-column:3;
		grid-row:1;
		justify-self:end;
		align-self:center;
		position:static;
		right:auto;
		top:auto;
		transform:none;
	}
	#event.details .eventCv__arrow img{
		width:20px;
		height:7px;
	}
	#event.details .eventCv__tel{
		margin-top:12px;
	}
	#event.details .eventCv__telLabel{
		font-size:14px;
	}
	#event.details .eventCv__telNumber{
		font-size:18px;
	}

	#event.details .eventSectionHeading,
	#event.details #matter > .eventSectionHeading,
	#event.details #access .eventSectionHeading{
		padding:0 0 20px;
	}
	#event.details .eventSectionHeading::before{
		margin-bottom:24px;
		width:100%;
		max-width:100%;
	}
	#event.details .eventSectionHeading .en{
		font-size:34px;
		line-height:1.25;
		letter-spacing:0.5rem;
	}
	#event.details .eventSectionHeading .jp{
		font-size:15px;
		margin-top:6px;
		letter-spacing:0.04em;
	}
	#event.details #access.division .accessMap iframe{
		height:280px;
	}
	#event.details #matter + .eventCv{
		padding:28px 0 36px;
	}

	#event.details #outline.division .reserve p {
		text-align:left;
	}

	#event.details #outline.division .reserve p.btn,
	#event.details #access.division .reserve p.btn {
		display:block;
		float:none;
		text-align:center;
		margin-top:10px;
	}

	#event.details #outline.division .reserve,
	#event.details #access.division .reserve{
		width:100%;
	}

	#event.details #access.division .accessMap iframe{
		height:280px;
	}

	#event.details #matter.division .body{
		left:0;
		width:100%;
		max-width:100%;
		margin:0;
		padding:24px 0 36px;
	}
	#event.details #matter.division .album{
		left:0;
		width:100%;
		max-width:100%;
		margin:0;
		padding:0 0 36px;
		display:block;
	}
	#event.details #access.division .accessPlace{
		left:0;
		width:100%;
		max-width:100%;
		margin:0;
		padding:12px 0;
	}
	#event.details #outline.division p.accent{
		left:0;
		width:100%;
		max-width:100%;
		margin:0;
	}
	#event.details #matter.division .album li{
		width:100%;
		margin-bottom:12px;
	}
}


/* pagenation
￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣*/
.contents .main .pagenation{
	position:relative;
	margin-bottom:50px;
	padding:20px 0;
	border-top:1px solid #ccc;
	border-bottom:1px solid #ccc;
}

.contents .main .pagenation p{
	position:relative;
	margin:0;
	text-align:center;
}

.pagenation ul{
	position:absolute;
	top:0;
	left:0;
	width:100%;
}
.pagenation ul li{
	position:absolute;
	width:40%;
	top:34px;
	z-index:100;
}

.pagenation ul li a{
	display:inline-block;
}

.pagenation ul li.next{
	left:0;
}
.pagenation ul li.next a{
	padding-left:16px;
	background:url(../../../images/common/icon/arrow/lt.png) no-repeat center left;
}
.pagenation ul li.back{
	right:0;
	text-align:right;
}
.pagenation ul li.back a{
	padding-right:16px;
	background:url(../../../images/common/icon/arrow/gt.png) no-repeat center right;
}

/*
  イベント詳細：前後リンクが長い場合のはみ出し防止
  中央「一覧へ戻る」を挟む3カラム + 省略表示
*/
#event.details .contents .main .pagenation{
	display:grid;
	grid-template-columns:minmax(0, 1fr) auto minmax(0, 1fr);
	align-items:center;
	column-gap:20px;
	row-gap:12px;
	max-width:1000px;
	margin-left:auto;
	margin-right:auto;
	padding-left:0;
	padding-right:0;
	box-sizing:border-box;
}
#event.details .contents .main .pagenation p{
	grid-column:2;
	grid-row:1;
	margin:0;
	text-align:center;
}
#event.details .pagenation ul{
	position:static;
	display:contents;
	width:auto;
	margin:0;
	padding:0;
	list-style:none;
}
#event.details .pagenation ul li{
	position:static;
	top:auto;
	width:auto;
	min-width:0;
	max-width:none;
	z-index:auto;
}
#event.details .pagenation ul li.next{
	grid-column:1;
	grid-row:1;
	text-align:left;
}
#event.details .pagenation ul li.back{
	grid-column:3;
	grid-row:1;
	text-align:right;
}
#event.details .pagenation ul li a{
	display:block;
	overflow:hidden;
	text-overflow:ellipsis;
	white-space:nowrap;
	max-width:100%;
	box-sizing:border-box;
}

@media only screen and (max-width : 767px) {
	
	#event.details .contents .main .pagenation{
		display:block;
		max-width:none;
		padding-left:0;
		padding-right:0;
	}
	#event.details .contents .main .pagenation p{
		grid-column:auto;
		grid-row:auto;
	}
	#event.details .pagenation ul{
		display:flex;
		flex-direction:row-reverse;
		justify-content:space-between;
		align-items:center;
		flex-wrap:nowrap;
		width:90%;
		margin:20px 5% 0;
		box-sizing:border-box;
	}
	#event.details .pagenation ul li{
		flex:1 1 0;
		min-width:0;
		max-width:48%;
	}
	#event.details .pagenation ul li a{
		white-space:nowrap;
		overflow:hidden;
		text-overflow:ellipsis;
	}

	.pagenation ul{
		position:static;
		width:90%;
		display: flex;
		flex-direction: row-reverse;
		justify-content: space-around;
		align-items: center;
		flex-wrap: nowrap;
		margin: 20px 5% 0;
		box-sizing: border-box;
	}
	.pagenation ul li{
		position:static;
		width:48%;
		min-width: 162px;
		top: inherit;
		z-index:100;
	}
	
}

