.u-mt0 {
	margin-top: 0px !important;
}
.u-mt1 {
	margin-top: 1em !important;
}
.u-mt20 {
	margin-top: 20px !important;
}
.u-mt40 {
	margin-top: clamp(40px, 8vw, 80px) !important;
}
.u-mt60 {
	margin-top: 60px !important;
}
.u-mt80 {
	margin-top: clamp(80px, 16vw, 120px) !important;
}
.u-mt100 {
	margin-top: 100px !important;
}
.u-mt120 {
	margin-top: 120px !important;
}

/* -------------------------------------------------------- */
/* テキスト周りの設定 ------------------------------------- */
/* -------------------------------------------------------- */
.left {
	text-align: left !important;
}
.center {
	text-align: center !important;
}
.right {
	text-align: right !important;
}

.u-en-font {
	font-family: var(--en-font);
	color: var(--main);
}
.u-caption {
	margin-top: 8px;
	font-size: min(0.85em, 14px);
}
.u-main {
	color: var(--main);
}

.secondary {
	color: #696969;
}
.primarily {
	color: var(--main);
}
.important {
	color: var(--red);
	text-decoration: underline dashed 1px;
	text-underline-offset: 4px;
}

.highlights {
	display: inline;
	background-image: linear-gradient(to left, var(--linen) 50%, transparent 50%);
	background-repeat: repeat-x;
	background-size: 200% 50%;
	background-position: 0 100%;
	transition: 0.5s 0.5s ease-out;
}
.highlights.active {
	background-position: -100% 100%;
}

/* ------------------------------------------------------------- */
/* 文字サイズ設定--------------------------------------------- */
/* ------------------------------------------------------------- */
.u-xsmall {
	font-size: var(--xsmall);
}
.u-small {
	font-size: var(--small);
}
.u-normal {
	font-size: var(--normal);
}
.u-large {
	font-size: var(--large);
}
.u-xlarge {
	font-size: var(--xlarge);
}
.u-xxlarge {
	font-size: var(--xxlarge);
}

.u-cap-ttl {
	text-align: center;
	font-weight: 600;
	margin-top: 8px;
}
/* -------------------------------------------------------- */
/* ユーティリティ ----------------------------------------- */
/* -------------------------------------------------------- */
.show-sp {
	display: block;
}
.show-pc {
	display: none;
}
@media screen and (min-width: 600px) {
	.show-sp {
		display: none;
	}
	.show-pc {
		display: block;
	}
}
.visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* -------------------------------------------------------- */
/* アスペクト比変更 ------------------------------------- */
/* -------------------------------------------------------- */
.u-aspct43 {
	aspect-ratio: 4/3;
	object-fit: cover;
}
.u-aspct169 {
	width: 100%;
	object-fit: cover;
	object-position: center;
	aspect-ratio: 16/9;
}
.u-aspct52 {
	width: 100%;
	object-fit: cover;
	object-position: center;
	aspect-ratio: 5/2;
}
.u-aspct1 {
	width: 100%;
	object-fit: cover;
	object-position: center;
	aspect-ratio: 1;
}

/* -------------------------------------------------------- */
/* フレックスボックス ------------------------------------- */
/* -------------------------------------------------------- */
.flex-container {
	display: flex;
	flex-direction: column;
	gap: 40px;
}
.gap-40 {
	gap: 40px;
}
.gap-80 {
	gap: 80px;
}
.gap-100 {
	gap: 100px;
}
.gap-120 {
	gap: 120px;
}
@media screen and (min-width: 600px) {
	.flex-container {
		display: flex;
		flex-direction: row;
	}
	/* 5:5の割合 */
	.flex-5-5 .flex-item {
		flex: 1; /* 子要素の幅を等分 */
	}
	/* 4:6の割合 */
	.flex-4-6 .flex-item:nth-child(1) {
		flex: 4; /* 子要素の幅を6に設定 */
	}
	.flex-4-6 .flex-item:nth-child(2) {
		flex: 6; /* 子要素の幅を4に設定 */
	}
	/* 6:4の割合 */
	.flex-6-4 .flex-item:nth-child(1) {
		flex: 6; /* 子要素の幅を6に設定 */
	}
	.flex-6-4 .flex-item:nth-child(2) {
		flex: 4; /* 子要素の幅を4に設定 */
	}
	/* 7:3の割合 */
	.flex-7-3 .flex-item:nth-child(1) {
		flex: 7; /* 子要素の幅を7に設定 */
	}
	.flex-7-3 .flex-item:nth-child(2) {
		flex: 3; /* 子要素の幅を3に設定 */
	}
	/* 3:7の割合 */
	.flex-3-7 .flex-item:nth-child(1) {
		flex: 3; /* 子要素の幅を7に設定 */
	}
	.flex-3-7 .flex-item:nth-child(2) {
		flex: 7; /* 子要素の幅を3に設定 */
	}
	.flex-align-center {
		align-items: center;
	}
}
