/* CSS Document */

#pagePath{
	display: none;
	}

#header{
	.scrollTop &{
		background: transparent;
		filter: unset;
	}
}

#main{
	display: grid;
	#hero{
		grid-column: 1;
		grid-row: 1;
	}
	#alert{
		grid-column: 1;
		grid-row: 2;
	}
	#looptext{
		grid-column: 1;
		grid-row: 2;
		margin-top: 32px;
	}
}

#hero{
	display: grid;
	grid-template-columns: var(--wrap-fit);
	justify-content: center;
	#heroSlide,
	#heroMovie{
		grid-column: 1;
		grid-row: 1;
	}
	#heroMovie{
		z-index: 1;
		/*display: none;*/
	}
	.slick-slider{
		display: grid;
		grid-template-columns: 0 1fr 0;
	}
	.slick-list{
		grid-column: 1 / 4;
		grid-row: 1;
	}
	.slick-arrow{
		grid-column: 1;
		grid-row: 1;
		opacity: 0;
	}
	.slick-dots{
		grid-column: 2;
		grid-row: 1;
		justify-self: start;
		align-self: end;
		margin: clamp(24px, calc(32 / 1200 * 100dvw), 32px) clamp(20px, calc(32 / 1200 * 100dvw), 32px);
		color: #eaeff3;
	}
}

#heroSlide{
	display: grid;
	& dl{
		grid-column: 1;
		grid-row: 1;
		position: relative;
		display: grid;
		grid-template-rows: 1fr auto clamp(40px, calc(64 / 1200 * 100dvw), 64px);
		grid-row-gap: 16px;
		&:nth-child(n+2){
			visibility: hidden;
		}
	}
	& dt,
	& dd{
		grid-column: 1;
	}
	& dt{
		grid-row: 1;
		align-self: end;
		margin-inline: clamp(16px, calc(32 / 1200 * 100dvw), 32px);
		color: #fff;
		font-weight: 700;
		font-size: clamp(16px, calc(24 / 768 * 100dvw), 24px);
		letter-spacing: 0.025em;
		z-index: 1;
		&:empty{
			visibility: hidden;
		}
		&:before{
			content: "";
			position: absolute;
			top: 0;
			left: 0;
			width: 100%;
			height: 100%;
			background: linear-gradient(transparent 50%, rgba(0, 0, 0, 0.2));
			border-radius: 32px;
			z-index: -1;
		}
		@media (min-width: 576px) {
			display: grid;
			grid-template-columns: min(100%, 24em);
			&:before{
				background: linear-gradient(90deg, rgba(0, 0, 0, 0.2), transparent 50%);
			}
		}
	}
	& dd{
		&:has(img){
			grid-row: 1 / 4;
		}
		& img{
			width: 100%;
			height: clamp(504px, calc(604 / 1200 * 100dvw), 604px);
			border-radius: 32px;
			object-fit: cover;
		}
		&:has(a){
			grid-row: 2;
			display: flex;
			margin-inline: clamp(16px, calc(32 / 1200 * 100dvw), 32px);
			z-index: 2;
		}
		& a{
			display: grid;
			align-content: center;
			min-height: 40px;
			padding: 0.25em 1.5em;
			background: var(--color-theme);
			border-radius: 20px;
			color: #fff;
			font-weight: 900;
			letter-spacing: 0.1em;
			text-align: center;
			text-decoration: none;
		}
	}
}

#heroMovie{
	position: relative;
	height: clamp(504px, calc(604 / 1200 * 100dvw), 604px);
	border-radius: 32px;
	overflow: hidden;
	& iframe{
		position: absolute;
		top: 50%;
		left: 50%;
		aspect-ratio: 16 / 9;
		transform: translate(-50%, -50%);
		@media (max-width: 947.98px) {
			width: auto;
			height: 100%;
		}
		@media (min-width: 948px) {
			width: 100%;
			height: auto;
		}
	}
}

#alert{
	display: grid;
	grid-template-columns: 1fr var(--wrap-fit) 1fr;
	justify-content: center;
	pointer-events: none;
	& h2{
		display: none;
	}
	& h2+div{
		grid-column: 2 / 4;
		display: grid;
		align-content: start;
		grid-row-gap: 16px;
	}
	& section{
		display: grid;
		grid-row-gap: 8px;
		padding: 24px clamp(24px, calc(40 / 1200 * 100dvw), 40px);
		background: var(--color-theme);
		border-radius: 8px 0 0 8px;
		color: #fff;
		font-size: clamp(14px, calc(16 / 768 * 100dvw), 16px);
		letter-spacing: 0.025em;
		filter: drop-shadow(0 0 5px rgba(0, 0, 0, 0.3));
		pointer-events: all;
	}
	& h3{
		font-weight: 700;
	}
	@media (max-width: 991.98px) {
		margin-top: 16px;
	}
	@media (min-width: 992px) {
		position: relative;
		margin-top: -64px;
		z-index: 1;
		& h2+div{
			justify-self: end;
			width: min(100%, 440px);
		}
	}
}

