/* CSS Document */

#main{
	margin-bottom: clamp(64px, calc(112 / 1200 * 100vw), 112px);
}

#detailHeader{
	display: grid;
	grid-template-columns: var(--wrap);
	justify-content: center;
	padding: clamp(16px, calc(32 / 1200 * 100vw), 32px) 0 clamp(48px, calc(64 / 1200 * 100vw), 64px) 0;
	background: #f6f5ef;
	& h2{
		display: grid;
		grid-template-columns: auto 1fr;
		column-gap: 0.5em;
		font-weight: 700;
		font-size: clamp(20px, calc(24 / 768 * 100vw), 24px);
		letter-spacing: 0.03em;
		&:before{
			content: "";
			width: 4px;
			height: 1em;
			background: linear-gradient(180deg, var(--color-theme-sub) 50%, var(--color-theme) 50%);
			transform: translateY(calc(0.875em - 50%));
		}
	}
	& h2+div{
		order: -1;
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		grid-gap: 8px 16px;
		margin-bottom: 8px;
		& time{
			font-weight: 500;
			font-size: clamp(12px, calc(14 / 768 * 100vw), 14px);
			letter-spacing: 0.05em;
			line-height: 1;
		}
		& ul{
			display: flex;
			flex-wrap: wrap;
			grid-gap: 4px;
			margin-top: 4px;
		}
		& li{
			min-width: 5em;
			padding: 0 0.5em;
			font-size: 12px;
			border: 1px solid var(--color-border);
			border-radius: 2px;
			text-align: center;
			&.tagNew{
				background: var(--color-theme);
				border-color: transparent;
				color: #fff;
			}
			&.tagRec{
				background: var(--color-theme-sub);
				border-color: transparent;
				color: #fff;
			}
		}
	}
	#detailText{
		margin-top: clamp(16px, calc(24 / 1200 * 100vw), 24px);
	}
	#detailPhoto{
		margin-top: clamp(32px, calc(48 / 1200 * 100vw), 48px);
	}
}

#detailText{
	font-weight: 500;
	font-size: clamp(16px, calc(18 / 768 * 100vw), 18px);
	letter-spacing: 0.03em;
}

#detailContents{
	display: grid;
	grid-template-columns: var(--wrap);
	justify-content: center;
	grid-row-gap: clamp(40px, calc(56 / 1200 * 100vw), 56px);
	margin-top: clamp(40px, calc(56 / 1200 * 100vw), 56px);
	overflow: hidden;
	& section{
		display: grid;
		&:has(.link:last-child){
			padding-top: clamp(40px, calc(56 / 1200 * 100vw), 56px);
			border-top: 1px solid #999;
		}
		&:has(.document:last-child){
			padding-top: clamp(40px, calc(56 / 1200 * 100vw), 56px);
			border-top: 1px solid #999;
		}
		&:has(.column:last-child){
			padding-top: clamp(40px, calc(56 / 1200 * 100vw), 56px);
			border-top: 1px solid #999;
		}
	}
	.title{
		order: -1;
	}
	.text{
		margin-top: clamp(16px, calc(24 / 1200 * 100vw), 24px);
	}
	.photo{
		order: -1;
		margin-top: clamp(24px, calc(32 / 1200 * 100vw), 32px);
	}
	.photoSlide{
		order: -1;
		margin-top: clamp(24px, calc(32 / 1200 * 100vw), 32px);
	}
	.map{
		margin-top: clamp(32px, calc(40 / 1200 * 100vw), 40px);
	}
	.movie{
		order: -1;
		margin-top: clamp(24px, calc(32 / 1200 * 100vw), 32px);
	}
	.table{
		margin-top: clamp(24px, calc(32 / 1200 * 100vw), 32px);
	}
	.link{
		margin-top: clamp(24px, calc(32 / 1200 * 100vw), 32px);
	}
	.document{
		margin-top: clamp(24px, calc(32 / 1200 * 100vw), 32px);
	}
	.column:not(:first-child){
		margin-top: clamp(24px, calc(32 / 1200 * 100vw), 32px);
	}
}

#pagenation{
	margin-top: clamp(64px, calc(112 / 1200 * 100vw), 112px);
}

.title{
	display: grid;
	grid-template-columns: auto 1fr;
	column-gap: 0.5em;
	font-weight: 700;
	font-size: clamp(20px, calc(24 / 768 * 100vw), 24px);
	letter-spacing: 0.03em;
	&:before{
		content: "";
		width: 4px;
		height: 1em;
		background: linear-gradient(180deg, var(--color-theme-sub) 50%, var(--color-theme) 50%);
		transform: translateY(calc(0.875em - 50%));
	}
	section:has(.link:last-child) &,
	section:has(.document:last-child) &{
		font-size: clamp(16px, calc(18 / 768 * 100vw), 18px);
		letter-spacing: 0.05em;
		&:before{
			background: var(--color-theme-sub);
		}
	}
}

