@charset "shift_jis";

:root{
	--font_family-gothic: "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック体", "Yu Gothic", YuGothic, "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", "メイリオ" , Meiryo , Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}
small{
	font-size: 1.4rem;
}

.dg{
	display: grid;
}
.dg.col2{
		grid-template-columns: 1fr 1fr;
		gap: var(--col2-gap);
}
.dg.col3{
	grid-template-columns: 1fr 1fr 1fr;
	gap: var(--col3-gap);
}
.dg.col4{
	grid-template-columns: 1fr 1fr 1fr 1fr;
	gap: var(--col4-gap);
}
.dg.col5{
	grid-template-columns: 1fr 1fr 1fr 1fr 1fr; 
	gap: var(--col5-gap);
}

.device--pc{
	.fs12{ font-size: 75%; }
	.fs13{ font-size: 81.25%; }
	.fs14{ font-size: 87.5%; }
	.fs18{ font-size: 112.5%; }
	.fs20{ font-size: 125%; }
	.fs22{ font-size: 137.5%; }
	.fs24{ font-size: 150%; }
	.fs26{ font-size: 162.5%; }
	.fs28{ font-size: 175%; }
	.fs30{ font-size: 187.5%; }
	.w390{
		width: 390px;
		margin: auto;
	}
	.w420{
		width: 420px;
		margin: auto;
	}
	.w730{
		width: 730px;
		margin: auto;
	}
	.w800{
		width: 800px;
		margin: auto;
	}
	.w980{
		width: 980px;
		margin: auto;
	}
	.w1020{
		width: 1020px;
		margin: auto;
	}
	.section{
		padding: 120px 0;
	}
}

.main{
	color: var(--color);
	--font_family-gothic: var(--font_family-gothic);
	font-size: 1.6rem;
	text-align: center;
	line-height: 1.6;
}
.main img{
	width: 100%;
	max-width: fit-content;
}
.main p{
	text-align: left;
}
.main a{
	transition: .2s ease-out;
	will-change: transform;
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
}
.contents_header{
	display: flex;
	justify-content: center;
	position: relative;
	height: 0;
	padding-top: calc( 600 / 1460 * 100% );
	background-repeat: no-repeat;
	background-position: center;
	background-size: 100%;
	.caption{
		width: 100%;
  padding-right: 5px;
		text-align: right;
	}
}
@media (max-width: 1460px){
	.contents_header{
		padding-top: 600px;
		background-size: auto;
	}
}

h3, h4, h5{
	text-align: center;
}
.section h3{
	margin-bottom: 70px;
}
h3 .en{
	display: block;
}
/* h5{
	font-size: 2.0rem;
} */

.frame-box {
	width: 100%;
	position: relative;
	padding: 80px 50px 50px;
	.frame-item{
		position: absolute;
		left: 0;
		right: 0;
		width: calc(100% - 24px);
		height: 40px;
		margin: auto;
		background: url(/wed/campaign/fair-common/images/bg-frame_line.png) repeat-x left top / auto;
	}
	.top{
		top: 0;
	}
	.bottom{
		transform: scale(1, -1);
  bottom: 0;
	}
	.frame-item:before, .frame-item:after{
		content: "";
		display: block;
		position: absolute;
		width: 40px;
		height: 40px;
		background-image: url(/wed/campaign/fair-common/images/bg-frame_corner.png);
	}
	.top:before{
		top: 0;
		left: -12px;
	}
	.top:after{
		top: 0;
		right: -12px;
		transform: scale(-1, 1);
	}
	.bottom:before{
		bottom: 0;
		left: -12px;
	}
	.bottom:after{
		bottom: 0;
		right: -12px;
		transform: scale(-1, 1);
	}
	.frame-box-heading{
		position: absolute;
		left: 0;
		right: 0;
		display: flex;
		align-items: center;
		flex-direction: column;
		margin: auto;
		z-index: 1;
		color: var(--sub_color1);
		font-weight: bold;
		> div{
			background-color: #ffffff;
			padding: 0 50px;
		}
	}
	.frame-box-heading .jp{
		margin-top: 10px;
		font-size: 3.0rem;
	}
}
.device--pc .cassette.-shift .detail-container {
	padding: 40px 60px 40px 90px;
}

