@charset "utf-8";

body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,p,blockquote,th,td,main,figure{margin:0;padding:0}table{font-size:100%;font-family:inherit}fieldset,img{border:0}img,svg,video{vertical-align:middle}ol,ul{list-style:none}caption,th{text-align:left}h1,h2,h3,h4,h5,h6{font-size:100%}q:before,q:after{content:''}abbr,acronym{border:0}select,input,textarea{font-size:100%}header,footer,nav,main,section,article,figure,aside,picture{display:block}.clearfix:after,.row:after{content:"";display:table;clear:both}._fl{float:left}._fr{float:right}@media screen and (min-width: 744px),print{._pc_fl{float:left}._pc_fr{float:right}}@media screen and (max-width: 743px){._sp_fl{float:left}._sp_fr{float:right}}._tal{text-align:left!important}._tac{text-align:center!important}._tar{text-align:right!important}@media screen and (min-width: 744px),print{._pc_tal{text-align:left!important}._pc_tac{text-align:center!important}._pc_tar{text-align:right!important}}@media screen and (max-width: 743px){._sp_tal{text-align:left!important}._sp_tac{text-align:center!important}._sp_tar{text-align:right!important}}


/* ‰äÊý
====================================================================== */
:root {
	--color-base: #000;
	--color-theme: #3db0cb;
	--color-blue: #0075c1;
	--color-green: #22b5b0;
	--base-width: 120rem;
	--pc-base-padding: 4rem;
	--sp-base-padding: calc(20 / 375 * 100vw);
	--font-family-jp: 'Noto Sans JP', sans-serif;
	--font-family-min: 'Noto Serif JP', serif;
	--font-family-en: 'Roboto Condensed', var(--font-family-jp);
	--font-weight: 400;
	--transition-duration: .3s;
	--transition: var(--transition-duration) ease-in-out;
}

html {
	font-size: 62.5%;
	scroll-behavior: smooth;
	@media screen and (min-width: 744px), print {
		font-size: min(calc(10px - (1300px - 100vw) * (10 / 1300)), 10px);
	}
	@media screen and (max-width: 743px) {
		font-size: calc((10 / 375) * 100vw);
	}
}
html.no-scroll-behavior {
	scroll-behavior: auto;
}
body#reorganization {
	background-color: #fff;
	font-size: 1.6rem;
	line-height: 1.75;
	color: var(--color-base);
	word-wrap: break-word;
	overflow-wrap: break-word;
	font-family: var(--font-family-jp);
	font-weight: var(--font-weight);
	font-feature-settings: "palt";
	font-style: normal;
	-webkit-text-size-adjust: none;
	text-size-adjust: none;
	@media screen and (max-width: 743px) {
		font-size: 1.4rem;
	}
}
*,
*::before,
*::after {
	box-sizing: border-box;
	letter-spacing: .15em;
}
:where(#reorganization img) {
	width: 100%;
	height: auto;
}
:where(a[href]) {
	color: var(--color-base);
	outline: none;
	cursor: pointer;
}
:where(a[href]._a_reverse,._a_reverse a[href]) {
	text-decoration: none;
}
@media (hover) {
	:where(a[href]:hover) {
		text-decoration: none;
	}
	:where(a[href]._a_reverse,._a_reverse a[href]):hover {
		text-decoration: underline;
	}
	:where(a[href]:hover ._a_reverse) {
		text-decoration: underline;
	}
}

.-hidden {
	display: none;
}

#top {
	display: block;
}

/* pc / sp
====================================================================== */
@media screen and (min-width: 744px), print {
	._sp {
		display: none !important;
	}
}
@media screen and (max-width: 743px) {
	._pc {
		display: none !important;
	}
	._sp_break {
		position: relative;
		display: block;
		height: 0;
		overflow: hidden;
	}
}

/* transition
====================================================================== */
@media (hover) {
	:where(a),
	:where(a)::before,
	:where(a)::after {
		transition: color var(--transition), background var(--transition), border var(--transition), opacity var(--transition), text-decoration-color .2s ease-in-out;
	}
	:where(body.init a svg) {
		transition: fill var(--transition);
	}
}

/* font
====================================================================== */
._ff_min {
	font-family: var(--font-family-min);
}
._ff_en {
	font-family: var(--font-family-en);
	font-weight: 500;
}
._wsnw {
	white-space: nowrap;
}
@media screen and (min-width: 744px), print {
	._pc_wsnw {
		white-space: nowrap;
	}
}
@media screen and (max-width: 743px) {
	._sp_wsnw {
		white-space: nowrap;
	}
}

/* object-fit
====================================================================== */
img._of {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	pointer-events: none;
	user-select: none;
	z-index: -1;
	&.-top {
		object-position: top;
	}
}

/* w
====================================================================== */
#reorganization ._w {
	position: relative;
}
@media screen and (min-width: 744px), print {
	#reorganization ._w {
		width: var(--base-width);
		max-width: calc(100% - var(--pc-base-padding) * 2);
		margin-inline: auto;
	}
}
@media screen and (max-width: 743px) {
}


/* sp¥Ñ¥Ç¥£¥ó¥°
====================================================================== */
@media screen and (max-width: 743px) {
	#reorganization ._sp_pd {
		padding-inline: var(--sp-base-padding) !important;
	}
	#reorganization ._sp_mg {
		margin-inline: var(--sp-base-padding) !important;
	}
	#reorganization ._sp_full {
		margin-inline: calc(var(--sp-base-padding) * -1) !important;
	}
	#reorganization ._sp_full_l {
		margin-left: calc(var(--sp-base-padding) * -1) !important;
	}
	#reorganization ._sp_full_r {
		margin-right: calc(var(--sp-base-padding) * -1) !important;
	}
}