.text{
	font-weight: 500;
	letter-spacing: 0.05em;
}

.photo{
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 346px), 1fr));
	grid-gap: clamp(32px, calc(48 / 1200 * 100vw), 48px) clamp(16px, calc(32 / 1200 * 100vw), 32px);
	&:has(dl:only-child){
		grid-template-columns: 1fr;
		& img{
			border-radius: clamp(16px, calc(40 / 1200 * 100vw), 40px);
		}
	}
	& dl{
		display: grid;
		grid-row-gap: 8px;
	}
	& dt{
		order: 1;
		font-weight: 500;
		font-size: clamp(16px, calc(18 / 768 * 100vw), 18px);
		letter-spacing: 0.08em;
		text-align: center;
	}
	& dd{
		& img{
			aspect-ratio: 3 / 2;
			object-fit: cover;
			border-radius: 12px;
		}
	}
}

.photoSlide{
	display: grid;
	& dl{
		grid-column: 1;
		grid-row: 1;
		display: grid;
		grid-row-gap: 8px;
	}
	& dt{
		order: 1;
		font-weight: 500;
		font-size: clamp(16px, calc(18 / 768 * 100vw), 18px);
		letter-spacing: 0.08em;
		text-align: center;
	}
	& dd{
		& img{
			aspect-ratio: 3 / 2;
			object-fit: cover;
			border-radius: clamp(16px, calc(40 / 1200 * 100vw), 40px);
		}
	}
	&.slick-slider{
		grid-template-columns: 0 1fr 0;
		grid-gap: unset;
		&:before{
			content: "";
			grid-column: 2;
			grid-row: 1;
			aspect-ratio: 3 / 2;
			background: red;
			width: 100%;
			opacity: 0.5;
			z-index: 1;
			visibility: hidden;
		}
	}
	.slick-list{
		grid-column: 2;
		grid-row: 1 / 3;
		margin: 0 -10px;
		&:only-child{
			.slick-track{
				margin: 0;
			}
		}
		@media (max-width: 1199.98px) {
			overflow: visible;
		}
	}
	.slick-slide{
		margin: 0 10px;
	}
	.slick-arrow{
		align-self: center;
		justify-self: center;
		z-index: 1;
	}
}

.map{
	display: grid;
	& details{
		box-sizing: border-box;
		&::details-content{
			box-sizing: border-box;
		}
	}
	& summary{
		all: unset;
		box-sizing: border-box;
		cursor: pointer;
		display: grid;
		grid-template-columns: 1fr auto;
		align-items: center;
		min-width: min(100%, 360px);
		min-height: clamp(56px, calc(64 / 768 * 100vw), 64px);
		padding: 8px 24px;
		background: var(--color-theme);
		border-radius: 12px;
		color: #fff;
		font-weight: 700;
		font-size: clamp(16px, calc(18 / 768 * 100vw), 18px);
		letter-spacing: 0.05em;
		text-align: center;
		cursor: pointer;
		&:after{
			content: "＋";
			font-size: 1.5em;
			line-height: 1;
		}
		[open] &{
			background: #fff;
			border: 1px solid currentColor;
			color: var(--color-theme);
			&:after{
				content: "－";
			}
		}
	}
	& summary+div{
		display: grid;
		margin-top: clamp(24px, calc(32 / 1200 * 100vw), 32px);
		.mapBody{
			height: min(100dvw, 552px);
			background: #ccc;
		}
		.mapList{
			max-height: 200px;
			overflow-y: auto;
		}
		@media (min-width: 992px) {
			.mapBody{
				grid-column: 1;
				grid-row: 1;
				margin-right: 360px;
			}
			.mapList{
				grid-column: 1;
				grid-row: 1;
				align-self: center;
				justify-self: end;
				width: 360px;
				height: min(100dvw, 552px);
				max-height: unset;
			}
			.mapNote{
				margin-top: 16px;
			}
		}
	}
}

.mapBody{
	display: grid;
	[id*="gMap"]{
		grid-column: 1;
		grid-row: 1;
		height: min(100dvw, 552px);
		background: #ccc;
	}
	&>.infoWin{
		grid-column: 1;
		grid-row: 1;
		justify-self: start;
		align-self: start;
		margin: 24px;
		background: #fff;
		padding: 24px;
		border-radius: 8px;
	}
}