#looptext{
	display: flex;
	justify-content: flex-start;
	align-items: center;
	color: transparent;
	font-weight: 500;
	font-size: 56px;
	font-family: "futura-pt", sans-serif;
	letter-spacing: 0.4em;
	white-space: nowrap;
	-webkit-text-stroke: 1px var(--color-theme);
	overflow: hidden;
	& div{
		animation: loop-text 10s linear infinite;
	}
	& span{
		display: inline-block;
		line-height: 1;
	}
}
@keyframes loop-text {
	0% {
		transform: translateX(0%);
	}
	100% {
		transform: translateX(-50%);
	}
}

#intro{
	display: grid;
	grid-template-columns: var(--wrap-fit);
	justify-content: center;
	margin-top: clamp(32px, calc(56 / 1200 * 100dvw), 56px);
	& p{
		color: var(--color-theme);
		font-weight: 500;
		font-size: clamp(16px, calc(24 / 768 * 100dvw), 24px);
		letter-spacing: 0.025em;
		text-align: center;
	}
}

#recommend{
	display: grid;
	grid-template-columns: min(var(--wrap-fit), 1286px);
	justify-content: center;
	margin-top: clamp(40px, calc(80 / 1200 * 100dvw), 80px);
	& h2{
		color: var(--color-theme);
		font-weight: 500;
		font-size: clamp(32px, calc(48 / 768 * 100dvw), 48px);
		font-family: "futura-pt", sans-serif;
		letter-spacing: 0.1em;
		text-align: center;
	}
	#recommendLink{
		margin-top: clamp(40px, calc(56 / 1200 * 100dvw), 56px);
	}
	.slick-slider{
		grid-template-columns: auto 1fr auto;
		align-items: center;
	}
	.slick-arrow{
		filter: drop-shadow(0 0 5px rgba(11, 59, 99, 0.1));
	}
	@media (max-width: 575.98px) {
		#recommendList{
			margin-top: 24px;
		}
		.slick-slider{
			grid-gap: 24px;
		}
		.slick-list{
			grid-column: 1 / 4;
			grid-row: 1;
			border-radius: 32px 32px 0 0;
		}
		.slick-dots{
			grid-column: 2;
			grid-row: 2;
		}
	}
	@media (min-width: 576px) {
		& h2{
			margin-bottom: -0.75em;
			z-index: 1;
		}
		.slick-slider{
			grid-gap: 24px clamp(24px, calc(32 / 1200 * 100dvw), 32px);
		}
		.slick-list{
			grid-column: 2;
			grid-row: 1;
			padding: clamp(48px, calc(72 / 1200 * 100dvw), 72px) 0 clamp(40px, calc(64 / 1200 * 100dvw), 64px) 0 !important;
			background: #fff;
			border-radius: 32px;
		}
		.slick-slide{
			margin: 0 clamp(12px, calc(32 / 1200 * 100dvw), 32px);
			width: 256px;
		}
		.slick-dots{
			grid-column: 2;
			grid-row: 2;
		}
	}
}

#recommendList{
	display: grid;
	&:not(.slick-initialized){
		grid-template-columns: repeat(auto-fill, minmax(min(100%, 256px), 1fr));
		grid-gap: clamp(24px, calc(64 / 1200 * 100dvw), 64px);
	}
	& section{
		position: relative;
		display: grid;
		align-content: start;
		grid-row-gap: clamp(8px, calc(16 / 1200 * 100dvw), 16px);
		&:not(:has(img)):before{
			content: "";
			aspect-ratio: 3 / 2;
			background: var(--dummy);
			border-radius: 4px;
		}
	}
	& h3{
		margin-inline: clamp(8px, calc(16 / 1200 * 100dvw), 16px);
		font-weight: 500;
		font-size: 14px;
		letter-spacing: 0.025em;
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2;
		max-height: calc(1.65em * 2);
		overflow: hidden;
	}
	& h3+div{
		display: contents;
		& a{
			position: absolute;
			top: 0;
			left: 0;
			width: 100%;
			height: 100%;
			font-size: 0;
		}
	}
	& figure{
		order: -1;
		& img{
			aspect-ratio: 3 / 2;
			object-fit: cover;
			border-radius: 4px;
		}
	}
}

