@charset "UTF-8";
/*!
    CSSファイルの直接の改変厳禁
    SCSSファイルからCSSファイルを生成してください
*/
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Outfit:wght@100..900&display=swap");
/* Reset
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend, button,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, dialog, figure, footer, header,
hgroup, menu, nav, section,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	font-size: 100%;
	vertical-align: baseline;
	background: transparent;
}

main, article, aside, dialog, figure, footer, header,
hgroup, nav, section {
	display: block;
}

ol, ul {
	list-style: none;
}

blockquote, q {
	quotes: none;
}

blockquote::before, blockquote::after,
q::before, q::after {
	content: "";
	content: none;
}

/* remember to define focus styles! */
:focus {
	outline: 0;
}

/* remember to highlight inserts somehow! */
ins {
	text-decoration: none;
}

del {
	text-decoration: line-through;
}

/* tables still need 'cellspacing="0"' in the markup */
table {
	border-collapse: collapse;
	border-spacing: 0;
}

:root {
	--ja-font: 'Noto Sans JP', sans-serif;
	--en-font: 'Outfit', sans-serif;
	--num-font: 'Outfit', sans-serif;
	--color--prim: var(--color--bl);
	--color--sec: var(--color--pl);
	--color--bl: #0072BC;
	--color--dk-bl: #070F26;
	--color--aq: #00CBE4;
	--color--pl: #C28BF5;
	--color--pk: #F98EE2;
	--color--bl-gr: #71D1CE;
	--color--lt-bl: #E6F2F9;
	--color--gr: #75CA4E;
	--color--lt-gr: #CCEDB1;
	--color--yl: #E1D749;
	--color--or: #FA7A00;
	--color--be: #F7F5F0;
	--color--wh: #FFF;
	--base-font-color: var(--color--dk-bl);
	--link-color: var(--color--sec);
	--link-hover-color: var(--link-color);
	--nav-link-hover-color: color-mix(in srgb, var(--link-color) 50%, white);
}

:root {
	--break-point: 1024px;
}

@media screen and (min-width: 1024px) {
	:root {
		--header-height: 100px;
		--extra-margin: 24px;
		--scroll-offset: calc(var(--header-height) + var(--extra-margin));
	}
}
@media screen and (max-width: 1023.98px) {
	:root {
		--header-height: 56px;
		--extra-margin: 24px;
		--scroll-offset: calc(var(--header-height) + var(--extra-margin));
	}
}
@media screen and (min-width: 1024px) {
	:root {
		--base-font-size: var(--font-size--16);
		--base-letter-spacing: 0.1em;
		--base-line-height: 2.2;
		--font-size--60: 6rem;
		--font-size--34: 3.4rem;
		--font-size--32: 3.2rem;
		--font-size--30: 3.0rem;
		--font-size--28: 2.8rem;
		--font-size--24: 2.4rem;
		--font-size--22: 2.2rem;
		--font-size--20: 2.0rem;
		--font-size--18: 1.8rem;
		--font-size--16: 1.6rem;
		--font-size--15: 1.5rem;
		--font-size--14: 1.4rem;
		--font-size--13: 1.3rem;
		--font-size--12: 1.2rem;
		--font-size--10: 1rem;
	}
}
@media screen and (max-width: 1023.98px) {
	:root {
		--base-font-size: var(--font-size--16);
		--base-letter-spacing: 0.05em;
		--base-line-height: 2;
		--font-size--60: 4rem;
		--font-size--34: 2.8rem;
		--font-size--32: 2.4rem;
		--font-size--30: 2.3rem;
		--font-size--28: 2.2rem;
		--font-size--24: 1.9rem;
		--font-size--22: 1.8rem;
		--font-size--20: 1.7rem;
		--font-size--18: 1.6rem;
		--font-size--16: 1.4rem;
		--font-size--15: 1.3rem;
		--font-size--14: 1.2rem;
		--font-size--13: 1.1rem;
		--font-size--12: 1rem;
		--font-size--10: 0.8rem;
	}
}
:root {
	--vw: 1vw;
}

@media screen and (min-width: 1024px) {
	:root {
		--content-width--s: min(calc(var(--vw) * 50), 660px);
		--content-width: min(calc(var(--vw) * 80), 1140px);
		--content-width--l: min(calc(var(--vw) * 87), 1360px);
		--content-width--xl: calc(var(--vw) * 94);
		--neg-margin--l: calc((var(--content-width--l) - var(--content-width)) / -2);
		--neg-margin--xl: calc((var(--content-width--xl) - var(--content-width)) / -2);
		--content-padding--s: calc((var(--vw) * 100 - var(--content-width)) / 2 + var(--content-width) - var(--content-width--s));
		--content-padding: calc((var(--vw) * 100 - var(--content-width)) / 2);
		--content-padding--l: calc((var(--vw) * 100 - var(--content-width--l)) / 2);
		--content-padding--xl: calc((var(--vw) * 100 - var(--content-width--xl)) / 2);
		--section-margin: 150px;
		--child-section-margin: 80px;
		--elem-gap--xl: 80px;
		--elem-gap--l: 60px;
		--elem-gap--m: 40px;
		--elem-gap--s: 30px;
		--elem-gap--xs: 20px;
	}
}
@media screen and (max-width: 1280px) and (min-width: 1024px) {
	:root {
		--content-width--s: min(calc(var(--vw) * 54), 660px);
		--content-width: min(calc(var(--vw) * 84), 1140px);
		--content-width--l: min(calc(var(--vw) * 90), 1360px);
		--content-width--xl: calc(var(--vw) * 94);
		--neg-margin--l: calc((var(--content-width--l) - var(--content-width)) / -2);
		--neg-margin--xl: calc((var(--content-width--xl) - var(--content-width)) / -2);
		--content-padding--s: calc((var(--vw) * 100 - var(--content-width)) / 2 + var(--content-width) - var(--content-width--s));
		--content-padding: calc((var(--vw) * 100 - var(--content-width)) / 2);
		--content-padding--l: calc((var(--vw) * 100 - var(--content-width--l)) / 2);
		--content-padding--xl: calc((var(--vw) * 100 - var(--content-width--xl)) / 2);
		--section-margin: 130px;
		--child-section-margin: 65px;
		--elem-gap--xl: 65px;
		--elem-gap--l: 45px;
		--elem-gap--m: 35px;
		--elem-gap--s: 25px;
		--elem-gap--xs: 15px;
	}
}
@media screen and (max-width: 1023.98px) {
	:root {
		--content-width--s: calc(var(--vw) * 85);
		--content-width: calc(var(--vw) * 85);
		--content-width--l: calc(var(--vw) * 90);
		--content-width--xl: calc(var(--vw) * 100 - 26px);
		--neg-margin--l: calc((var(--content-width--l) - var(--content-width)) / -2);
		--neg-margin--xl: calc((var(--content-width--xl) - var(--content-width)) / -2);
		--content-padding--s: calc((var(--vw) * 100 - var(--content-width)) / 2);
		--content-padding: calc((var(--vw) * 100 - var(--content-width)) / 2);
		--content-padding--l: calc((var(--vw) * 100 - var(--content-width--l)) / 2);
		--content-padding--xl: calc((var(--vw) * 100 - var(--content-width--xl)) / 2);
		--section-margin: 80px;
		--child-section-margin: 40px;
		--elem-gap--xl: 40px;
		--elem-gap--l: 30px;
		--elem-gap--m: 20px;
		--elem-gap--s: 15px;
		--elem-gap--xs: 10px;
	}
}
@media screen and (min-width: 1024px) {
	:root {
		--radius--s: 10px;
		--radius--m: 20px;
		--radius--l: 30px;
		--radius--xl: 50px;
	}
}
@media screen and (max-width: 1280px) and (min-width: 1024px) {
	:root {
		--radius--s: 8px;
		--radius--m: 16px;
		--radius--l: 25px;
		--radius--xl: 40px;
	}
}
@media screen and (max-width: 1023.98px) {
	:root {
		--radius--s: 8px;
		--radius--m: 14px;
		--radius--l: 20px;
		--radius--xl: 30px;
	}
}
/* Fonts
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
:lang(ja) {
	font-family: var(--ja-font);
}

:lang(en) {
	font-family: var(--en-font);
	letter-spacing: 0;
	/*font-variant-ligatures: none;*/
}

html {
	font-size: 62.5%;
	scrollbar-gutter: stable;
}