/* header
====================================================================== */
#reorganization #header {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	color: #fff;
	z-index: 10;
}
#reorganization #header ._ff_min {
	font-size: 3.2rem;
	font-weight: 400;
}
@media screen and (min-width: 744px), print {
	#reorganization #header {
		top: 6rem;
		width: var(--base-width);
		display: flex;
		justify-content: space-between;
		align-items: center;
		margin-inline: auto;
	}
	#reorganization #header .logo {
		width: 30rem;
	}
}
@media screen and (max-width: 743px) {
	#reorganization #header {
		top: 2rem;
		text-align: center;
	}
	#reorganization #header ._ff_min {
		font-size: 1.4rem;
	}
	#reorganization #header .logo {
		width: 15rem;
		margin: .5rem auto 0;
	}
}

/* footer
====================================================================== */
#reorganization #footer {
	position: relative;
	margin-top: 9rem;
	padding-bottom: 7rem;
	color: #fff;
	text-align: center;
}
#reorganization #footer .notes {
	margin-bottom: 11rem;
	font-size: 2.4rem;
	font-weight: 700;
}
#reorganization #footer dl {
	border: .3rem solid;
	font-weight: 700;
	font-size: 3rem;
	line-height: 1.5;
}
#reorganization #footer dl * {
	letter-spacing: 0.1em;
}
#reorganization #footer dl dt {
	padding: 1.5rem 0;
	border-bottom: .3rem solid;
}
#reorganization #footer dl dd {
	padding: 3rem 0;
}
#reorganization #footer dl dd .address {
	display: block;
	margin-bottom: 1rem;
	font-size: 2rem;
}
#reorganization #footer dl dd a {
	display: block;
	color: #fff;
	text-decoration: none;
}
#reorganization #footer dl dd a span {
	margin-left: 0.5em;
}
#reorganization #footer dl dd .tel {
	font-size: 3.4rem;
}
#reorganization #footer dl dd .email {
	font-size: 2.4rem;
	letter-spacing: 0.1em;
}
#reorganization #footer .logo {
	max-width: 30rem;
	margin: 15rem auto 5rem;
}
#reorganization #footer .dl {
	margin-bottom: 11rem;
}
#reorganization #footer .dl .dl_title {
	text-align: center;
	font-size: 4.2rem;
	line-height: 1.5;
	font-weight: 800;
	letter-spacing: 0.05em;
}
#reorganization #footer .dl p {
	font-size: 2.6rem;
	line-height: calc(37 / 26);
	letter-spacing: 0.05em;
	font-weight: 700;
}
#reorganization #footer .dl a {
	position: relative;
	overflow: hidden;
	display: block;
	width: 9rem;
	margin: 2rem auto 0;
	border-radius: 100%;
	z-index: 2;
}
#reorganization #footer .dl a::before {
	content: "";
	position: absolute;
	bottom: 0;
	right: 0;
	width: 300%;
	height: 300%;
	background: #fff;
	z-index: -1;
}
@media (hover) {
	#reorganization #footer .dl a:hover {
		opacity: 0.5;
	}
}

#reorganization #footer small {
	font-size: 1.8rem;
	letter-spacing: 0;
}
@media screen and (min-width: 744px), print {
	#reorganization #footer dl {
		max-width: 78rem;
		margin: 0 auto;
	}
	#reorganization #footer dl dd .tel {
		pointer-events: none;
	}
}
@media screen and (max-width: 743px) {
	#reorganization #footer {
		margin-top: 4rem;
		padding-bottom: 3rem;
	}
	#reorganization #footer .notes {
		margin-bottom: 4rem;
		font-size: 1.7rem;
	}
	#reorganization #footer dl {
		border-width: .2rem;
		font-size: 1.6rem;
	}
	#reorganization #footer dl dt {
		padding: 1rem 0;
		border-bottom-width: .2rem;
	}
	#reorganization #footer dl dd {
		padding: 2rem 0;
	}
	#reorganization #footer dl dd .address {
		margin-top: 0.5rem;
		margin-bottom: 1rem;
		font-size: 1.3rem;
	}
	#reorganization #footer dl dd .tel {
		font-size: 2.4rem;
	}
	#reorganization #footer dl dd .email {
		font-size: 1.4rem;
		letter-spacing: 0.05em;
	}
	#reorganization #footer .dl {
		margin-bottom: 5rem;
	}
	#reorganization #footer .dl p {
		font-size: 1.6rem;
	}
	#reorganization #footer .dl .dl_title {
		font-size: 3.3rem;
	}
	#reorganization #footer .dl a {
		width: 7rem;
	}
	#reorganization #footer .logo {
		max-width: 20rem;
		margin: 5rem auto 3rem;
	}
	#reorganization #footer small {
		font-size: 1.2rem;
	}
}
#reorganization main {
	position: relative;
	overflow: hidden;
}

/* main-head
====================================================================== */
#reorganization .main-head {
	position: relative;
	background-color: var(--color-theme);
	padding-top: 28rem;
	padding-bottom: 7rem;
	color: #fff;
	text-align: center;
	z-index: 2;
	@media screen and (max-width: 743px) {
		padding-inline: var(--sp-base-padding);
		padding-top: 15rem;
		padding-bottom: 7rem;
	}
	&::before {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		height: 35.4rem;
		background: linear-gradient(to bottom, rgba(61,176,203,1) 0%, rgba(61,176,203,.5) 30%, rgba(61,176,203,0) 100%);
		z-index: -1;
	}
	&::after {
		content: "";
		position: absolute;
		top: calc(220rem - 64rem);
		left: 0;
		right: 0;
		height: 64rem;
		background: linear-gradient(to top, rgba(61,176,203,1) 0%, rgba(61,176,203,.5) 30%, rgba(61,176,203,0) 100%);
		z-index: -1;
	}
	@media screen and (max-width: 743px) {
		&::before {
			height: 18rem;
		}
		&::after {
			top: calc(90rem - 32rem);
			height: 32rem;
		}
	}
	.bg {
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		height: 220rem;
		z-index: -2;
		@media screen and (max-width: 743px) {
			height: 90rem;
		}
	}
	.point {
		max-width: 19.2rem;
		margin: 0 auto 2.2rem;
		@media screen and (max-width: 743px) {
			max-width: 12rem;
			margin-bottom: 1.5rem;
		}
	}
	h1 {
		max-width: 96rem;
		margin: 0 auto 4rem;
		span {
			display: block;
		}
		@media screen and (max-width: 743px) {
			margin: 0 -1rem 2.5rem;
		}
	}
	.en {
		max-width: 46.6rem;
		margin: 0 auto 10.4rem;
		@media screen and (max-width: 743px) {
			max-width: 20rem;
			margin-bottom: 3rem;
		}
	}
	.img {
		position: relative;
		max-width: 102rem;
		margin: 0 auto 5.6rem;
		z-index: -1;
		@media screen and (max-width: 743px) {
			margin-bottom: 3rem;
		}
	}
	.lead {
		max-width: 76.2rem;
		margin: 0 auto 6rem;
		@media screen and (max-width: 743px) {
			max-width: 28rem;
			margin-bottom: 3rem;
		}
	}
	.txt {
		font-size: 2.5rem;
		line-height: calc(55 / 25);
		font-weight: 700;
		@media screen and (max-width: 743px) {
			font-size: 1.5rem;
		}
	}
}

