@charset "utf-8";

/* CSS Document */
/* ----------------------------------------------------------------------------------------------------
 * Set
@media screen and (max-width: 1920px) {}
@media screen and (max-width: 1536px) {}
@media screen and (max-width: 1280px) {}
@media print, screen and (max-width: 1024px) {}
@media screen and (max-width: 560px) {}
---------------------------------------------------------------------------------------------------- */
:root {

	--color-default: #212121;

	--color-white: #FFFFFF;
	--color-black: #212121;
	--color-lightblue: #c7e1f3;
	--color-red: #e9537e;
	--color-red-alpha: rgba(233, 83, 126, 0.15);
	--color-red-dark: #a7375a;
	--color-orangered: #ec6b60;
	--color-blue: #008ccf;
	--color-blue-alpha: rgba(0, 140, 207, 0.15);
	--color-blue-dark: #006a9e;
	--color-blue-light: #00b9ef;
	--color-green: #42b153;
	--color-green-alpha: rgba(66, 177, 83, 0.15);
	--color-green-dark: #2c863c;
	--color-green-light: #c4d700;
	--color-yellow: #fff462;
	--color-yellow-light: #ffed00;

	--color-orange: #ed6d2b;
	--color-orange-dark: #b4511b;
	--color-orange-dark02: #e83820;
	--color-orange-light: #f39800;
	--color-navy: #406bb3;
	--color-navy-alpha: #dce4f4;
	--color-navy-dark: #dce4f4;
	--color-bluegreen: #1eb8cb;
	--color-bluegreen-dark: #0f93a2;
	--color-pink: #ee87b4;
	--color-darkpurple: #4856a4;
	--color-darkpurple-dark: #2c3c7d;
	--color-purple: #a03990;
	--color-purple-alpha: rgba(160, 57, 144, 0.15);
	--color-purple-dark: #6b1b60;
	--color-gray: #e6e6e6;




	--ease-fast: all 0.08s ease;
	--ease-normal: all 0.16s ease;
	--ease-slow: all 0.24s ease;

	--size-normal: 1em;
	--size-large: 1.13em;
	--size-xlarge: 1.27em;
	--size-xxlarge: 1.42em;
	--size-xxxlarge: 1.60em;
	--size-xxxxlarge: 1.80em;
	--size-xxxxxlarge: 2.03em;
	--size-small: 0.89em;
	--size-xsmall: 0.79em;
	--size-xxsmall: 0.70em;
	--size-xxxsmall: 0.62em;

	--weight-normal: 500;
	--weight-bold: 700;
	--weight-xbold: 900;

	--line-height-xnarrow: 1.4;
	--line-height-narrow: 1.6;
	--line-height-normal: 1.8;
	--line-height-wide: 2.0;

	--border-radius-normal: 0.8rem;
	--border-radius-narrow: 0.4rem;
	--border-radius-wide: 1.2rem;


	--padding-narrow: 4.8em;
	--padding-normal: 6.4em;
	--padding-wide: 8.0em;

	--border-width-narrow: 0.08rem;
	--border-width-normal: 0.12rem;
	--border-width-wide: 0.16rem;
	--border-width-xwide: 0.20rem;
}

/* ----------------------------------------------------------------------------------------------------
 * Common
---------------------------------------------------------------------------------------------------- */
html,
body {
	width: 100%;
	text-align: center;
	color: var(--color-default);
	font-family: "Roboto", "Noto Sans JP", '游ゴシック体', YuGothic, '游ゴシック Medium', 'Yu Gothic Medium', '游ゴシック', 'Yu Gothic', sans-serif;
	font-size: 19px;
	font-weight: var(--weight-normal);
	line-height: var(--line-height-normal);
	letter-spacing: 0.02em;
	overflow-wrap: break-word;
}

*,
*::before,
*::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
	font-family: inherit;
	font-weight: inherit;
}

body.loadAct * {
	transition: none !important;
}

.noselect,
.noselect * {
	-ms-user-select: none;
	-moz-user-select: -moz-none;
	-khtml-user-select: none;
	-webkit-user-select: none;
	user-select: none;
}

h1,
h2,
h3,
h4,
th,
small {
	font-weight: var(--weight-normal);
	font-size: 100%;
}

a,
button {
	outline: none;
	transition: var(--ease-normal);
}

*:focus {
	outline: none;
}

a {
	color: var(--color-default);
}

a:not(.not):hover {
	color: var(--color-red);
}

a:not(.not) .photo,
a:not(.not) .image,
a:not(.not) img {
	transition: var(--ease-normal);
}

a:not(.not):hover .photo,
a:not(.not):hover .image,
a:not(.not):hover img {
	filter: brightness(64%);
}

ol,
ul {
	list-style: none;
}

img,
svg {
	max-width: 100%;
	height: auto;
	margin: 0;
	padding: 0;
	vertical-align: middle;
}

header,
footer,
div,
ul,
li,
h1,
h2,
h3,
nav,
button,
blockquote,
dt,
dd,
figure,
section {
	position: relative;
}

p,
a,
span {
	position: relative;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

.clear::after {
	content: '';
	display: block;
	clear: both;
}

.none {
	display: none;
}

p {
	margin-bottom: 1.6em;
}

p:not(.not):last-child,
ul:not(.not):last-child,
ol:not(.not):last-child,
li:not(.not):last-child,
figure:not(.not):last-child,
table:not(.not):last-child,
blockquote:not(.not):last-child {
	margin-bottom: 0 !important;
}

mark {
	background-color: var(--color-yellow);
}

label {
	display: inline-block;
}

sup {
	font-weight: var(--weight-normal);
	font-size: var(--size-xxsmall);
	padding: 0 0.2em;
	vertical-align: middle;
}

strong,
.text-bold {
	font-weight: var(--weight-bold);
}

cite {
	font-style: normal;
}

.text-normal {
	font-weight: var(--weight-normal);
}

.text-underline {
	text-decoration: underline;
}

.text-small {
	font-size: var(--size-small);
}

.text-xsmall {
	font-size: var(--size-xsmall);
}

.text-xxsmall {
	font-size: var(--size-xxsmall);
}

.text-xxxsmall {
	font-size: var(--size-xxxsmall);
}

.text-large {
	font-size: var(--size-large);
}

.text-xlarge {
	font-size: var(--size-xlarge);
}

.text-xxlarge {
	font-size: var(--size-xxlarge);
}

.text-xxxlarge {
	font-size: var(--size-xxxlarge);
}

.text-gray {
	color: var(--color-darkgray);
}

.text-red {
	color: var(--color-red);
}

.text-white {
	color: var(--color-white);
}

.text-vertical {
	writing-mode: vertical-rl;
	text-align: left;
}

.in-center {
	text-align: center !important;
}

.in-right {
	text-align: right !important;
}

.in-left {
	text-align: left !important;
}

.pos-center {
	display: flex;
	justify-content: center;
	align-items: center;
}


.nowrap {
	white-space: nowrap;
}

.block {
	display: block;
}

.inline-block {
	display: inline-block;
}

.inline {
	display: inline;
}

.block-note {
	padding-left: 1em;
	text-indent: -1em;
}

.block-note::before {
	content: '※';
}

.bg-white {
	background-color: var(--color-white);
}

.bg-gray {
	background-color: var(--color-gray);
}

.margin-bt0 {
	margin-bottom: 0 !important;
}

.margin-bt02 {
	margin-bottom: 0.2em !important;
}

.margin-bt04 {
	margin-bottom: 0.4em !important;
}

.margin-bt06 {
	margin-bottom: 0.6em !important;
}

.margin-bt08 {
	margin-bottom: 0.8em !important;
}

.margin-bt10 {
	margin-bottom: 1.0em !important;
}

.margin-bt12 {
	margin-bottom: 1.2em !important;
}

.margin-bt14 {
	margin-bottom: 1.4em !important;
}

.margin-bt16 {
	margin-bottom: 1.6em !important;
}

.margin-bt18 {
	margin-bottom: 1.8em !important;
}

.margin-bt20 {
	margin-bottom: 2.0em !important;
}

.list-disc {
	list-style: disc;
	margin-left: 1.4em;
	margin-bottom: 1.6em;
}

.list-decimal {
	list-style: decimal;
	margin-left: 1.6em;
	margin-bottom: 1.6em;
}

input[type="text"],
input[type="number"],
input[type="email"],
input[type="tel"],
input[type="password"],
textarea {
	border: 1px solid var(--color-default) !important;
	background-color: var(--color-white) !important;
	line-height: var(--line-height-narrow) !important;
	border-radius: var(--border-radius-narrow) !important;
	color: var(--color-default) !important;
	padding-left: 0.6em !important;
	padding-right: 0.6em !important;
	padding-top: 0.4em !important;
	padding-bottom: 0.4em !important;
	max-width: 100% !important;
	transition: var(--ease-normal) !important;
	display: inline-block !important;
	font-size: inherit !important;
}

textarea {
	width: 100% !important;
	height: 12.0em !important;
}

input[type="text"]:focus,
input[type="number"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
input[type="password"]:focus,
textarea:focus {
	box-shadow: inset 0px 0px 4px rgba(0, 0, 0, 0.16);
	background-color: var(--color-gray) !important;
}

select {
	border: 1px solid var(--color-default) !important;
	background-color: var(--color-white) !important;
	line-height: var(--line-height-narrow) !important;
	border-radius: var(--border-radius-narrow) !important;
	color: var(--color-default) !important;
	padding-left: 0.6em !important;
	padding-right: 0.6em !important;
	padding-top: 0.6em !important;
	padding-bottom: 0.6em !important;
	max-width: 100% !important;
	transition: var(--ease-normal) !important;
	display: inline-block !important;
	font-size: inherit !important;
}

.pd {
	margin-left: auto;
	margin-right: auto;
	text-align: left;
	padding-left: 8rem;
	padding-right: 8rem;
	width: 100%;
	max-width: 88rem;
}

.pd.narrow {
	max-width: 72rem;
}

.pd.wide {
	max-width: 104rem;
}

.pd.full {
	max-width: none;
}

.show-tb,
.show-sp {
	display: none !important;
	/* default inline */
}

.hide-tb,
.hide-sp {}

@media screen and (max-width: 1920px) {

	html,
	body {
		font-size: 16px;
	}
}

@media screen and (max-width: 1280px) {
	.pd {
		padding-left: 4.8rem;
		padding-right: 4.8rem;
	}
}

@media print,
screen and (max-width: 1024px) {
	.pd {
		padding-left: min(4.8rem, 9.6vw);
		padding-right: min(4.8rem, 9.6vw);
	}

	.show-tb {
		display: inline !important;
	}

	.show-tb.block {
		display: block !important;
	}

	.show-tb.inline-block {
		display: inline-block !important;
	}

	.hide-tb {
		display: none;
	}
}

@media screen and (max-width: 560px) {

	html,
	body {
		font-size: 15px;
	}

	.show-sp {
		display: inline !important;
	}

	.show-sp.block {
		display: block !important;
	}

	.show-sp.inline-block {
		display: inline-block !important;
	}

	.hide-sp {
		display: none;
	}
}

#wrap {
	width: 100%;
	overflow: clip;
	display: grid;
	min-height: 100vh;
	min-height: 100lvh;
}


@media screen and (max-width: 1920px) {}

@media screen and (max-width: 1536px) {}

@media screen and (max-width: 1280px) {}

@media print,
screen and (max-width: 1024px) {}

@media screen and (max-width: 560px) {}

/* ----------------------------------------------------------------------------------------------------
 * Common (add)
---------------------------------------------------------------------------------------------------- */


/* ----------------------------------------------------------------------------------------------------
 * Loading
---------------------------------------------------------------------------------------------------- */


/* ----------------------------------------------------------------------------------------------------
 * Header
---------------------------------------------------------------------------------------------------- */

#contents {
	padding-left: 12em;
	min-height: 100vh;
	min-height: 100lvh;
	display: grid;
	grid-template-rows: 1fr auto;

}

