/* CSS Document */

#main{
	margin-bottom: clamp(64px, calc(112 / 1200 * 100vw), 112px);
}

#detail{
	margin-top: clamp(16px, calc(32 / 1200 * 100vw), 32px);
}

#detailHeader{
	display: grid;
	grid-template-columns: var(--wrap);
	justify-content: center;
	margin-bottom: clamp(64px, calc(80 / 1200 * 100vw), 80px);
	overflow: hidden;
	&:before{
		content: "";
		grid-column: 1;
		grid-row: 1 / 4;
		width: 4px;
		margin: 8px 0 4px 0;
		background: linear-gradient(180deg, var(--color-theme-sub) 50%, var(--color-theme) 50%);
	}
	& h2,
	& h3{
		grid-column: 1;
		margin-left: clamp(24px, calc(32 / 1200 * 100vw), 32px);
	}
	& h2{
		grid-row: 1;
		display: grid;
		font-weight: 700;
		font-size: clamp(20px, calc(28 / 768 * 100vw), 28px);
		letter-spacing: 0.05em;
		&:after{
			content: attr(data-ruby);
			font-weight: 500;
			font-size: clamp(10px, calc(12 / 768 * 100vw), 12px);
		}
	}
	& h3{
		grid-row: 2;
		margin-top: 8px;
		color: var(--color-theme);
		font-weight: 700;
		font-size: clamp(18px, calc(20 / 768 * 100vw), 20px);
		letter-spacing: 0.05em;
	}
	#detailText{
		order: 1;
		margin-top: clamp(16px, calc(40 / 1200 * 100vw), 40px);
	}
	#detailFavorite{
		order: 1;
		margin-top: clamp(24px, calc(48 / 1200 * 100vw), 48px);
	}
	#detailPhoto{
		margin-top: clamp(16px, calc(40 / 1200 * 100vw), 40px);
	}
}

#detailText{
	font-variant: 500;
}

#detailFavorite{
	display: flex;
	flex-wrap: wrap;
	grid-gap: 8px 24px;
	justify-content: center;
	& a{
		display: grid;
		grid-template-columns: 1fr auto;
		column-gap: 8px;
		align-items: center;
		min-width: min(100%, 300px);
		min-height: clamp(56px, calc(64 / 768 * 100vw), 64px);
		padding: 8px 24px;
		background: var(--color-theme-sub);
		border-radius: clamp(28px, calc(32 / 768 * 100vw), 32px);
		filter: drop-shadow(0 0 5px rgba(35, 24, 21, 0.3));
		color: #fff;
		font-variant: 700;
		letter-spacing: 0.03em;
		text-align: center;
		text-decoration: none;
		&:after{
			content: "";
			aspect-ratio: 1;
			width: 24px;
			background: currentColor;
			-webkit-mask: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="4 4 24 24" fill="white"><path d="M19.8,18.39h1.56v-1.66c0-.59.48-1.07,1.07-1.07h1.03c.31,0,.58.13.77.34.73-1.32,1.02-2.73.49-4.15-1.92-5.07-8.14-2.8-8.72-.26-.79-2.7-6.86-4.71-8.72.27-2.06,5.55,8,10.53,8.72,11.34.24-.22,1.52-.94,3.03-2.02-.18-.19-.3-.45-.3-.74v-.99c0-.59.48-1.07,1.07-1.07ZM23.46,19.45v-2.73h-1.03v2.73h-2.62v.99h2.62v2.75h1.03v-2.75h2.62v-.99h-2.62Z"/></svg>') no-repeat center / contain;
		}
		&.favOn{
			background: #f39b9e;
		}
	}
}

#detailPhoto{
	opacity: 0;
	transition: opacity 0.2s ease-out;
	&:has(.slick-initialized){
		opacity: 1;
	}
	.done &{
		opacity: 1;
	}
	#detailPhotoSlideNav{
		margin-top: clamp(16px, calc(32 / 768 * 100vw), 32px);
	}
}

#detailPhotoSlide{
	display: grid;
	& dl{
		grid-column: 1;
		grid-row: 1;
		display: grid;
		grid-row-gap: 4px;
		width: min(calc(100dvw - 64px), 640px);
	}
	& dt{
		order: 1;
		font-weight: 500;
		font-size: clamp(16px, calc(18 / 768 * 100vw), 18px);
		letter-spacing: 0.05em;
	}
	& dd{
		& img{
			aspect-ratio: 3 / 2;
			object-fit: cover;
		}
	}
	.slick-list{
		overflow: visible;
	}
	.slick-slide{
		margin: 0 10px;
	}
}