/* course-section
====================================================================== */
#reorganization .course-section {
	position: relative;
	background-color: var(--color-theme);
	h2 {
		max-width: 60rem;
		margin: 0 auto 3rem;
		padding-top: 25.6rem;
		background: url(/reorganization/img/organization-ico.svg) no-repeat 50% 0;
		background-size: 23rem;
		@media screen and (max-width: 743px) {
			max-width: 28rem;
			margin-bottom: 2rem;
			padding-top: 14rem;
			background-size: 12rem;
		}
	}
	.course {
		width: fit-content;
		margin-inline: auto;
		padding: 0.2em .8em;
		background-color: #fff;
		color: var(--color-blue);
		font-weight: 700;
		font-size: 2.4rem;
		line-height: 1.5;
		display: flex;
		justify-content: center;
		flex-wrap: wrap;
		text-align: center;
		& > li:not(:last-child)::after {
			content: "£¯";
		}
		@media screen and (max-width: 743px) {
			width: auto;
			margin-inline: 5rem;
			font-size: 1.6rem;
		}
	}
	.img {
		position: relative;
		z-index: 1;
		a {
			display: flex;
			justify-content: center;
			align-items: center;
			height: 86.7rem;
			padding-bottom: 2rem;
			text-decoration: none;
			@media screen and (max-width: 1340px) {
				height: calc(86.7rem * 1200 / 1300);
			}
			@media screen and (max-width: 1220px) {
				height: calc(86.7rem * 1000 / 1300);
			}
			@media screen and (max-width: 743px) {
				height: 25rem;
			}
			img {
				max-width: 132rem;
				image-rendering: auto;
				@media screen and (max-width: 1340px) {
					max-width: 1200px;
				}
				@media screen and (max-width: 1220px) {
					max-width: 1000px;
				}
				@media screen and (max-width: 743px) {
					max-width: 37rem;
				}
			}
			.arrow {
				position: absolute;
				right: 10rem;
				bottom: 5rem;
				width: 9.4rem;
				height: 9.4rem;
				background-color: #fff;
				border-radius: 100%;
				box-shadow: .7rem .7rem .5rem rgba(0,0,0,0.1);
				@media screen and (max-width: 743px) {
					right: 1.5rem;
					bottom: 1.5rem;
					width: 5rem;
					height: 5rem;
				}
				&::before,
				&::after {
					content: "";
					position: absolute;
					top: calc(50% - .25rem);
					right: 0;
					left: 0;
					width: 60%;
					margin-inline: auto;
					border-top: .5rem solid var(--color-theme);
				}
				@media screen and (max-width: 743px) {
					&::before,
					&::after {
						top: calc(50% - .15rem);
						border-top-width: 0.3rem;
					}
				}
				&::after {
					transform: rotate(90deg);
				}
			}
		}
	}
	.lead {
		max-width: 74rem;
		margin-inline: auto;
		padding-block: 7rem;
		@media screen and (max-width: 743px) {
			max-width: 32rem;
			padding-block: 4rem;
		}
	}
}


/* en_title
====================================================================== */
#reorganization .en_title {
	padding-block: 9rem 5rem;
	text-align: center;
	color: var(--color-blue);
	font-size: 3.6rem;
	line-height: 1.5;
	@media screen and (max-width: 743px) {
		padding-block: 4.5rem 3rem;
		font-size: 2rem;
	}
	.en {
		margin-bottom: 1rem;
		font-size: 9.8rem;
		line-height: 1;
		color: #c6e0f1;
		font-weight: 300;
		letter-spacing: 0.05em;
		@media screen and (max-width: 743px) {
			font-size: 5rem;
			&.-sp_s {
				font-size: 4.5rem;
				letter-spacing: 0;
			}
		}
	}
}


