:root {
	--info-ink: #122531;
	--info-navy: #173044;
	--info-teal: #2e7180;
	--info-sky: #86b9c4;
	--info-paper: #fffdf5;
	--info-cream: #f4eedf;
	--info-gold: #d7b75a;
}

html:has(.entrance-information-page),
body:has(.entrance-information-page) {
	min-height: 100%;
	background-color: var(--info-cream) !important;
	background-image: linear-gradient(#f4eedf70, #f4eedf70), url("../images/entrance-page-background.png") !important;
	background-position: center top !important;
	background-size: cover !important;
	background-repeat: no-repeat !important;
	background-attachment: fixed !important;
}

body:has(.entrance-information-page) :is(.site-header, .site-footer, header.wp-block-template-part, footer.wp-block-template-part) {
	display: none !important;
}

.entrance-information-page,
.entrance-information-page * { box-sizing: border-box; }

.entrance-information-page {
	width: min(1240px, calc(100% - 28px));
	min-height: 100svh;
	margin: 0 auto;
	padding: calc(var(--wp-admin--admin-bar--height, 0px) + 16px) 0 clamp(54px, 7vw, 88px);
	color: var(--info-ink);
	font-family: system-ui, -apple-system, "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
}

.entrance-information__hero {
	margin: 0 0 18px;
	padding: 12px 18px 11px;
	border-left: 5px solid var(--info-gold);
	background: color-mix(in srgb, var(--info-paper) 92%, transparent);
	box-shadow: 5px 5px 0 var(--info-ink);
}

.entrance-information__hero h1 {
	margin: 0;
	color: var(--info-navy);
	font-size: clamp(30px, 4.8vw, 55px);
	font-weight: 950;
	line-height: .92;
	letter-spacing: -.035em;
}

.entrance-information__layout {
	display: grid;
	grid-template-columns: minmax(310px, .82fr) minmax(0, 1.18fr);
	gap: clamp(20px, 3vw, 38px);
	align-items: start;
}

.entrance-information__content {
	display: grid;
	gap: clamp(18px, 2.6vw, 30px);
	min-width: 0;
}

.entrance-information__content > section {
	position: relative;
	min-width: 0;
	padding: clamp(18px, 2.6vw, 30px);
	border: 2px solid var(--info-ink);
	background: color-mix(in srgb, var(--info-paper) 96%, transparent);
	box-shadow: 7px 7px 0 var(--info-ink);
}

.entrance-information__content > section > header {
	margin-bottom: 18px;
	padding-bottom: 10px;
	border-bottom: 2px solid var(--info-ink);
}

.entrance-information__content > section > header h2 {
	margin: 0;
	color: var(--info-navy);
	font-size: clamp(23px, 3vw, 36px);
	font-weight: 950;
	line-height: 1;
	letter-spacing: .025em;
}

.entrance-information__sign {
	position: sticky;
	top: 54px;
	display: grid;
	align-items: start;
	min-width: 0;
	padding: 0;
}

.entrance-information__sign-frame {
	position: relative;
	width: 100%;
	margin: 0 auto;
	aspect-ratio: 1240 / 1299;
	filter: drop-shadow(0 14px 18px #0005);
}

.entrance-information__sign-frame img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	opacity: 1;
	transition: opacity .045s steps(1, end);
}

.entrance-information__sign-frame .is-on { opacity: 0; }
.entrance-information__sign:is(.is-lit, .is-flash-on) .entrance-information__sign-frame .is-on { opacity: 1; }

.entrance-information__power {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: center;
	gap: 12px;
	margin-top: 10px;
	padding-inline: 8px;
	color: var(--info-ink);
}

.entrance-information__power button {
	display: grid;
	grid-template-columns: 28px auto auto;
	align-items: center;
	gap: 9px;
	min-height: 42px;
	padding: 7px 12px;
	border: 1px solid var(--info-teal);
	border-radius: 999px;
	background: #0d2230;
	color: var(--info-paper);
	font: 900 11px/1 ui-monospace, monospace;
	letter-spacing: .1em;
	cursor: pointer;
}

.entrance-information__power button > span {
	position: relative;
	display: block;
	width: 28px;
	height: 16px;
	border: 1px solid var(--info-sky);
	border-radius: 999px;
	background: #203746;
}

.entrance-information__power button > span::after {
	content: "";
	position: absolute;
	top: 2px;
	left: 2px;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: #a3b7bf;
	transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
}

.entrance-information__power button[aria-checked="true"] > span::after {
	transform: translateX(12px);
	background: #ffe3a1;
	box-shadow: 0 0 9px #ffc85d;
}

.entrance-information__power button:hover,
.entrance-information__power button:focus-visible {
	border-color: var(--info-gold);
	outline: 2px solid #d7b75a55;
	outline-offset: 3px;
}

.entrance-information__power output {
	min-height: 1em;
	color: #9a6913;
	font: 900 13px/1.2 "Yu Gothic", sans-serif;
}

.entrance-information__hours {
	margin: 0 0 20px;
	padding: 18px;
	border: 1px solid #2e718066;
	background: #eaf4f1;
}

.entrance-information__hours > span {
	display: block;
	margin: 0;
	color: var(--info-teal);
	font: 900 11px/1 ui-monospace, monospace;
	letter-spacing: .17em;
}

.entrance-information__hours strong {
	display: block;
	margin: 8px 0;
	color: var(--info-navy);
	font-size: clamp(22px, 3vw, 34px);
}

.entrance-information__hours p { margin: 8px 0 16px; font-size: 12px; line-height: 1.7; }

.entrance-information__hours a,
.entrance-information__access > a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	padding: 9px 15px;
	border: 1px solid var(--info-teal);
	border-radius: 999px;
	background: var(--info-teal);
	color: #fff;
	font-size: 13px;
	font-weight: 900;
	text-decoration: none;
}

