@charset "UTF-8";

.common-header-top {
	margin-bottom: 8rem;
	@media screen and (max-width: 767px) {
		margin-bottom: 3.4rem;
	}
	.en {
		font-family: var(--pop);
		font-style: normal;
		font-weight: 600;
		font-size: 11.2rem;
		line-height: 111%;
		letter-spacing: -0.01em;
		color: #000000;
		white-space: nowrap;
		@media screen and (max-width: 767px) {
			font-size: 5.6rem;
			margin-bottom: 0.6rem;
		}
	}
	.jp {
		font-family: var(--noto);
		font-style: normal;
		font-weight: 700;
		font-size: 2rem;
		line-height: 2;
		letter-spacing: 0.1em;
		color: #e50012;
		padding-left: 2.3rem;
		position: relative;
		@media screen and (max-width: 767px) {
			font-size: 1.4rem;
			line-height: 2.157rem;
			padding-left: 1.1rem;
		}
		&::after {
			content: "";
			position: absolute;
			width: 0.9rem;
			height: 0.9rem;
			background-color: #e50012;
			left: 0;
			top: 1.5rem;
			transform: rotate(45deg);
			@media screen and (max-width: 767px) {
				width: 0.523rem;
				height: 0.523rem;
				top: 0.8rem;
			}
		}
	}
}

/* ------------------------------------------- */
/* common-header-top: scroll-in animation */
/* ------------------------------------------- */
.common-header-top {
	.en,
	.jp {
		opacity: 0;
		transform: translateY(2rem);
		transition:
			opacity 0.6s ease,
			transform 0.6s ease;
	}
	.jp {
		transition-delay: 0.15s;
	}
	&.on {
		.en,
		.jp {
			opacity: 1 !important;
			transform: translateY(0);
		}
	}
}

p.description {
	font-family: var(--noto);
	font-style: normal;
	font-weight: 500;
	font-size: 2rem;
	line-height: 2;
	letter-spacing: 0.08em;
	color: #000000;
	margin-bottom: 9rem;
	@media screen and (max-width: 767px) {
		font-size: 1.6rem;
		line-height: 1.8;
		margin-bottom: 0;
	}
}

.black-btn {
	width: 30rem;
	height: 7rem;
	border-radius: 0.6rem;
	background-color: #000000;
	display: flex;
	align-items: center;
	position: relative;
	padding-left: 3rem;
	box-sizing: border-box;
	transition: all 0.3s ease-in;
	z-index: 99;
	@media screen and (max-width: 767px) {
		width: 22rem;
		height: 5.133rem;
		padding-left: 2.2rem;
	}
	&:hover {
		opacity: 0.75;
	}
	& span {
		font-family: var(--pop);
		font-style: normal;
		font-weight: 500;
		font-size: 1.8rem;
		line-height: 1;
		letter-spacing: 0.08em;
		color: #ffffff;
		@media screen and (max-width: 767px) {
			font-size: 1.4rem;
		}
	}
	& img {
		width: 1.2rem;
		right: 1.8rem;
		position: absolute;
		top: 50%;
		transform: translateY(-50%);
		@media screen and (max-width: 767px) {
			width: 0.7rem;
			right: 1.3rem;
		}
	}
}

.black-btn.white {
	background-color: #fff;
	position: relative;
	z-index: 99 !important;
	& span {
		color: #e50012;
	}
}

.scroll {
	animation: scrollLoop 5s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}

@keyframes scrollLoop {
	/* 🔹 Top pause */
	0% {
		transform: translateY(0);
	}

	30% {
		transform: translateY(0);
	}

	/* 🔹 Smooth down */
	70% {
		transform: translateY(4rem);
	}

	/* 🔹 Fast up */
	90% {
		transform: translateY(0);
	}

	/* 🔹 Top pause again */
	100% {
		transform: translateY(0);
	}
}