#detailPhotoSlideNav{
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
	& dt{
		display: none;
	}
	& dd{
		& a{
			pointer-events: none;
		}
		& img{
			aspect-ratio: 3 / 2;
			object-fit: cover;
		}
	}
	&.slick-slider{
		grid-template-columns: 0 1fr 0;
	}
	.slick-list{
		grid-column: 2;
		margin: 0 -8px;
		&:only-child{
			grid-column: 1 / 4;
			.slick-track{
				transform: none!important;
			}
		}
	}
	.slick-slide{
		margin: 0 8px;
		cursor: pointer;
	}
	.slick-arrow{
		align-self: center;
		justify-self: center;
		z-index: 1;
	}
}

#detailTopics{
	display: grid;
	grid-template-columns: var(--wrap);
	justify-content: center;
	grid-row-gap: clamp(64px, calc(104 / 1200 * 100vw), 104px);
	background: #f4f7ec;
	padding-top: clamp(64px, calc(112 / 1200 * 100vw), 112px);
	overflow: hidden;
	& section{
		display: grid;
		grid-row-gap: 16px;
	}
	& h3{
		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.05em;
		&: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%));
		}
	}
	& dl{
		position: relative;
		display: grid;
		grid-row-gap: 8px;
		&:not(:has(img)):before{
			content: "";
			aspect-ratio: 1;
			background: var(--dummy);
			border-radius: 12px;
		}
	}
	& dt{
		font-weight: 500;
		font-size: clamp(16px, calc(18 / 768 * 100vw), 18px);
		letter-spacing: 0.05em;
	}
	& dd{
		font-size: clamp(12px, calc(12 / 768 * 100vw), 14px);
		letter-spacing: 0.03em;
		&:has(img){
			order: -1;
		}
		& img{
			aspect-ratio: 1;
			border-radius: 12px;
			object-fit: cover;
		}
		&:has(a){
			display: contents;
		}
		& a{
			position: absolute;
			top: 0;
			left: 0;
			width: 100%;
			height: 100%;
			font-size: 0;
			&[href="[url]"]{
				visibility: hidden;
			}
		}
	}
	.slide{
		display: grid;
		grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
		margin-top: 16px;
	}
	.slick-slider{
		grid-template-columns: 0 1fr 0;
		&:before{
			content: "";
			grid-column: 2;
			grid-row: 1;
			aspect-ratio: 1;
			background: red;
			width: calc(50% - 10px);
			opacity: 0.5;
			z-index: 1;
			visibility: hidden;
		}
		@media (min-width: 768px) {
			&:before{
				width: calc((100% - 40px) / 3);
			}
		}
		@media (min-width: 992px) {
			&:before{
				width: calc((100% - 60px) / 4);
			}
		}
		@media (min-width: 1200px) {
			&:before{
				width: calc((100% - 70px) / 5);
			}
		}
	}
	.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;
	}
}

#detailMovie{
	display: grid;
	grid-template-columns: min(var(--wrap-fit), 720px);
	justify-content: center;
	background: #f4f7ec;
	padding-top: clamp(64px, calc(112 / 1200 * 100vw), 112px);
	& h3{
		display: none;
	}
	& iframe{
		width: 100%;
		height: auto;
		aspect-ratio: 16 / 9;
	}
}

#detailInformation{
	display: grid;
	grid-template-columns: var(--wrap);
	justify-content: center;
	background: #f4f7ec;
	padding-top: clamp(64px, calc(112 / 1200 * 100vw), 112px);
	& h3{
		display: grid;
		grid-template-columns: auto 1fr;
		column-gap: 0.5em;
		font-weight: 700;
		font-size: clamp(16px, calc(18 / 768 * 100vw), 18px);
		letter-spacing: 0.05em;
		&:before{
			content: "";
			width: 4px;
			height: 1em;
			background: var(--color-theme-sub);
			transform: translateY(calc(0.875em - 50%));
		}
	}
	& dl{
		display: grid;
		margin-top: 16px;
		@media (min-width: 576px) {
			grid-template-columns: auto 1fr;
			& dt:nth-of-type(n+2){
				border-top: 1px solid #fff;
			}
			& dd:nth-of-type(n+2){
				border-top: 1px solid #80cba9;
			}
		}
	}
	& dt{
		display: grid;
		align-items: center;
		padding: 16px clamp(24px, calc(32 / 1200 * 100vw), 32px);
		background: var(--color-theme);
		color: #fff;
		text-align: center;
		letter-spacing: 0.05em;
	}
	& dd{
		padding: 16px clamp(24px, calc(48 / 1200 * 100vw), 48px);
		background: #fff;
		letter-spacing: 0.05em;
		&:has(a){
			display: grid;
			grid-row-gap: 4px;
		}
	}
	& p{
		margin-top: 16px;
		padding-left: 1em;
		text-indent: -1em;
		color: var(--color-theme-sub);
		letter-spacing: 0.05em;
	}
}