body {
	font-size: var(--base-font-size);
	line-height: var(--base-line-height);
	font-weight: 400;
	color: var(--base-font-color);
	letter-spacing: var(--base-letter-spacing);
	-webkit-font-feature-settings: "palt";
	        font-feature-settings: "palt";
	overflow-wrap: anywhere;
	word-break: normal;
	line-break: strict;
	-webkit-text-size-adjust: 100%;
	-webkit-font-smoothing: subpixel-antialiased;
	-moz-osx-font-smoothing: unset;
}
@media only screen and (-webkit-min-device-pixel-ratio: 2), (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {
	body {
		-webkit-font-smoothing: antialiased;
		-moz-osx-font-smoothing: grayscale;
	}
}

/* common
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
html {
	height: 100%;
}

body {
	position: relative;
	-webkit-box-sizing: border-box;
	        box-sizing: border-box;
}

p, ul, ol, dl {
	margin-block: 0 var(--elem-gap--s);
}

h1, h2, h3, h4, h5 {
	line-height: 1.5;
	margin-block: 0 var(--elem-gap--s);
	font-size: var(--font-size--24);
	font-weight: 500;
	letter-spacing: 0.1em;
}

li {
	margin-inline: 2.2em 0;
}

ul:not([class]), ol:not([class]) {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	    -ms-flex-direction: column;
	        flex-direction: column;
	gap: 0.5em 0;
}
ul:not([class]) ul, ul:not([class]) ol, ol:not([class]) ul, ol:not([class]) ol {
	margin-block: 0.5em;
}

ul {
	list-style: disc;
}
ul ul {
	list-style: circle;
}
ul.no-style {
	list-style: none;
}
ul.no-style > li {
	margin-inline: 0;
}

ol {
	list-style: decimal;
}
ol:not([class]) ol {
	counter-reset: number-child-list;
	margin-block: 0.5em;
}
ol:not([class]) ol > li {
	counter-increment: number-child-list;
	list-style: none;
	margin-left: 2.5em;
}
ol:not([class]) ol > li::before {
	content: "(" counter(number-child-list) ")";
	width: 2.5em;
	display: inline-block;
	margin-left: -2.5em;
}
ol.parentheses {
	counter-reset: parentheses-list;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	    -ms-flex-direction: column;
	        flex-direction: column;
	gap: 0.5em 0;
}
ol.parentheses > li {
	counter-increment: parentheses-list;
	-webkit-margin-start: 2.5em;
	        margin-inline-start: 2.5em;
	list-style: none;
}
ol.parentheses > li::before {
	content: "(" counter(parentheses-list) ")";
	width: 2.5em;
	display: inline-block;
	-webkit-margin-start: -2.5em;
	        margin-inline-start: -2.5em;
}
ol.parentheses ol {
	list-style: katakana;
	margin-block: 0.5em;
}

.hidden {
	display: none;
}

table {
	border-collapse: collapse;
	line-height: 1.8;
}
table th, table td {
	padding: 8px 16px;
	text-align: left;
	vertical-align: middle;
}
table th p, table th ul, table th ol, table th dl, table td p, table td ul, table td ol, table td dl {
	margin-block: 0 8px;
}
table th :not(input):not(select):not(textarea):not(span):last-child, table td :not(input):not(select):not(textarea):not(span):last-child {
	-webkit-margin-after: 0 !important;
	        margin-block-end: 0 !important;
}
table caption {
	font-weight: bold;
	text-align: left;
}

hr {
	display: none;
}

img {
	max-width: 100%;
	height: auto;
	-webkit-transition: 0.2s ease;
	transition: 0.2s ease;
	border: none;
	vertical-align: bottom;
}

i {
	font-style: normal;
}

em {
	font-style: normal;
	font-weight: 700;
}

strong {
	font-weight: 700;
	color: var(--color--rd);
}

sup {
	vertical-align: top;
	line-height: 1.8;
	font-size: max(40%, 1.1rem);
}

sub {
	vertical-align: baseline;
	line-height: 1.8;
	font-size: max(40%, 1.1rem);
}

ins {
	color: #C00;
}

a {
	-webkit-transition: 0.2s ease;
	transition: 0.2s ease;
	color: var(--base-font-color);
	text-decoration: none;
}
@media (hover: hover) {
	a:where(:-moz-any-link, :enabled, summary):hover {
		color: var(--link-hover-color);
	}
	a:where(:any-link, :enabled, summary):hover {
		color: var(--link-hover-color);
	}
}
a:hover span {
	cursor: pointer;
}
a.inactive, .inactive a {
	cursor: default;
	pointer-events: none;
}
a:not([class]) {
	text-decoration: underline;
	color: var(--link-color);
	font-weight: 500;
}
@media (hover: hover) {
	a:not([class]):where(:-moz-any-link, :enabled, summary):hover {
		color: var(--link-hover-color);
	}
	a:not([class]):where(:any-link, :enabled, summary):hover {
		color: var(--link-hover-color);
	}
}
a:not([class]) {
	/* &[href$=".pdf"] {
		&::after {
			content: " (PDF)";
			font-size: 1.2rem;
		}
	}
	&[href$=".xlsx"] {
		&::after {
			content: " (Excel)";
			font-size: 1.2rem;
		}
	}
	&[href$=".pptx"] {
		&::after {
			content: " (PowerPoint)";
			font-size: 1.2rem;
		}
	}
	&[href$=".doc"] {
		&::after {
			content: " (Word)";
			font-size: 1.2rem;
		}
	} */
}
@media screen and (min-width: 1024px) {
	a[href^="tel:"] {
		color: var(--base-font-color);
		text-decoration: none;
		pointer-events: none;
	}
}

input,
select,
textarea,
button {
	font-family: var(--ja-font);
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	border: none;
	margin: 0;
	-webkit-box-sizing: border-box;
	        box-sizing: border-box;
	border-radius: 0;
	background: transparent;
	-webkit-transition: background-color 0.2s ease;
	transition: background-color 0.2s ease;
	font-size: var(--base-font-size);
	font-weight: 500;
	line-height: 1.8;
	overflow: visible;
}

@media screen and (max-width: 1023.98px) {
	input, textarea {
		font-size: 1.6rem;
	}
}

select,
input[type=submit],
button {
	cursor: pointer;
}

figcaption {
	text-align: left;
}

summary {
	display: block;
	cursor: pointer;
}

summary::-webkit-details-marker {
	display: none;
}

.italic {
	font-style: italic;
}

.note {
	font-size: 1.4rem;
	line-height: 1.8;
}
.note--s {
	font-size: 1.2rem;
}

.flow-root {
	display: flow-root;
}

.float-right,
.float-right-image {
	float: right;
}

.float-right-image {
	margin-inline: var(--elem-gap--l) 0;
	max-width: 60%;
}

.float-left,
.float-left-image {
	float: left;
}

.float-left-image {
	margin-inline: var(--elem-gap--l) 0;
	max-width: 60%;
}

.float-clear {
	clear: both;
}

.align-right {
	text-align: right;
}

.align-center {
	text-align: center;
}

.flex-end {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: end;
	    -ms-flex-pack: end;
	        justify-content: flex-end;
}

.flex-center {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	    -ms-flex-pack: center;
	        justify-content: center;
}

:focus-visible {
	outline: 2px dotted var(--color--pl);
	outline-offset: -1px;
}

[class$=-number],
[class$=-count] {
	font-family: var(--num-font);
}

@media screen and (max-width: 1023.98px) {
	table th, table td {
		padding: 8px 5px;
		width: auto;
	}
	.note {
		font-size: 1.1rem;
	}
	.float-right,
	.float-right-image,
	.float-left,
	.float-left-image {
		float: none;
	}
	.float-right-image,
	.float-left-image {
		width: -webkit-fit-content;
		width: -moz-fit-content;
		width: fit-content;
		margin-inline: auto;
	}
}
@media screen and (min-width: 1024px) {
	.mob-only {
		display: none;
	}
}
@media screen and (max-width: 1023.98px) {
	.pc-only {
		display: none !important;
	}
	.mob-only {
		display: block;
	}
	br.mob-only {
		display: inline;
	}
}
.wrapper {
	overflow: clip;
}

.contents {
	position: relative;
	z-index: 2;
	min-height: -webkit-fill-available;
	min-height: -moz-available;
	min-height: stretch;
	padding-block: 150px var(--section-margin);
	padding-inline: var(--content-padding);
}
@media screen and (max-width: 1023.98px) {
	.contents {
		padding-block: var(--header-height) var(--section-margin);
	}
}

.arrow-icon {
	display: -webkit-inline-box;
	display: -ms-inline-flexbox;
	display: inline-flex;
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	-webkit-box-pack: center;
	    -ms-flex-pack: center;
	        justify-content: center;
	vertical-align: middle;
	-webkit-box-flex: 0;
	    -ms-flex: 0 0 auto;
	        flex: 0 0 auto;
	width: 60px;
	height: 40px;
	-webkit-box-sizing: border-box;
	        box-sizing: border-box;
	-webkit-transition: 0.2s ease;
	transition: 0.2s ease;
	border-radius: var(--radius--l);
	margin-inline: auto 0;
	background-image: -webkit-gradient(linear, left top, right top, from(var(--color--bl-gr)), to(var(--color--lt-gr)));
	background-image: linear-gradient(90deg, var(--color--bl-gr) 0%, var(--color--lt-gr) 100%);
	background-size: 100% 100%;
}
.arrow-icon::before {
	content: "";
	display: block;
	width: 17px;
	height: 8px;
	background-color: var(--color--wh);
	-webkit-mask-image: url(../images/icn_arrow.svg);
	        mask-image: url(../images/icn_arrow.svg);
	-webkit-mask-size: contain;
	        mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	        mask-repeat: no-repeat;
	-webkit-mask-position: center;
	        mask-position: center;
	-webkit-margin-start: 7%;
	        margin-inline-start: 7%;
}
.arrow-icon {
	/* [target="_blank"] &::before {
		rotate: -45deg;
	} */
}
.arrow-icon--down {
	rotate: 90deg;
}
@media screen and (max-width: 1023.98px) {
	.arrow-icon {
		width: 40px;
		height: 26px;
	}
	.arrow-icon::before {
		width: 15px;
		height: 7px;
	}
}
.arrow-icon--s {
	width: -webkit-fit-content;
	width: -moz-fit-content;
	width: fit-content;
	height: -webkit-fit-content;
	height: -moz-fit-content;
	height: fit-content;
	background: none;
}

.down-arrow-icon {
	margin-inline: auto;
	display: block;
	-webkit-mask: url(../images/icn_down-arrow.svg) no-repeat center/contain;
	        mask: url(../images/icn_down-arrow.svg) no-repeat center/contain;
	width: 61px;
	height: 42px;
	background-image: -webkit-gradient(linear, left bottom, left top, from(var(--color--sec)), to(var(--color--pk)));
	background-image: linear-gradient(0deg, var(--color--sec) 0%, var(--color--pk) 100%);
	background-size: 100% 100%;
}
@media screen and (max-width: 1023.98px) {
	.down-arrow-icon {
		width: 50px;
		height: 35px;
	}
}