#recommendLink{
	display: flex;
	justify-content: center;
	@media (max-width: 575.98px) {
		& a{
			width: min(100%, 304px);
		}
	}
	& a{
		display: grid;
		align-items: center;
		min-height: clamp(56px, calc(64 / 1200 * 100dvw), 64px);
		background: #fff;
		padding: 0.25em 2em;
		border-radius: clamp(28px, calc(32 / 1200 * 100dvw), 32px);
		color: var(--color-theme);
		letter-spacing: 0.1em;
		font-weight: 900;
		text-align: center;
		text-decoration: none;
		filter: drop-shadow(0 0 8px rgba(11, 59, 99, 0.15));
	}
}

#attraction{
	display: grid;
	grid-template-columns: var(--wrap);
	justify-content: center;
	padding: clamp(120px, calc(152 / 1200 * 100dvw), 152px) 0;
	background: linear-gradient(transparent, #f9fbfc 120px, #f9fbfc calc(100% - 120px), transparent);
	overflow: hidden;
	& h2{
		position: relative;
		justify-self: center;
		margin: 0 24px;
		padding: 0 0.75em;
		color: var(--color-theme);
		font-weight: 500;
		font-size: clamp(24px, calc(56 / 768 * 100dvw), 56px);
		font-family: "futura-pt", sans-serif;
		letter-spacing: 0.05em;
		text-align: center;
		&:before,
		&:after{
			content: "";
			position: absolute;
			top: 50%;
			width: 100dvw;
			border-bottom: 2px solid currentColor;
		}
		&:before{
			right: 100%;
		}
		&:after{
			left: 100%;
		}
	}
	& h2+div{
		margin-top: clamp(32px, calc(48 / 1200 * 100dvw), 48px);
		font-weight: 500;
		font-size: clamp(16px, calc(18 / 768 * 100dvw), 18px);
		letter-spacing: 0.025em;
		line-height: 2.22;
	}
	#attractionList{
		margin-top: clamp(24px, calc(40 / 1200 * 100dvw), 40px);
	}
}

#attractionList{
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	align-items: start;
	& dl:nth-child(even){
		margin-top: clamp(24px, calc(64 / 1200 * 100dvw), 64px);
	}
	@media (max-width: 575.98px) {
		column-gap: 16px;
	}
	@media (min-width: 576px) {
		column-gap: clamp(24px, calc(64 / 1200 * 100dvw), 64px);
	}
	& dl{
		display: grid;
	}
	& dt,
	& dd{
		grid-column: 1;
		grid-row: 1;
	}
	& dt{
		display: grid;
		align-content: center;
		background: rgba(0, 0, 0, 0.3);
		border-radius: 32px 4px 32px 4px;
		color: #fff;
		font-weight: 500;
		font-size: clamp(24px, calc(56 / 1200 * 100dvw), 56px);
		font-family: "futura-pt", sans-serif;
		letter-spacing: 0.05em;
		text-align: center;
		line-height: 1.15;
		text-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
		z-index: 1;
		pointer-events: none;
	}
	& dd{
		& a{
			display: block;
		}
		& img{
			aspect-ratio: 3 / 2;
			object-fit: cover;
			border-radius: 32px 4px 32px 4px;
		}
	}
}

#information{
	display: grid;
	grid-template-columns: var(--wrap);
	justify-content: center;
	overflow: hidden;
	& h2{
		position: relative;
		justify-self: center;
		margin: 0 24px;
		padding: 0 0.75em;
		color: var(--color-theme);
		font-weight: 500;
		font-size: clamp(24px, calc(56 / 768 * 100dvw), 56px);
		font-family: "futura-pt", sans-serif;
		letter-spacing: 0.05em;
		text-align: center;
		&:before,
		&:after{
			content: "";
			position: absolute;
			top: 50%;
			width: 100dvw;
			border-bottom: 2px solid currentColor;
		}
		&:before{
			right: 100%;
		}
		&:after{
			left: 100%;
		}
	}
	#informationList{
		margin-top: clamp(24px, calc(40 / 1200 * 100dvw), 40px);
		padding-bottom: 8px;
	}
}