header {
	position: fixed;
	top: 0;
	left: 0;
	height: 100vh;
	height: 100lvh;
	width: 12em;
	z-index: 10000;
}

header>.inner {
	background-color: var(--color-white);
	border-right: var(--border-width-normal) solid var(--color-black);
	height: 100%;
	display: grid;
	align-items: center;
	padding: 0 1.6em;
	z-index: 10;
}

header .sns {
	position: absolute;
	left: 0;
	bottom: 1.6em;
	width: 100%;
	display: flex;
	justify-content: center;
	gap: 0.8em;
}

header .sns img {
	width: 2.0em;
}

header nav {
	position: absolute;
	top: 0;
	background-color: var(--color-black);
	right: 0;
	height: 100%;
	white-space: nowrap;
	display: grid;
	align-items: center;
	text-align: left;
	padding: 2.0em;
	transition: all 0.32s cubic-bezier(0.33, 1, 0.68, 1);

}

@media screen and (min-width: 1281px) {
header nav:hover {
	transform: translate(100%, 0);
}
}


header nav .toggle {
	width: 2.4em;
	aspect-ratio: 1;
	background-color: var(--color-black);
	position: absolute;
	top: 50%;
	left: calc(100% - 1px);
	border-top-right-radius: var(--border-radius-narrow);
	border-bottom-right-radius: var(--border-radius-narrow);
	transform: translate(0, -50%);
}

header nav .toggle::before,
header nav .toggle::after {
	content: '';
	display: block;
	width: 0.6em;
	aspect-ratio: 1;
	border-top: var(--border-width-wide) solid var(--color-white);
	border-right: var(--border-width-wide) solid var(--color-white);
	position: absolute;
	top: calc(50% - 0.3em);
	transform: rotate(45deg);
}

header nav .toggle::before {
	right: 34%;

}

header nav .toggle::after {
	left: 20%;

}

header nav a {
	color: var(--color-white) !important;
	text-decoration: none;
	display: block;
	border-bottom: var(--border-width-narrow) solid var(--color-white);
	padding-bottom: 0.3em;
	padding-right: 1.8em;
}

header nav a:hover {
	transform: translate(0.6em, 0);
}

header nav a::after {
	content: '';
	display: block;
	width: 0.8em;
	border-bottom: var(--border-width-narrow) solid var(--color-white);
	position: absolute;
	right: 0;
	bottom: 0;
	transform: rotate(45deg);
	transform-origin: right bottom;

}

header .toggle-sp {
	display: none;
}

header nav .menu {
	display: grid;
	gap: 2.0em;
}


@media screen and (max-width: 1920px) {}

@media screen and (max-width: 1536px) {}

@media screen and (max-width: 1280px) {

	#contents {
		padding-left: 0;
	}




	header {
		height: auto;
		width: 100%;
	}

	header>.inner {
		border-right: none;
		border-bottom: var(--border-width-normal) solid var(--color-black);
		height: auto;
		padding: 0;
		grid-template-columns: auto 1fr auto;
	}

	header .logo {
		padding: 1.2em 1.6em;
	}

	header .logo img {
		height: 3.6em;
		width: auto;
	}

	header .toggle-sp {
		display: block;
		height: 100%;
		width: 6.0em;
		cursor: pointer;
	}

	header .toggle-sp::before,
	header .toggle-sp::after {
		content: "";
		display: block;
		position: absolute;
		left: 28%;
		right: 28%;
		height: 0;
		border-bottom: var(--border-width-wide) solid black;
		transition: all 0.24s cubic-bezier(0.33, 1, 0.68, 1);
	}

	header .toggle-sp::before {
		top: 42%;
	}

	header .toggle-sp::after {
		bottom: 42%;
	}

	header.show .toggle-sp::before {
		transform: rotate(45deg);
		top: 49%;
	}

	header.show .toggle-sp::after {
		transform: rotate(-45deg);
		bottom: 49%;
	}

	header .sns {
		position: relative;
		left: auto;
		bottom: auto;
		justify-content: flex-end;
	}

	header .sns img {
		width: 2.2em;
	}








	header nav {
		position: absolute;
		top: auto;
		bottom: 0;
		width: 100%;
		transform: none;
		height: auto;
		padding: 3.2em 9.6vw 4.0em;

	}

	header.show nav {
		transform: translate(0, calc(100% - 1px));

	}



	header nav .toggle {
		display: none;
	}










}

@media print,
screen and (max-width: 1024px) {}

@media screen and (max-width: 560px) {

	header .logo {
		padding: 1.0em 1.4em;
	}

	header .logo img {
		height: 2.8em;
	}

	header .toggle-sp {
		width: 4.8em;
	}

	header .sns img {
		width: 1.8em;
	}


}




/* ----------------------------------------------------------------------------------------------------
 * Footer
---------------------------------------------------------------------------------------------------- */
footer {
	border-top: var(--border-width-normal) solid var(--color-black);
	text-align: center;
	padding: 1.6em;
	font-size: var(--size-small);
	line-height: var(--line-height-narrow);
	background-color: var(--color-white);
}

footer small {
	display: block;
	font-weight: var(--weight-bold);
	font-size: var(--size-large);
	margin-bottom: 0.4em;
}

/* ----------------------------------------------------------------------------------------------------
 * Page
---------------------------------------------------------------------------------------------------- */

.title-ribbon {
	display: inline-block;
	color: var(--color-white);
	font-weight: bold;
	font-size: var(--size-xxxlarge);
	line-height: var(--line-height-narrow);
	transform: translate(-1.2em, 0);
	z-index: 1;

}