#top-section {
	position: relative;
	width: 100%;
	overflow: hidden;
	--slider-pan-ratio: 0.12;
	#banner {
		width: 100%;
		position: relative;
		padding-top: 27.1rem;
		padding-bottom: 6rem;
		@media screen and (max-width: 767px) {
			padding-top: 31.4rem;
			padding-bottom: 30.255rem;
		}
		.scroll {
			width: 3rem;
			position: absolute;
			left: 4.3rem;
			bottom: 0;
			@media screen and (max-width: 767px) {
				display: none;
			}
		}
		.banner-text {
			.main-text {
				margin-bottom: 3.2rem;
				font-family: var(--noto);
				font-style: normal;
				font-weight: 800;
				font-size: 7.74rem;
				line-height: 137%;
				letter-spacing: 0.06em;
				color: #000000;
				@media screen and (max-width: 767px) {
					font-size: 3.205rem;
					margin-bottom: 1.1rem;
				}
				& span {
					font-size: 10.319rem;
					line-height: 137%;
					letter-spacing: 0.06em;
					@media screen and (max-width: 767px) {
						font-size: 4.274rem;
					}
				}
			}
			.main-text.main-text-reveal {
				/* Wrapper spans must not use the old `& span` headline size — only .accent is larger */
				.main-text-line {
					display: block;
					position: relative;
					overflow: hidden;
					width: fit-content;
					font-size: inherit;
					line-height: inherit;
				}
				.line-content {
					display: inline-block;
					font-size: 7.74rem;
					line-height: 137%;
					letter-spacing: 0.06em;
					transform: translateY(110%);
					opacity: 0;
					animation: mainTextSlideUp 1.15s cubic-bezier(0.22, 1, 0.36, 1) forwards;
					@media screen and (max-width: 767px) {
						font-size: 3.205rem;
					}
				}
				.accent {
					display: inline-block;
					font-size: 10.319rem;
					line-height: 137%;
					letter-spacing: 0.06em;
					color: #000000;
					@media screen and (max-width: 767px) {
						font-size: 4.274rem;
					}
				}
				.main-text-line::after {
					content: "";
					position: absolute;
					inset: 0;
					background-color: #ffffff;
					transform: translateY(0);
					animation: mainTextCoverUp 1.15s cubic-bezier(0.22, 1, 0.36, 1) forwards;
					pointer-events: none;
				}
				/* Strict sequence: slide -> color (per line), then all accents ease back to black */
				.line-1 .accent {
					animation:
						mainTextAccentIn 0.28s ease 0.72s forwards,
						mainTextAccentOut 0.275s ease-out 3s forwards;
					--accent-target: #172e59;
				}
				.line-2 .accent {
					animation:
						mainTextAccentIn 0.28s ease 1.22s forwards,
						mainTextAccentOut 0.275s ease-out 3s forwards;
					--accent-target: #e60012;
				}
				.line-3 .accent {
					animation:
						mainTextAccentIn 0.28s ease 1.72s forwards,
						mainTextAccentOut 0.275s ease-out 3s forwards;
					--accent-target: #e49d00;
				}
				.line-1 .line-content,
				.line-1::after {
					animation-delay: 0s;
				}
				.line-2 .line-content,
				.line-2::after {
					animation-delay: 0.5s;
				}
				.line-3 .line-content,
				.line-3::after {
					animation-delay: 1s;
				}
			}
			.red-text {
				font-family: var(--pop);
				font-style: normal;
				font-weight: 600;
				font-size: 3.26819rem;
				line-height: 160%;
				letter-spacing: -0.03em;
				color: #e50012;
				@media screen and (max-width: 767px) {
					font-size: 1.354rem;
				}
			}
		}
	}
	#message {
		padding-top: 30.9rem;
		padding-bottom: 16rem;
		@media screen and (max-width: 767px) {
			padding-top: 0;
			padding-bottom: 7.86rem;
		}
		.header {
			font-family: var(--noto);
			font-style: normal;
			font-weight: 700;
			font-size: 3.9rem;
			line-height: 1.5;
			letter-spacing: 0.03em;
			color: #000000;
			margin-bottom: 6rem;
			@media screen and (max-width: 767px) {
				font-size: 2.4rem;
				line-height: 1.54;
				margin-bottom: 3rem;
			}
		}
		p.description {
			@media screen and (max-width: 767px) {
				margin-bottom: 5rem;
			}
		}
	}
	#main-contents {
		position: absolute;
		top: 0;
		right: 0;
		width: 130rem;
		height: 100%;
		background: url("../img/index/top-bg.png") no-repeat top center / 100% auto;
		@media screen and (max-width: 767px) {
			width: 33.2rem;
			height: 90rem;
			background: url("../img/index/top-bg-sp.png") no-repeat top center / 100% auto;
		}
		.slider-img1 {
			width: 93.333rem;
			aspect-ratio: 1 / 1;
			position: absolute;
			right: 8.415rem;
			top: 0.73rem;
			background: url("../img/index/slide1-1.png") no-repeat center / 100% auto;
			/* background-attachment: fixed; */
			clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
			@media screen and (max-width: 767px) {
				/* background: url("../img/index/slide1-1.png") no-repeat left 20% top / 40rem; */
				background: url("../img/index/slide1-1.png") no-repeat center / 100% auto;
				/* background-attachment: fixed; */
				width: 28.968rem;
				right: -4.6rem;
				top: 6.8rem;
			}
		}
		.slider-img2 {
			width: 72.985rem;
			aspect-ratio: 1 / 1;
			position: absolute;
			right: 56.942rem;
			top: 58.74rem;
			background: url("../img/index/slide2-1.png") no-repeat center / 100% auto;
			/* background-attachment: fixed; */
			clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
			@media screen and (max-width: 767px) {
				background: url("../img/index/slide2-1.png") no-repeat center / 100% auto;
				width: 22.653rem;
				right: 22.4rem;
				top: 6.8rem;
			}
		}
		.slider-img3 {
			width: 96.804rem;
			aspect-ratio: 1 / 1;
			position: absolute;
			right: 6.68rem;
			top: 97.5rem;
			background: url("../img/index/slide3-1.png") no-repeat center / 100% auto;
			clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
			@media screen and (max-width: 767px) {
				width: 26rem;
				top: 50.9rem;
				right: -0.7rem;
				/* background: url("../img/index/slide3-1.png") no-repeat center / cover;
				background-attachment: fixed; */
				background: url("../img/index/slide3-1.png") no-repeat center / 100% auto;
			}
		}
		.slider-img4 {
			width: 72.985rem;
			aspect-ratio: 1 / 1;
			position: absolute;
			right: 6.715rem;
			top: 187rem;
			background: url("../img/index/slide4-1.png") no-repeat center / 100% auto;

			clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
			@media screen and (max-width: 767px) {
				top: 60.3rem;
				right: 18.8rem;
				width: 19.629rem;
				/* background: url("../img/index/slide4-1.png") no-repeat center / cover;
				background-attachment: fixed; */
				background: url("../img/index/slide4-1-sp.png") no-repeat center / auto 100%;
			}
		}
	}
}

