.u-mt0 {
	margin-top: 0 !important;
}
.u-mt1 {
	margin-top: 1em !important;
}
.u-mt20 {
	margin-top: 20px !important;
}
.u-mt40 {
	margin-top: clamp(40px, 8vw, 80px) !important;
}
.u-mt80 {
	margin-top: clamp(80px, 16vw, 120px) !important;
}
.u-mt120 {
	margin-top: 120px !important;
}

/* -------------------------------------------------------- */
/* テキスト周りの設定 ------------------------------------- */
/* -------------------------------------------------------- */
.u-left {
	text-align: left !important;
}
.u-center {
	text-align: center !important;
}
.u-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);
}

.u-secondary {
	color: #696969;
}
.u-primarily {
	color: var(--accent);
}
.u-important {
	color: var(--accent);
	text-decoration: underline dashed 1px;
	text-underline-offset: 4px;
}

.u-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;
}
.u-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);
}

/* -------------------------------------------------------- */
/* ユーティリティ ----------------------------------------- */
/* -------------------------------------------------------- */
.show-sp {
	display: block;
}
.show-pc {
	display: none;
}
@media screen and (min-width: 768px) {
	.show-sp {
		display: none;
	}
	.show-pc {
		display: block;
	}
}
br.show-pc {
	display: none;
}
@media screen and (min-width: 768px) {
	br.show-pc {
		display: inline;
	}
}

.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-asp169 {
	width: 100%;
	object-fit: cover;
	object-position: center;
	aspect-ratio: 16/9;
}
.u-asp52 {
	width: 100%;
	object-fit: cover;
	object-position: center;
	aspect-ratio: 5/2;
}

/* -------------------------------------------------------- */
/* フレックスボックス ------------------------------------- */
/* -------------------------------------------------------- */
.f-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: 768px) {
	.f-container {
		display: flex;
		flex-direction: row;
	}
	/* 5:5の割合 */
	.f-5-5 .f-item {
		flex: 1; /* 子要素の幅を等分 */
		min-width: 0;
	}
	/* 4:6の割合 */
	.f-4-6 .f-item:nth-child(1) {
		flex: 4; /* 子要素の幅を6に設定 */
		min-width: 0;
	}
	.f-4-6 .f-item:nth-child(2) {
		flex: 6; /* 子要素の幅を4に設定 */
		min-width: 0;
	}
	/* 6:4の割合 */
	.f-6-4 .f-item:nth-child(1) {
		flex: 6; /* 子要素の幅を6に設定 */
		min-width: 0;
	}
	.f-6-4 .f-item:nth-child(2) {
		flex: 4; /* 子要素の幅を4に設定 */
		min-width: 0;
	}
	/* 7:3の割合 */
	.f-7-3 .f-item:nth-child(1) {
		flex: 7; /* 子要素の幅を7に設定 */
		min-width: 0;
	}
	.f-7-3 .f-item:nth-child(2) {
		flex: 3; /* 子要素の幅を3に設定 */
		min-width: 0;
	}
	/* 3:7の割合 */
	.f-3-7 .f-item:nth-child(1) {
		flex: 3; /* 子要素の幅を7に設定 */
		min-width: 0;
	}
	.f-3-7 .f-item:nth-child(2) {
		flex: 7; /* 子要素の幅を3に設定 */
		min-width: 0;
	}
	/* 2:8の割合 */
	.f-2-8 .f-item:nth-child(1) {
		flex: 2; /* 子要素の幅を7に設定 */
		min-width: 0;
	}
	.f-2-8 .f-item:nth-child(2) {
		flex: 8; /* 子要素の幅を3に設定 */
		min-width: 0;
	}
	.f-8-2 .f-item:nth-child(1) {
		flex: 8; /* 子要素の幅を7に設定 */
		min-width: 0;
	}
	.f-8-2 .f-item:nth-child(2) {
		flex: 2; /* 子要素の幅を3に設定 */
		min-width: 0;
	}
	/* 縦方向中央揃え */
	.f-align-center {
		align-items: center;
	}
	.f-reverse {
		flex-direction: row-reverse;
	}
}

@media screen and (min-width: 768px) {
	.pc-80 {
		width: 80%;
		margin-inline: auto;
	}
}