.title-ribbon::after {
	content: '';
	display: block;
	background-color: var(--color-black);
	width: 1.2em;
	height: 0.8em;
	clip-path: polygon(100% 0, 0 0, 100% 100%);
	position: absolute;
	left: 0;
	top: calc(100% - 1px);

}

.title-ribbon>.inner {
	display: block;
	padding: 0.6em 1.8em 0.6em 1.2em;
	white-space: nowrap;

}

.title-ribbon>.inner::before,
.title-ribbon>.inner::after {
	content: '';
	display: block;
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	z-index: -1;
}

.title-ribbon>.inner::before {
	background-color: var(--color-black);
	clip-path: polygon(100% 0, calc(100% - 0.6em) 50%, 100% 100%, 0 100%, 0 0);

}

.title-ribbon>.inner::after {
	clip-path: polygon(calc(100% - var(--border-width-wide)) var(--border-width-normal), calc(100% - 0.6em - var(--border-width-normal)) 50%, calc(100% - var(--border-width-wide)) calc(100% - var(--border-width-normal)), var(--border-width-normal) calc(100% - var(--border-width-normal)), var(--border-width-normal) var(--border-width-normal));

}

.title-ribbon.red>.inner::after {
	background-color: var(--color-red);
}

.title-ribbon.blue>.inner::after {
	background-color: var(--color-blue);
}

.title-ribbon.green>.inner::after {
	background-color: var(--color-green);
}

.title-ribbon.orange>.inner::after {
	background-color: var(--color-orange);
}

.title-ribbon.darkpurple>.inner::after {
	background-color: var(--color-darkpurple);
}

.title-ribbon.purple>.inner::after {
	background-color: var(--color-purple);
}



.list-info {
	display: grid;
	grid-template-columns: auto 1fr;
	padding: 1.2em 1.6em;
	border-left: 0.32rem solid;
	gap: 0.3em 0;
	line-height: var(--line-height-narrow);
}

.list-info.navy {
	border-color: var(--color-navy);
	background-color: var(--color-navy-alpha);
}

.list-info.purple {
	border-color: var(--color-purple);
	background-color: var(--color-purple-alpha);
}

.list-info.green {
	border-color: var(--color-green);
	background-color: var(--color-green-alpha);
}

.list-info.red {
	border-color: var(--color-red);
	background-color: var(--color-red-alpha);
}

.list-info.blue {
	border-color: var(--color-blue);
	background-color: var(--color-blue-alpha);
}

.list-info dt {
	text-align-last: justify;

}

.list-info dd {
	padding-left: 1.2em;
}

.list-info dd::before {
	content: '：';
	position: absolute;
	left: 0.1em;
	top: 0;
}

.block-cube {

	background-color: var(--color-white);
	border: var(--border-width-normal) solid var(--color-black);
}

.block-cube::before,
.block-cube::after {
	content: '';
	display: block;
	position: absolute;
}

.block-cube::before {
	left: 100%;
	width: 2rem;
	top: calc(0% - var(--border-width-normal));
	bottom: 0;
	border: var(--border-width-normal) solid var(--color-black);
	transform: skewY(26deg);
	transform-origin: left top;

}

.block-cube::after {
	left: calc(0% - var(--border-width-normal));
	right: 0;
	height: 1rem;
	top: 100%;
	border: var(--border-width-normal) solid var(--color-black);
	transform: skewX(64deg);
	transform-origin: left top;


}

.block-cube.orange::before {
	background-color: var(--color-orange);
}

.block-cube.orange::after {
	background-color: var(--color-orange-dark);
}

.block-cube.darkpurple::before {
	background-color: var(--color-darkpurple);
}

.block-cube.darkpurple::after {
	background-color: var(--color-darkpurple-dark);
}

.block-cube.purple::before {
	background-color: var(--color-purple);
}

.block-cube.purple::after {
	background-color: var(--color-purple-dark);
}

.block-cube.bluegreen::before {
	background-color: var(--color-bluegreen);
}

.block-cube.bluegreen::after {
	background-color: var(--color-bluegreen-dark);
}


.block-cube.green::before {
	background-color: var(--color-green);
}

.block-cube.green::after {
	background-color: var(--color-green-dark);
}


.block-cube.red::before {
	background-color: var(--color-red);
}

.block-cube.red::after {
	background-color: var(--color-red-dark);
}


.block-cube.blue::before {
	background-color: var(--color-blue);
}

.block-cube.blue::after {
	background-color: var(--color-blue-dark);
}







.link-button {
	font-weight: var(--weight-bold);
	text-decoration: none;
	display: inline-block;
	padding: 0.6em 2.9em 0.6em 1.4em;
	color: var(--color-white) !important;
	transition: var(--ease-slow);
	clip-path: polygon(calc(100% - 1.0em) 0, 100% 50%, calc(100% - 1.0em) 100%, 0 100%, 0 0);
	font-size: var(--size-small);
	white-space: nowrap;

}

.link-button.red {
	background-color: var(--color-red);
}

.link-button.blue {
	background-color: var(--color-blue);
}

.link-button.green {
	background-color: var(--color-green);
}

.link-button.bluegreen {
	background-color: var(--color-bluegreen);
}

.link-button.orange {
	background-color: var(--color-orange);
}

.link-button:hover {
	transform: translate(0.6em, 0);
}


.link-button::before,
.link-button::after {
	content: '';
	display: block;
	width: 0.8em;
	aspect-ratio: 1;
	background-image: url(../images/icon-arrow.svg);
	background-size: contain;
	position: absolute;
	top: calc(50% - 0.4em);
}

.link-button::before {
	right: 1.4em;

}

.link-button::after {
	right: 1.8em;
}


.block-bg {
	overflow: hidden;
}

.block-bg::before {
	display: block;
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	background-size: 2000px auto;
	height: 100%;
	background-position: center;
	background-attachment: fixed;



}


@media screen and (max-width: 1920px) {
	.block-bg::before {
		background-size: 100% auto;
		background-position: right 10% center;
	}
}

@media screen and (max-width: 1536px) {}

@media screen and (max-width: 1280px) {
	.block-bg::before {
		background-size: 115% auto;
	}

}

@media print,
screen and (max-width: 1024px) {
	.title-ribbon {
		font-size: var(--size-xxlarge);

	}


}

@media screen and (max-width: 560px) {
	.title-ribbon {
		font-size: var(--size-xlarge);

	}



	.block-cube::before {
		width: 1.6rem;

	}

	.block-cube::after {
		height: 0.8rem;


	}



	.list-info {
		display: grid;
		grid-template-columns: 1fr;
	}

	.list-info dt {
		text-align-last: left;
		font-weight: var(--weight-bold);
	}

	.list-info dd {
		padding-left: 0.8em;
	}

	.list-info dd::before {
		display: none;
	}




}



/* ----------------------------------------------------------------------------------------------------
 * HOME
---------------------------------------------------------------------------------------------------- */

.wrap-home-main {}

.wrap-home-main * {
	z-index: 1;
}

.wrap-home-main::before {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-image: url(../images/home-main-bg.png);
	background-position: center center;
	background-size: 2000px auto;
}


.block-home-main-photo {
	height: 80vh;
	height: 80svh;
	min-height: 640px;
	max-height: 960px;
	clip-path: polygon(0 0, 100% 0, 100% 95%, 0% 100%);
	background-image: url(../images/home-main-photo.jpg);
	background-position: bottom right 100%;
	background-size: 110% auto;
	z-index: -1;
}

.block-home-main-copy {
	display: block;
	position: absolute;
	left: 8%;
	top: 8%;
	width: 56em;
	max-width: 56%;
}



.block-home-main {
	text-align: center;
	line-height: var(--line-height-narrow);
}

.block-home-main .copy {
	padding-top: 3.2rem;
	display: block;
	font-weight: var(--weight-bold);
	font-size: min(1.8rem, 4vw);
	letter-spacing: 0.12em;
}

.block-home-main .title {
	display: block;
	font-weight: var(--weight-xbold);
	font-size: min(3.25rem, 8vw);
	letter-spacing: 0.16em;
	padding-bottom: 3.2rem;
}




@media screen and (max-width: 1920px) {
	.wrap-home-main::before {
		background-size: 110% auto;
	}

}

@media screen and (max-width: 1536px) {}

@media screen and (max-width: 1280px) {



	.block-home-main-copy {
		top: 16%;
		width: 42em;
	}




}

@media print,
screen and (max-width: 1024px) {
	.wrap-home-main::before {
		background-position: center top;
		background-size: 150% auto;
	}



	.block-home-main-photo {
		background-position: bottom right 50%;
		background-size: 200% auto;
		min-height: auto;
		max-height: auto;


	}

	.block-home-main-copy {
		left: 4%;
		top: 20%;
		width: 40em;
		max-width: 72%;
	}


}

@media screen and (max-width: 560px) {

	.wrap-home-main::before {
		background-size: 200% auto;
	}

	.block-home-main-photo {
		background-position: bottom right 40%;
		background-size: 250% auto;


	}

	.block-home-main-copy {
		max-width: 90%;
	}
}