@keyframes mainTextSlideUp {
	0% {
		transform: translateY(110%);
		opacity: 0;
	}
	100% {
		transform: translateY(0);
		opacity: 1;
	}
}

@keyframes mainTextCoverUp {
	0% {
		transform: translateY(0);
	}
	100% {
		transform: translateY(-105%);
	}
}

@keyframes mainTextAccentIn {
	0% {
		color: #000000;
	}
	100% {
		color: var(--accent-target);
	}
}

@keyframes mainTextAccentOut {
	0% {
		color: var(--accent-target);
	}
	100% {
		color: #000000;
	}
}

@media (prefers-reduced-motion: reduce) {
	#top-section #banner .banner-text .main-text.main-text-reveal {
		.line-content {
			animation: none !important;
			transform: translateY(0) !important;
			opacity: 1 !important;
		}
		.main-text-line::after {
			animation: none !important;
			transform: translateY(-105%) !important;
		}
		.accent {
			animation: none !important;
			color: #000000 !important;
		}
	}
}

@media print {
	.slider-img1 {
		background: url("../img/index/slide1-1.png") no-repeat center / 100% auto !important;
	}
	.slider-img2 {
		background: url("../img/index/slide2-1.png") no-repeat center / 100% auto !important;
	}
	.slider-img3 {
		background: url("../img/index/slide3-1.png") no-repeat center / 100% auto !important;
	}
	.slider-img4 {
		background: url("../img/index/slide4-1.png") no-repeat center / 100% auto !important;
	}
	.common-header-top,
	.common-header-top .en,
	.common-header-top .jp {
		display: block !important;
		opacity: 1 !important;
	}
	.common-header-top.about-header-reveal .header-reveal-mask .en,
	.common-header-top.about-header-reveal .header-reveal-mask .jp {
		transform: none !important;
	}
}