.plus-icon, .toggle-icon {
	position: relative;
	display: -webkit-inline-box;
	display: -ms-inline-flexbox;
	display: inline-flex;
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	-webkit-box-pack: center;
	    -ms-flex-pack: center;
	        justify-content: center;
	vertical-align: middle;
	width: 40px;
	height: 40px;
	-webkit-box-sizing: border-box;
	        box-sizing: border-box;
	-webkit-transition: 0.2s ease;
	transition: 0.2s ease;
	margin: 0 0 0 auto;
	background: var(--color--wh);
	border-radius: 50%;
}
.plus-icon::before, .toggle-icon::before, .plus-icon::after, .toggle-icon::after {
	content: "";
	position: absolute;
	inset: 0;
	margin: auto;
	-webkit-box-sizing: border-box;
	        box-sizing: border-box;
	border-top: 2px solid;
	width: 14px;
	height: 0;
	-webkit-transition: 0.2s ease;
	transition: 0.2s ease;
	color: var(--color--prim);
}
.plus-icon::after, .toggle-icon::after {
	rotate: 90deg;
}
@media screen and (max-width: 1023.98px) {
	.plus-icon, .toggle-icon {
		width: 30px;
		height: 30px;
	}
	.plus-icon::before, .toggle-icon::before, .plus-icon::after, .toggle-icon::after {
		width: 12px;
	}
}

.toggle-icon::before {
	border-top: none;
	border-right: 2px solid;
	border-bottom: 2px solid;
	width: 10px;
	height: 10px;
	rotate: 45deg;
	translate: 0 -20%;
}
.toggle-icon::after {
	display: none;
}

.image,
.diagram {
	width: 100%;
	height: auto;
	-webkit-box-sizing: border-box;
	        box-sizing: border-box;
	border-radius: var(--radius--xl);
}
.image[src$=".svg"],
.diagram[src$=".svg"] {
	width: auto;
	max-width: 100%;
}
.image-caption,
.diagram-caption {
	margin-block: var(--elem-gap--s) 0;
}
.image-wrapper,
.diagram-wrapper {
	text-align: center;
	margin-block: var(--elem-gap--xl);
}
.image-wrapper:first-child,
.diagram-wrapper:first-child {
	-webkit-margin-before: 0;
	        margin-block-start: 0;
}
.image-wrapper:last-child,
.diagram-wrapper:last-child {
	-webkit-margin-after: 0;
	        margin-block-end: 0;
}

.diagram {
	width: auto;
	max-width: 100%;
	border-radius: 0;
}

.no-round {
	border-radius: 0 !important;
}

.thumbnail {
	max-width: none;
	width: 100%;
	height: auto;
	-webkit-transition: -webkit-transform 0.4s ease;
	transition: -webkit-transform 0.4s ease;
	transition: transform 0.4s ease;
	transition: transform 0.4s ease, -webkit-transform 0.4s ease;
}
.thumbnail-wrapper {
	overflow: hidden;
}
@media (hover: hover) {
	a:where(:-moz-any-link, :enabled, summary):hover .thumbnail {
		transform: scale(1.05);
	}
	a:where(:any-link, :enabled, summary):hover .thumbnail {
		-webkit-transform: scale(1.05);
		        transform: scale(1.05);
	}
}

.video {
	aspect-ratio: 16/9;
	width: 100%;
	height: auto;
	border-radius: var(--radius--m);
}

.dash {
	letter-spacing: 0;
	white-space: nowrap;
}