.wrap-home-news {
	padding-top: var(--padding-narrow);
	padding-bottom: var(--padding-narrow);
}

.block-home-news {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 3.2em;
}

.block-home-news .news {
	line-height: var(--line-height-narrow);

}

.block-home-news .news .title {
	padding-bottom: 0.2em;
	border-bottom: var(--border-width-normal) dashed var(--color-black);
	font-weight: var(--weight-bold);
	font-size: var(--size-xlarge);
	margin-bottom: 1.0em;
	padding-top: 0.4em;
}

.block-home-news .news dl {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 1.2em 0.8em;
	margin-bottom: 1.2em;
	line-height: var(--line-height-narrow);
}



@media screen and (max-width: 1920px) {}

@media screen and (max-width: 1536px) {}

@media screen and (max-width: 1280px) {}

@media print,
screen and (max-width: 1024px) {
	.block-home-news {
		grid-template-columns: repeat(1, 1fr);
	}

}

@media screen and (max-width: 560px) {
	.block-home-news .news .title {
		font-size: var(--size-large);
	}

	.block-home-news .news dl {
		grid-template-columns: 1fr;
		gap: 0.2em;
	}

	.block-home-news .news dl dd {
		padding-left: 0.8em;
	}

	.block-home-news .news dl dd+dt {
		padding-top: 0.8em;
	}

}





.wrap-home-program {
	background-color: var(--color-gray);
	padding-top: var(--padding-narrow);
	padding-bottom: var(--padding-normal);
}

.block-home-program-lead {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 2.4em;
	margin-bottom: 4.0em;
	align-items: end;
}

.block-home-program-lead p {
	font-weight: var(--weight-bold);
	font-size: var(--size-xlarge);
	line-height: var(--line-height-wide);
}

.block-home-program {
	margin-bottom: 3.2em;
	display: grid;
	gap: 1.6em;
	padding-bottom: 3.2em;
}

.block-home-program h2 {
	font-size: var(--size-xxxlarge);
	font-weight: var(--weight-bold);
	line-height: var(--line-height-xnarrow);
	padding: 0.9em 1.4em 0.7em;
}

.block-home-program h2 .en {
	font-size: var(--size-large);
	font-weight: var(--weight-xbold);
	letter-spacing: 0.06em;
	padding-right: 0.8em;

}

.block-home-program .block-title {
	position: absolute;
	left: 0;
	top: 0;
}

.block-home-program .item {
	padding: 5.2em 2.4em 0;
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 2.0em;
	align-items: center;

}

.block-home-program .item::before {
	content: '';
	display: block;
	border-bottom: var(--border-width-xwide) solid;
	position: absolute;
	top: 0;
	left: 0;
	right: 2.4em;
}

.block-home-program .item.red::before {
	border-color: var(--color-red);
}

.block-home-program .item.blue::before {
	border-color: var(--color-blue);
}

.block-home-program .item.green::before {
	border-color: var(--color-green);
}


.block-home-program .item.item01 {
	margin-top: -1.6em;
}

.block-home-program .item p {
	margin-bottom: 0;
}

.block-home-program .item .date {
	font-size: var(--size-xxlarge);
	font-weight: bold;
}

.block-home-program .item.red .date {
	color: var(--color-red);
}

.block-home-program .item.blue .date {
	color: var(--color-blue);
}

.block-home-program .item.green .date {
	color: var(--color-green);
}





.block-home-program-message {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 3.2em;
	align-items: center;
}

.block-home-program-message .text {
	padding: 4.8em 5.6em 4.0em 5.6em;
}

.block-home-program-message .text::before,
.block-home-program-message .text::after {
	content: '';
	display: block;
	position: absolute;
	background-color: var(--color-yellow);
}

.block-home-program-message .text::before {
	left: 0;
	top: 0;
	right: 0;
	bottom: 0;
	clip-path: polygon(3.2em 0%, calc(100% - 3.2em) 4.8em, 100% 100%, 0 calc(100% - 1.6em));
}

.block-home-program-message .text::after {
	clip-path: polygon(100% 33%, 0 0, 0 100%);
	width: 4.8em;
	aspect-ratio: 1;
	right: -1.6em;
	top: 45%;

}

.block-home-program-message .text .title {
	font-size: var(--size-xxxlarge);
	line-height: var(--line-height-narrow);
	font-weight: bold;
	background-image: url(../images/home-message-line.svg);
	background-size: contain;
	background-position: left bottom;
	padding-bottom: 0.2em;
	margin-bottom: 0.1em;
}


.block-home-program-message .text .title::before {
	content: '';
	display: block;
	width: 5em;
	aspect-ratio: 1;
	background-image: url(../images/home-message-plane.svg);
	background-size: contain;
	position: absolute;
	bottom: 0.2em;
	left: 92%;
}


.block-home-program-message .speaker {
	text-align: center;
	line-height: var(--line-height-narrow);
	width: 16em;
}







.block-home-program-message .speaker figure {
	margin-bottom: 0.6em;
}

.block-home-program-message .speaker figure figcaption {
	background-color: var(--color-bluegreen);
	color: var(--color-white);
	font-size: var(--size-xsmall);
	border-radius: 100vh;
	padding: 0.2em;
	margin-top: -1.8em;
	z-index: 1;
	position: relative;
}

.block-home-program-message .speaker figure img {
	border-radius: 100vh;
}

.block-home-program-message .speaker .name {
	font-size: var(--size-large);
	font-weight: bold;
	margin-bottom: 0.1em;
}

.block-home-program-message .speaker .position {
	font-size: var(--size-xsmall);
}

@media screen and (max-width: 1920px) {}

@media screen and (max-width: 1536px) {
	.block-home-program-lead {
		align-items: center;
	}

}

@media screen and (max-width: 1280px) {
	.block-home-program-lead p {
		font-size: var(--size-large);
	}

}

@media print,
screen and (max-width: 1024px) {
	.block-home-program-lead {
		grid-template-columns: 1fr;
		gap: 2.0em;
	}

	.block-home-program-lead p {
		text-align: center;
	}



	.block-home-program-lead figure {
		text-align: center;

	}

	.block-home-program-lead figure img {
		width: 32em;
	}


	.block-home-program h2 {
		font-size: var(--size-xxlarge);
	}

	.block-home-program .item .date {
		font-size: var(--size-xlarge);
	}








	.block-home-program-message {
		grid-template-columns: 1fr;
		gap: 3.2em;
	}

	.block-home-program .item {
		grid-template-columns: 1fr;
	}


	.block-home-program-message .text::after {
		right: 40%;
		top: 92%;
		rotate: 120deg;

	}

	.block-home-program-message .text .title {
		font-size: var(--size-xxlarge);
	}


	.block-home-program-message .text .title::before {
		width: 4em;
		bottom: 0.8em;
		right: -3.2em;
	}


	.block-home-program-message .speaker {
		margin-left: auto;
		margin-right: auto;
		font-size: var(--size-small);
	}









}

@media screen and (max-width: 560px) {

	.block-home-program-lead p {
		font-size: var(--size-normal);
	}


	.block-home-program .item {
		padding: 4.4em 1.6em 0;

	}


	.block-home-program .item::before {
		right: 1.2em;
	}



	.block-home-program h2 {
		font-size: var(--size-xlarge);
		padding-left: 1.2em;
	}

	.block-home-program h2 .en {
		font-size: var(--size-small);

	}

	.block-home-program .item .date {
		font-size: var(--size-large);
	}


	.block-home-program-message .text {
		padding: 3.2em 3.2em 2.8em 3.2em;
	}


	.block-home-program-message .text::before {
		clip-path: polygon(1.6em 0%, calc(100% - 1.6em) 2.4em, 100% 100%, 0 calc(100% - 0.8em));
	}

	.block-home-program-message .text .title {
		font-size: var(--size-xlarge);
	}

}




.wrap-home-movie {
	width: 100%;
	aspect-ratio: 16 / 4;
	overflow: hidden;
}

.wrap-home-movie::before {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: var(--color-black);
	z-index: 1;
	opacity: 0;
	transition: var(--ease-slow);
	mix-blend-mode: soft-light;
	opacity: 0.6;
}

.wrap-home-movie:hover:before {
	opacity: 1.0;
}

.wrap-home-movie video {
	left: 50%;
	top: 50%;
	position: absolute;
	width: 100%;
	transform: translate(-50%, -50%);
}

.js-modal-btn {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	z-index: 2;
}

.js-modal-btn {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
}

.js-modal-btn>.inner {
	font-size: var(--size-xxlarge);
	font-weight: var(--weight-bold);
	color: var(--color-white);
	letter-spacing: 0.08em;
	background-image: url(../images/icon-play.svg);
	background-size: 2.8em auto;
	background-position: center bottom;
	padding-bottom: 3.2em;
	filter: drop-shadow(0 0 4px rgba(0, 0, 0, 0.2));
}