/* organization-section
====================================================================== */
#reorganization .organization-section {
	margin-bottom: 10rem;
	@media screen and (max-width: 743px) {
		margin-bottom: 0;
	}
	.contents_wrap {
		background: url(/reorganization/img/organization-bg.jpg) no-repeat 50% 0;
		background-size: max(100%, 200rem);
		@media screen and (max-width: 743px) {
			background-size: 80rem;
		}
		.contents {
			position: relative;
			padding: 4rem 6rem 8rem;
			z-index: 2;
			@media screen and (max-width: 743px) {
				padding: 3rem var(--sp-base-padding) 7rem;
			}
			&::before {
				content: "";
				position: absolute;
				top: 0;
				right: 0;
				left: 0;
				bottom: 0;
				background: linear-gradient(to bottom, #009fe8 0%, #20b7d7 25%, #3ecdc6 100%);
				opacity: 0.5;
				z-index: -1;
			}
		}
	}
	.points {
		margin-bottom: 14rem;
		color: #fff;
		font-weight: 700;
		@media screen and (max-width: 743px) {
			margin-bottom: 6rem;
		}
		h3 {
			margin-bottom: 3rem;
			text-align: center;
			font-size: 3rem;
			line-height: 1.5;
			@media screen and (max-width: 743px) {
				margin-bottom: 2rem;
				font-size: 2rem;
			}
		}
		ul {
			width: fit-content;
			margin-inline: auto;
			font-size: 1.8rem;
			line-height: 1.5;
			@media screen and (max-width: 743px) {
				font-size: 1.4rem;
			}
			li {
				position: relative;
				margin-bottom: 1em;
				padding-left: 1.2em;
				&::before {
					content: "??";
					position: absolute;
					top: 0;
					left: 0;
				}
			}
		}
	}
	.organization_name {
		margin-bottom: 4rem;
		text-align: center;
		font-size: 6.6rem;
		line-height: 1.3;
		font-weight: 700;
		color: #fff;
		@media screen and (max-width: 743px) {
			margin-bottom: 3rem;
			font-size: 4rem;
		}
		.kari {
			display: block;
			font-size: 2.4rem;
			@media screen and (max-width: 743px) {
				font-size: 1.6rem;
			}
		}
	}
	.year {
		position: relative;
		padding: 4rem 6rem;
		background-color: #fff;
		text-align: center;
		@media screen and (max-width: 743px) {
			padding: 2rem var(--sp-base-padding);
		}
		& + .year {
			margin-top: 7rem;
			@media screen and (max-width: 743px) {
				margin-top: 4rem;
			}
			&::before {
				content: "";
				position: absolute;
				right: 0;
				left: 0;
				top: -4.6rem;
				width: 4.8rem;
				height: 2.4rem;
				margin-inline: auto;
				background-color: #0075c1;
				clip-path: polygon(0 0, 100% 0, 50% 100%);
			}
			@media screen and (max-width: 743px) {
				&::before {
					top: -3rem;
					width: 4rem;
					height: 2rem;
				}
			}
		}
		h3 {
			color: var(--color-blue);
			font-size: 3.3rem;
			line-height: 1.5;
			@media screen and (max-width: 743px) {
				font-size: 2rem;
			}
		}
		.lead {
			font-size: 4rem;
			line-height: 1.5;
			font-weight: 600;
			letter-spacing: 0.04em;
			@media screen and (max-width: 743px) {
				margin-top: 0.1em;
				font-size: 2.6rem;
				line-height: 1.3;
			}
		}
	}
	.course-block {
		margin-top: 4rem;
		@media screen and (min-width: 744px), print {
			display: flex;
			flex-wrap: wrap;
			gap: 1.8rem;
		}
		@media screen and (max-width: 743px) {
			margin-top: 2rem;
		}
	}
	.course {
		&.-c1 {
			--course-color: #34a2dc;
			--course-color-light: #c5e4f5;
			--course-ico: url(/reorganization/img/course-ico1.svg);
		}
		&.-c2 {
			--course-color: #f39a16;
			--course-color-light: #fce6c6;
			--course-ico: url(/reorganization/img/course-ico2.svg);
		}
		&.-c3 {
			--course-color: #94c646;
			--course-color-light: #e2f0cd;
			--course-ico: url(/reorganization/img/course-ico3.svg);
		}
		&.-c4 {
			--course-color: #e51f83;
			--course-color-light: #fbe0ee;
			--course-ico: url(/reorganization/img/course-ico4.svg);
		}
		border: 1px solid var(--course-color);
		text-align: left;
		@media screen and (min-width: 744px), print {
			width: calc((100% - 1.8rem) / 2);
			display: flex;
			flex-direction: column;
		}
		@media screen and (max-width: 743px) {
			&:not(:last-child) {
				margin-bottom: 2rem;
			}
		}
		h4 {
			position: relative;
			padding: calc(1.4rem - 1px) 0 1.4rem 8rem;
			background-color: var(--course-color);
			color: #fff;
			font-size: 2.6rem;
			line-height: 1.5;
			@media screen and (max-width: 743px) {
				padding: 1rem 0 1rem 5rem;
				font-size: 2rem;
				letter-spacing: 0.1em;
				.-c1 & {
					letter-spacing: 0;
				}
			}
			&::before {
				content: "";
				position: absolute;
				left: 1.2rem;
				top: calc(50% - 2.6rem);
				width: 5.2rem;
				height: 5.2rem;
				background: var(--course-ico) no-repeat 50%;
				background-size: cover;
			}
			@media screen and (max-width: 743px) {
				&::before {
					width: 4rem;
					height: 4rem;
					top: calc(50% - 2rem);
					left: .5rem;
				}
			}
		}
		h4 ~ * {
			padding: 2rem 2.9rem;
			@media screen and (max-width: 743px) {
				padding: 1.5rem var(--sp-base-padding) 2rem;
			}
		}
		.core {
			padding-top: 0;
			@media screen and (min-width: 744px), print {
				margin-top: auto;
			}
			dt {
				margin-bottom: 2rem;
				padding: 0.4em;
				background-color: var(--course-color-light);
				text-align: center;
				font-weight: 500;
				font-size: 1.8rem;
				line-height: 1.5;
				@media screen and (max-width: 743px) {
					margin-bottom: 1.2rem;
					font-size: 1.5rem;
					letter-spacing: 0.1em;
				}
			}
			ul {
				font-size: 1.2rem;
				line-height: 1.5;
				columns: 2;
				li {
					position: relative;
					padding-left: 1em;
					letter-spacing: 0.05em;
					&::before {
						content: "?";
						position: absolute;
						top: 0;
						left: 0;
						font-feature-settings: normal;
					}
				}
			}
		}
		.link {
			a {
				position: relative;
				display: block;
				padding-block: .7rem;
				padding-left: 1.2em;
				font-size: 2.3rem;
				line-height: 1.5;
				font-weight: 500;
				text-decoration: none;
				@media screen and (max-width: 743px) {
					font-size: 1.6rem;
					letter-spacing: 0.1em;
				}

				&.-l1 {
					--link-color :#009dc6;
				}
				&.-l2 {
					--link-color :#daad00;
				}
				&.-l3 {
					--link-color :#df752f;
				}
				&.-l4 {
					--link-color :#009b63;
				}
				&.-l5 {
					--link-color :#38b5aa;
				}
				&.-l6 {
					--link-color :#ba79b1;
				}
				&.-l7 {
					--link-color :#da5283;
				}
				&.-l8 {
					--link-color :#00aed4;
				}
				&.-l9 {
					--link-color :#fff100;
				}
				&::before {
					content: "";
					position: absolute;
					width: .9em;
					height: .9em;
					left: 0;
					top: calc(.5lh - .9em / 2 + .7rem);
					background-color: var(--link-color);
					border-radius: 100%;
				}
				.icon {
					position: absolute;
					right: 0;
					top: calc(50% - 3.4rem / 2);
					width: 3.4rem;
					height: 3.4rem;
					fill: var(--link-color);
					@media screen and (max-width: 743px) {
						right: -1rem;
						top: calc(50% - 2.4rem / 2);
						width: 2.4rem;
						height: 2.4rem;
					}
				}
				@media (hover) {
					&:hover {
						opacity: 0.5;
					}
				}
			}
		}
		&.-c5 {
			padding: 1px;
			border: 0;
			background: linear-gradient(to right, #34a2dc 0%, #94c646 40%, #f39a16 70%, #e51f83 100%);
			@media screen and (min-width: 744px), print {
				width: 100%;
			}
			h4 {
				padding-left: 0;
				background-color: transparent;
				text-align: center;
				font-size: 2.8rem;
				&::before {
					content: none;
				}
				@media screen and (max-width: 743px) {
					font-size: 2rem;
				}
			}
			.link {
				background-color: #fff;
				@media screen and (min-width: 744px), print {
					display: flex;
					gap: calc(1.8rem + 2px + 2.9rem * 2);
					& > * {
						width: 100%;
					}
				}
			}
		}
	}
}

/* fix-bg-block
====================================================================== */
#reorganization .fix-bg-block {
	position: relative;
	clip-path: inset(0);
	&::before {
		content: "";
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		background: url(/reorganization/img/fix-bg.jpg) no-repeat 50% 100%;
		background-size: cover;
		z-index: -1;
	}
}