/* --------------------------------------------------------------- */
/* about-us: sticky bg image, scrolling gradient + content over it */
/* --------------------------------------------------------------- */
#about-us {
	position: relative;

	.bg-fixed {
		position: sticky;
		top: 0;
		height: 100vh;
		z-index: 0;
		overflow: hidden;
		& picture {
			display: block;
			width: 100%;
			height: 100%;
		}
		& img {
			width: 100%;
			height: 100%;
			object-fit: cover;
			pointer-events: auto;
			@media screen and (max-width: 767px) {
				height: auto;
				object-fit: unset;
				pointer-events: auto;
			}
		}
	}

	.scroll-layer {
		position: relative;
		z-index: 1;
		margin-top: -100vh;
		padding-top: 55rem;
		padding-bottom: 17.7rem;
		background: linear-gradient(180deg, rgba(20, 19, 18, 0) 0%, rgba(197, 45, 18, 0.6) 28%, #c52d12 42%);
		@media screen and (max-width: 767px) {
			padding-top: 32rem;
			padding-bottom: 7.9rem;
			background: linear-gradient(180deg, rgba(20, 19, 18, 0) 0%, rgba(197, 45, 18, 0.6) 22%, #c52d12 38%);
		}
	}

	.flex-contents {
		display: flex;
		gap: 11.9rem;
		position: relative;
		z-index: 4;
		@media screen and (max-width: 767px) {
			flex-direction: column;
			gap: 3.4rem;
		}
		.common-header-top {
			.en,
			.jp {
				color: #fff;
				&::after {
					background-color: #fff;
				}
			}
		}

		.common-header-top.about-header-reveal {
			.header-reveal-mask {
				overflow: hidden;
				display: block;
			}
			.header-reveal-mask .jp {
				margin: 0;
			}
			.header-reveal-mask .en,
			.header-reveal-mask .jp {
				opacity: 1 !important;
				transition: transform 1.1s cubic-bezier(0.16, 1, 0.3, 1);
				transition-delay: 0s;
			}
			&:not(.on) .header-reveal-mask .en,
			&:not(.on) .header-reveal-mask .jp {
				transform: translateY(102%) !important;
			}
			&.on .header-reveal-mask .en,
			&.on .header-reveal-mask .jp {
				transform: translateY(0) !important;
			}
			&.on .header-reveal-mask .en {
				transition-delay: 0s;
			}
			&.on .header-reveal-mask .jp {
				transition-delay: 0.42s;
			}
		}

		.description {
			color: #fff;
		}
		.text-container {
			position: relative;
			z-index: 5;
			width: 63.3rem;
			@media screen and (max-width: 767px) {
				width: 100%;
			}
		}
		.img-container {
			position: relative;
			z-index: 4;
			width: 85.011rem;
			height: 79.7rem;
			@media screen and (max-width: 767px) {
				width: 100%;
				height: 31.782rem;
				margin-bottom: 5rem;
			}
			.img1 {
				width: 52.211rem;
				height: 36.8rem;
				position: absolute;
				top: 0;
				right: 0;
				@media screen and (max-width: 767px) {
					width: 20.8rem;
					height: 14.675rem;
				}
			}
			.img2 {
				width: 29.7rem;
				height: 29.7rem;
				position: absolute;
				top: 22.9rem;
				left: 0;
				@media screen and (max-width: 767px) {
					width: 11.843rem;
					height: 11.843rem;
					top: 9.132rem;
				}
			}
			.img3 {
				width: 30.423rem;
				height: 39.85rem;
				position: absolute;
				bottom: 0;
				right: 21.7rem;
				@media screen and (max-width: 767px) {
					width: 12.132rem;
					height: 15.891rem;
					right: 8.702rem;
				}
			}
			.img1,
			.img2,
			.img3 {
				& img {
					width: 100%;
					height: 100%;
					object-fit: cover;
					object-position: center;
				}
			}
		}
	}
}

#staff {
	padding-top: 11.8rem;
	padding-bottom: 12rem;
	background: url("../img/index/staff-bg.png") no-repeat top center / cover;
	box-sizing: border-box;
	position: relative;
	overflow: hidden;
	@media screen and (max-width: 767px) {
		background: #f4f4f3;
		padding-top: 6rem;
		padding-bottom: 6.2rem;
		position: relative;
		&::after {
			content: "";
			position: absolute;
			width: 25.4rem;
			height: 36.4rem;
			top: -2.5rem;
			right: 0;
			background: url("../img/index/staff-bg-sp.png") no-repeat center bottom / 100% auto;
		}
	}
	.slick-dots li button:before {
		font-size: 0 !important;
	}
	.staff-posts {
		position: relative;
		padding: 0 7rem;
		margin-bottom: 4rem;
		@media screen and (max-width: 767px) {
			padding: 0 2.8rem;
		}
		& li {
			transition: all 0.5s ease-in;
			&:hover {
				opacity: 0.75;
			}
			.thumbnail {
				overflow: hidden;
				&:hover {
					& img {
						transition: all 0.5s ease-in-out;
						transform: scale(1.08);
					}
				}
			}
		}
		.slick-arrow {
			position: absolute;
			top: 50%;
			transform: translateY(-50%);
			width: 4rem;
			height: 4rem;
			border: none;
			border-radius: 50%;
			background-color: #000;
			z-index: 20;
			cursor: pointer;
			font-size: 0;
			line-height: 1;
			display: flex !important;
			align-items: center;
			justify-content: center;
			transition:
				background-color 0.3s ease,
				opacity 0.3s ease;
			@media screen and (max-width: 767px) {
				width: 3.6rem;
				height: 3.6rem;
			}
			&:hover {
				background-color: #202020;
			}
			&.slick-disabled {
				opacity: 0.35;
				cursor: default;
			}
			&::before {
				content: "";
				display: block;
				width: 1.1rem;
				height: 1.1rem;
				border-top: 0.22rem solid #fff;
				border-right: 0.22rem solid #fff;
				opacity: 1;
			}
		}
		.slick-prev {
			left: 0;
			&::before {
				transform: rotate(-135deg);
				margin-left: 0.3rem;
			}
		}
		.slick-next {
			right: 0;
			&::before {
				transform: rotate(45deg);
				margin-right: 0.3rem;
			}
		}
		.slick-list {
			margin: 0 -2.25rem;
		}
		.slick-slide {
			margin: 0 2.25rem;
		}
		.slick-slide.staff-offset-even {
			padding-top: 6rem;
			@media screen and (max-width: 767px) {
				padding-top: 0;
			}
		}
		.thumbnail {
			max-width: 45rem;
			height: 61rem;
			overflow: hidden;
			@media screen and (max-width: 767px) {
				width: 100%;
				height: 45.276rem;
			}
			& img {
				height: 100%;
				width: auto;
				object-fit: cover;
				object-position: center;
			}
		}
		.text-content {
			padding-left: 1.5rem;
			box-sizing: border-box;
			position: relative;
			margin-top: -5rem;
			@media screen and (max-width: 767px) {
				padding-left: 1.1rem;
				margin-top: -4rem;
			}
			.number {
				font-family: var(--pop);
				font-style: normal;
				font-weight: 600;
				font-size: 8.5rem;
				line-height: 111%;
				letter-spacing: -0.01em;
				color: #e50012;
				@media screen and (max-width: 767px) {
					font-size: 6.2rem;
					margin-bottom: 0.24rem;
				}
			}
			.comment {
				font-family: var(--noto);
				font-style: normal;
				font-weight: 700;
				font-size: 2.8rem;
				line-height: 150%;
				letter-spacing: 0.02em;
				color: #000000;
				margin-bottom: 0.5rem;
				display: -webkit-box;
				-webkit-box-orient: vertical;
				-webkit-line-clamp: 2;
				overflow: hidden;
				@media screen and (max-width: 767px) {
					font-size: 2rem;
					margin-bottom: 0.4rem;
				}
			}
			.info {
				font-family: var(--noto);
				font-style: normal;
				font-weight: 700;
				font-size: 1.4rem;
				line-height: 4rem;
				letter-spacing: 0.05em;
				color: #000000;
				@media screen and (max-width: 767px) {
					line-height: 2.9rem;
					font-size: 1.2rem;
					margin-bottom: 0.24rem;
				}
			}
			.staff-name {
				font-family: var(--pop);
				font-style: normal;
				font-weight: 500;
				font-size: 3.8rem;
				line-height: 111%;
				letter-spacing: -0.01em;
				color: #e50012;
				@media screen and (max-width: 767px) {
					font-size: 2.8rem;
				}
			}
		}
	}
	.slick-dots {
		display: none !important;
		@media screen and (max-width: 767px) {
			display: flex !important;
			justify-content: center;
			gap: 1.9rem;
			position: relative;
			& li {
				width: 1.2rem;
				height: 1.2rem;
				margin: 0 !important;
				@media screen and (max-width: 767px) {
					margin: 0 !important;
				}
				& button {
					width: 1.2rem;
					height: 1.2rem;
					padding: 0;
					border: none;
					border-radius: 50%;
					background-color: #d9d9d9;
					font-size: 0;
					cursor: pointer;
				}
				&.slick-active button {
					background-color: #e50012;
				}
			}
		}
	}
}