.modal-video {
	background-color: rgba(0, 0, 0, 0.80);
}

.modal-video-body {
	max-width: 1920px;
	width: 96%;

}



@media screen and (max-width: 1920px) {
	.wrap-home-movie {
		aspect-ratio: 16 / 5;
	}

}

@media screen and (max-width: 1536px) {
	.wrap-home-movie {
		aspect-ratio: 16 / 6;
	}

}

@media screen and (max-width: 1280px) {
	.wrap-home-movie {
		aspect-ratio: 16 / 7;
	}

}

@media print,
screen and (max-width: 1024px) {
	.wrap-home-movie {
		aspect-ratio: 16 / 8;
	}

	.js-modal-btn>.inner {
		font-size: var(--size-xlarge);
	}

}

@media screen and (max-width: 560px) {
	.wrap-home-movie {
		aspect-ratio: 16 / 9;
	}

	.js-modal-btn>.inner {
		font-size: var(--size-large);
	}

}






.wrap-home-about {
	padding-top: var(--padding-normal);
	padding-bottom: var(--padding-normal);
}


.wrap-home-about.block-bg::before {
	background-image: url(../images/home-about-bg.png);
}


.wrap-home-about .bg {
	position: absolute;
	left: 0;
	top: 0;
	right: 0;
	bottom: 0;
}

.wrap-home-about .bg::before,
.wrap-home-about .bg::after {
	content: '';
	display: block;
	width: 12em;
	max-width: 16vw;
	aspect-ratio: 1;
	position: absolute;
}

.wrap-home-about .bg.bg01::before {
	left: 0;
	top: 0;
	background-color: var(--color-bluegreen);
	clip-path: polygon(100% 0, 0 0, 0 100%);
}

.wrap-home-about .bg.bg01::after {
	right: 0;
	top: 0;
	background-color: var(--color-pink);
	clip-path: polygon(100% 0, 0 0, 100% 100%);
}

.wrap-home-about .bg.bg02::before {
	left: 0;
	bottom: 0;
	background-color: var(--color-pink);
	clip-path: polygon(0 0, 0 100%, 100% 100%);
}

.wrap-home-about .bg.bg02::after {
	right: 0;
	bottom: 0;
	background-color: var(--color-bluegreen);
	clip-path: polygon(100% 0, 0 100%, 100% 100%);
}


.block-home-about {
	display: grid;
	gap: 3.2em;

}

.block-home-about h2 {
	font-weight: var(--weight-bold);
	font-size: var(--size-xxlarge);
	text-align: center;
	background-color: var(--color-yellow);
	border-radius: var(--border-radius-narrow);
	line-height: var(--line-height-narrow);
	margin-bottom: 0.8em;
}

.block-home-about h2>.inner {
	padding: 0.5em 1.2em 0.4em;
	display: block;
}

.block-home-about h2::before,
.block-home-about h2::after,
.block-home-about h2>.inner::before,
.block-home-about h2>.inner::after {
	content: '';
	display: block;
	position: absolute;
}

.block-home-about h2::before {
	width: 2em;
	left: -1em;
	top: 20%;
	border-bottom: var(--border-width-normal) solid var(--color-black);
}

.block-home-about h2::after {
	width: 2em;
	right: -1em;
	bottom: 20%;
	border-bottom: var(--border-width-normal) solid var(--color-black);

}

.block-home-about h2>.inner::before {
	top: 0;
	bottom: 20%;
	left: -0.4em;
	border-left: var(--border-width-normal) solid var(--color-black);

}

.block-home-about h2>.inner::after {
	top: 0;
	bottom: 0;
	top: 20%;
	right: -0.4em;
	border-left: var(--border-width-normal) solid var(--color-black);
}


.block-home-about .item>.inner {
	display: grid;
	grid-template-columns: 1fr 14em;
	gap: 1.6em;
}

.block-home-about .item>.inner figcaption {
	display: block;
	padding-top: 0.4em;
	text-align: center;
	font-size: var(--size-xsmall);
}


.list-skill {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	text-align: center;
	line-height: var(--line-height-narrow);
	gap: 0.4em 0;
	font-size: var(--size-small);
	width: 50em;
	max-width: 100%;
	margin-left: auto;
	margin-right: auto;

}

.list-skill li {
	color: var(--color-white);
	font-weight: var(--weight-bold);
	padding-top: 3.2em;
	padding-bottom: 3.2em;
	display: flex;
	justify-content: center;
	align-items: center;
	cursor: pointer;
}

.list-skill li>.inner {
	display: inline-block;
}

.list-skill li>.inner:not(.not) {
	background-image: url(../images/icon-more.svg);
	background-size: 1.4em auto;
	background-position: center bottom;
	padding-bottom: 2.0em;
}


.list-skill li::before {
	content: '';
	display: block;
	position: absolute;
	background-color: var(--color-blue);
	clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);
	left: -1.4em;
	right: -1.4em;
	top: 0;
	bottom: 0;

}

.list-skill li:nth-child(1) {
	grid-column: 1 / 2;
	grid-row: 3 / 5;
}

.list-skill li:nth-child(2) {
	grid-column: 2 /3;
	grid-row: 2 / 4;
}

.list-skill li:nth-child(3) {
	grid-column: 2 / 3;
	grid-row: 4 / 6;
}

.list-skill li:nth-child(4) {
	grid-column: 3 / 4;
	grid-row: 1 / 3;
}

.list-skill li:nth-child(5) {
	grid-column: 3 / 4;
	grid-row: 3 / 5;
	cursor: auto;
}

.list-skill li:nth-child(5)>.inner {
	font-size: var(--size-xlarge);
}

.list-skill li:nth-child(5)::before {
	background-color: var(--color-orange);
}

.list-skill li:nth-child(6) {
	grid-column: 3 / 4;
	grid-row: 5 / 7;
}

.list-skill li:nth-child(7) {
	grid-column: 4 / 4;
	grid-row: 2 / 4;
}

.list-skill li:nth-child(8) {
	grid-column: 4 / 5;
	grid-row: 4 / 6;
}

.list-skill li:nth-child(9) {
	grid-column: 5 / 6;
	grid-row: 3 / 5;
}



.list-skill li .more {
	visibility: hidden;
	opacity: 0;
	transition: var(--ease-slow);
	position: absolute;
	background-color: var(--color-navy);
	text-align: left;
	font-weight: var(--weight-normal);
	z-index: 2;
	padding: 1.2em 1.6em;
	border-radius: var(--border-radius-normal);
	width: 22em;
	left: 50%;
	bottom: 90%;
	transform: translate(-50%, -1.2em);

}

.list-skill li .more::before {
	content: '';
	display: block;
	width: 1.2em;
	aspect-ratio: 1;
	clip-path: polygon(100% 0, 0 0, 50% 100%);
	background-color: var(--color-navy);
	position: absolute;
	left: calc(50% - 0.6em);
	top: calc(100% - 1px);

}

.list-skill li:hover .more {
	visibility: visible;
	opacity: 1;
	transform: translate(-50%, 0);
}



@media screen and (max-width: 1920px) {}

@media screen and (max-width: 1536px) {}

@media screen and (max-width: 1280px) {}

@media print,
screen and (max-width: 1024px) {


	.block-home-about h2 {
		font-size: var(--size-xlarge);
	}

	.block-home-about .item>.inner {
		grid-template-columns: 1fr;
		gap: 0;
	}

	.block-home-about .item>.inner figure {
		margin-left: auto;
		margin-right: auto;
		max-width: 16em;
	}



	.list-skill {
		font-size: 1.6vw;
	}

	.list-skill li .more {
		font-size: 0.89rem;
		width: 20em;
		max-width: 40vw;
		padding: 1.2em;

	}


}

@media screen and (max-width: 560px) {

	.block-home-about h2 {
		font-size: var(--size-large);
	}

}








.wrap-home-comment {
	padding-top: var(--padding-normal);
	padding-bottom: var(--padding-normal);
	background-color: var(--color-lightblue);
}

.wrap-home-comment.block-bg::before {
	background-image: url(../images/home-comment-bg.png);
}


.title-home-comment {
	text-align: center;
	font-size: var(--size-xxxxlarge);
	font-weight: var(--weight-bold);
	line-height: var(--line-height-narrow);
	margin-bottom: 1.6em;
}

.title-home-comment>.inner {
	display: inline-block;
	padding: 0 1.2em;
}

.title-home-comment>.inner::before,
.title-home-comment>.inner::after {
	content: '';
	display: block;
	position: absolute;
	top: -0.4em;
	bottom: 0;
	border-right: var(--border-width-wide) solid var(--color-black);
}

.title-home-comment>.inner::before {
	left: 0;
	transform: rotate(-32deg);
}