/* unit-section
====================================================================== */
#reorganization .unit-section {
	position: relative;
	padding-bottom: 8rem;
	z-index: 2;
	@media screen and (max-width: 743px) {
		padding-bottom: 0;
	}
	&::before {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		background: linear-gradient(to top, #009382 0%, #0099b7 25%, #009fe8 100%);
		opacity: .5;
		z-index: -1;
	}
	.en_title {
		padding-bottom: 0;
		color: #fff;
	}

	.unit-cards {
		position: relative;
		padding-block: 9rem;
		@media screen and (max-width: 743px) {
			margin-top: -5rem;
			padding-block: 9rem;
		}
		.card {
			scroll-margin-top: 4rem;
			width: 120rem;
			margin-inline: 2.5rem;
			padding: 4rem 6rem 5.5rem;
			background-color: #fff;
			border-radius: 3rem;
			box-shadow: 1rem 1rem 1rem rgba(0,0,0,0.1);
			@media screen and (max-width: 743px) {
				scroll-margin-top: 2rem;
				width: 92vw;
				margin-inline: 4vw;
				padding: 2rem var(--sp-base-padding) 3rem;
			}

			&.-unit1 {
				--unit-color: #00aed4;
			}
			&.-unit2 {
				--unit-color: #009ec6;
			}
			&.-unit3 {
				--unit-color: #daad00;
			}
			&.-unit4 {
				--unit-color: #df752f;
			}
			&.-unit5 {
				--unit-color: #009b63;
			}
			&.-unit6 {
				--unit-color: #38b5aa;
			}
			&.-unit7 {
				--unit-color: #ba79b1;
			}
			&.-unit8 {
				--unit-color: #da5283;
			}
			&.-unit9 {
				--unit-color: #ffd900;
			}

			.category {
				margin-bottom: 2rem;
				font-size: 2rem;
				line-height: 1.5;
				font-weight: 700;
				&::before {
					content: "¡ñ";
				}
				@media screen and (max-width: 743px) {
					margin-bottom: 1rem;
					font-size: 1.5rem;
				}
			}
			header {
				position: relative;
				@media screen and (min-width: 744px), print {
					height: 15rem;
					display: flex;
					flex-direction: column;
					justify-content: center;
					margin-bottom: 3rem;
					padding-left: 18rem;
					.ico {
						position: absolute;
						left: 0;
						top: calc(50% - 7rem);
						width: 14rem;
					}
					.img {
						position: absolute;
						right: -6rem;
						top: 0;
						width: 49.5rem;
					}
					h3 {
						font-size: 2.6rem;
						line-height: 1.5;
					}
					.en {
						margin-top: 1rem;
						font-size: 1.3rem;
						font-weight: 700;
						letter-spacing: 0.1em;
						color: var(--unit-color);
					}
				}
				@media screen and (max-width: 743px) {
					margin-bottom: 1.5rem;
					text-align: center;
					.ico {
						width: 8rem;
						margin-inline: auto;
					}
					h3 {
						margin-bottom: 1rem;
						font-size: 2rem;
						line-height: 1.5;
					}
					.img {
						img {
							aspect-ratio: 990 / 250;
							object-fit: cover;
						}
					}
					.en {
						position: absolute;
						right: 0;
						left: 0;
						bottom: 0;
						aspect-ratio: 990 / 250;
						display: flex;
						justify-content: center;
						align-items: center;
						color: #fff;
						font-size: 1.2rem;
						letter-spacing: 0.1em;
						font-weight: 700;
					}
				}
			}
			.contents {
				display: flex;
				flex-wrap: wrap;
				.box {
					dd {
						font-size: 1.2rem;
						line-height: 1.75;
						li {
							position: relative;
							padding-left: 1.2em;
							letter-spacing: 0.1em;
							&::before {
								content: "¡ñ";
								position: absolute;
								top: 0;
								left: 0;
								color: var(--unit-color);
							}
						}
					}
				}
				@media screen and (min-width: 744px), print {
					justify-content: space-between;
					.summary {
						width: 100%;
						height: 9rem;
					}
					.box {
						position: relative;
						min-height: 39rem;
						padding: 2.5rem 3rem 1rem;
						z-index: 2;
						&.-room {
							width: 32rem;
						}
						&.-subject {
							width: 32rem;
						}
						&.-keyword {
							width: 40rem;
							padding-inline: 2rem;
						}
						&::before {
							content: "";
							position: absolute;
							top: 0;
							left: 0;
							right: 0;
							bottom: 0;
							background-color: var(--unit-color);
							border-radius: 3rem;
							opacity: 0.1;
							z-index: -1;
						}
						dt {
							margin-bottom: 1.5rem;
							font-weight: 700;
							color: var(--unit-color);
							font-size: 1.8rem;
							text-align: center;
							.-keyword & {
								margin-bottom: 2.5rem;
							}
						}
						dd {
							position: relative;
							display: flex;
							gap: 1em;
							.-pc-abs {
								position: absolute;
								right: 0;
								top: 0;
							}
						}
					}
				}
				@media screen and (max-width: 743px) {
					gap: 2rem;
					& > * {
						width: calc((100% - 2rem) / 2);
					}
					.summary {
						font-size: 1.2rem;
						letter-spacing: 0.1em;
					}
					.box {
						dt {
							position: relative;
							margin-bottom: 1rem;
							padding: 0.2em;
							font-weight: 700;
							color: var(--unit-color);
							font-size: 1.3rem;
							text-align: center;
							letter-spacing: 0.1em;
							&::before {
								content: "";
								position: absolute;
								top: 0;
								left: 0;
								right: 0;
								bottom: 0;
								background-color: var(--unit-color);
								border-radius: 3rem;
								opacity: 0.1;
								z-index: -1;
							}
						}
						li {
							font-size: 1rem;
							letter-spacing: 0;
						}
						&.-keyword {
							dd {
								margin: 2rem -2rem 0;
							}
						}
					}
				}
			}
		}

		.unit-arrow {
			--width: 6.4rem;
			position: absolute;
			width: var(--width);
			height: var(--width);
			top: calc(50% - var(--width) / 2);
			background-color: var(--color-blue);
			border-radius: 100%;
			cursor: pointer;
			z-index: 5;
			@media screen and (max-width: 743px) {
				--width: 6.4rem;
			}
			&::before {
				content: "";
				position: absolute;
				top: 0;
				left: .5rem;
				right: 0;
				bottom: 0;
				margin: auto;
				width: 2.2rem;
				height: 2.8rem;
				background-color: #fff;
				clip-path: polygon(0 0, 100% 50%, 0 100%);
			}
			@media screen and (max-width: 743px) {
				&::before {
					left: 0;
					right: 3rem;
					width: calc(2.2rem * .6);
					height: calc(2.8rem * .6);
				}
			}
			&.l {
				left: calc(50% - 60rem - var(--width) / 2);
				transform: scaleX(-1);
				@media screen and (max-width: 743px) {
					left: calc(var(--width) / 2 * -1 - .5rem);
				}
			}
			&.r {
				right: calc(50% - 60rem - var(--width) / 2);
				@media screen and (max-width: 743px) {
					right: calc(var(--width) / 2 * -1 - .5rem);
				}
			}
			@media (hover) {
				transition: background var(--transition);
				&:hover {
					background-color: var(--color-theme);
				}
			}
		}
		.unit-pagination {
			position: absolute;
			right: 0;
			left: 0;
			bottom: 0.5rem;
			display: flex;
			justify-content: center;
			@media screen and (max-width: 743px) {
				bottom: 4rem;
			}
			.swiper-pagination-bullet {
				position: relative;
				width: 3rem;
				height: 3rem;
				margin: 0;
				opacity: 1;
				background: transparent;
				&::before {
					content: "";
					position: absolute;
					top: 0.8rem;
					right: 0.8rem;
					left: 0.8rem;
					bottom: 0.8rem;
					background-color: #fff;
					border-radius: 100%;
					transition: background var(--transition);
				}
				&.swiper-pagination-bullet-active::before {
					background-color: var(--color-blue);
				}
			}
		}
	}
}