.device--pc .cassette.-shift .cassette-image{
	width: 480px;
	height: 290px;
}
.device--pc .-reverse .-image-container{
	margin-left: 60px;
}
.device--pc .cassette.-shift .-image-container{
	padding-left: 50px;
}
.flex_box-item.-text-container{
	flex: 1;
}

.chapel_list {
	> dt{
		margin-bottom: 20px;
		font-size: 137.5%;
		text-align: center;
	}
	.list-block{
		display: flex;
		flex-wrap: wrap;
		column-gap: 10px;
		row-gap: 20px;
		justify-content: center;
	}
	.list-block.col1{
		flex-wrap: nowrap;
		flex-direction: column;
		align-items: center;
	}
	.list-block li{
		width: fit-content;
	}
	.list-block dt{
		margin-bottom: 10px;
		text-align: center;
	}
	.list-block dd{
		display: flex;
		flex-wrap: wrap;
		gap: 10px;
		font-size: 1.4rem;
	}
	.list-block dd > div{
		display: flex;
		flex-direction: column;
		max-width: 196px;
		text-align: left;
		color: var(--color);
	}
	span{
		line-height: 1.4;
    margin-top: 7px;
	}
}
.bg-laurel{
	display: flex;
	align-items: center;
	justify-content: center;
}

.device--pc	a:hover img{
	filter: brightness(1.1);
	color: var(--sub_color1);
}


.bg-laurel::before, .bg-laurel::after{
	content: "";
	display: inline-block;
	width: 20px;
	height: 50px;
	background: url(/wed/campaign/fair-common/images/bg-laurel.png) no-repeat center center / auto;
}
.bg-laurel::before{
	margin-right: 28px;
}
.bg-laurel::after{
	margin-left: 28px;
	transform: scale(-1, 1);
}

.icon::before{
	content: "";
	display: block;
	background-repeat: no-repeat;
	background-position: center center;
	background-size: auto;
}
.icon.-chapel::before{
	background-image: url(/wed/campaign/fair-common/images/icon-chapel.png);
}
.icon.-photograph::before{
	background-image: url(/wed/campaign/fair-common/images/icon-photograph.png);
}
.icon.-airplane::before{
	background-image: url(/wed/campaign/fair-common/images/icon-airplane.png);
}
.icon.-photograph-circle::before{
	width: 70px;
	height: 70px;
	background-image: url(/wed/campaign/fair-common/images/icon-photograph-circle.png);
}
.icon.-crown::before{
	width: 24px;
	height: 20px;
}
.icon.-gold::before{
	background-image: url(/wed/campaign/fair-common/images/icon-crown-gold.png);
}
.icon.-silver::before{
	background-image: url(/wed/campaign/fair-common/images/icon-crown-silver.png);
}
.icon.-bronze::before{
	background-image: url(/wed/campaign/fair-common/images/icon-crown-bronze.png);
}
.icon.-reddish_brown::before{
	background-image: url(/wed/campaign/fair-common/images/icon-crown-reddish_brown.png);
}

.label{
	display: inline-block;
	height: 30px;
	padding: 0 18px;
	border-radius: 15px;
	font-weight: bold;
	line-height: 30px;
}
.label.-speech_bubble{
	margin-bottom: 10px;
	background-color: #ffffff;
	border: 1px solid var(--sub_color1);
	color: var(--sub_color1);
	font-size: 1.8rem;
}
.label.-speech_bubble::after{
	content: "";
	display: block;
	width: 7px;
	height: 7px;
	margin: auto;
	background: #ffffff;
	border-top: solid 1px var(--sub_color1);
	border-right: solid 1px var(--sub_color1);
	transform: rotate(135deg) translateY(-50%);
	position: relative;
	top: -7px;
}