.title-home-comment>.inner::after {
	right: 0;
	transform: rotate(32deg);
}

.block-home-comment {
	display: grid;
	grid-template-columns: 1fr 1.1fr;
	gap: 4.8em 4.8em;
	align-items: start;

}

.block-home-comment .item {}

.block-home-comment .item * {
	z-index: 1;
}




.block-home-comment .item .block-title {
	position: absolute;
	left: 1px;
	top: -0.8em;
	z-index: 2;
}

.block-home-comment .item p>.inner {
	display: block;
}


.block-home-comment .item01 {
	grid-column: 1 / 3;
	display: grid;
	grid-template-columns: 0.7fr 1fr 0.7fr;
	gap: 2.0em;
	align-items: start;

}

.block-home-comment .item01 p>.inner {
	padding: 2.0em 1.6em;
}


.block-home-comment .item01 p>.inner::before,
.block-home-comment .item01 p>.inner::after {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: var(--color-yellow);
	z-index: -1;

}

.block-home-comment .item01 p>.inner::before {
	transform: translate(0.8em, 0.6em);
	background-color: var(--color-white);
}


.block-home-comment .item01 p:nth-child(2)>.inner {
	padding-top: 4.8em;
}

.block-home-comment .item01 p:nth-child(3)>.inner {
	transform: translate(0, 2.4em);
}

.block-home-comment .item01 p:nth-child(4)>.inner {}


.block-home-comment .item02 {
	color: var(--color-white);

}

.block-home-comment .item02 p>.inner {
	padding: 2.0em 3.2em 2.0em 1.6em;
}




.block-home-comment .item02 p>.inner::before,
.block-home-comment .item02 p>.inner::after {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: var(--color-orangered);
	clip-path: polygon(0 0%, calc(100% - 2.4em) 0%, 100% 50%, calc(100% - 2.4em) 100%, 0 100%, 0% 50%);
	z-index: -1;

}

.block-home-comment .item02 p>.inner::before {
	transform: translate(0.8em, 0.6em);
	background-color: var(--color-white);
}


.block-home-comment .item02 p:nth-child(2)>.inner {
	padding-top: 4.8em;
	width: 90%;
}

.block-home-comment .item02 p:nth-child(3)>.inner {
	transform: translate(-2.0em, 0);
	width: 90%;
}

.block-home-comment .item02 p:nth-child(4)>.inner {}


.block-home-comment .item03 {
	color: var(--color-white);
}

.block-home-comment .item03 p>.inner {
	padding: 2.0em 1.6em;
}


.block-home-comment .item03 p>.inner::before,
.block-home-comment .item03 p>.inner::after {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border-radius: var(--border-radius-wide);
	background-color: var(--color-navy);
	z-index: -1;

}

.block-home-comment .item03 p>.inner::before {
	transform: translate(0.8em, 0.6em);
	background-color: var(--color-white);
}


.block-home-comment .item03 p:nth-child(2)>.inner {
	padding-top: 4.8em;
	width: 85%;
}

.block-home-comment .item03 p:nth-child(3)>.inner {
	transform: translate(-2.0em, 0);
	width: 110%;
}

.block-home-comment .item03 p:nth-child(4)>.inner {
	width: 90%;
	transform: translate(2em, 0);
}





@media screen and (max-width: 1920px) {}

@media screen and (max-width: 1536px) {}

@media screen and (max-width: 1280px) {}

@media print,
screen and (max-width: 1024px) {

	.title-home-comment {
		font-size: var(--size-xxxlarge);
	}

	.block-home-comment {
		grid-template-columns: 1fr;

	}

	.block-home-comment .item01 {
		grid-column: auto;
		grid-template-columns: 1fr;
		gap: 0;

	}

	.block-home-comment .item01 p>.inner,
	.block-home-comment .item02 p>.inner,
	.block-home-comment .item03 p>.inner {
		transform: none !important;
		width: 100% !important;

	}

	.block-home-comment .item01 p:nth-child(2)>.inner,
	.block-home-comment .item02 p:nth-child(2)>.inner,
	.block-home-comment .item03 p:nth-child(2)>.inner {
		padding-top: 4.4em;
	}


	@media screen and (max-width: 560px) {
		.title-home-comment {
			font-size: var(--size-xxlarge);
		}


	}









}





.wrap-home-other {
	padding-top: var(--padding-normal);
	padding-bottom: var(--padding-normal);
	background-color: var(--color-yellow);
}



.block-home-other {
	display: grid;
	gap: 4.8em;
	margin-bottom: 3.2em;

}






.block-home-other>.inner:nth-child(odd) {
	display: grid;
	grid-template-columns: 1fr 10%;
}

.block-home-other>.inner:nth-child(odd)::after {
	content: '';
}

.block-home-other>.inner:nth-child(even) {
	display: grid;
	grid-template-columns: 10% 1fr;
}

.block-home-other>.inner:nth-child(even)::before {
	content: '';
}

.block-home-other .item {
	padding: 4.8em 2.4em 2.4em;

}

.block-home-other .item .illustration {
	aspect-ratio: 1;
	position: absolute;
	bottom: calc(100% - 3.8em);
	right: 1.2em;
	background-size: contain;
	background-position: center bottom;
}

.block-home-other .item.item01 .illustration {
	background-image: url(../images/home-other-image01.svg);
	width: 9em;
}

.block-home-other .item.item02 .illustration {
	background-image: url(../images/home-other-image02.svg);
	width: 10em;
}

.block-home-other .item.item03 .illustration {
	background-image: url(../images/home-other-image03.svg);
	width: 12em;
	right: -1.0em;
	bottom: calc(100% - 5.6em);
}


.block-home-other .item.item03 {
	padding-top: 6.4em;
}

.block-home-other .item .block-title {
	position: absolute;
	left: 0;
	top: -0.8em;
}

.block-home-other .item .block-title .sup {
	font-size: var(--size-xsmall);
	display: block;
}



.block-home-other-more {
	display: grid;
	gap: 1.6em;

}

.block-home-other-more .item {
	background-color: var(--color-white);
	padding: 2.4em;
	border-radius: var(--border-radius-wide);

}

.block-home-other-more .item h2 {
	font-size: var(--size-xxxlarge);
	font-weight: bold;
	line-height: var(--line-height-narrow);
	margin-bottom: 0.6em;
}

.block-home-other-more .item h2>.inner {
	border-bottom: var(--border-width-normal) dashed var(--color-black);
	display: inline-block;
}

.block-home-other-more .item h2 .sup {
	font-size: var(--size-small);
	line-height: var(--line-height-narrow);
	display: block;
}



@media screen and (max-width: 1920px) {}

@media screen and (max-width: 1536px) {}

@media screen and (max-width: 1280px) {}

@media print,
screen and (max-width: 1024px) {

	.block-home-other>.inner:nth-child(odd) {
		grid-template-columns: 1fr;
	}


	.block-home-other>.inner:nth-child(even) {
		grid-template-columns: 1fr;
	}


	.block-home-other .item .illustration {
		bottom: calc(100% - 2.0em);
		right: -2.8em;
		font-size: var(--size-xxsmall);
	}

	.block-home-other-more .item h2 {
		font-size: var(--size-xxlarge);
	}


}

@media screen and (max-width: 560px) {


	.block-home-other-more .item {
		padding: 2.0em 1.6em;

	}


	.block-home-other .item {
		padding: 4.0em 1.6em 1.8em;

	}

	.block-home-other .item.item02 {
		padding-top: 5.8em;

	}

	.block-home-other .item.item03 {
		padding-top: 5.6em;

	}

	.block-home-other-more .item h2 {
		font-size: var(--size-xlarge);
	}


}



.wrap-home-download {
	padding-top: var(--padding-narrow);
	padding-bottom: var(--padding-narrow);

}

.wrap-home-download figure {
	width: 80%;
	max-width: 24em;
	text-align: center;
	margin-left: auto;
	margin-right: auto;
}

.wrap-home-download figure img {
	border: var(--border-width-normal) solid var(--color-black);
	margin-bottom: 1.2em;
}



@media screen and (max-width: 1920px) {}

@media screen and (max-width: 1536px) {}

@media screen and (max-width: 1280px) {}

@media print,
screen and (max-width: 1024px) {}

@media screen and (max-width: 560px) {}



/* ----------------------------------------------------------------------------------------------------
 * CONTENTS
---------------------------------------------------------------------------------------------------- */
body {
	background-color: var(--color-gray);

}

body#home {
	background-color: var(--color-white);

}

body#expo {
	background-color: #b5ded9;

}

body#special {
	background-color: #f9cec2;

}

body#festa {
	background-color: #d6cbe4;

}

body#news {}


body#expo .wrap-page.block-bg::before {
	background-image: url(../images/expo-bg.png);

}

body#special .wrap-page.block-bg::before {
	background-image: url(../images/special-bg.png);

}

