@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');
:root {
	/* colors */
	--text-color: #000000;
	--link-color: #0071bc;
	--link-color-hover: color-mix(in oklab, var(--link-color) 65%, #00ffff);
	--key-color: #37af32;
	--white: #ffffff;
	--black: #000000;
	--green: #7ac943;
	--blue: #3fa9f5;
	--orange: #ff931e;
	--beige: #fefacd;
	--bg-blue-light: #d2f0ff;
	--gray66: #666666;
	--gray80: #808080;
	--gray97: #979797;
	--grayB3: #b3b3b3;
	--grayCC: #cccccc;
	--grayEE: #eeeeee;
	--grayF2: #f2f2f2;
	/* border/border-radius */
	--border-radius-s: calc(10 / 16 * 1rem);
	--border-radius-m: calc(16 / 16 * 1rem);
	--base-border-width: 1px;
	/* font */
	--base-font-size: calc(14.5 / 16 * 1rem);
	--font-regular: 400;
	--font-medium: 500;
	--font-semibold: 600;
	--font-bold: 700;
	--font-sans: "Noto Sans JP", sans-serif;
	/* repeatable size */
	--global-header-height: 60px;
	--base-inline-margin: 4vw;
	/* gap & margin */
	--spacer-unit: calc(6 / 16 * 1rem);
	scroll-padding-block-start: var(--global-header-height);
}
@media (768px <=width), print {
	:root {
		--base-font-size: calc(15 / 16 * 1rem);
		--border-radius-s: calc(14 / 16 * 1rem);
		--border-radius-m: calc(20 / 16 * 1rem);
		--spacer-unit: calc(6 / 16 * 1rem);
	}
}
@media (1024px <=width), print {
	:root {
		--global-header-height: 75px;
		--base-font-size: calc(14 / 16 * 1rem);
		--border-radius-s: calc(16 / 16 * 1rem);
		--border-radius-m: calc(24 / 16 * 1rem);
		--base-border-width: 2px;
		--spacer-unit: calc(8 / 16 * 1rem);
	}
}
@media (1280px <=width), print {
	:root {
		--base-inline-margin: max(40px, calc(calc(100% - 1250px) / 2));
		--base-font-size: calc(16 / 16 * 1rem);
		--border-radius-s: calc(21 / 16 * 1rem);
		--border-radius-m: calc(30 / 16 * 1rem);
		--spacer-unit: calc(10 / 16 * 1rem);
	}
}
:root {
	/* 18px */
	--font-scale-ss: calc(1 / 16 * 1rem * 0.88888889);
	@media (768px <=width), print {
		--font-scale-ss: calc(1 / 16 * 1rem * 0.94444444);
	}
	@media (1280px <=width), print {
		--font-scale-ss: calc(1 / 16 * 1rem);
	}
	/* about 21px */
	--font-scale-s:calc(1 / 16 * 1rem * 0.80);
	@media (768px <=width), print {
		--font-scale-s: calc(1 / 16 * 1rem * 0.82);
	}
	@media (1024px <=width), print {
		--font-scale-s: calc(1 / 16 * 1rem * 0.84);
	}
	@media (1280px <=width), print {
		--font-scale-s: calc(1 / 16 * 1rem);
	}
	/* about 38px */
	--font-scale-m:calc(1 / 16 * 1rem * 0.62);
	@media (768px <=width), print {
		--font-scale-m: calc(1 / 16 * 1rem * 0.72);
	}
	@media (1024px <=width), print {
		--font-scale-m: calc(1 / 16 * 1rem * 0.84);
	}
	@media (1280px <=width), print {
		--font-scale-m: calc(1 / 16 * 1rem);
	}
	/* about 60px */
	--font-scale-ll:calc(1 / 16 * 1rem * 0.5);
	@media (768px <=width), print {
		--font-scale-ll: calc(1 / 16 * 1rem * 0.84);
	}
	@media (1024px <=width), print {
		--font-scale-ll: calc(1 / 16 * 1rem * 0.84);
	}
	@media (1280px <=width), print {
		--font-scale-ll: calc(1 / 16 * 1rem);
	}
}
/* ============================== */
/*  BASE */
/* ============================== */
body {
	font-family: var(--font-sans);
	font-size: var(--base-font-size);
	font-weight: var(--font-regular);
	color: var(--text-color);
	line-break: normal;
	line-height: 1.75;
}
::-moz-selection {
	background-color: #b3d4fc;
	color: #000000;
	text-shadow: none;
}
::selection {
	background-color: #b3d4fc;
	color: #000000;
	text-shadow: none;
}
:where(h1, h2, h3, h4, h5, h6, dt) {
	font-feature-settings: 'palt';
	font-weight: var(--font-bold);
}
:where(a) {
	color: var(--link-color);
	text-decoration: underline;
}
@media(hover:hover) {
	:where(a, button) {
		transition: color 200ms ease-out, background-color 200ms ease-out, opacity 200ms ease-out;
	}
}
iframe {
	inline-size: 100%;
	block-size: auto;
}
summary::-webkit-details-marker {
	display: none;
}
[type="text"], [type="email"], [type="search"], [type="tel"], [type="url"], [type="password"], textarea {
	border: 1px solid var(--grayEE);
	padding: 0.65em 0.75em;
	transition: 150ms;
	inline-size: 100%;
	font-size: 16px;
}
[type="text"]:focus, [type="email"]:focus, [type="search"]:focus, [type="tel"]:focus, [type="url"]:focus, [type="password"]:focus, textarea:focus {
	outline: none;
	background-color: var(--blue-light);
}
textarea {
	field-sizing: content;
	@supports (field-sizing: content) {
		resize: none;
	}
}
/* ============================== */
/*  LAYOUT,UTILITY */
/* ============================== */
@media (width < 768px) {
	.only-lg {
		display: none;
	}
}
@media (768px <=width), print {
	.only-sm {
		display: none;
	}
}
.ml-05em {
	margin-inline-start: -0.5em;
}
.mr-05em {
	margin-inline-end: -0.5em;
}
.ls-5 {
	letter-spacing: -5%;
}
.ls-15 {
	letter-spacing: -15%;
}
.has-arrow {
	padding-inline-end: 1.66666666em;
	position: relative;
	&::after {
		content: "▶︎";
		font-size: 66.66666666%;
		position: absolute;
		inset-inline-end: 0;
		inset-block-start: 0.16666666lh;
	}
}
#go-pagetop {
	display: contents;
	& a {
		position: fixed;
		z-index: 90;
		text-indent: -9999px;
		overflow: hidden;
		inline-size: 45px;
		aspect-ratio: 1;
		transition: 300ms ease;
		inset-inline-end: 4vw;
		inset-block-end: 55px;
		background-color: rgb(0 0 0 /0.3);
		border-radius: 10px;
		display: none;
		@media (768px <=width), print {
			inline-size: calc(60 / 18 * 1em);
			inset-inline-end: calc(40 / 18 * 1em);
			inset-block-end: calc(40 / 18 * 1em);
		}
	}
	& a::before {
		content: "";
		inline-size: 25%;
		aspect-ratio: 1;
		position: absolute;
		inset-inline-start: 37.5%;
		inset-block-start: 41%;
		display: block;
		border-block-start: 2px solid var(--white);
		border-inline-end: 2px solid var(--white);
		transform: rotate(-45deg);
	}
	@media(hover:hover) {
		& a:hover {
			background-color: rgb(0 0 0 /0.5);
		}
	}
}
.visually-hidden {
	clip: rect(0 0 0 0) !important;
	clip-path: inset(50%) !important;
	inline-size: 1px !important;
	block-size: 1px !important;
	overflow: hidden !important;
	position: absolute !important;
	white-space: nowrap !important;
}
/* ============================== */
/*  GLOBAL-HEADER */
/* ============================== */
.global-header {
	position: fixed;
	z-index: 120;
	inline-size: 100%;
	block-size: var(--global-header-height);
	inset-block-start: 0;
	inset-inline-start: 0;
	padding: 0 0 0 var(--base-inline-margin);
	display: flex;
	justify-content: space-between;
	align-items: center;
	background: var(--white);
	gap: 0.5em;
	& a, & button {
		text-decoration: none;
		color: inherit;
	}
	& + * {
		margin-block-start: var(--global-header-height);
	}
}
@media (1024px <=width), print {
	.global-header {
		padding: 0 20px;
		display: flex;
		justify-content: space-between;
		align-items: center;
		gap: 8%;
		& .menu-toggle {
			display: none;
		}
		& .main-nav {
			display: flex !important;
			flex: none;
		}
	}
}
.site-id {
	block-size: 100%;
	line-height: 1.5;
	display: flex;
	align-items: center;
	font-size: 1em;
	font-weight: var(--font-regular);
	flex: auto;
	margin: 0;
}
#menu-toggle {
	--_bar-width: 1px;
	--_bar-shift: 12px;
	--_bar-size: 35px;
	--_bar-color: #555555;
	block-size: var(--global-header-height);
	aspect-ratio: 1;
	position: fixed;
	z-index: 140;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	inset-block-start: 0;
	inset-inline-end: 0;
	transition: border-color 200ms;
	&.is-clicked {
		border-color: var(--_bar-color);
	}
	& .menu-icon {
		display: block;
		inline-size: var(--_bar-size);
		block-size: var(--_bar-width);
		position: absolute;
		transform-origin: center;
		transition: background-color 200ms;
		background-color: var(--_bar-color);
		position: relative;
		&::before, &::after {
			content: '';
			inline-size: 100%;
			block-size: 100%;
			position: absolute;
			transition: rotate 200ms, inset-block-start 200ms 100ms;
			inset-inline-start: 0;
			transform-origin: center;
			background-color: var(--_bar-color);
		}
		&::before {
			inset-block-start: calc(var(--_bar-shift) * -1);
		}
		&::after {
			inset-block-start: var(--_bar-shift);
		}
		&:is(.is-clicked *) {
			background-color: transparent;
		}
		&:is(.is-clicked *)::before, &:is(.is-clicked *)::after {
			transition: rotate 200ms 100ms, inset-block-start 200ms;
			inset-block-start: 0;
		}
		&:is(.is-clicked *)::before {
			rotate: 45deg;
		}
		&:is(.is-clicked *)::after {
			rotate: -45deg;
		}
	}
}
@media (1024px <=width), print {
	#menu-toggle {
		display: none;
	}
}
@media (1024px >width) {
	.main-nav {
		display: none;
		background-color: var(--white);
		inline-size: 85%;
		block-size: 100svh;
		position: absolute;
		inset-block-start: 0;
		inset-inline-end: 0;
		overflow-y: scroll;
		padding: calc(20px + var(--global-header-height)) 90px 120px;
	}
	#js-overLayer {
		content: "";
		position: fixed;
		inset-block-start: 0;
		inset-inline-start: 0;
		inline-size: 15%;
		block-size: 100svh;
		background-color: rgb(0 0 0 / 0.3);
		background-color: var(--key-color);
		opacity: 0.7;
	}
}
@media (480px > width) {
	.main-nav {
		padding-inline: 20px;
	}
}
@media (1024px <=width), print {
	.main-nav {
		font-size: 1em;
		display: flex !important;
		& #js-focus-trap {
			display: none;
		}
	}
	#js-overLayer {
		display: none;
	}
}
@media (1024px >width) {
	.main-menu {
		font-size: calc(15.5 / 16 * 1rem);
		line-height: 1.5;
		font-weight: var(--font-medium);
		& > li {
			border-block-end: 1px solid #f0f0f0;
		}
		& > li > a {
			padding: 0.75em 0.4rem;
			display: block;
		}
		& > li.has-submenu {
			position: relative;
			& > a {
				inline-size: calc(100% - 40px - 1em);
			}
			& .submenu-toggle {
				block-size: 40px;
				inline-size: 40px;
				position: absolute;
				inset-block-start: calc(calc(1lh + 1.5em - 40px) / 2);
				inset-inline-end: 0;
				color: transparent;
				&::before, &::after {
					content: "";
					position: absolute;
					inline-size: 1.2em;
					block-size: 1px;
					background-color: #333;
					inset-inline-end: 0.4rem;
					inset-block-start: calc(50% - 0.5px);
					display: block;
					transition: rotate 200ms, opacity 200ms;
					rotate: 0;
				}
				&::after {
					rotate: -90deg;
				}
			}
			&.open .submenu-toggle::before {
				rotate: 90deg;
				opacity: 0;
			}
			&.open .submenu-toggle::after {
				rotate: 0deg;
			}
		}
	}
}
@media (1024px <=width), print {
	.main-menu {
		font-size: 1em;
		display: flex;
		flex-direction: row;
		justify-content: flex-end;
		align-items: center;
		line-height: calc(20 / 15);
		block-size: var(--global-header-height);
		& > li {
			block-size: 100%;
			display: flex;
			align-items: center;
		}
		& > li:not(:first-child) {
			&::before {
				content: "";
				display: block;
				inline-size: 1px;
				block-size: 1em;
				background-color: currentColor;
			}
		}
		& > li > a {
			padding: 0.3em 1.2em;
			display: block;
		}
		& > li:last-child > a {
			padding-inline-end: 0;
		}
		& .submenu-toggle {
			display: none;
		}
	}
}
@media (1024px >width) {
	.submenu {
		display: none;
		& menu {
			font-size: calc(14.5 / 16 * 1rem);
			line-height: 1.3;
			padding-inline-start: 35px;
			padding-block-end: 1em;
			display: flex;
			flex-direction: column;
			justify-content: center;
			gap: 1em;
		}
		& .hospital-shoulder {
			font-size: calc(12.5 / 14.5 * 1em);
			margin-inline-start: -1em;
			display: block;
		}
		& a {
			display: block;
		}
	}
}
@media (1024px <=width), print {
	.submenu {
		display: none;
		position: fixed;
		inset-block-start: var(--global-header-height);
		inset-inline-start: 0;
		inline-size: 100%;
		background-color: rgb(230 230 230 / 0.5);
		-webkit-backdrop-filter: blur(10px);
		backdrop-filter: blur(10px);
		padding: 1.5em 5em 1.5em 1.5em;
		& menu {
			font-size: 1em;
			line-height: 1.3;
			display: grid;
			grid-auto-flow: column;
			grid-template-rows: repeat(2, auto);
			grid-template-columns: repeat(3, max-content);
			align-items: end;
			gap: 0.5em 4em;
			justify-content: end;
		}
		& .hospital-shoulder {
			font-size: calc(14 / 16 * 1em);
			margin-inline-start: -1em;
			display: block;
		}
		& a {
			display: block;
		}
	}
	.submenu#submenu-requirement {
		& menu > li:first-child {
			grid-row: span 2;
			align-self: start;
		}
	}
}
.function-menu {
	font-size: calc(13.5 / 14.5 * 1em);
	line-height: 2.5;
	font-weight: var(--font-regular);
	margin-block-start: 30px;
	margin-inline-start: 0.4rem;
	display: flex;
	flex-direction: column;
}
@media (1024px <=width), print {
	.function-menu {
		display: none;
	}
}
@media(any-hover: hover) {
	.main-menu a:hover {
		color: var(--link-color);
	}
	.function-menu a:hover {
		color: var(--link-color);
	}
}
.add-crs-gr, .add-crs-bl, .add-crs-or {
	&::before {
		content: "";
		display: inline-block;
		inline-size: 0.9em;
		aspect-ratio: 1;
		background-repeat: no-repeat;
		background-size: 100%;
		background-position: center;
		margin-inline-end: 0.1em;
		position: relative;
		inset-block-start: 0.05em;
	}
}
.add-crs-gr::before {
	background-image: url("../images/common/ico_cross-green.svg");
}
.add-crs-bl::before {
	background-image: url("../images/common/ico_cross-blue.svg");
}
.add-crs-or::before {
	background-image: url("../images/common/ico_cross-orange.svg");
}
/* ============================== */
/*  GLOBAL-FOOTER */
/* ============================== */
.global-footer {
	margin: calc(var(--spacer-unit) * 12) 0 0;
	a {
		text-decoration: none;
		color: inherit;
	}
}
nav.application {
	padding: 0 var(--base-inline-margin) 20px;
}
.application-message {
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: calc(21 / 14.5 * 1em);
	line-height: 1.6;
	gap: 0.8em;
	font-weight: var(--font-medium);
	color: var(--gray66);
	margin-block-end: 0.4em;
	& .em-green {
		color: #39b54a;
	}
	& .em-orange {
		color: #f7931e;
	}
	& .em-blue {
		color: #3fa9f5;
	}
	&::before {
		content: "";
		background: url("../images/common/ill_footer.png") no-repeat center / 100%;
		display: block;
		inline-size: calc(97 / 16 * 1rem);
		aspect-ratio: 296 / 394;
	}
}
@media (768px <=width), print {
	.application-message {
		font-size: calc(38 * var(--font-scale-s));
		&::before {
			inline-size: calc(calc(296 / 2) / 38 * 1em);
		}
	}
}
.application-buttons {
	display: flex;
	flex-direction: column;
	gap: 25px;
}
@media (768px <=width), print {
	.application-buttons {
		flex-direction: row;
		gap: calc(40 / 1250 * 100%);
	}
}
nav.application .application-button {
	--_title-font-size: calc(24 / 16 * 1rem);
	--_note-font-size: calc(12 / 16 * 1rem);
	--_icon-size: 70px;
	--_title-font-size-en: calc(var(--_title-font-size) * 64 / 48);
	--_title-height: calc(var(--_title-font-size) * 64 / 48);
	--_button-border-radius: 10px;
	--_bg-shift: 3px 6px;
	inline-size: 100%;
	flex: 1;
	& a {
		padding: calc(15 / 16 * 1rem);
		border-radius: var(--_button-border-radius);
		display: flex;
		align-items: center;
		justify-content: center;
		position: relative;
		gap: calc(var(--_title-font-size) * 1);
		&::after {
			content: "";
			inline-size: 100%;
			block-size: 100%;
			position: absolute;
			inset-block-start: 0;
			inset-inline-start: 0;
			translate: var(--_bg-shift);
			border-radius: var(--_button-border-radius);
			z-index: -1;
		}
		&::before {
			content: "";
			inline-size: 100%;
			block-size: 100%;
			position: absolute;
			inset-block-start: 0;
			inset-inline-start: 0;
			border-radius: var(--_button-border-radius);
			border: 1px solid var(--gray66);
			z-index: 1;
		}
	}
	& .icon {
		inline-size: var(--_icon-size);
		aspect-ratio: 1;
		display: block;
		border-radius: 50%;
		position: relative;
		&::before {
			content: "";
			display: block;
			position: absolute;
			inset-block-start: 0;
			inset-inline-start: 0;
			translate: var(--_bg-shift);
			border-radius: 50%;
			inline-size: 100%;
			block-size: 100%;
			background-color: var(--white);
			z-index: 1;
		}
		&::after {
			content: "";
			display: block;
			position: absolute;
			inset-block-start: 0;
			inset-inline-start: 0;
			border-radius: 50%;
			inline-size: 100%;
			block-size: 100%;
			border: 1px solid var(--gray66);
			z-index: 2;
			background-position: center;
			background-size: 100%;
			background-repeat: no-repeat;
		}
	}
	& .title {
		font-size: var(--_title-font-size);
		inline-size: calc(var(--_title-font-size) * 7);
		line-height: var(--_title-height);
		color: var(--gray80);
		font-weight: var(--font-bold);
		align-items: center;
		&::after {
			content: "▶︎";
			font-size: calc(var(--_title-font-size) * 20 / 48);
			margin-inline-start: 1.1em;
			line-height: 1;
			position: relative;
			inset-block-start: -0.5em;
		}
	}
	& .note {
		font-size: var(--_note-font-size);
		line-height: 1.2;
		margin-block-start: 0.5em;
		font-feature-settings: 'palt';
		font-weight: var(--font-bold);
	}
	&.requirement a {
		&::after {
			background-color: #cdf5f5;
		}
		& .icon::after {
			background-image: url("../images/common/ico_requirement.png");
		}
		& .title {
			&::after {
				color: #19aab4;
			}
		}
		& .note {
			color: #00a99d;
		}
	}
	&.entry a {
		&::after {
			background-color: #fffac8;
		}
		& .icon::after {
			background-image: url("../images/common/ico_entry.png");
		}
		& .title {
			font-size: var(--_title-font-size-en);
			&::first-letter {
				color: #ff931e;
			}
			&::after {
				color: #ff931e;
				inset-block-start: -0.82em;
			}
		}
		& .note {
			color: #f15a24;
		}
	}
}
@media (1024px <=width), print {
	nav.application .application-button {
		--_title-font-size: calc(48 / 16 * 1rem * 0.8);
		--_note-font-size: calc(21 / 16 * 1rem * 0.8);
		--_icon-size: calc(152px * 0.8);
		--_button-border-radius: calc(27px * 0.8);
		--_bg-shift: 4px 8px;
		& a {
			padding: calc(24 / 16 * 1rem * 0.8);
		}
		& .title {
			inline-size: calc(var(--_title-font-size) * 6.5);
			padding-block-start: 0.2em;
		}
	}
}
@media (1280px <=width), print {
	nav.application .application-button {
		--_title-font-size: calc(48 / 16 * 1rem);
		--_note-font-size: calc(21 / 16 * 1rem);
		--_icon-size: 152px;
		--_button-border-radius: 27px;
		--_bg-shift: 5px 10px;
		& a {
			padding: calc(24 / 16 * 1rem);
		}
	}
}
@media(hover:hover) {
	nav.application .application-button a {
		& .icon::before {
			transition: translate 500ms;
		}
		&::after {
			transition: translate 500ms, background-color 500ms;
		}
	}
	nav.application .application-button a:hover {
		&::after, & .icon::before {
			translate: 0 0;
		}
	}
	nav.application .application-button.requirement a:hover {
		&::after {
			background-color: color-mix(in oklab, #cdf5f5 60%, white);
		}
	}
	nav.application .application-button.entry a:hover {
		&::after {
			background-color: color-mix(in oklab, #fffac8 60%, white);
		}
	}
}
.footer-facility-link {
	font-size: calc(15 / 14.5 * 1em);
	padding: calc(36 / 16 * 1rem) var(--base-inline-margin);
	background-color: var(--bg-blue-light);
	& ul {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		grid-template-columns: repeat(auto-fill, minmax(min(345px, 100%), 1fr));
		gap: calc(var(--spacer-unit) * 1.8);
		;
	}
	& a {
		display: flex;
		block-size: calc(55 / 16 * 1em);
		border: 1px solid var(--grayB3);
		background-color: var(--white);
		border-radius: 0.5em;
		justify-content: center;
		align-items: center;
		position: relative;
		font-weight: var(--font-medium);
		font-feature-settings: 'palt';
		&::after {
			content: "▶︎";
			font-size: 0.8em;
			color: var(--gray66);
			margin-inline-start: 0.8em;
		}
		& .shoulder {
			font-weight: var(--font-regular);
			position: absolute;
			inset-block-start: 0.5em;
			inset-inline-start: 0.75em;
			font-size: calc(14 / 18 * 1em);
			line-height: 1;
		}
	}
}
@media (1280px <=width), print {
	.footer-facility-link {
		font-size: calc(18 / 16 * 1rem);
	}
}
@media(hover:hover) {
	.footer-facility-link a:hover {
		background-color: #bdddef;
	}
}
.footer-banners {
	background-color: var(--grayF2);
	padding: 25px var(--base-inline-margin);
	margin-block-start: calc(var(--spacer-unit) * 6.8);
	;
	container-type: inline-size;
	& ul {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 20px;
	}
	& a img {
		block-size: 25cqi;
		inline-size: auto;
	}
	& a {
		display: block;
	}
}
@media (768px <=width), print {
	.footer-banners {
		& ul {
			max-width: 876px;
			margin-inline: auto;
			flex-direction: row;
			align-items: center;
			justify-content: space-between;
			gap: min(35px, 2.5cqi);
		}
		& a img {
			block-size: min(11cqi, 100px);
		}
	}
}
@media(hover:hover) {
	.footer-banners a:hover {
		opacity: 0.65;
	}
}
.footer-link {
	margin: calc(18 / 16 * 1rem) var(--base-inline-margin);
	font-size: 1em;
	line-height: 1.75;
	& ul {
		max-width: 876px;
		margin-inline: auto;
		display: grid;
		grid-auto-flow: column;
		grid-template-rows: repeat(6, auto);
		grid-template-columns: 1fr 1.7fr;
		gap: 0.25em 1em;
	}
}
@media (768px <=width), print {
	.footer-link {
		font-size: calc(14 / 16 * 1rem);
		& ul {
			grid-template-rows: repeat(4, auto);
			grid-template-columns: repeat(3, 1fr);
		}
	}
}
@media (1024px <=width), print {
	.footer-link {
		gap: 0 1em;
		& ul {
			grid-template-rows: repeat(3, auto);
			grid-template-columns: 1fr 1fr 1.5fr 1fr;
		}
	}
}
@media(hover:hover) {
	.footer-link a:hover {
		color: var(--link-color);
		text-decoration: underline;
	}
}
.footer-sns {
	margin: calc(var(--spacer-unit) * 7) 0;
	& ul {
		display: flex;
		justify-content: center;
		gap: min(6vw, calc(38 / 16 * 1em));
		img {
			block-size: min(8.2vw, calc(49 / 16 * 1em));
			inline-size: auto;
		}
	}
	& a {
		display: block;
	}
}
@media(hover:hover) {
	.footer-sns a:hover {
		opacity: 0.65;
	}
}
.footer-end {
	margin: 52px var(--base-inline-margin) 0;
	padding-block-end: 70px;
}
.footer-logo {
	inline-size: min(54vw, 240px);
	margin: 0 auto;
}
.footer-copyright {
	font-size: calc(10 / 16 * 1rem);
	text-align: center;
	line-height: 1.2;
	margin-block-start: 28px;
	& small {
		font-size: inherit;
	}
}
@media (1024px <=width), print {
	.footer-end {
		padding-block-end: 18px;
	}
}
.fixed-cta {
	display: none;
}
@media (768px > width) {
	.fixed-cta {
		z-index: 115;
		display: block;
		position: fixed;
		inset-block-end: 0;
		inset-inline-start: 0;
		inline-size: 100%;
		font-size: calc(16.5 / 16 * 1rem);
		& .fixed-cta-buttons {
			display: flex;
		}
		& .cta-button {
			inline-size: 50%;
			& a {
				inline-size: 100%;
				block-size: calc(50 / 16 * 1rem);
				display: flex;
				justify-content: center;
				align-items: center;
				color: var(--gray66);
				font-weight: var(--font-bold);
				letter-spacing: 25%;
				padding-inline-start: 0.25em;
				gap: 0.5em;
				&::before {
					content: "";
					display: block;
					inline-size: 2.3em;
					aspect-ratio: 1;
					border-radius: 50%;
					background-repeat: no-repeat;
					background-position: center;
					background-size: contain;
					background-color: var(--white);
				}
			}
			&.requirement a {
				background-color: #cdf5f5;
				&::before {
					background-image: url("../images/common/ico_requirement.png");
				}
			}
			&.entry a {
				background-color: #fffac8;
				&::before {
					background-image: url("../images/common/ico_entry.png");
				}
			}
		}
	}
}
@media print {
	.global-header {
		position: relative;
	}
	.site-id {
		flex: none;
	}
	.fixed-cta {
		display: none;
	}
	.main-nav {
		display: flex;
		inline-size: auto;
		block-size: auto;
		position: relative;
		inset-block-start: 0;
		inset-inline-end: 0;
		overflow-y: auto;
		padding: 0;
		background-color:transparent;
		& .main-menu {
			display: flex;
			gap: 1em;
			& li {
				inline-size: auto;
			}
			& > li.has-submenu a {
				inline-size: auto;
			}
			& .submenu, & .submenu-toggle {
				display: none;
			}
		}
	}
	main {
		margin-block-start: calc(var(--global-header-height) * -1) !important;
	}
	.brand {
		block-size: 220px !important;
	}
}