/* bottom-block
====================================================================== */
#reorganization .bottom-block {
	margin-top: 9rem;
	padding: 6rem;
	background-color: #fff;
	@media screen and (max-width: 743px) {
		margin: 5rem 1rem 0;
		padding: 4rem var(--sp-base-padding);
	}
}

/* admission-policy-section
====================================================================== */
#reorganization .admission-policy-section {
	header {
		margin-bottom: 4rem;
		text-align: center;
		font-size: 2rem;
		line-height: 1.5;
		@media screen and (max-width: 743px) {
			margin-bottom: 3rem;
			font-size: 1.6rem;
		}
		.en {
			margin-bottom: 0.5rem;
			font-size: 4.2rem;
			color: var(--color-green);
			letter-spacing: 0.05em;
			font-weight: 500;
			@media screen and (max-width: 743px) {
				font-size: 3rem;
			}
		}
	}
	.policy {
		font-size: 1.7rem;
		@media screen and (max-width: 743px) {
			font-size: 1.4rem;
		}
		li:not(:last-child) {
			margin-bottom: 1.5rem;
			padding-bottom: 1.5rem;
			border-bottom: 1px solid var(--color-green);
			letter-spacing: 0.1em;
		}
	}
}

/* information-section
====================================================================== */
#reorganization .information-section {
	margin-top: 9rem;
	@media screen and (max-width: 743px) {
		margin-top: 5rem;
	}
	* {
		letter-spacing: 0.05em;
	}
	h2 {
		margin-bottom: 4rem;
		text-align: center;
		font-size: 3.2rem;
		color: var(--color-green);
		@media screen and (max-width: 743px) {
			margin-bottom: 2rem;
			font-size: 2rem;
			line-height: 1.5;
		}
	}
	.information {
		& + .information {
			margin-top: 5rem;
			@media screen and (max-width: 743px) {
				margin-top: 4rem;
			}
		}
		h3 {
			margin-bottom: 1rem;
			text-align: center;
			font-size: 2.7rem;
			@media screen and (max-width: 743px) {
				font-size: 1.9rem;
			}
		}
		.lead {
			margin-bottom: 2rem;
			text-align: center;
			font-size: 1.2rem;
			@media screen and (max-width: 743px) {
				margin-bottom: 1rem;
				text-align: left;
				font-size: 1.1rem;
			}
		}
	}
	.table_head {
		border: 1px solid var(--color-green);
		border-bottom-width: 0;
		padding: 0.8rem 0;
		background-color: #c7e6e9;
		font-size: 1.25rem;
		line-height: 1.2;
		font-weight: 500;
		text-align: center;
		@media screen and (max-width: 743px) {
			margin-bottom: 0.3rem;
			border-bottom-width: 1px;
		}
		& ~ .table_head {
			margin-top: 1.5rem;
		}
	}
	.table {
		@media screen and (max-width: 743px) {
			margin-inline: calc(var(--sp-base-padding) * -1);
			.js-scrollable {
				overflow-x: auto;
				padding-bottom: 1rem;
				.scroll {
					padding-inline: var(--sp-base-padding);
					.-number & {
						width: calc(108rem + var(--sp-base-padding) * 2);
					}
					.-date &,
					.-scoring & {
						width: calc(53rem + var(--sp-base-padding) * 2);
					}
				}
			}
			.scroll-hint-icon {
				top: calc(50% - 45px);
				z-index: 5;
			}
		}
		table {
			width: 100%;
			table-layout: fixed;
			border-collapse: collapse;
			border: 1px solid var(--color-green);
			* {
				letter-spacing: 0;
			}
			:is(th, td) {
				padding: 0.5rem 0;
				border: 1px solid var(--color-green);
				text-align: center;
				vertical-align: middle;
				line-height: 1.2;
				font-weight: 500;
				.gray & {
					background-color: #eeeef0;
				}
			}
			thead {
				th {
					padding: 0.8rem 0;
					white-space: nowrap;
					background-color: #c7e6e9;
					font-size: 1.25rem;
					.narrow1 {
						display: block;
						margin-inline: -1rem;
						letter-spacing: -1px;
						transform: scaleX(.95);
					}
				}
			}
			tbody {
				th {
					font-size: 1.25rem;
				}
				td {
					font-size: 1.1rem;
					._ff_en {
						font-size: 1.5rem;
					}
				}
			}
			.-number & {
				thead {
					th {
						padding: 0;
						height: 2.4rem;
						font-size: 1.2rem;
						tr:first-child & {
							&:first-child {
								width: calc(170 / 1080 * 100%);
								font-size: 1.6rem;
								@media screen and (max-width: 743px) {
									font-size: 1.5rem;
								}
							}
						}
					}
				}
				tbody {
					th {
						font-size: 1.8rem;
						@media screen and (max-width: 743px) {
							font-size: 1.6rem;
						}
					}
					td {
						padding: 1.5rem 0;
						font-size: 1.6rem;
						._ff_en {
							font-size: 2rem;
						}
						.unit {
							font-size: 1.1rem;
						}
					}
				}
			}
			.-date & {
				table-layout: auto;
				thead {
					th {
						&:nth-child(1) {
							width: calc(140 / 530 * 100%);
						}
						&:nth-child(2) {
							width: calc(90 / 530 * 100%);
						}
						&:nth-child(3),
						&:nth-child(4) {
							width: calc(64 / 530 * 100%);
						}
						/* &:nth-child(5) {
							width: calc(160 / 530 * 100%);
						} */
					}
				}
				tbody {
					th {
						&.v {
							width: calc(30 / 530 * 100%);
							span {
								writing-mode: vertical-rl;
								white-space: nowrap;
							}
						}
						&:has(.big_brackets) {
							padding-block: 1rem;
						}
						.big_brackets {
							position: relative;
							width: fit-content;
							margin-top: 0.3rem;
							margin-inline: auto;
							padding-inline: 1rem;
							font-size: 1.1rem;
							&::before,
							&::after {
								content: "";
								position: absolute;
								top: 0;
								bottom: 0;
								left: 0;
								right: 0;
								pointer-events: none;
								background: url(/reorganization/img/point-brackets.svg) no-repeat 100%;
								background-size: auto 100%;
							}
							&::before {
								transform: scaleX(-1);
							}
						}
						.s {
							display: block;
							margin-top: 0.3rem;
							font-size: 1.1rem;
						}
					}
					td {
						height: 4rem;
						tr:nth-child(1) &,
						tr:nth-child(2) & {
							height: auto;
						}
					}
				}
			}
			.-scoring & {
				tbody {
					.head {
						.index {
							overflow: hidden;
							padding: 0;
							width: 12rem;
							height: 5rem;
							ul {
								position: relative;
								height: 5rem;
								z-index: 2;
								&::before {
									content: "";
									position: absolute;
									top: 0;
									left: 0;
									width: 100%;
									height: 100%;
									background-color: #eeeef0;
									clip-path: polygon(0 0, 100% 100%, 0 100%);
								}
								&::after {
									content: "";
									position: absolute;
									top: 0;
									left: 0;
									width: 100%;
									border-top: 1px solid var(--color-green);
									transform: skewY(22.62deg);
									transform-origin: top left;
								}
								.col {
									position: absolute;
									bottom: 0.5em;
									left: 0.5rem;
								}
								.row {
									position: absolute;
									top: 0.8rem;
									left: calc(0.5rem + 50%);
								}
							}
						}
					}
					td {
						height: 3.6rem;
					}
				}
			}
		}
	}
	.table_notes {
		margin-top: 2rem;
		font-size: 1.2rem;
		line-height: calc(21 / 12);
		@media screen and (max-width: 743px) {
			margin-top: 1rem;
			font-size: 1.1rem;
		}
		&.-kome-num {
			li {
				position: relative;
				padding-left: 2em;
				& > span:first-child {
					position: absolute;
					top: 0;
					left: 0;
				}
			}
		}
	}
	.exam-venue {
		margin-top: 3rem;
		@media screen and (min-width: 744px), print {
			display: flex;
			gap: 2rem;
		}
		@media screen and (max-width: 743px) {
			margin-top: 2rem;
			margin-bottom: 3rem;
		}
		h4 {
			display: flex;
			justify-content: center;
			align-items: center;
			border: 1px solid var(--color-green);
			text-align: center;
			font-size: 2rem;
			line-height: 1.3;
			@media screen and (min-width: 744px), print {
				width: 11.2rem;
				flex-shrink: 0;
			}
			@media screen and (max-width: 743px) {
				margin-bottom: 1rem;
				padding: 0.8rem;
				font-size: 1.6rem;
			}
		}
		.venue {
			flex-grow: 1;
			dl {
				display: flex;
				gap: 2rem;
				font-size: 1.7rem;
				line-height: 1.5;
				@media screen and (max-width: 743px) {
					font-size: 1.4rem;
					gap: 1.5rem;
				}
				&:not(:last-child) {
					margin-bottom: 0.5rem;
					padding-bottom: 0.5rem;
					border-bottom: 1px solid var(--color-green);
				}
				dt {
					position: relative;
					padding-left: 2.4rem;
					width: calc((1em + .05em) * 7);
					text-align: justify;
					text-align-last: justify;
					box-sizing: content-box;
					white-space: nowrap;
					@media screen and (max-width: 743px) {
						padding-left: 2rem;
					}
					&::before {
						content: "";
						position: absolute;
						top: calc(50% - .8rem);
						left: 0.5rem;
						width: 1rem;
						height: 1.6rem;
						background-color: #a1d6da;
						clip-path: polygon(0 0, 100% 50%, 0 100%);
					}
					@media screen and (max-width: 743px) {
						&::before {
							left: 0.3rem;
							width: 0.8rem;
							height: 1.4rem;
						}
					}
				}
				ul {
					display: flex;
					font-weight: 700;
					li:not(:last-child)::after {
						content: "£¯";
					}
				}
			}
		}
	}
	.column {
		@media screen and (min-width: 744px), print {
			display: flex;
			gap: 2rem;
			& > * {
				width: 100%;
			}
		}
	}
	.ippan {
		@media screen and (max-width: 743px) {
			font-size: 1.2rem;
			* {
				letter-spacing: 0;
			}
		}
		& > * + * {
			margin-top: 2rem;
			@media screen and (max-width: 743px) {
				margin-top: 1rem;
			}
		}
		.-s1 {
			width: 14.4rem;
			@media screen and (max-width: 743px) {
				width: 6rem;
			}
		}
		.-s3 {
			width: 8.4rem;
			@media screen and (max-width: 743px) {
				width: 4rem;
			}
		}
		.-s2, .-s4 {
			flex-grow: 1;
		}
		.column {
			display: flex;
			gap: 1rem;
			@media screen and (max-width: 743px) {
				gap: .3rem;
			}
			.column_item:first-child {
				width: calc(840 / 1080 * 100%);
				flex-shrink: 0;
				@media screen and (max-width: 743px) {
					width: 68%;
				}
			}
			.column_item:last-child {
				flex-grow: 1;
			}
		}

		dt {
			padding: 0.3em;
			background-color: #23b6b0;
			color: #fff;
			text-align: center;
			font-weight: 500;
			line-height: 1.5;
		}
		dd {
			padding: 0.3em;
			background-color: #c7e6e9;
			text-align: center;
			font-weight: 500;
			line-height: 1.5;
		}

		.title {
			@media screen and (max-width: 743px) {
				font-size: 1.1rem;
			}
			dt {
				padding: 1rem 0;
			}
			dd {
				padding: 0;
				background-color: #e4f3f6;
				border-left: 1px solid #23b6b0;
				border-right: 1px solid #23b6b0;
				ul {
					display: flex;
					li {
						padding: 1rem 0;
					}
					li + li {
						border-left: 1px solid #23b6b0;
					}
				}
			}
		}
		.ippan_table {
			width: 100%;
			height: 100%;
			border-collapse: collapse;
			:is(th, td) {
				padding: 0.5em 1em;
				border: 1px solid #23b6b0;
				vertical-align: middle;
				line-height: 1.5;
				@media screen and (max-width: 743px) {
					padding: 0.5em 0.5em;
				}
			}
			th {
				padding-inline: 0;
				font-weight: 400;
				text-align: center;
			}
			td:only-child {
				padding-inline: 0;
				text-align: center;
			}
		}
	}
}