.mapList{
	& ul{
		display: grid;
		grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr));
		grid-gap: 16px 24px;
		padding: 16px;
		background: #fff;
	}
	& li{
		counter-increment: count;
		display: grid;
		grid-template-columns: auto 1fr;
		column-gap: 8px;
		font-weight: 500;
		&:before{
			content: counter(count);
			grid-column: 1;
			grid-row: 1;
			justify-self: center;
			display: grid;
			align-items: center;
			aspect-ratio: 1;
			width: 32px;
			background: var(--color-theme);
			border-radius: 100%;
			color: #fff;
			font-weight: 700;
			line-height: 1;
			text-align: center;
		}
	}
	@media (min-width: 992px) {
		& ul{
			grid-template-columns: 1fr;
			grid-gap: unset;
			padding: 8px 16px;
		}
		& li{
			padding: 16px;
			&:nth-of-type(n+2){
				border-top: 1px solid var(--color-theme);
			}
		}
	}
}

.mapNote{
	font-size: clamp(12px, calc(14 / 768 * 100vw), 14px);
	letter-spacing: 0.03em;
}

.movie{
	& iframe{
		width: 100%;
		height: auto;
		aspect-ratio: 16 / 9;
	}
}

.table{
	& table{
		width: 100%;
		border: 0 solid var(--color-theme);
		border-bottom-width: 1px;
		font-weight: 500;
		@media (min-width: 768px) {
			border-width: 1px 0;
		}
	}
	& tr{
		@media (max-width: 767.98px) {
			display: grid;
		}
		@media (min-width: 768px) {
			&:nth-child(n+2){
				& td{
					border-top: 1px solid var(--color-theme);
					&:nth-child(1){
						border-top: 1px solid #fff;
					}
				}
			}
		}
	}
	& td{
		padding: 16px clamp(16px, calc(24 / 1200 * 100vw), 24px);
		&:nth-child(1){
			background: var(--color-theme);
			color: #fff;
			text-align: center;
			letter-spacing: 0.05em;
		}
	}
}

.link{
	& ul{
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		grid-gap: 16px 40px;
		@media (min-width: 1200px) {
			flex-wrap: nowrap;
			justify-content: space-between;
		}
	}
	& li{
		display: contents;
	}
	& a{
		display: grid;
		grid-template-columns: 1fr auto;
		align-items: center;
		min-width: min(100%, 300px);
		min-height: clamp(56px, calc(64 / 768 * 100vw), 64px);
		padding: 8px 16px;
		background: var(--color-theme);
		border-radius: clamp(28px, calc(32 / 768 * 100vw), 32px);
		filter: drop-shadow(0 0 5px rgba(35, 24, 21, 0.3));
		color: #fff;
		font-weight: 500;
		font-size: 15px;
		letter-spacing: 0.08em;
		text-align: center;
		text-decoration: none;
		&:after{
			content: "";
			aspect-ratio: 1;
			width: 16px;
			background: currentColor;
			-webkit-mask: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" style="fill: none; stroke: black;"><polyline points="7 5 10 8 7 11"/></svg>') no-repeat center / contain;
		}
	}
}

.document{
	& ul{
		display: grid;
		justify-content: start;
		grid-row-gap: 8px;
	}
	& li{
		display: contents;
	}
	& a{
		display: grid;
		grid-template-columns: 1fr auto;
		align-items: center;
		min-height: 32px;
		padding: 4px 16px;
		background: #efefef;
		border-radius: 4px;
		color: inherit;
		font-weight: 500;
		letter-spacing: 0.05em;
		text-align: center;
		text-decoration: none;
		&:after{
			content: "";
			aspect-ratio: 1;
			width: 16px;
			background: var(--color-theme);
			transform: translateX(8px);
			-webkit-mask: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M15.33,10.67c-.37,0-.67.3-.67.67v2.67c0,.37-.3.67-.67.67H2c-.37,0-.67-.3-.67-.67v-2.67c0-.37-.3-.67-.67-.67-.37,0-.67.3-.67.67v2.67c0,1.1.9,2,2,2h12c1.1,0,2-.9,2-2v-2.67c0-.37-.3-.67-.67-.67ZM6.59,12.08c.78.78,2.05.78,2.83,0,0,0,0,0,0,0l2.14-2.14c.25-.27.23-.69-.05-.94-.25-.23-.64-.23-.9,0l-1.95,1.95V.67c0-.37-.29-.67-.66-.67s-.67.3-.67.67v10.27s-1.95-1.94-1.95-1.94c-.26-.26-.68-.26-.94,0s-.26.68,0,.94l2.14,2.14Z"/></svg>') no-repeat center / contain;
		}
	}
}