body#festa .wrap-page.block-bg::before {
	background-image: url(../images/festa-bg.png);

}


.wrap-page {
	padding-top: var(--padding-normal);
	padding-bottom: var(--padding-normal);
}

.wrap-page .block-cube {
	opacity: 0;
	transition: all 0.64s ease;
}

body.load-end .wrap-page .block-cube {
	opacity: 1;
}

.block-page .block-title {
	position: absolute;
	left: 0;
	top: -1.6em;
}

.block-page .title-ribbon {
	font-size: var(--size-xxxxxlarge);
}

.block-page {
	padding: 6.4em 2.4em 2.4em;

}



.title-page {
	font-weight: var(--weight-bold);
	margin-bottom: 0.6em;
	margin-top: 2.4em;
	width: 8em;
	line-height: var(--line-height-narrow);
	color: var(--color-white);
	padding: 0.3em 0.8em 0.2em;
	text-align: center;

}


.title-page.red {
	background-color: var(--color-red);
}

.title-page.blue {
	background-color: var(--color-blue);
}


.block-lead {
	padding-right: 16em;
	margin-bottom: 1.8em;
}

.block-comment {
	text-align: center;
	z-index: 1;
	font-size: var(--size-small);

}

.block-comment>.inner {
	line-height: var(--line-height-narrow);
	display: inline-block;
	padding: 1.8em 2.8em 1.6em 2.8em;
	transform: rotate(8deg);
	position: absolute;
	bottom: calc(100% - 1.8em);
	right: 0.4em;

}

.block-comment>.inner>span {
	z-index: 1;
}

.block-comment>.inner::before {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: var(--color-yellow);
	clip-path: polygon(10% 8%, 83% 0, 100% 39%, 90% 100%, 11% 95%, 0 58%);

}

.block-comment>.inner::after {
	content: '';
	display: block;
	position: absolute;
	top: 90%;
	background-color: var(--color-yellow);
	clip-path: polygon(100% 0, 0 0, 50% 100%);
	width: 2.0em;
	aspect-ratio: 1;
	left: 30%;
	transform: rotate(16deg);


}


.block-photo {
	display: grid;
	gap: 1.2em;
	margin-top: 2.4em;

}

.block-photo .item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.block-photo.festa {
	grid-template-columns: repeat(6, 1fr);
}


.block-photo.festa .item01 {
	grid-column: 1 / 5;
	grid-row: 1 / 3;
}

.block-photo.festa .item01 img {}

.block-photo.festa .item02 {
	grid-column: 5 / 7;
	grid-row: 1 / 2;
}

.block-photo.festa .item02 img {
	aspect-ratio: 4 / 3;
}

.block-photo.festa .item03 {
	grid-column: 5 / 7;
	grid-row: 2 / 3;
}

.block-photo.festa .item03 img {
	aspect-ratio: 3 / 2;
}

.block-photo.festa .item04 {
	grid-column: 1 / 2;
	grid-row: 3 / 4;
}

.block-photo.festa .item04 img {}

.block-photo.festa .item05 {
	grid-column: 2 / 4;
	grid-row: 3 / 4;
}

.block-photo.festa .item05 img {}

.block-photo.festa .item06 {
	grid-column: 4 / 7;
	grid-row: 3 / 4;
}

.block-photo.festa .item06 img {
	aspect-ratio: 3 / 1;
}



.block-photo.expo {
	grid-template-columns: repeat(5, 1fr);
}

.block-photo.expo .item01 {
	grid-column: 1 / 4;
}

.block-photo.expo .item01 img {
	aspect-ratio: 2 / 1;
}

.block-photo.expo .item02 {
	grid-column: 4 / 6;
}



.block-deadline {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	line-height: var(--line-height-narrow);
	gap: 0.2em;
}

.block-deadline .date {
	font-size: var(--size-xxxlarge);
	font-weight: bold;
}

.block-deadline.red .date {
	color: var(--color-red);
}

.block-deadline.blue .date {
	color: var(--color-blue);
}

.block-deadline .note {
	font-size: var(--size-small);
}



.block-page-download {
	border-top: var(--border-width-normal) dotted var(--color-black);
	margin-top: 3.2em;
	padding-top: 3.2em;

}

.block-page-download figure {
	width: 80%;
	max-width: 24em;
	text-align: center;
	margin-left: auto;
	margin-right: auto;
}

.block-page-download figure img {
	border: var(--border-width-normal) solid var(--color-black);
	margin-bottom: 1.2em;
}


.block-page-limited {
	float: right;
	margin-left: 1.2em;
	margin-bottom: 0.8em;
	margin-top: -4.8em;
	margin-right: -0.4em;
}

.block-page-limited>.inner {
	display: block;
	border: var(--border-width-normal) solid var(--color-black);
	text-align: center;
	font-weight: var(--weight-bold);
	line-height: 1.2;
	width: 6.8em;
	aspect-ratio: 1;
	border-radius: 100vh;
	color: var(--color-white);
	padding-top: 1.5em;
	letter-spacing: 0.04em;
}

.block-page-limited.red>.inner {
	background-color: var(--color-red);
}

.block-page-limited.blue>.inner {
	background-color: var(--color-blue);
}


.block-page-limited .no {
	font-size: 2.28em;
	letter-spacing: 0.02em;
	padding-right: 0.04em;
}


.block-page-limited::before {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: var(--color-black);
	border-radius: 100vh;
	transform: translate(0.3em, 0.3em);
}


@media screen and (max-width: 1920px) {}

@media screen and (max-width: 1536px) {}

@media screen and (max-width: 1280px) {
	.wrap-page {
		padding-top: calc(5.6em + var(--padding-normal));
	}

}

@media print,
screen and (max-width: 1024px) {


	.block-page .title-ribbon {
		font-size: var(--size-xxxxlarge);


	}

	.block-lead {
		padding-right: 0;
		margin-bottom: 6.4em;
	}

	.block-comment {
		font-size: var(--size-xsmall);

	}







	.block-photo {
		gap: 0.8em;

	}


	.block-photo.festa {
		grid-template-columns: repeat(4, 1fr);
	}

	.block-photo.festa .item01 {
		grid-column: 1 / 5;
		grid-row: 1 / 2;
	}

	.block-photo.festa .item01 img {
		aspect-ratio: 2 / 1;

	}

	.block-photo.festa .item02 {
		grid-column: 1 / 3;
		grid-row: 2 / 3;
	}

	.block-photo.festa .item02 img {
		aspect-ratio: 4 / 3;
	}

	.block-photo.festa .item03 {
		grid-column: 3 / 5;
		grid-row: 2 / 3;
	}

	.block-photo.festa .item03 img {
		aspect-ratio: 4 / 3;
	}

	.block-photo.festa .item04 {
		grid-column: 1 / 2;
		grid-row: 3 / 4;
	}

	.block-photo.festa .item04 img {}

	.block-photo.festa .item05 {
		grid-column: 2 / 5;
		grid-row: 3 / 4;
	}

	.block-photo.festa .item05 img {
		aspect-ratio: 2 / 1;

	}

	.block-photo.festa .item06 {
		grid-column: 1 / 5;
		grid-row: 4 / 5;
	}

	.block-photo.festa .item06 img {
		aspect-ratio: 3 / 1;
	}




	.block-comment>.inner {
		right: -1.6em;

	}



	.block-page-limited {
		margin-top: -0.8em;
		margin-right: -0.4em;
		font-size: var(--size-small);
	}




}

@media screen and (max-width: 560px) {
	.wrap-page {
		padding-top: calc(3.2em + var(--padding-normal));
	}

	.block-page .title-ribbon {
		font-size: var(--size-xxlarge);


	}

	.block-page {
		padding: 4.8em 1.6em 1.8em;

	}

	.block-comment {}

	.block-deadline .date {
		font-size: var(--size-xxlarge);
	}

	.block-page-limited {
		font-size: var(--size-xsmall);
	}


}



.table-expo {
	line-height: var(--line-height-narrow);
	width: 100%;
	margin-top: 2.4em;
}


.table-expo tr.gray {
	position: relative;
}

.table-expo tr.gray::after {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: var(--color-gray);
	mix-blend-mode: multiply;
}


.table-expo th,
.table-expo td {
	padding: 0.4em;

}

.table-expo th {
	background-color: var(--color-red);
	color: var(--color-white);
	text-align: center;
}

.table-expo th:first-child {
	border-right: 1px dotted var(--color-white);
	width: 8.4em;
}

.table-expo td:first-child {
	background-color: var(--color-red-alpha);
	border-right: 1px dotted var(--color-red);
	text-align: center;
}

.table-expo td:last-child {
	padding-left: 1.8em;
	padding-right: 1.2em;
}

.table-expo td {
	border-bottom: 1px solid var(--color-black);
	position: relative;
}