#instagram {
	background-color: #f4f4f2;
	padding-bottom: 11.2rem;
	#sb_instagram {
		#sbi_images {
			padding: 0 0 5.8rem;
		}
	}
}

#btn-container {
	.flex-btns {
		display: flex;
		@media screen and (max-width: 767px) {
			flex-direction: column;
		}
		.button-container {
			width: 50%;
			height: 40.1rem;
			border: solid #e4e4e4 3px;
			border-left: solid #e4e4e4 1.5px;
			border-right: solid #e4e4e4 1.5px;
			padding-left: 11.9rem;
			position: relative;
			display: flex;
			align-items: center;
			transition: all 0.3s ease-in;
			@media screen and (max-width: 767px) {
				border: solid #e4e4e4 1px;
				border-left: solid #e4e4e4 1px;
				border-right: solid #e4e4e4 1px;
				width: 100%;
				height: 15.6rem;
				padding-left: 1.9rem;
			}
			&:hover {
				background-color: #e4e4e4;
			}
			.btn-text {
				.jp {
					font-family: var(--noto);
					font-style: normal;
					font-weight: 700;
					font-size: 3.9rem;
					line-height: 4.7rem;
					letter-spacing: 0.15em;
					color: #000000;
					margin-bottom: 1.6rem;
					@media screen and (max-width: 767px) {
						font-size: 2.2rem;
						line-height: 1;
						margin-bottom: 0.96rem;
					}
				}
				.en {
					font-family: var(--robo);
					font-style: normal;
					font-weight: 500;
					font-size: 2rem;
					line-height: 2.3rem;
					letter-spacing: 0.02em;
					color: #e50012;
					@media screen and (max-width: 767px) {
						font-size: 1.2rem;
						line-height: 1;
					}
				}
			}
			.btn-arrow {
				width: 6.8rem;
				height: 6.8rem;
				position: absolute;
				right: 6.5rem;
				top: 50%;
				transform: translateY(-50%);
				@media screen and (max-width: 767px) {
					width: 3.478rem;
					height: 3.478rem;
					right: 2rem;
				}
				& img {
					width: 100%;
					vertical-align: middle;
					object-fit: contain;
					object-position: center;
				}
			}
		}
		.button-container:first-child {
			@media screen and (max-width: 767px) {
				border-bottom: none;
			}
		}
	}
}