#detailMap{
	display: grid;
	grid-template-columns: 1fr var(--wrap) 1fr;
	background: #f4f7ec;
	padding: clamp(64px, calc(112 / 1200 * 100vw), 112px) 0;
	#detailMapEmbed,
	#detailMapApi{
		grid-column: 1 / 4;
		grid-row: 1;
		height: min(100dvw, 552px);
	}
	#detailMapToggle,
	#detailMapCategory{
		grid-column: 2;
		margin-top: clamp(32px, calc(56 / 1200 * 100vw), 56px);
	}
	#detailMapCategory{
		margin-top: clamp(24px, calc(40 / 1200 * 100vw), 40px);
	}
}

#detailMapEmbed{
	position: relative;
	background: #f2f2f2;
	& iframe{
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
	}
}

#detailMapApi{
	position: relative;
	background: #ccc;
	#gMap{
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
	}
	&>.infoWin{
		grid-column: 1 / 4;
		grid-row: 1;
		justify-self: start;
		align-self: start;
		margin: 24px;
		background: #fff;
		padding: 24px;
		border-radius: 8px;
		position: relative;
		& .infoClose{
			all: unset;
			box-sizing: border-box;
			cursor: pointer;
			position: absolute;
			top: 24px;
			right: 24px;
			aspect-ratio: 1;
			width: 24px;
			color: inherit;
			font-size: 0;
			overflow: hidden;
			display: block;
			&:before,
			&:after{
				content: "";
				position: absolute;
				top: 50%;
				left: 50%;
				width: 24px;
				height: 2px;
				background: currentColor;
				border-radius: 1px;
			}
			&:before{
				transform: translate(-50%, -50%) rotate(45deg);
			}
			&:after{
				transform: translate(-50%, -50%) rotate(-45deg);
			}
		}
		&:after{
            background: #fff;
            -webkit-clip-path: polygon(0 0, 50% 100%, 100% 0);
            clip-path: polygon(0 0, 50% 100%, 100% 0);
            content: "";
            height: 12px;
            left: 50%;
            bottom: -12px;
            position: absolute;
            width: 25px;
            transform: translateX(-50%);
		}
	}
}

#detailMapToggle{
	justify-self: center;
	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: "－";
		}
	}
}

#detailMapCategory{
	& ul{
		display: grid;
		grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr));
		grid-gap: 8px 24px;
		padding: 16px clamp(24px, calc(48 / 1200 * 100vw), 48px);
		background: #fff;
		border: 2px solid var(--color-theme);
		border-radius: 12px;
	}
}

#related{
	display: grid;
	grid-template-columns: var(--wrap);
	justify-content: center;
	& article{
		margin-top: clamp(64px, calc(88 / 1200 * 100vw), 88px);
	}
	& h2{
		display: grid;
		grid-template-columns: auto auto 1fr;
		align-items: center;
		column-gap: 8px;
		color: var(--color-theme);
		font-weight: 700;
		font-size: clamp(16px, calc(18 / 768 * 100vw), 18px);
		word-break: keep-all;
		overflow-wrap: anywhere;
		&:before{
			content: "";
			aspect-ratio: 1;
			width: 28px;
			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"><path d=""/><rect width="100%" height="100%"/></svg>') no-repeat center / contain;
		}
		&:after{
			content: "";
			min-width: 5em;
			border-top: 2px dotted currentColor;
		}
	}
	& h2+div{
		display: grid;
		grid-template-columns: repeat(auto-fill, minmax(min(100%, 264px), 1fr));
		grid-gap: 20px;
		margin-top: clamp(16px, calc(32 / 1200 * 100vw), 32px);
	}
	& section{
		position: relative;
		display: grid;
		grid-template-columns: 140px 1fr;
		align-content: start;
		column-gap: 8px;
		align-items: center;
		padding: 8px;
		border: 1px solid #9b9b9b;
		border-radius: 12px;
		&:not(:has(img)):before{
			content: "";
			aspect-ratio: 1;
			background: var(--dummy);
			border-radius: 6px;
		}
	}
	& h3{
		order: 1;
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 5;
		max-height: calc(1.65em * 5);
		overflow: hidden;
		font-weight: 500;
		font-size: clamp(16px, calc(18 / 768 * 100vw), 18px);
	}
	& h3+div{
		display: contents;
		& a{
			position: absolute;
			top: 0;
			left: 0;
			width: 100%;
			height: 100%;
			font-size: 0;
		}
	}
	& figure{
		& img{
			aspect-ratio: 1;
			object-fit: cover;
			border-radius: 6px;
		}
	}
}

