.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-pb-sb {
	padding-block: 16px !important;
}
.u-pb-mb {
	padding-block: 32px !important;
}
.u-pb-lb {
	padding-block: 48px !important;
}
.u-pb-xlb {
	padding-block: 80px !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;
}
.u-aspect-16-container img {
	aspect-ratio: 16 / 9;
	object-fit: cover;
	object-position: center;
	width: 100%;
	height: 100%;
}