.column{
	position: relative;
	display: grid;
	padding: 24px clamp(24px, calc(40 / 1200 * 100vw), 40px) clamp(24px, calc(40 / 1200 * 100vw), 40px) clamp(24px, calc(40 / 1200 * 100vw), 40px);
	background: #f5f1df;
	border: 1px solid var(--color-theme);
	border-radius: clamp(16px, calc(24 / 1200 * 100vw), 24px);
	.columnTitle+div{
		display: grid;
	}
	.columnLink{
		margin-top: clamp(24px, calc(40 / 1200 * 100vw), 40px);
	}
	@media (max-width: 767.98px) {
		.columnTitle{
			margin: 16px 0;
			padding-top: 64px;
		}
		.columnPhoto{
			order: -1;
			margin-bottom: 16px;
		}
	}
	@media (min-width: 768px) {
		.columnTitle{
			margin-bottom: 40px;
			padding-left: 144px;
		}
		.columnTitle+div{
			grid-template-columns: 1fr auto;
			grid-template-rows: 1fr auto;
		}
		.columnText,
		.columnLink{
			grid-column: 1;
		}
		.columnPhoto{
			grid-column: 2;
			grid-row: 1 / 3;
			width: clamp(360px, calc(480 / 1200 * 100vw), 480px);
			margin-left: clamp(40px, calc(56 / 1200 * 100vw), 56px);
		}
	}
}

.columnTitle{
	color: var(--color-theme);
	font-weight: 700;
	font-size: clamp(18px, calc(22 / 768 * 100vw), 22px);
	letter-spacing: 0.05em;
	&:before{
		content: "Column";
		position: absolute;
		top: 0;
		left: clamp(24px, calc(40 / 1200 * 100vw), 40px);
		display: grid;
		align-items: center;
		width: 120px;
		height: 85px;
		background: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 7 85"><line x1="4" y1="73" x2="4" y2="0" style="fill: none; stroke: white; stroke-miterlimit: 10;"/></svg>') no-repeat left bottom / auto 100%, url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 7 85"><line x1="3" y1="73" x2="3" y2="0" style="fill: none; stroke: white; stroke-miterlimit: 10;"/></svg>') no-repeat right bottom / auto 100%, var(--color-theme);
		color: #fff;
		font-size: 20px;
		font-style: italic;
		text-align: center;
		letter-spacing: 0.14em;
		-webkit-mask: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 7 85"><path d="M0,0v78c3.87,0,7,3.13,7,7V0H0Z"/></svg>') no-repeat left bottom / auto 100%, url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="none" viewBox="0 0 16 16"><rect width="100%" height="100%"/></svg>') no-repeat center / calc(100% - 14px) 100%, url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 7 85"><path d="M7,0v78c-3.87,0-7,3.13-7,7V0h7Z"/></svg>') no-repeat right bottom / auto 100%;
	}
}

.columnText{
	font-weight: 500;
	letter-spacing: 0.05em;
}

.columnLink{
	display: flex;
	justify-content: center;
	& a{
		display: grid;
		grid-template-columns: 1fr auto;
		align-items: center;
		column-gap: 16px;
		min-width: min(100%, 240px);
		min-height: 48px;
		padding: 4px 16px;
		background: #fff;
		border: 1px solid currentColor;
		border-radius: 24px;
		color: var(--color-theme);
		font-weight: 500;
		font-size: 15px;
		text-align: center;
		text-decoration: none;
		&:before,
		&:after{
			content: "";
			grid-column: 2;
			grid-row: 1;
			aspect-ratio: 1;
			width: 16px;
			background: currentColor;
			border-radius: 100%;
		}
		&:after{
			background: #fff;
			-webkit-mask: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" style="fill: none; stroke: black;"><polyline points="7 5 10 8 7 11"/></svg>') no-repeat center / contain;
		}
	}
}

.columnPhoto{
	& img{
		aspect-ratio: 3 / 2;
		object-fit: cover;
		border-radius: 12px;
	}
}

.slick-arrow{
	all: unset;
	box-sizing: border-box;
	cursor: pointer;
	position: relative;
	aspect-ratio: 1;
	width: 40px;
	background: var(--color-theme);
	border-radius: 100%;
	color: #fff;
	font-size: 0;
	&:before{
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background: currentColor;
		-webkit-mask: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40" style="fill: none; stroke: black; stroke-linecap: round; stroke-linejoin: round; stroke-width: 3px;"><polyline points="17.5 12.5 25 20 17.5 27.5"/></svg>') no-repeat center / cover;
	}
	&.slick-prev:before{
		transform: scale(-1, 1);
	}
}　