#relatedFeature{
	& h2:before{
		-webkit-mask-image: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><polygon points="15.61 15.61 9.89 12.47 4.39 15.61 4.39 4.39 15.61 4.39 15.61 15.61"/></svg>');
	}
}

#relatedCourse{
	& h2:before{
		-webkit-mask-image: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path d="M4.48.96c-.48,0-.87.39-.87.87,0,.32.18.59.43.74v15.39h.88V2.57c.25-.15.43-.42.43-.74,0-.48-.39-.87-.88-.87ZM5.74,2.41v11.46l11.52-5.74L5.74,2.41Z"/></svg>');
	}
}

#recommend{
	display: grid;
	grid-template-columns: var(--wrap);
	justify-content: center;
	overflow: hidden;
	& article{
		margin-top: clamp(64px, calc(88 / 1200 * 100vw), 88px);
	}
	& h2{
		display: grid;
		grid-template-columns: auto auto 1fr;
		align-items: center;
		column-gap: 8px;
		color: var(--color-theme);
		font-weight: 700;
		font-size: clamp(16px, calc(18 / 768 * 100vw), 18px);
		word-break: keep-all;
		overflow-wrap: anywhere;
		&:before{
			content: "";
			aspect-ratio: 1;
			width: 28px;
			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"><path d=""/><rect width="100%" height="100%"/></svg>') no-repeat center / contain;
		}
		&:after{
			content: "";
			min-width: 5em;
			border-top: 2px dotted currentColor;
		}
	}
	& h2+div{
		display: grid;
		grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr));
		grid-gap: 20px;
		margin-top: clamp(16px, calc(32 / 1200 * 100vw), 32px);
	}
	& section{
		position: relative;
		display: grid;
		align-content: start;
		grid-row-gap: 8px;
		&:not(:has(img)):before{
			content: "";
			aspect-ratio: 3 / 2;
			background: var(--dummy);
			border-radius: 12px;
		}
	}
	& h3{
		order: 1;
		font-weight: 500;
		font-size: clamp(16px, calc(18 / 768 * 100vw), 18px);
		letter-spacing: 0.03em;
	}
	& h3+div{
		display: contents;
		& a{
			position: absolute;
			top: 0;
			left: 0;
			width: 100%;
			height: 100%;
			font-size: 0;
		}
	}
	& figure{
		& img{
			aspect-ratio: 3 / 2;
			object-fit: cover;
			border-radius: 12px;
		}
	}
	.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;
		}
		@media (min-width: 576px) {
			&:before{
				width: calc((100% - 20px) / 2);
			}
		}
		@media (min-width: 768px) {
			&:before{
				width: calc((100% - 40px) / 3);
			}
		}
		@media (min-width: 992px) {
			&:before{
				width: calc((100% - 60px) / 4);
			}
		}
	}
	.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;
	}
}

#recommendSpot{
	& h2:before{
		-webkit-mask-image: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path d="M15.87,8.64c0-3.25-2.64-5.89-5.89-5.89s-5.89,2.64-5.89,5.89c0,2.68,1.8,4.91,4.24,5.63l1.66,3.64,1.66-3.65c2.43-.73,4.21-2.95,4.21-5.62ZM9.98,10.6c-1.08,0-1.96-.88-1.96-1.96s.88-1.96,1.96-1.96,1.96.88,1.96,1.96-.88,1.96-1.96,1.96Z"/></svg>');
	}
}

#recommendPage{
	& h2:before{
		-webkit-mask-image: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path d="M16.91,5.32s-1.56-.68-2.94-.68c-2.1,0-3.58.89-3.58.89-.06.02-.09.07-.09.13v9.56s.02.08.05.11c.03.03.08.03.12.02,0,0,1.53-.86,3.5-.86,1.38,0,2.8.63,2.8.63.2.07.43.03.6-.09.17-.13.28-.33.28-.54V6.34c0-.46-.3-.78-.74-1.02ZM6.03,4.64c-1.38,0-2.94.68-2.94.68-.43.24-.74.55-.74,1.02v8.15c0,.21.1.42.28.54.17.13.4.16.6.09,0,0,1.43-.63,2.8-.63,1.98,0,3.5.86,3.5.86.04.01.08,0,.12-.02.03-.02.05-.07.05-.11V5.66c0-.06-.04-.11-.09-.13,0,0-1.49-.89-3.58-.89Z"/></svg>');
	}
}

.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);
	}
}

.pswp__counter{
	visibility: hidden;
}