.modal {
	position: fixed;
	z-index: 200;
	display: none;
	margin: 0;
	padding: 0;
	inset: 0;
	width: 100vw;
	height: 100vh;
	max-width: none;
	max-height: none;
	border: none;
	background: transparent;
}
.modal[open] {
	display: block;
}
body:has(.modal.is-opened) {
	overflow: hidden;
}
.modal::-ms-backdrop {
	background-image: linear-gradient(135deg, var(--color--prim) 0%, var(--color--sec) 100%);
	background-size: 100% 100%;
	opacity: 0;
	-ms-transition: opacity 0.4s;
	transition: opacity 0.4s;
}
.modal::backdrop {
	background-image: linear-gradient(135deg, var(--color--prim) 0%, var(--color--sec) 100%);
	background-size: 100% 100%;
	opacity: 0;
	-webkit-transition: opacity 0.4s;
	transition: opacity 0.4s;
}
.kosen .modal::-ms-backdrop {
	background-image: linear-gradient(135deg, var(--color--gr) 0%, #E5DD6B 100%);
	background-size: 100% 100%;
}
.kosen .modal::backdrop {
	background-image: linear-gradient(135deg, var(--color--gr) 0%, #E5DD6B 100%);
	background-size: 100% 100%;
}
.modal.is-opened::-ms-backdrop {
	opacity: 0.9;
}
.modal.is-opened::backdrop {
	opacity: 0.9;
}
.modal.no-backdrop-transition::-ms-backdrop {
	-ms-transition: none !important;
	transition: none !important;
}
.modal.no-backdrop-transition::backdrop {
	-webkit-transition: none !important;
	transition: none !important;
}
.modal-container {
	position: fixed;
	z-index: 200;
	inset: 0;
	margin: auto;
	-webkit-box-sizing: border-box;
	        box-sizing: border-box;
	opacity: 0;
	scale: 0.9;
	-webkit-transition: opacity 0.4s, scale 0.4s;
	transition: opacity 0.4s, scale 0.4s;
	width: -webkit-fit-content;
	width: -moz-fit-content;
	width: fit-content;
	height: -webkit-fit-content;
	height: -moz-fit-content;
	height: fit-content;
}
.is-opened .modal-container {
	opacity: 1;
	scale: 1;
}
.modal.no-transition::-ms-backdrop {
	-ms-transition: none !important;
	transition: none !important;
}
.modal.no-transition, .modal.no-transition::backdrop, .modal.no-transition .modal-close-button {
	-webkit-transition: none !important;
	transition: none !important;
}
.modal-content {
	padding: var(--elem-gap--l);
	overflow-y: auto;
	-webkit-box-sizing: border-box;
	        box-sizing: border-box;
	background: var(--color--wh);
	width: min(var(--vw) * 80, 900px);
	max-height: calc(100svh - var(--elem-gap--l) * 2);
}
.modal-content > :last-child {
	-webkit-margin-after: 0;
	        margin-block-end: 0;
}
.modal-close-button {
	position: fixed;
	z-index: 200;
	inset: 30px 30px auto auto;
	-webkit-box-sizing: border-box;
	        box-sizing: border-box;
	width: 50px;
	height: 50px;
	border-radius: var(--radius--s);
}
.modal-close-button-label {
	overflow: hidden;
	position: absolute;
	text-indent: 100%;
	white-space: nowrap;
}
.modal-close-button::before, .modal-close-button::after {
	content: "";
	position: absolute;
	inset: 0;
	margin: auto;
	border-top: 2px solid var(--color--wh);
	width: 50px;
	height: 0;
	-webkit-transition: 0.2s ease;
	transition: 0.2s ease;
	rotate: -45deg;
}
.modal-close-button::after {
	rotate: 45deg;
}
.modal-close-button {
	scale: 0;
	-webkit-transition: scale 0.4s ease;
	transition: scale 0.4s ease;
}
.is-opened .modal-close-button {
	scale: 1;
}
.modal-nav {
	position: fixed;
	inset: 0;
	margin: auto;
	width: var(--content-width);
	height: 0;
}
.modal-nav-button {
	position: absolute;
	margin-block: auto;
	display: -ms-grid;
	display: grid;
	place-items: center;
	width: 50px;
	height: 50px;
}
.modal-nav-button-label {
	overflow: hidden;
	position: absolute;
	text-indent: 100%;
	white-space: nowrap;
}
.modal-prev-button {
	translate: -50% -50%;
	scale: -1 1;
}
.modal-next-button {
	right: 0;
	translate: 50% -50%;
}
@media screen and (max-width: 1023.98px) {
	.modal-overlay {
		padding-block: 60px;
	}
	.modal-content {
		max-height: calc(100svh - var(--elem-gap--xl) * 2);
	}
	.modal-close-button {
		inset: 5px 5px auto auto;
		width: 40px;
		height: 40px;
	}
	.modal-close-button::before, .modal-close-button::after {
		width: 42px;
	}
	.modal-nav-button {
		width: 40px;
		height: 40px;
	}
}

.modal-arrow-icon {
	display: inline-block;
	width: 40px;
	height: 40px;
	-webkit-transition: 0.2s ease;
	transition: 0.2s ease;
}
.modal-arrow-icon::before {
	content: "";
	position: absolute;
	inset: 0;
	margin: auto;
	width: 25px;
	height: 25px;
	border-top: 2px solid var(--color--wh);
	border-right: 2px solid var(--color--wh);
	rotate: 45deg;
}
@media screen and (max-width: 1023.98px) {
	.modal-arrow-icon {
		width: 40px;
		height: 40px;
	}
	.modal-arrow-icon::before {
		width: 25px;
		height: 25px;
	}
}

.video-modal-content {
	width: auto;
	height: auto;
	padding: 0;
	background: transparent;
}
.video-modal-content .video {
	width: calc(var(--vw) * 70);
	max-width: 1000px;
	display: block;
}
@media screen and (max-width: 1280px) and (min-width: 1024px) {
	.video-modal-content .video {
		width: calc(var(--vw) * 80);
	}
}
@media screen and (max-width: 1023.98px) {
	.video-modal-content .video {
		width: calc(var(--vw) * 90);
	}
}

.cookie-consent {
	position: fixed;
	z-index: 100;
	inset: auto 0 0;
	-webkit-box-sizing: border-box;
	        box-sizing: border-box;
	color: var(--color--wh);
	background: color-mix(in srgb, var(--color--dk-bl) 80%, transparent);
	backdrop-filter: blur(10px);
	visibility: hidden;
	-webkit-transform: translate(0, 100%);
	        transform: translate(0, 100%);
	-webkit-transition: 0.4s 0.2s ease;
	transition: 0.4s 0.2s ease;
}
.cookie-consent.is-visible {
	visibility: visible;
	-webkit-transform: translate(0, 0);
	        transform: translate(0, 0);
}
.cookie-consent-inner {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	gap: 30px;
	width: var(--content-width--l);
	margin: 0 auto;
	padding: 20px 0;
}
.cookie-consent-description {
	font-size: var(--font-size--12);
	line-height: 1.8em;
	-webkit-box-flex: 2;
	    -ms-flex: 2 2 auto;
	        flex: 2 2 auto;
	margin: 0;
}
.cookie-consent-description a {
	color: var(--color--sec);
}
.kosen .cookie-consent-description a {
	color: var(--color--yl);
}
.cookie-consent-accept-button {
	width: 190px;
	height: 50px;
	margin: 0;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	-webkit-box-pack: center;
	    -ms-flex-pack: center;
	        justify-content: center;
	text-align: center;
	background: var(--color--wh);
	font-size: var(--font-size--18);
	font-weight: 600;
	line-height: 1.6;
	color: var(--color--prim);
	border-radius: var(--radius--s);
	-webkit-transition: background-color 0.2s ease, color 0.2s ease;
	transition: background-color 0.2s ease, color 0.2s ease;
}
.kosen .cookie-consent-accept-button {
	color: var(--color--gr);
}
@media (hover: hover) {
	.cookie-consent-accept-button:where(:-moz-any-link, :enabled, summary):hover {
		color: var(--color--wh);
		background: var(--color--prim);
	}
	.cookie-consent-accept-button:where(:any-link, :enabled, summary):hover {
		color: var(--color--wh);
		background: var(--color--prim);
	}
	.kosen .cookie-consent-accept-button:where(:-moz-any-link, :enabled, summary):hover {
		background: var(--color--gr);
	}
	.kosen .cookie-consent-accept-button:where(:any-link, :enabled, summary):hover {
		background: var(--color--gr);
	}
}
.cookie-consent-close-button {
	text-indent: -100vw;
	overflow: hidden;
	width: 30px;
	height: 30px;
	position: absolute;
	top: 10px;
	right: 15px;
	cursor: pointer;
	margin: 0;
	padding: 0;
	border: none;
}
.cookie-consent-close-button::before, .cookie-consent-close-button::after {
	content: "";
	display: block;
	position: absolute;
	top: 50%;
	left: 50%;
	width: 30px;
	border-top: 1px solid;
	color: var(--color--wh);
	-webkit-transition: 0.2s ease;
	transition: 0.2s ease;
	-webkit-transform: translate(-50%, -50%) rotate(45deg);
	        transform: translate(-50%, -50%) rotate(45deg);
}
.cookie-consent-close-button::after {
	-webkit-transform: translate(-50%, -50%) rotate(-45deg);
	        transform: translate(-50%, -50%) rotate(-45deg);
}
.cookie-consent-close-button:hover::before, .cookie-consent-close-button:hover::after {
	width: 40px;
}
@media screen and (max-width: 1023.98px) {
	.cookie-consent-inner {
		gap: 20px;
		-webkit-box-orient: vertical;
		-webkit-box-direction: normal;
		    -ms-flex-direction: column;
		        flex-direction: column;
	}
	.cookie-consent-description {
		letter-spacing: 0;
		line-height: 1.6;
	}
	.cookie-consent-accept-button {
		width: 170px;
		height: 40px;
	}
	.cookie-consent-close-button {
		width: 20px;
		height: 20px;
		top: 7px;
		right: 10px;
	}
	.cookie-consent-close-button::before, .cookie-consent-close-button::after {
		width: 20px !important;
	}
}

.page-header {
	position: relative;
	margin-inline: calc(50% - var(--vw) * 50);
	padding-inline: calc(var(--vw) * 50 - 50%);
	background: var(--color--be);
	padding-bottom: var(--elem-gap--xl);
}
.page-header:has(.page-subtitle) {
	display: -ms-grid;
	display: grid;
	-ms-grid-columns: 1fr auto;
	grid-template-columns: 1fr auto;
}
.page-header:has(.page-subtitle) .page-title, .page-header:has(.page-subtitle) .page-category,
.page-header:has(.page-subtitle) .hero {
	-ms-grid-column-span: 2;
	grid-column: span 2;
}
.page-header:not(:has(.hero)), .page-header:not(:has(.lead)):not(:has(.page-subtitle)):not(:has(.interview-title)) {
	background: transparent;
}
.page-title, .page-category {
	position: relative;
	z-index: 2;
	color: var(--color--wh);
	padding-block: var(--elem-gap--xl) var(--elem-gap--m);
	text-align: right;
}
.page-title-ja {
	font-size: var(--font-size--30);
	line-height: 1.3;
	margin: 0 0 0.2em;
}
.page-title-ja small {
	font-size: 0.8em;
}
.page-title-ja:has(wbr) {
	word-break: keep-all;
	overflow-wrap: anywhere;
}
.page-title-en {
	font-size: min(8.5vw, 12rem);
	font-weight: 300;
	line-height: 0.9;
	margin: 0;
}
.page-title::before, .page-category::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0 0 auto;
	height: 100%;
	padding-bottom: 24.1228070175%;
	margin-inline: calc(50% - var(--vw) * 50);
	padding-inline: calc(var(--vw) * 50 - 50%);
	background-image: linear-gradient(160deg, var(--color--prim) 0%, var(--color--sec) 100%);
	background-size: 100% 100%;
}
.kosen .page-title::before, .kosen .page-category::before {
	background-image: linear-gradient(160deg, var(--color--gr) 0%, #E5DD6B 100%);
	background-size: 100% 100%;
}
.page-category {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: end;
	    -ms-flex-pack: end;
	        justify-content: flex-end;
	-webkit-box-align: baseline;
	    -ms-flex-align: baseline;
	        align-items: baseline;
	gap: var(--elem-gap--s);
}
.page-category-ja {
	font-size: var(--font-size--24);
	margin: 0;
}
.page-category-en {
	font-size: 10rem;
	font-weight: 300;
	line-height: 0.9;
	margin: 0;
}
.page-subtitle {
	position: relative;
	z-index: 3;
	font-size: var(--font-size--28);
	font-weight: 500;
	line-height: 1.6;
	padding: 50px var(--elem-gap--xl) 0 0;
	margin-block: -50px 0;
	margin-inline: -0.2px auto;
	background: var(--color--be);
	width: -webkit-fill-available;
	width: -moz-available;
	width: stretch;
	border-radius: 0 var(--radius--m) 0 0;
}
.page-subtitle:has(wbr) {
	word-break: keep-all;
	overflow-wrap: anywhere;
}
.page-subtitle::before, .page-subtitle::after {
	content: "";
	position: absolute;
	inset: auto auto 100% 0;
	background: var(--color--be);
	-webkit-mask: radial-gradient(circle, transparent 70%, #000 71%) no-repeat 0 100%/200% 200%;
	        mask: radial-gradient(circle, transparent 70%, #000 71%) no-repeat 0 100%/200% 200%;
	width: var(--radius--xl);
	height: var(--radius--xl);
}
.page-subtitle:after {
	inset: calc(50px - var(--radius--m)) auto auto 100%;
	width: var(--radius--m);
	height: var(--radius--m);
}
.page-subtitle + .lead, .page-subtitle + .interview-title {
	margin: var(--elem-gap--l) 0 0;
	padding: 0;
}
.page-subtitle + .lead::before, .page-subtitle + .interview-title::before, .page-subtitle + .lead::after, .page-subtitle + .interview-title::after {
	display: none;
}
@media screen and (max-width: 1023.98px) {
	.page-header:has(.page-subtitle) {
		display: block;
	}
	.page-title-en {
		font-size: min(12.8vw, 12rem);
	}
	.page-title::before, .page-category::before {
		padding-bottom: 33.3333333333%;
	}
	.page-category {
		-ms-flex-wrap: wrap;
		    flex-wrap: wrap;
	}
	.page-category-ja {
		font-size: 1.5rem;
	}
	.page-category-en {
		font-size: min(8vw, 10rem);
	}
	.page-subtitle {
		padding: 0;
		margin-block: var(--elem-gap--m);
	}
	.page-subtitle::before, .page-subtitle::after {
		display: none;
	}
}

.hero {
	position: relative;
	z-index: 2;
}
.hero-image {
	border-radius: var(--radius--xl);
}
@media screen and (max-width: 1023.98px) {
	.hero-image {
		aspect-ratio: 3/2;
		-o-object-fit: cover;
		   object-fit: cover;
	}
}

.lead, .interview-title {
	position: relative;
	z-index: 3;
	padding: 50px 0 0 var(--elem-gap--xl);
	margin-block: -50px 0;
	margin-inline: auto -0.2px;
	background: var(--color--be);
	width: var(--content-width--s);
	border-radius: var(--radius--m) 0 0 0;
}
.lead :last-child, .interview-title :last-child {
	-webkit-margin-after: 0;
	        margin-block-end: 0;
}
.lead::before, .interview-title::before, .lead::after, .interview-title::after {
	content: "";
	position: absolute;
	inset: auto 0 100% auto;
	background: var(--color--be);
	-webkit-mask: radial-gradient(circle, transparent 70%, #000 71%) no-repeat 100% 100%/200% 200%;
	        mask: radial-gradient(circle, transparent 70%, #000 71%) no-repeat 100% 100%/200% 200%;
	width: var(--radius--xl);
	height: var(--radius--xl);
}
.lead:after, .interview-title:after {
	inset: calc(50px - var(--radius--m)) 100% auto auto;
	width: var(--radius--m);
	height: var(--radius--m);
}
@media screen and (max-width: 1023.98px) {
	.lead, .interview-title {
		padding: 0;
		margin-block: var(--elem-gap--m) 0 !important;
	}
	.lead::before, .interview-title::before, .lead::after, .interview-title::after {
		display: none;
	}
}

.interview-title {
	font-size: var(--font-size--32);
	font-weight: 500;
}
.interview-title:has(wbr) {
	word-break: keep-all;
	overflow-wrap: anywhere;
}

.topic-path {
	position: absolute;
	z-index: 2;
	inset: var(--elem-gap--l) auto auto 0;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	    -ms-flex-pack: center;
	        justify-content: center;
	width: var(--content-padding);
	max-width: calc(var(--vw) * 10);
	color: var(--color--wh);
	letter-spacing: 0;
}
.topic-path-list {
	display: -ms-grid;
	display: grid;
	margin: 0;
	border: 1px solid color-mix(in srgb, var(--color--wh) 50%, transparent);
	border-radius: var(--radius--l);
	padding: 5px 10px;
}
.topic-path-item {
	position: relative;
	font-size: min(0.9vw, var(--font-size--12));
	text-align: center;
	margin: 0;
	padding: 15px 0;
	list-style: none;
	-webkit-writing-mode: vertical-rl;
	    -ms-writing-mode: tb-rl;
	        writing-mode: vertical-rl;
	text-orientation: sideways;
	/* text-overflow: ellipsis;
	overflow: hidden;
	white-space: nowrap;
	max-height: min(calc(var(--vw) * 25), 350px); */
}
.topic-path-item:not(:first-child)::before {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	display: block;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--color--wh);
	margin-block: auto;
	translate: 0 -50%;
}
.topic-path-link {
	color: var(--color--wh) !important;
}
@media screen and (max-width: 1023.98px) {
	.topic-path {
		display: none;
	}
}

.section {
	margin-block: 0 var(--section-margin);
}
.section:not(:first-child) {
	-webkit-margin-before: var(--section-margin);
	        margin-block-start: var(--section-margin);
}
.section:last-child, .section > :last-child {
	-webkit-margin-after: 0;
	        margin-block-end: 0;
}
@media screen and (min-width: 1024px) {
	.section--2col, .column-container {
		display: -ms-grid;
		display: grid;
		-ms-grid-columns: 1fr var(--elem-gap--xl) var(--content-width--s);
		grid-template-columns: 1fr var(--content-width--s);
		gap: 0 var(--elem-gap--xl);
	}
	.section--2col .image-wrapper--left, .column-container .image-wrapper--left,
	.section--2col .diagram-wrapper--left,
	.column-container .diagram-wrapper--left {
		margin-block: auto 0;
	}
	.section--2col .image-wrapper--wide, .column-container .image-wrapper--wide,
	.section--2col .diagram-wrapper--wide,
	.column-container .diagram-wrapper--wide {
		-ms-grid-column-span: 2;
		grid-column: span 2;
	}
}
.section--span2 {
	grid-column: 1/-1;
}
.section-header--sticky {
	position: sticky;
	top: var(--header-height);
}
.section-header:has(.section-shoulder) {
	display: -ms-grid;
	display: grid;
	-ms-grid-columns: auto var(--elem-gap--xs) 1fr;
	grid-template-columns: auto 1fr;
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	gap: 0 var(--elem-gap--xs);
	margin-block: 0 var(--elem-gap--l);
}
.section-header:has(.section-shoulder) .section-count {
	-ms-grid-column-span: 2;
	grid-column: span 2;
}
.section-header:has(.section-shoulder) .section-heading {
	margin-block: 0;
}
.section-shoulder {
	font-size: var(--font-size--22);
	font-weight: 700;
	color: var(--color--sec);
	padding-inline: 0 var(--elem-gap--xs);
	border-right: 1px solid var(--color--sec);
	width: -webkit-fit-content;
	width: -moz-fit-content;
	width: fit-content;
	margin-block: 0;
}
.section-heading {
	font-size: var(--font-size--28);
	font-weight: 500;
	letter-spacing: 0.1em;
	margin-block: 0 var(--elem-gap--l);
}
.section-heading:has(wbr) {
	word-break: keep-all;
	overflow-wrap: anywhere;
}
.section-heading--center {
	text-align: center;
}
.section-heading-en {
	font-size: var(--font-size--24);
	line-height: 1;
	font-weight: 400;
	color: var(--color--wh);
	background-image: -webkit-gradient(linear, left top, right top, from(var(--color--sec)), to(var(--color--pk)));
	background-image: linear-gradient(90deg, var(--color--sec) 0%, var(--color--pk) 100%);
	background-size: 100% 100%;
	border-radius: var(--radius--m);
	padding: 0.1em 0.7em 0.3em;
	width: -webkit-fit-content;
	width: -moz-fit-content;
	width: fit-content;
	margin-block: 0 var(--elem-gap--xs);
}
.section-child-heading {
	font-size: var(--font-size--24);
	font-weight: 500;
	color: var(--color--prim);
	margin-block: 0 var(--elem-gap--m);
}
.section-child-heading:has(wbr) {
	word-break: keep-all;
	overflow-wrap: anywhere;
}
.kosen .section-child-heading {
	color: var(--color--gr);
}
.section-child-heading-addition {
	font-size: var(--font-size--14);
	font-weight: 400;
	border: 1px solid;
	border-radius: 50px;
	padding: 0.2em 0.8em 0.3em;
}
.section-count {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: baseline;
	    -ms-flex-align: baseline;
	        align-items: baseline;
	margin-block: 0 0.5em;
}
.section-count-q {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	    -ms-flex-pack: center;
	        justify-content: center;
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	font-size: var(--font-size--24);
	color: var(--color--wh);
	background: var(--color--prim);
	line-height: 1;
	width: 30px;
	height: 30px;
	border-radius: 50%;
}
.kosen .section-count-q {
	background: var(--color--gr);
}
.section-count-label {
	font-size: var(--font-size--24);
	line-height: 0.9;
	color: var(--color--sec);
	margin-inline: 0 0.5em;
}
.section-count-number {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	    -ms-flex-pack: center;
	        justify-content: center;
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	font-size: var(--font-size--24);
	color: var(--color--wh);
	line-height: 1;
	background-image: linear-gradient(135deg, var(--color--prim) 0%, var(--color--sec) 100%);
	background-size: 100% 100%;
	width: 60px;
	height: 30px;
	border-radius: var(--radius--m);
}
.kosen .section-count-number {
	background-image: linear-gradient(135deg, var(--color--gr) 0%, #E5DD6B 100%);
	background-size: 100% 100%;
}
.section-body {
	-ms-grid-row-span: 2;
	grid-row: span 2;
}
.section-body > :last-child {
	-webkit-margin-after: 0;
	        margin-block-end: 0;
}
@media screen and (min-width: 1024px) {
	.section-body--2col {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		gap: var(--elem-gap--xl);
	}
	.section-body--2col > .section {
		margin-block: 0;
	}
	.section-body--2col > .image-wrapper:nth-child(2):last-child, .section-body--2col > .diagram-wrapper:nth-child(2):last-child {
		-webkit-box-flex: 0;
		    -ms-flex: 0 0 auto;
		        flex: 0 0 auto;
		margin-block: 0;
		max-width: 60%;
	}
	.section-body--2col-txt {
		-webkit-column-count: 2;
		   -moz-column-count: 2;
		        column-count: 2;
		-webkit-column-gap: var(--elem-gap--xl);
		   -moz-column-gap: var(--elem-gap--xl);
		        column-gap: var(--elem-gap--xl);
	}
}
@media screen and (max-width: 1023.98px) {
	.section-header:has(.section-shoulder) {
		-ms-grid-columns: 1fr;
		grid-template-columns: 1fr;
	}
	.section-header:has(.section-shoulder) .section-count {
		-ms-grid-column-span: 1;
		grid-column: span 1;
	}
	.section-shoulder {
		padding-inline: 0;
		border-right: none;
	}
	.section-count-q {
		width: 24px;
		height: 24px;
	}
	.section-count-number {
		width: 50px;
		height: 24px;
	}
}

.child-section {
	margin-block: 0 var(--child-section-margin);
}
.child-section:first-of-type:not(:first-child) {
	-webkit-margin-before: var(--child-section-margin);
	        margin-block-start: var(--child-section-margin);
}
.child-section:last-child, .child-section > :last-child {
	-webkit-margin-after: 0;
	        margin-block-end: 0;
}

.marked-heading {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	gap: var(--elem-gap--xs);
	font-size: var(--font-size--24);
	font-weight: 500;
	margin-block: 0 var(--elem-gap--l);
}
.marked-heading::before {
	-webkit-box-flex: 0;
	    -ms-flex: 0 0 auto;
	        flex: 0 0 auto;
	content: "";
	width: 10px;
	height: 40px;
	border-radius: var(--radius--s);
	background-image: -webkit-gradient(linear, left bottom, left top, from(var(--color--prim)), to(var(--color--sec)));
	background-image: linear-gradient(0deg, var(--color--prim) 0%, var(--color--sec) 100%);
	background-size: 100% 100%;
}
.marked-heading:has(wbr) {
	word-break: keep-all;
	overflow-wrap: anywhere;
}
@media screen and (max-width: 1023.98px) {
	.marked-heading::before {
		width: 8px;
		height: 32px;
	}
}

.bulleted-heading {
	display: list-item;
	margin-inline: 1.5em 0;
	margin-block: 0 var(--elem-gap--m);
	font-size: var(--font-size--20);
}

.column-container {
	margin-block: var(--child-section-margin);
}
.contents > .column-container {
	margin-block: var(--section-margin);
}
.contents > .column-container:last-child {
	-webkit-margin-after: 0;
	        margin-block-end: 0;
}
@media screen and (min-width: 1024px) {
	.column-container--half2 {
		-ms-grid-columns: 1fr var(--elem-gap--xl) 1fr;
		grid-template-columns: 1fr 1fr;
		gap: var(--section-margin) var(--elem-gap--xl);
	}
	.column-container--half2 > .section,
	.column-container--half2 > .child-section {
		margin-block: 0;
	}
	.column-container--half2 > .image-wrapper:nth-child(2):last-child, .column-container--half2 > .diagram-wrapper:nth-child(2):last-child {
		margin-block: 0;
	}
	.column-container--half2:has(.child-section):not(:has(.section)) {
		gap: var(--child-section-margin);
	}
}
@media screen and (min-width: 1024px) and (max-width: 1023.98px) {
	.column-container {
		display: -ms-grid;
		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
	}
}

.contents-nav {
	position: sticky;
	top: var(--scroll-offset);
	display: -ms-grid;
	display: grid;
	gap: var(--elem-gap--xs);
	margin: 0;
	height: -webkit-fit-content;
	height: -moz-fit-content;
	height: fit-content;
	border-top: 1px solid var(--color--prim);
	border-bottom: 1px solid var(--color--prim);
	padding: var(--elem-gap--m) var(--elem-gap--xs);
}
.kosen .contents-nav {
	border-top-color: var(--color--gr);
	border-bottom-color: var(--color--gr);
}
.contents-nav-item {
	margin: 0;
	padding: 0;
	list-style: none;
	font-weight: 500;
	line-height: 1.6;
}
.contents-nav-link {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: baseline;
	    -ms-flex-align: baseline;
	        align-items: baseline;
	gap: 10px;
	font-size: var(--font-size--14);
}
.contents-nav-link [lang=en] {
	-webkit-box-flex: 0;
	    -ms-flex: 0 0 auto;
	        flex: 0 0 auto;
}
.contents-nav-link small {
	font-size: var(--font-size--14);
}
.contents-nav-link .arrow-icon {
	opacity: 0;
}
.contents-nav-link .arrow-icon::before {
	background: var(--color--sec);
}
.kosen .contents-nav-link .arrow-icon::before {
	background: var(--color--yl);
}
.contents-nav-link.is-active {
	color: var(--color--sec);
}
.kosen .contents-nav-link.is-active {
	color: var(--color--gr);
}
.contents-nav-link.is-active .arrow-icon {
	opacity: 1;
}
@media (hover: hover) {
	.contents-nav-link:where(:-moz-any-link, :enabled, summary):hover {
		color: var(--color--sec);
		text-decoration: underline;
	}
	.contents-nav-link:where(:any-link, :enabled, summary):hover {
		color: var(--color--sec);
		text-decoration: underline;
	}
	.kosen .contents-nav-link:where(:-moz-any-link, :enabled, summary):hover {
		color: var(--color--yl);
	}
	.kosen .contents-nav-link:where(:any-link, :enabled, summary):hover {
		color: var(--color--yl);
	}
	.contents-nav-link:where(:-moz-any-link, :enabled, summary):hover .arrow-icon {
		opacity: 1;
	}
	.contents-nav-link:where(:any-link, :enabled, summary):hover .arrow-icon {
		opacity: 1;
	}
}
.contents-nav--rich {
	background-image: linear-gradient(135deg, var(--color--prim) 0%, var(--color--sec) 100%);
	background-size: 100% 100%;
	border-radius: var(--radius--xl);
	border: none;
	gap: 0;
	padding: var(--elem-gap--xs);
}
.contents-nav--rich .contents-nav-link {
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	gap: var(--elem-gap--xs);
	font-size: var(--font-size--18);
	color: var(--color--wh);
	padding: 10px var(--elem-gap--xs);
	border: 1px solid transparent;
	border-radius: var(--radius--l);
}
.contents-nav--rich .contents-nav-link .arrow-icon::before {
	background: var(--color--wh);
}
.contents-nav--rich .contents-nav-link.is-active {
	border-color: var(--color--wh);
}
.contents-nav-icon {
	width: clamp(40px, 4.2vw, 74px);
}
@media screen and (max-width: 1280px) and (min-width: 1024px) {
	.contents-nav-icon {
		width: 48px;
	}
}
@media screen and (max-width: 1023.98px) {
	.contents-nav {
		position: relative;
		top: auto;
		margin-block: var(--section-margin);
	}
	.contents-nav-icon {
		width: 40px;
	}
	.contents-nav-link:not(:hover).is-active {
		color: inherit;
	}
	.contents-nav-link .arrow-icon {
		opacity: 1;
	}
	.contents-nav--rich .contents-nav-link {
		color: var(--color--wh);
	}
	.contents-nav--rich .contents-nav-link.is-active {
		color: var(--color--wh);
		border: 1px solid transparent;
	}
	.contents-nav--rich .contents-nav-link .arrow-icon {
		opacity: 1;
	}
}

.description-list {
	display: -ms-grid;
	display: grid;
	-ms-grid-columns: 30% var(--elem-gap--s) 1fr;
	grid-template-columns: 30% 1fr;
	gap: var(--elem-gap--s);
	-webkit-box-align: baseline;
	    -ms-flex-align: baseline;
	        align-items: baseline;
	margin-block: var(--elem-gap--l);
}
.description-list--bg {
	background: var(--color--be);
	border-radius: var(--radius--xl);
	padding: var(--elem-gap--m);
}
.description-term {
	font-weight: 500;
	color: var(--color--sec);
	line-height: 1.6;
	text-align: center;
	padding: 0.5em 0.8em;
	border: 1px solid var(--color--sec);
	border-radius: var(--radius--s);
}
.tab-box .description-term, .description-list--bg .description-term {
	border: none;
	background: var(--color--wh);
}
.description-detail :last-child {
	-webkit-margin-after: 0;
	        margin-block-end: 0;
}
@media screen and (max-width: 1023.98px) {
	.description-list {
		-ms-grid-columns: 1fr;
		grid-template-columns: 1fr;
	}
	.description-term {
		width: -webkit-fit-content;
		width: -moz-fit-content;
		width: fit-content;
		min-width: 10em;
	}
}

.question-heading {
	position: relative;
	display: -ms-grid;
	display: grid;
	gap: var(--elem-gap--xs);
	font-size: var(--font-size--20);
	color: var(--color--prim);
	font-weight: 500;
	border: 1px solid var(--color--prim);
	padding: var(--elem-gap--m);
	height: 100%;
	-webkit-box-sizing: border-box;
	        box-sizing: border-box;
	border-radius: 0 var(--radius--m) var(--radius--m) var(--radius--m);
	margin-block: 0 var(--elem-gap--m);
}
.question-heading-q {
	position: absolute;
	z-index: 2;
	inset: -0.1em auto auto -0.1em;
	font-size: var(--font-size--34);
	font-weight: 400;
	line-height: 0.9;
	color: var(--color--prim);
	background: var(--color--wh);
	padding: 0 0.2em 0.4em 0;
}
.question-answer :last-child {
	-webkit-margin-after: 0;
	        margin-block-end: 0;
}
@media screen and (max-width: 1023.98px) {
	.question-heading {
		padding: var(--elem-gap--l) var(--elem-gap--m);
	}
	.question-heading-q {
		padding: 0 0 0.3em 0;
	}
}

.tab-box {
	margin-block: var(--elem-gap--xl);
}
.tab-box:first-child {
	-webkit-margin-before: 0;
	        margin-block-start: 0;
}
.tab-box-heading {
	font-size: var(--font-size--24);
	background: var(--color--be);
	border-radius: var(--radius--m) var(--radius--m) 0 0;
	padding: var(--elem-gap--xs) var(--elem-gap--m) 0;
	width: -webkit-fit-content;
	width: -moz-fit-content;
	width: fit-content;
	margin-block: 0 -1px;
	margin-inline: 0 var(--radius--xl);
}
.tab-box-body {
	background: var(--color--be);
	padding: var(--elem-gap--m);
	border-radius: 0 var(--radius--xl) var(--radius--xl) var(--radius--xl);
}
.tab-box-body > :first-child {
	-webkit-margin-before: 0;
	        margin-block-start: 0;
}
.tab-box-body > :last-child {
	-webkit-margin-after: 0;
	        margin-block-end: 0;
}
@media screen and (max-width: 1023.98px) {
	.tab-box-heading {
		font-size: var(--font-size--20);
	}
	.tab-box-body {
		border-top-right-radius: var(--radius--l);
	}
}

@media screen and (max-width: 1023.98px) {
	.scroll-table-wrapper {
		overflow-x: auto;
		margin-inline: var(--neg-margin--xl);
	}
}

.link-button {
	position: relative;
	z-index: 2;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	gap: var(--elem-gap--xs);
	margin-inline: auto;
	background-image: -webkit-gradient(linear, left top, right top, from(var(--color--bl-gr)), to(var(--color--lt-gr)));
	background-image: linear-gradient(90deg, var(--color--bl-gr) 0%, var(--color--lt-gr) 100%);
	background-size: 100% 100%;
	width: min(100%, 900px);
	min-height: 100px;
	-webkit-box-sizing: border-box;
	        box-sizing: border-box;
	border-radius: var(--radius--m);
	color: var(--color--wh);
	line-height: 1.5;
	padding: var(--elem-gap--s);
	margin-block: var(--elem-gap--xl);
	background-position: 0 50%;
	grid-column: 1/-1;
}
@media (hover: hover) {
	.link-button:where(:-moz-any-link, :enabled, summary):hover {
		background-size: 150% 100%;
	}
	.link-button:where(:any-link, :enabled, summary):hover {
		background-size: 150% 100%;
	}
}
.link-button-label {
	-webkit-box-flex: 2;
	    -ms-flex: 2 2 auto;
	        flex: 2 2 auto;
	font-size: var(--font-size--20);
	text-align: center;
	font-weight: 500;
	color: var(--color--wh);
}
.link-button .arrow-icon {
	background: var(--color--wh);
}
.link-button .arrow-icon::before {
	background: var(--color--bl-gr);
}
@media screen and (max-width: 1023.98px) {
	.link-button {
		min-height: 80px;
	}
}

.basic-table {
	border-top: 1px solid var(--color--dk-bl);
	width: 100%;
}
.basic-table th, .basic-table td {
	border-bottom: 1px solid color-mix(in srgb, var(--color--dk-bl) 15%, var(--color--wh));
	padding-block: var(--elem-gap--xs);
	text-align: left;
	line-height: 2;
}
.basic-table th {
	color: var(--color--sec);
	font-weight: 500;
	width: 25%;
	padding-inline: 0 var(--elem-gap--m);
	vertical-align: top;
}
.basic-table dl {
	display: -ms-grid;
	display: grid;
	-ms-grid-columns: auto 1fr;
	grid-template-columns: auto 1fr;
}
.basic-table dl dt {
	width: -webkit-fit-content;
	width: -moz-fit-content;
	width: fit-content;
}
@media screen and (max-width: 1023.98px) {
	.basic-table {
		display: block;
	}
	.basic-table > tbody {
		display: block;
	}
	.basic-table > tbody > tr {
		display: block;
	}
	.basic-table > tbody > tr > th {
		display: block;
		padding: var(--elem-gap--xs) 0 0.5em;
		border: none;
		width: auto;
	}
	.basic-table > tbody > tr > td {
		display: block;
		padding: 0 0 var(--elem-gap--xs);
	}
}

.recommended-contents {
	margin-inline: calc(50% - var(--vw) * 50);
	padding-inline: calc(var(--vw) * 50 - 50%);
	background: var(--color--be);
	padding-block: var(--elem-gap--xl);
	margin-block: var(--section-margin) calc(var(--section-margin) * -1);
}
.recommended-contents-list {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	    -ms-flex-pack: center;
	        justify-content: center;
	gap: var(--elem-gap--xs);
	margin: 0;
}
.recommended-contents-item {
	-webkit-box-flex: 0;
	    -ms-flex: 0 0 auto;
	        flex: 0 0 auto;
	margin: 0;
	list-style: none;
}
.recommended-contents-link {
	display: block;
	border-radius: var(--radius--l);
	overflow: clip;
}
@media (hover: hover) {
	.recommended-contents-link:where(:-moz-any-link, :enabled, summary):hover .recommended-contents-image {
		scale: 1.05;
	}
	.recommended-contents-link:where(:any-link, :enabled, summary):hover .recommended-contents-image {
		scale: 1.05;
	}
}
.recommended-contents-image {
	width: 400px;
	height: auto;
}
@media screen and (max-width: 1023.98px) {
	.recommended-contents-list {
		display: -ms-grid;
		display: grid;
		max-width: 600px;
		margin-inline: auto;
		grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	}
	.recommended-contents-image {
		width: 100%;
	}
}

.scroll-motion {
	visibility: hidden;
	opacity: 0;
}

.nav-mode body {
	overflow: hidden !important;
}

.header {
	position: fixed;
	inset: 0 0 auto;
	z-index: 100;
	-webkit-box-sizing: border-box;
	        box-sizing: border-box;
	height: 150px;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	gap: 30px;
	padding: 0 0 0 var(--content-padding--xl);
	-webkit-transition: height 0.4s ease;
	transition: height 0.4s ease;
}
.header::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	-webkit-transition: background-color 0.4s ease;
	transition: background-color 0.4s ease;
}
.header .site-title {
	-webkit-box-flex: 2;
	    -ms-flex: 2 2 auto;
	        flex: 2 2 auto;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	gap: 30px;
	-webkit-transition: translate 0.4s ease, opacity 0.4s ease;
	transition: translate 0.4s ease, opacity 0.4s ease;
	margin: 0;
}
.header .site-title-logo {
	-webkit-box-flex: 0;
	    -ms-flex: 0 0 auto;
	        flex: 0 0 auto;
	width: min(35vw, 428px);
}
.header .site-title-text {
	-webkit-box-flex: 2;
	    -ms-flex: 2 2 auto;
	        flex: 2 2 auto;
	color: var(--color--prim);
	letter-spacing: 0.05em;
	font-size: var(--font-size--16);
	line-height: 1.2;
	font-weight: 500;
}
.on-scroll .header {
	height: var(--header-height);
}
.on-scroll .header::before {
	background: var(--color--wh);
}
@media screen and (max-width: 1023.98px) {
	.header {
		height: var(--header-height) !important;
		gap: 10px;
	}
	.header .site-title {
		/* flex-direction: column;
		align-items: flex-start;
		justify-content: center;
		gap: 2px; */
		gap: 20px;
	}
	.header .site-title-logo {
		width: 280px;
	}
	.header .site-title-text {
		font-size: 1.4rem;
	}
}
@media screen and (max-width: 600px) {
	.header .site-title {
		-webkit-box-orient: horizontal;
		-webkit-box-direction: normal;
		    -ms-flex-direction: row;
		        flex-direction: row;
		-webkit-box-pack: start;
		    -ms-flex-pack: start;
		        justify-content: flex-start;
		-webkit-box-align: center;
		    -ms-flex-align: center;
		        align-items: center;
		gap: 10px;
	}
	.header .site-title-logo {
		-webkit-box-flex: 0;
		    -ms-flex: 0 0 auto;
		        flex: 0 0 auto;
		width: 120px;
	}
	.header .site-title-text {
		-webkit-box-flex: 2;
		    -ms-flex: 2 2 auto;
		        flex: 2 2 auto;
		font-size: min(2.6vw, var(--font-size--16));
		max-width: 8em;
	}
}

.nav {
	margin: 15px;
	margin-left: auto;
	background-image: -webkit-gradient(linear, left top, right top, from(var(--color--prim)), to(var(--color--sec)));
	background-image: linear-gradient(90deg, var(--color--prim) 0%, var(--color--sec) 100%);
	background-size: 100% 100%;
	border-radius: var(--radius--l);
	-webkit-transition: border-radius 0.4s ease;
	transition: border-radius 0.4s ease;
}
.nav-list {
	display: -ms-grid;
	display: grid;
	-ms-grid-columns: 1fr 1fr 1fr;
	grid-template-columns: 1fr 1fr 1fr;
	margin: 0;
	height: 100%;
}
.nav-item {
	position: relative;
	list-style: none;
	margin: 0;
	font-size: var(--font-size--14);
	line-height: 1.6;
	font-weight: 500;
	letter-spacing: 0.05em;
	text-align: center;
	height: 100%;
}
.nav-item:not(:first-child)::before {
	content: "";
	position: absolute;
	inset: 0 auto 0 0;
	display: block;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--color--wh);
	margin-block: auto;
	translate: -50% 0;
}
.nav-link {
	position: relative;
	z-index: 2;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	-webkit-box-pack: center;
	    -ms-flex-pack: center;
	        justify-content: center;
	color: var(--color--wh);
	width: 10em;
	height: 100%;
	border-radius: var(--radius--l);
}
.nav-link::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 10px;
	border-radius: var(--radius--m);
	-webkit-transition: background-color 0.2s ease, border-radius 0.4s ease;
	transition: background-color 0.2s ease, border-radius 0.4s ease;
}
@media (hover: hover) {
	.nav-link:where(:-moz-any-link, :enabled, summary):hover {
		color: var(--color--prim);
	}
	.nav-link:where(:any-link, :enabled, summary):hover {
		color: var(--color--prim);
	}
	.nav-link:where(:-moz-any-link, :enabled, summary):hover::before {
		background: var(--color--wh);
	}
	.nav-link:where(:any-link, :enabled, summary):hover::before {
		background: var(--color--wh);
	}
}
.on-scroll .nav {
	border-radius: var(--radius--m);
}
.on-scroll .nav-link {
	border-radius: var(--radius--m);
}
.on-scroll .nav-link::before {
	border-radius: var(--radius--s);
}
@media screen and (max-width: 1280px) and (min-width: 1024px) {
	.nav-link {
		width: 9em;
	}
}
@media screen and (max-width: 1023.98px) {
	.nav {
		margin: 5px;
		border-radius: var(--radius--m);
	}
	.nav-item {
		font-size: 0.8rem;
		letter-spacing: 0;
	}
	.nav-item:not(:first-child)::before {
		width: 3px;
		height: 3px;
	}
	.nav-link {
		width: 7em;
		border-radius: var(--radius--m);
	}
	.nav-link::before {
		inset: 5px;
		border-radius: var(--radius--s);
	}
}

.top {
	position: relative;
	z-index: 2;
	margin-inline: calc(50% - var(--vw) * 50);
}
.top-slogan-ja {
	position: absolute;
	z-index: 7;
	inset: auto auto min(4vw, var(--section-margin) - 50px) calc(var(--content-padding) - 30px);
	margin: 0;
}
.top-slogan-ja-image {
	width: min(40vw, 577px);
}
.top-slogan-en {
	position: absolute;
	z-index: -1;
	inset: -100px 0 0;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	margin-block: auto;
	font-size: 15rem;
	font-weight: 300;
	line-height: 1.2;
	white-space: nowrap;
	letter-spacing: 0;
	color: var(--color--prim);
	height: 1.2em;
	overflow: hidden;
}
.top-slogan-en--wh {
	z-index: 3;
	color: var(--color--wh);
	mix-blend-mode: overlay;
	clip-path: inset(0 0 0 var(--content-padding));
}
.top-slogan-inner {
	-webkit-animation: loop-slider 60s infinite linear 1s both;
	        animation: loop-slider 60s infinite linear 1s both;
	will-change: translate;
	padding-right: 0.5em;
}
@-webkit-keyframes loop-slider {
	from {
		translate: 0;
	}
	to {
		translate: -100%;
	}
}
@keyframes loop-slider {
	from {
		translate: 0;
	}
	to {
		translate: -100%;
	}
}
.top-slider-wrapper {
	position: relative;
	padding-inline: var(--content-padding) 0;
}
.top-slider--fr {
	position: absolute !important;
	inset: auto 0 0 var(--content-padding);
	z-index: 4 !important;
	overflow: visible !important;
	clip-path: inset(0 0 round 0 0 0 var(--radius--xl));
}
.top-slider--bg {
	position: relative !important;
	inset: auto;
	z-index: 1 !important;
	clip-path: inset(0 0 round 0 0 0 var(--radius--xl));
}
.top-slider-item {
	mix-blend-mode: plus-lighter;
}
.top-slider-item::before {
	content: "";
	position: absolute;
	z-index: 2;
	inset: auto auto -150px -50px;
	width: 700px;
	height: 500px;
	border-radius: 50%;
	background: #FFFEF4;
	opacity: 0.05;
	-webkit-filter: blur(100px);
	        filter: blur(100px);
}
.top-slider-lighting {
	position: absolute;
	z-index: 5;
	inset: 0 0 0 var(--content-padding);
	clip-path: inset(0 0 round 0 0 0 var(--radius--xl));
	mix-blend-mode: plus-lighter;
	border-radius: 0 0 0 var(--radius--xl);
}
.top-slider-lighting::before {
	content: "";
	position: absolute;
	inset: auto auto -100px -100px;
	width: 600px;
	height: 400px;
	border-radius: 50%;
	background: #FFFEF4;
	opacity: 0.3;
	-webkit-filter: blur(100px);
	        filter: blur(100px);
}
.top-slider-lighting::after {
	content: "";
	position: absolute;
	z-index: 2;
	width: 700px;
	height: 400px;
	inset: auto auto -50px 50px;
	border-radius: 50%;
	background: linear-gradient(135deg, rgba(178, 255, 254, 0.6) 20.22%, rgba(255, 242, 175, 0.6) 48.73%, rgba(255, 182, 245, 0.6) 75.85%);
	opacity: 0.4;
	-webkit-filter: blur(100px);
	        filter: blur(100px);
}
.top .concept-movie-button {
	position: absolute;
	z-index: 6;
	inset: auto var(--content-padding--xl) -30px auto;
	width: 200px;
	height: 200px;
	border-radius: 50%;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	-webkit-box-pack: center;
	    -ms-flex-pack: center;
	        justify-content: center;
	-webkit-transition: scale 0.3s ease;
	transition: scale 0.3s ease;
	color: transparent !important;
}
@media (hover: hover) {
	.top .concept-movie-button:where(:-moz-any-link, :enabled, summary):hover {
		scale: 1.1;
	}
	.top .concept-movie-button:where(:any-link, :enabled, summary):hover {
		scale: 1.1;
	}
}
.top .concept-movie-button .play-icon {
	position: absolute;
	inset: 0;
	margin: auto;
	display: block;
	width: 54px;
	height: 52px;
	background-image: -webkit-gradient(linear, left top, left bottom, from(var(--color--bl-gr)), to(var(--color--lt-gr)));
	background-image: linear-gradient(180deg, var(--color--bl-gr) 0%, var(--color--lt-gr) 100%);
	background-size: 100% 100%;
	-webkit-mask: url("../images/icn_play-movie.svg") no-repeat center/contain;
	        mask: url("../images/icn_play-movie.svg") no-repeat center/contain;
	translate: 4px 0;
}
.top .concept-movie-text-circle {
	width: 100%;
	height: 100%;
	-webkit-animation: rotate-text 20s linear infinite;
	        animation: rotate-text 20s linear infinite;
}
.top .concept-movie-text-circle textPath {
	font-size: var(--font-size--14);
	font-weight: 400;
	fill: var(--color--wh);
	letter-spacing: 0.085em;
}
@-webkit-keyframes rotate-text {
	to {
		rotate: 360deg;
	}
}
@keyframes rotate-text {
	to {
		rotate: 360deg;
	}
}
.top .scroll-text {
	position: absolute;
	z-index: 3;
	inset: auto auto 30px 0;
	-webkit-writing-mode: vertical-rl;
	    -ms-writing-mode: tb-rl;
	        writing-mode: vertical-rl;
	width: var(--content-padding);
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	-webkit-box-pack: center;
	    -ms-flex-pack: center;
	        justify-content: center;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	    -ms-flex-direction: column;
	        flex-direction: column;
	color: var(--color--wh);
	font-size: var(--font-size--15);
}
.top .scroll-line {
	width: 1px;
	height: 100%;
	background: var(--color--wh);
	-webkit-animation: scroll 2s cubic-bezier(0.65, 0, 0.35, 1) infinite;
	        animation: scroll 2s cubic-bezier(0.65, 0, 0.35, 1) infinite;
}
@-webkit-keyframes scroll {
	0% {
		clip-path: inset(0 0 100% 0);
	}
	50% {
		clip-path: inset(0 0 0 0);
	}
	100% {
		clip-path: inset(100% 0 0 0);
	}
}
@keyframes scroll {
	0% {
		clip-path: inset(0 0 100% 0);
	}
	50% {
		clip-path: inset(0 0 0 0);
	}
	100% {
		clip-path: inset(100% 0 0 0);
	}
}
.top .swiper-pagination {
	position: absolute;
	inset: min(10vw, 130px) auto 0 0;
	margin-block: auto;
	visibility: visible;
	font-size: var(--font-size--30);
	line-height: 1;
	color: var(--color--prim);
	width: var(--content-padding);
	height: 1.2em;
}
.top .swiper-pagination::before {
	content: "";
	position: absolute;
	inset: 0 0 0 calc(50% + 1em);
	height: 0;
	border-top: 1px solid var(--color--prim);
	margin-block: auto;
}
@media screen and (max-width: 1023.98px) {
	.top-slogan-ja {
		inset: auto auto min(10vw, var(--section-margin) - 20px) calc(var(--content-padding) - 10px);
	}
	.top-slogan-ja-image {
		width: min(70vw, 577px);
	}
	.top-slogan-en {
		inset: calc(var(--header-height) * -1) 0 0;
		font-size: min(15vw, 12rem);
	}
	.top-slogan-inner {
		-webkit-animation: loop-slider 60s infinite linear 1s both;
		        animation: loop-slider 60s infinite linear 1s both;
		will-change: translate;
		padding-right: 0.5em;
	}
	.top-slider {
		height: calc(100% + var(--header-height)) !important;
	}
	.top-slider-item::before {
		inset: auto auto -10vw -20vw;
		width: 110vw;
		height: 80vw;
		opacity: 0.3;
		-webkit-filter: blur(20vw);
		        filter: blur(20vw);
	}
	.top-slider-image {
		position: absolute;
		inset: auto 0 0;
		aspect-ratio: 1/1.35;
		-o-object-fit: cover;
		   object-fit: cover;
	}
	.top-slider-bg-image {
		aspect-ratio: 1/1.1;
		-o-object-fit: cover;
		   object-fit: cover;
	}
	.top-slider-lighting::before {
		inset: auto auto -10vw -30vw;
		width: 80vw;
		height: 60vw;
		-webkit-filter: blur(20vw);
		        filter: blur(20vw);
	}
	.top-slider-lighting::after {
		width: 60vw;
		height: 40vw;
		inset: auto auto 3vw 10vw;
		border-radius: 50%;
		-webkit-filter: blur(10vw);
		        filter: blur(10vw);
	}
	.top .concept-movie-button {
		width: 120px;
		height: 120px;
		inset: auto calc(var(--content-padding) - 20px) -20px auto;
	}
	.top .concept-movie-button .play-icon {
		width: 32px;
		height: 31px;
	}
	.top .concept-movie-text-circle textPath {
		font-size: 1.4rem;
	}
	.top .scroll-text {
		font-size: 1rem;
		inset: auto auto 5px 0;
		line-height: 1.2;
	}
	.top .swiper-pagination {
		font-size: 1.6rem;
		inset: min(10vw, 100px) auto 0 0;
	}
	.top .swiper-pagination::before {
		inset: 0 0 0 calc(50% + 0.7em);
	}
}

.contents {
	-webkit-padding-after: 0;
	        padding-block-end: 0;
}

.main-contents {
	background-image: linear-gradient(135deg, var(--color--prim) 0%, var(--color--sec) 100%);
	background-size: 100% 100%;
	margin-inline: calc(50% - var(--vw) * 50);
	padding-inline: calc(var(--vw) * 50 - 50%);
	margin-top: max(-10vw, var(--section-margin) * -1);
	padding-block: calc(var(--section-margin) * 2) var(--section-margin);
}
@media screen and (max-width: 1023.98px) {
	.main-contents {
		padding-block: calc(var(--section-margin) + 10vw) var(--section-margin);
	}
}

.philosophy-text {
	font-size: var(--font-size--24);
	font-weight: 500;
	color: var(--color--wh);
	width: -webkit-fit-content;
	width: -moz-fit-content;
	width: fit-content;
	margin: 0 auto var(--section-margin);
}
@media screen and (max-width: 1023.98px) {
	.philosophy-text {
		font-size: 1.6rem;
	}
}

.recruit-top-index-text {
	position: relative;
	z-index: 2;
	margin: 0 auto -30px;
	width: -webkit-fit-content;
	width: -moz-fit-content;
	width: fit-content;
	pointer-events: none;
}
.recruit-top-index-list {
	display: -ms-grid;
	display: grid;
	-ms-grid-columns: (1fr)[3];
	grid-template-columns: repeat(3, 1fr);
}
.recruit-top-index-item {
	list-style: none;
	margin: 0;
}
.recruit-top-index-item:not(:first-child) {
	margin-inline: -1px 0;
}
.recruit-top-index-link {
	display: -ms-grid;
	display: grid;
	gap: var(--elem-gap--m);
	border: 1px solid var(--color--wh);
	border-radius: var(--radius--l);
	color: var(--color--wh);
	font-size: var(--font-size--24);
	font-weight: 500;
	line-height: 1.6;
	padding: var(--elem-gap--m);
	height: 100%;
	-webkit-box-sizing: border-box;
	        box-sizing: border-box;
}
.recruit-top-index-link .arrow-icon {
	margin-top: auto;
}
@media (hover: hover) {
	.recruit-top-index-link:where(:-moz-any-link, :enabled, summary):hover {
		background: var(--color--wh);
		color: var(--color--prim);
	}
	.recruit-top-index-link:where(:any-link, :enabled, summary):hover {
		background: var(--color--wh);
		color: var(--color--prim);
	}
}
@media screen and (max-width: 1023.98px) {
	.recruit-top-index-text {
		margin-bottom: -10px;
	}
	.recruit-top-index-text-image {
		width: min(70vw, 559px);
	}
	.recruit-top-index-list {
		-ms-grid-columns: 1fr;
		grid-template-columns: 1fr;
	}
	.recruit-top-index-item:not(:first-child) {
		margin-inline: 0;
		margin-block: -1px 0;
	}
	.recruit-top-index-link {
		-ms-grid-columns: 1fr auto;
		grid-template-columns: 1fr auto;
		-webkit-box-align: center;
		    -ms-flex-align: center;
		        align-items: center;
	}
}

.footer {
	position: absolute;
	z-index: 2;
	inset: auto 0 var(--elem-gap--m);
	margin-inline: auto;
	width: var(--content-width--xl);
}
.footer .copyright {
	font-size: var(--font-size--12);
	width: -webkit-fit-content;
	width: -moz-fit-content;
	width: fit-content;
	margin: 0 0 0 auto;
	color: var(--color--wh);
	letter-spacing: 0.05em;
	font-weight: 300;
}
@media screen and (max-width: 1023.98px) {
	.footer .copyright {
		margin: 0 auto;
		text-align: center;
	}
}