.entrance-information__shop dl { margin: 0; border-top: 1px solid #1730443d; }
.entrance-information__shop dl > div {
	display: grid;
	grid-template-columns: minmax(100px, 145px) minmax(0, 1fr);
	gap: 16px;
	padding: 12px 0;
	border-bottom: 1px solid #1730443d;
}
.entrance-information__shop dt { color: var(--info-teal); font: 900 11px/1.45 ui-monospace, monospace; letter-spacing: .06em; }
.entrance-information__shop dd { margin: 0; font-size: 15px; font-weight: 760; line-height: 1.65; }
.entrance-information__shop dd a { text-decoration: underline; text-decoration-color: var(--info-sky); text-underline-offset: 3px; }

.entrance-information__photos .entrance-store-photo-deck { min-height: 500px !important; padding: 14px 8px 30px !important; }
.entrance-information__photos .entrance-store-photo-deck::before { content: none !important; }
.entrance-information__photos .entrance-store-photo-deck__stack { width: min(92%, 560px); }

.entrance-information__access { display: flex; flex-direction: column; }
.entrance-information__map {
	position: relative;
	min-height: 310px;
	overflow: hidden;
	border: 1px solid #17304455;
	background: #dbe8e6;
}
.entrance-information__map iframe { display: block; width: 100%; min-height: 310px; border: 0; filter: saturate(.78) contrast(.95); }
.entrance-information__access > p { margin: 15px 0 12px; font-size: 13px; font-weight: 750; line-height: 1.65; }
.entrance-information__access > a { align-self: flex-start; }

.entrance-information__news .entrance-box-information { margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; }
.entrance-information__news .entrance-box-information > span,
.entrance-information__news .entrance-box-information > h2 { display: none; }
.entrance-information__news .entrance-box-information ul { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.entrance-information__news .entrance-box-information li { margin: 0; }
.entrance-information__news .entrance-box-information a {
	display: grid;
	grid-template-columns: 1fr;
	gap: 9px;
	align-items: start;
	padding: 15px 16px 16px;
	border: 1px solid #2e718066;
	background: #eef6f5;
	color: var(--info-ink);
	text-decoration: none;
}
.entrance-information__news .entrance-box-information .entrance-box-information__category {
	justify-self: start;
	padding: 5px 8px;
	border: 1px solid var(--info-teal);
	background: var(--info-paper);
	color: var(--info-teal);
	font: 900 11px/1 ui-monospace, monospace;
	letter-spacing: .08em;
}
.entrance-information__news .entrance-box-information .entrance-box-information__title { font-size: clamp(16px, 2vw, 20px); line-height: 1.45; }
.entrance-information__news .entrance-box-information .entrance-box-information__note {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 16px;
	padding-top: 8px;
	border-top: 1px solid #2e718044;
	color: #60727c;
	font-size: 11px;
	font-weight: 800;
	line-height: 1.55;
}
.entrance-information__news .entrance-box-information .entrance-box-information__note i { font-style: normal; }
.entrance-information__news-empty { margin: 0; color: #526771; font-size: 14px; }

@media (max-width: 760px) {
	html:has(.entrance-information-page),
	body:has(.entrance-information-page) {
		background-image: linear-gradient(#f4eedf73, #f4eedf73), url("../images/entrance-page-background-mobile.png") !important;
		background-position: center !important;
		background-size: cover !important;
		background-attachment: fixed !important;
	}
	.entrance-information-page { width: min(100% - 18px, 640px); padding-top: calc(var(--wp-admin--admin-bar--height, 0px) + 46px); }
	.entrance-information__hero { margin-bottom: 14px; padding: 10px 13px; border-left-width: 4px; box-shadow: 4px 4px 0 var(--info-ink); }
	.entrance-information__hero h1 { font-size: clamp(28px, 9vw, 42px); }
	.entrance-information__layout { grid-template-columns: 1fr; }
	.entrance-information__sign { position: relative; top: auto; width: min(100%, 430px); margin-inline: auto; }
	.entrance-information__content > section { padding: 17px; box-shadow: 5px 5px 0 var(--info-ink); }
	.entrance-information__shop dl > div { grid-template-columns: 1fr; gap: 3px; }
	.entrance-information__map,
	.entrance-information__map iframe { min-height: 280px; }
	.entrance-information__photos .entrance-store-photo-deck { min-height: 390px !important; }
	.entrance-information__photos .entrance-store-photo-deck__stack { width: min(88%, 500px); }
}

@media (prefers-reduced-motion: reduce) {
	.entrance-information__sign-frame img,
	.entrance-information__power button > span::after { transition: none !important; }
}