@media screen {
	#reorganization .mov_show.fadeup {
		opacity: 0;
		transform: translateY(4rem);
	}
	#reorganization.lead_after-ok .mov_show.fadeup.showed {
		transition: transform 0.5s cubic-bezier(0.5, 1, 0.89, 1), opacity 0.5s linear;
		opacity: 1;
		transform: translateY(0);
	}

	#reorganization .mov_show.fadezoom {
		opacity: 0;
		transform: scale(.3);
	}
	#reorganization.lead_after-ok .mov_show.fadezoom.showed {
		transition: transform 0.7s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.5s linear;
		opacity: 1;
		transform: scale(1);
	}

	#reorganization .main-head .point {
		opacity: 0;
	}
	#reorganization.show-ok .main-head .point {
		transition: opacity 0.7s linear;
		opacity: 1;
	}
	#reorganization .main-head h1 span {
		opacity: 0;
		transform: translateY(1rem);
	}
	#reorganization.show-ok .main-head h1 span {
		transition: transform 0.7s cubic-bezier(0.33, 1, 0.68, 1), opacity 0.7s linear;
		opacity: 1;
		transform: translateY(0);
	}
	#reorganization.show-ok .main-head h1 span:nth-child(2) {
		transition-delay: 0.5s;
	}
	#reorganization.show-ok .main-head h1 span:nth-child(3) {
		transition-delay: 1s;
	}
	#reorganization .main-head .en {
		opacity: 0;
	}
	#reorganization.show-ok .main-head .en {
		transition: opacity 0.7s linear 1.5s;
		opacity: 1;
	}
}


.pswp {
  opacity: 0;
  animation: fadeIn 0.4s ease forwards;
}

/* ¥¢¥Ë¥á©`¥·¥ç¥ó¶¨Áx */
@keyframes fadeIn {
  from {
    opacity: 0;
    transform: scale(0.98);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}