#informationList{
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 264px), 1fr));
	grid-gap: clamp(24px, calc(32 / 1200 * 100dvw), 32px);
	& dl{
		display: grid;
		grid-template-columns: 96px 1fr;
		min-height: 96px;
		background: #f9fbfc;
		border-radius: 48px;
		filter: drop-shadow(0 0 5px rgba(11, 59, 99, 0.1));
	}
	& dt{
		display: grid;
		align-content: center;
		color: var(--color-theme);
		font-weight: 900;
		font-size: clamp(18px, calc(20 / 1200 * 100dvw), 20px);
		letter-spacing: 0.1em;
		text-align: center;
	}
	& dd{
		&:has(img){
			order: -1;
		}
		& img{
			aspect-ratio: 1;
			border-radius: 100%;
			object-fit: cover;
		}
		&:has(a){
			display: contents;
		}
		& a{
			position: absolute;
			top: 0;
			left: 0;
			width: 100%;
			height: 100%;
			font-size: 0;
		}
	}
}

#banner{
	display: grid;
	grid-template-columns: min(var(--wrap-fit), 960px);
	justify-content: center;
	background: #f9fbfc;
	padding: clamp(120px, calc(152 / 1200 * 100dvw), 152px) 0;
	background: linear-gradient(transparent, #f9fbfc 120px, #f9fbfc calc(100% - 120px), transparent);
	overflow: hidden;
	& h3{
		position: relative;
		justify-self: center;
		margin: 0 24px;
		padding: 0 0.75em;
		color: var(--color-theme);
		font-weight: 500;
		font-size: clamp(24px, calc(56 / 768 * 100dvw), 56px);
		font-family: "futura-pt", sans-serif;
		letter-spacing: 0.05em;
		text-align: center;
		&:before,
		&:after{
			content: "";
			position: absolute;
			top: 50%;
			width: 100dvw;
			border-bottom: 2px solid currentColor;
		}
		&:before{
			right: 100%;
		}
		&:after{
			left: 100%;
		}
	}
	& h3+div{
		margin-top: clamp(24px, calc(40 / 1200 * 100dvw), 40px);
	}
	& ul{
		display: grid;
		grid-template-columns: repeat(auto-fill, minmax(min(calc(50% - 16px), 168px), 1fr));
		grid-gap: clamp(16px, calc(32 / 1200 * 100dvw), 32px);
	}
	& a{
		display: block;
	}
	& img{
		aspect-ratio: 210 / 80;
		object-fit: contain;
	}
}

#pr{
	display: grid;
	grid-template-columns: min(var(--wrap-fit), 960px);
	justify-content: center;
	padding-bottom: clamp(120px, calc(152 / 1200 * 100dvw), 152px);
	overflow: hidden;
	& h3{
		position: relative;
		justify-self: center;
		margin: 0 24px;
		padding: 0 0.75em;
		color: var(--color-theme);
		font-weight: 500;
		font-size: clamp(24px, calc(56 / 768 * 100dvw), 56px);
		font-family: "futura-pt", sans-serif;
		letter-spacing: 0.05em;
		text-align: center;
		&:before,
		&:after{
			content: "";
			position: absolute;
			top: 50%;
			width: 100dvw;
			border-bottom: 2px solid currentColor;
		}
		&:before{
			right: 100%;
		}
		&:after{
			left: 100%;
		}
	}
	#prList{
		margin-top: clamp(24px, calc(40 / 1200 * 100dvw), 40px);
	}
}

#prList{
	& ul{
		display: grid;
		grid-template-columns: repeat(auto-fill, minmax(min(calc(50% - 16px), 224px), 1fr));
		grid-gap: clamp(16px, calc(32 / 1200 * 100dvw), 32px);
	}
	& a{
		display: block;
	}
	& img{
		aspect-ratio: 210 / 80;
		object-fit: contain;
	}
}

.slick-arrow{
	all: unset;
	box-sizing: border-box;
	cursor: pointer;
	position: relative;
	aspect-ratio: 1;
	width: 48px;
	background: #fff;
	border-radius: 24px;
	color: var(--color-theme);
	font-size: 0;
	z-index: 1;
	&: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 16 16" style="fill: none; stroke: black; stroke-linecap: round; stroke-linejoin: round; stroke-width: 3px;"><polyline points="5 2 11 8 5 14"/></svg>') no-repeat center / 16px;
	}
	&.slick-prev:before{
		transform: scale(-1, 1);
	}
}

.slick-dots{
	position: relative;
	display: flex;
	flex-wrap: wrap;
	place-content: center;
	grid-gap: clamp(24px, calc(32 / 1200 * 100dvw), 32px);
	color: #fff;
	z-index: 1;
	& li{
		aspect-ratio: 1;
		width: 8px;
		background: currentColor;
		border-radius: 100%;
		overflow: hidden;
		&.slick-active{
			color: var(--color-theme);
		}
	}
	& button{
		opacity: 0;
	}
}