.table-expo td.mark::before {
	content: '';
	display: block;
	width: 0.7em;
	aspect-ratio: 1;
	background-color: var(--color-red);
	border-radius: 100vh;
	position: absolute;
	left: 0.8em;
	top: 0.8em;
}

@media screen and (max-width: 1920px) {}

@media screen and (max-width: 1536px) {}

@media screen and (max-width: 1280px) {}

@media print,
screen and (max-width: 1024px) {}

@media screen and (max-width: 560px) {
	.table-expo {
		font-size: var(--size-small);
	}


}

.block-special-theme {
	font-size: var(--size-xxxlarge);
	font-weight: var(--weight-bold);
	line-height: var(--line-height-normal);
	display: inline-block;
	padding: 0.1em 0.6em;
	margin-top: 0.3em;
	margin-bottom: 0.8em;
	text-align: left;
}

.block-special-theme .orange {
	color: var(--color-orange-dark02);
}

.block-special-theme .green {
	color: var(--color-green);
}

.block-special-theme .blue {
	color: var(--color-blue);
}

.block-special-theme::before,
.block-special-theme::after {
	content: '';
	display: block;
	position: absolute;
	width: 0.4em;
	height: 1.0em;
}

.block-special-theme::before {
	border-top: var(--border-width-wide) solid var(--color-black);
	border-left: var(--border-width-wide) solid var(--color-black);
	top: 0;
	left: 0;

}

.block-special-theme::after {
	border-bottom: var(--border-width-wide) solid var(--color-black);
	border-right: var(--border-width-wide) solid var(--color-black);
	bottom: 0;
	right: 0;

}

.list-special-flow {
	display: grid;
	grid-template-columns: 0.9fr 1fr 1fr 1fr 1fr;
}

.list-special-flow li:nth-child(1) {
	background-color: var(--color-blue-light);
}

.list-special-flow li:nth-child(2) {
	background-color: var(--color-green-light);

}

.list-special-flow li:nth-child(3) {
	background-color: var(--color-yellow-light);

}

.list-special-flow li:nth-child(4) {
	background-color: var(--color-orange-light);

}

.list-special-flow li:nth-child(5) {
	background-color: var(--color-pink);

}

.list-special-flow li {
	font-weight: var(--weight-bold);
	text-align: center;
	white-space: nowrap;
	padding-top: 1.2em;
	padding-bottom: 1.0em;
	padding-left: 1.2em;
	padding-right: 0;
}

.list-special-flow li::after {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	height: 100%;
	left: calc(100% - 1px);
	width: 2.0em;
	z-index: 1;
	clip-path: polygon(100% 50%, 0 0, 0 100%);
}

.list-special-flow li:nth-child(1):after {
	background-color: var(--color-blue-light);
}

.list-special-flow li:nth-child(2):after {
	background-color: var(--color-green-light);
}

.list-special-flow li:nth-child(3):after {
	background-color: var(--color-yellow-light);
}

.list-special-flow li:nth-child(4):after {
	background-color: var(--color-orange-light);
}


.list-special-flow li .step {
	background-color: var(--color-white);
	width: 4.4em;
	aspect-ratio: 1;
	border-radius: 100vh;
	margin-left: auto;
	margin-right: auto;
	font-size: var(--size-xsmall);
	line-height: 1.0;
	padding-top: 0.8em;

}

.list-special-flow li .step .no {
	display: block;
	font-size: var(--size-xxxxxlarge);

}

.list-special-flow li .text {
	line-height: var(--line-height-narrow);
	margin-top: 0.6em;
}



.list-special-schedule {
	line-height: var(--line-height-narrow);
	display: grid;
	gap: 0.4em;
	position: relative;
	margin-top: 0.2em;



}

.list-special-schedule::before {
	content: '';
	display: block;
	position: absolute;
	left: 0.2em;
	top: 0;
	bottom: 0;
	border-left: 0.2em solid var(--color-gray);

}

.list-special-schedule li {
	padding-left: 1.2em;
}

.list-special-schedule li::before {
	content: '';
	display: block;
	width: 0.6em;
	aspect-ratio: 1;
	background-color: var(--color-black);
	border-radius: 100vh;
	position: absolute;
	left: 0;
	top: 0.45em;
}


.block-special-movie {
	text-align: center;
	margin-top: 3.2em;
}

.block-special-movie .title {
	margin-bottom: 0.8em;
}

.block-special-movie .title>.inner {
	display: inline-block;
	font-size: var(--size-large);
	font-weight: var(--weight-bold);
	line-height: var(--line-height-narrow);
	padding: 0 1.2em;
}

.block-special-movie .title>.inner::after,
.block-special-movie .title>.inner::before {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	bottom: 0;
	border-left: var(--border-width-wide) solid var(--color-black);
}


.block-special-movie .title>.inner::after {
	left: 0;
	transform: rotate(-20deg);
}

.block-special-movie .title>.inner::before {
	right: 0;
	transform: rotate(20deg);
}


.block-special-movie iframe {
	width: 100%;
	max-width: 800px;
	height: auto;
	aspect-ratio: 16 / 9;
	vertical-align: bottom;

}

@media screen and (max-width: 1920px) {}

@media screen and (max-width: 1536px) {}

@media screen and (max-width: 1280px) {}

@media print,
screen and (max-width: 1024px) {
	.list-special-flow {
		grid-template-columns: 1fr;
	}

	.list-special-flow li {
		padding-left: 0;
		padding-bottom: 0;
		padding-top: 2.4em;
	}

	.list-special-flow li:first-child {
		padding-top: 1.2em;
	}

	.list-special-flow li:last-child {
		padding-bottom: 1.2em;
	}

	.list-special-flow li::after {
		width: 100%;
		height: 1.6em;
		left: 0;
		top: calc(100% - 1px);
		clip-path: polygon(100% 0, 0 0, 50% 100%);
	}

}

@media screen and (max-width: 560px) {
	.block-special-theme {
		font-size: var(--size-xxlarge);
	}

}


/* ----------------------------------------------------------------------------------------------------
 * NEWS
---------------------------------------------------------------------------------------------------- */
.list-news {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 1.2em 0.8em;
	line-height: var(--line-height-narrow);
}

.wp-pagenavi {
	display: flex;
	justify-content: center;
	margin-top: 2.4em;
	font-size: var(--size-small);
	gap: 0.4em;
	flex-wrap: wrap;
}

.wp-pagenavi>* {
	border: var(--border-width-narrow) solid var(--color-black);
	padding: 0.1em 0.5em;
	text-decoration: none;
}

.wp-pagenavi>*.current {
	background-color: var(--color-black);
	color: var(--color-white);
}


.block-news {
	padding-bottom: 2.4em;
	border-bottom: var(--border-width-normal) dotted var(--color-black);
}

.block-news .block-date>.inner {
	display: inline-block;
	background-color: var(--color-black);
	color: var(--color-white);
	font-size: var(--size-small);
	padding: 0.1em 0.5em;
	margin-bottom: 0.6em;
}

.block-news h1 {
	font-weight: var(--weight-bold);
	line-height: var(--line-height-narrow);
	font-size: var(--size-xxxxlarge);
	margin-bottom: 0.8em;
}
.block-news ul {
	list-style: disc;
	margin-left: 1.4em;
	margin-bottom: 1.6em;
}
.block-news ol {
	list-style: decimal;
	margin-left: 1.6em;
	margin-bottom: 1.6em;
}
.block-news h2 {
	font-size: var(--size-xxxlarge);
	font-weight: var(--weight-bold);
	line-height: var(--line-height-narrow);
	margin-top: 1.6em;
	margin-bottom: 0.6em;
}

.block-news .wp-block-image {
	margin-top: 2.0em;
	margin-bottom: 2.0em;
	width: 100%;
	max-width: 800px;
	margin-left: auto;
	margin-right: auto;
}
.block-news .wp-block-image figcaption {
	text-align: center;
	font-size: var(--size-small);
	line-height: var(--line-height-narrow);
	padding-top: 0.4em;
}


.block-news .wp-block-embed-youtube {
	margin-top: 2.0em;
	margin-bottom: 2.0em;
	width: 100%;
	max-width: 800px;
	margin-left: auto;
	margin-right: auto;

}
.block-news .wp-block-embed-youtube iframe {
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	vertical-align: bottom;
}
@media screen and (max-width: 1920px) {}

@media screen and (max-width: 1536px) {}

@media screen and (max-width: 1280px) {}

@media print,
screen and (max-width: 1024px) {}

@media screen and (max-width: 560px) {

	.list-news {
		grid-template-columns: 1fr;
		gap: 0.2em;
	}

	.list-news dd {
		padding-left: 0.8em;
		m;
	}

	.list-news dd+dt {
		padding-top: 1.2em;
	}



	.block-news h1 {
	font-size: var(--size-xxxlarge);
}
.block-news h2 {
	font-size: var(--size-xxlarge);
}


}