#news {
	padding-top: 11.8rem;
	padding-bottom: 10.7rem;
	@media screen and (max-width: 767px) {
		padding-top: 5.4rem;
		padding-bottom: 4rem;
	}
	.black-btn {
		margin-top: 4rem;
	}
	.flex-contents {
		display: flex;
		gap: 12.6rem;
		@media screen and (max-width: 767px) {
			flex-direction: column;
			gap: 0;
		}
		.common-header-top {
			width: 30.1rem;
			@media screen and (max-width: 767px) {
				width: 100%;
			}
		}
		.common-list.article {
			border-top: #bababa 0.1rem solid;
			width: 100%;
			flex: 1;
			& li {
				& a {
					padding-top: 4.5rem;
					padding-bottom: 4.1rem;
					border-bottom: #bababa 0.1rem solid;
					display: flex;
					align-items: center;
					transition: all 0.3s ease-in;
					@media screen and (max-width: 767px) {
						padding-top: 1.4rem;
						padding-bottom: 2.2rem;
						flex-direction: column;
						align-items: flex-start;
					}
					&:hover {
						border-bottom: #e50012 0.1rem solid;
						opacity: 0.75;
						.list-date,
						.list-title {
							color: #e50012;
						}
						.list-category {
							& span {
								background-color: #e50012;
							}
						}
					}
					.time-cats {
						display: flex;
						align-items: center;
						@media screen and (max-width: 767px) {
							justify-content: flex-start;
							margin-bottom: 1.4rem;
						}
					}
					.list-date {
						font-family: var(--jost);
						font-style: normal;
						font-weight: 500;
						font-size: 1.6rem;
						line-height: 1.2;
						leading-trim: both;
						text-edge: cap;
						letter-spacing: 0.01em;
						color: #000000;
						margin-right: 2rem;
						white-space: nowrap;
						@media screen and (max-width: 767px) {
							font-size: 1.4rem;
							margin-right: 1.39rem;
						}
					}
					.list-category {
						display: flex;
						align-items: center;
						gap: 1rem;
						margin-right: 7.4rem;
						@media screen and (max-width: 767px) {
							margin-right: 0;
							flex-wrap: wrap;
						}
						& span {
							white-space: nowrap;
							font-family: "Noto Sans CJK JP", sans-serif;
							font-style: normal;
							font-weight: 500;
							font-size: 1.4rem;
							line-height: 1.2;
							leading-trim: both;
							text-edge: cap;
							letter-spacing: 0.05em;
							color: #ffffff;
							background: #929292;
							border-radius: 2px;
							padding: 1rem 1.8rem;
							box-sizing: border-box;
							@media screen and (max-width: 767px) {
								font-size: 1.2rem;
							}
						}
					}
					.list-title {
						font-family: var(--noto);
						font-style: normal;
						font-weight: 500;
						font-size: 1.8rem;
						line-height: 1.2;
						letter-spacing: 0.08em;
						color: #000000;
						display: -webkit-box;
						-webkit-box-orient: vertical;
						-webkit-line-clamp: 1;
						overflow: hidden;
						@media screen and (max-width: 767px) {
							font-weight: 700;
							font-size: 1.4rem;
							line-height: 1.71;
							letter-spacing: 0.05em;
							-webkit-line-clamp: 2;
						}
					}
				}
			}
		}
	}
}
