@media all and (min-width: 641px) {

	/* MAINV */
	body.home #mainv {
		position: relative;
		margin-bottom: 100px;
		padding-bottom: 70px;
		background: url(../images/home/mainv/bg.png) no-repeat center bottom;
		background-size: 100% auto;
	}

	body.home #mainv .swiper-wrapper {
		position: relative;
		height: 900px;
		width: 100%;
		border-radius: 0 0 100px 100px;
		overflow: hidden;
	}

	body.home #mainv .swiper-slide img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	body.home #mainv .lead {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		display: flex;
		align-items: center;
		justify-content: center;
		padding: 30px;
		z-index: 1000;
		pointer-events: none;
		/* 下の画像やボタンに干渉しないように追加 */
	}

body.home #mainv .swiper-pagination-bullets.swiper-pagination-horizontal {
		bottom: var(--swiper-pagination-bottom, 30px);
	}

	body.home #mainv .swiper-pagination-bullet-active {
		background: #231815;
	}

	body.home #index-topics h2.title {
		margin-bottom: 30px;
		text-align: center;
	}

	body.home #index-topics .topics-list {
		display: flex;
		flex-wrap: wrap;
		align-items: flex-start;
		justify-content: space-between;
		margin-bottom: 80px;
	}

	body.home #index-topics .topics-list .topics-item {
		width: 380px;
	}

	body.home #index-topics .topics-list .topics-item .image {
		margin-bottom: 5px;
	}

	body.home #index-topics .topics-list .topics-item .image img {
		width: 380px;
		height: 280px;
		object-fit: cover;
		border: 1px solid #9fa0a0;
	}

	body.home #index-topics .topics-list .topics-item .title {
		line-height: 1.5;
	}

	body.home #index-topics .btn-type01 {
		text-align: center;
	}

	/* company */
body.home #index-company .title {
		margin-bottom: 30px;
	}

	body.home #index-company .inner {
		margin-left: 100px;
		padding: 100px 0 50px 100px;
		background: url(../images/home/company-bg.jpg) no-repeat center center;
		background-size: cover;
		border-radius: 100px 0 0 100px;
	}

	body.home #index-company .lead {
		margin-bottom: 30px;
		font-size: min(4.8rem, 4.2vw);
		font-weight: bold;
		line-height: 1.2;
	}

body.home #index-company .imgr-box .image-box {
		width: 60%;
		border-radius: 100px 0 0 100px;
		overflow: hidden;
	}

	body.home #index-company .imgr-box .image-box img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	body.home #index-company .imgr-box .text-box {
		width: 35%;
		min-width: 400px;
	}

	body.home #index-company .imgr-box .text-box .text {
		margin-bottom: 50px;
	}

/* services */
	body.home #index-services {
		position: relative;
		margin-bottom: 200px;
	}

	body.home #index-services>.title {
		margin-bottom: 50px;
		text-align: center;
	}

	body.home #index-services .inner {
		margin-right: 70px;
		border-radius: 0 100px 100px 0;
		overflow: hidden;
		background: #fff;
	}

	body.home #index-services .swiper {
		width: 100%;
	}

	body.home #index-services .swiper .swiper-wrapper {
		align-items: center;
	}

	body.home #index-services .swiper .swiper-slide {
		position: relative;
	}

	body.home #index-services .swiper .swiper-slide .image .pc {
		width: 100%;
		height: auto;
		display: block;
	}

	body.home #index-services .swiper .swiper-slide .image .sp {
		display: none;
	}

	body.home #index-services .swiper .swiper-slide .text-box {
		position: absolute;
		bottom: 0;
		left: 0;
		display: inline-block;
		padding: 0 0 100px 100px;
	}

	body.home #index-services .swiper .swiper-slide .text-box .title {
		font-size: 6rem;
		font-weight: bold;
		line-height: 1;
		text-shadow: 2px 2px 4px #fff,
			-2px -2px 4px #fff,
			-2px 2px 4px #fff,
			2px -2px 4px #fff;
	}

	body.home #index-services .swiper .swiper-slide .text-box .lead {
		margin-bottom: 30px;
		font-size: 2.4rem;
		font-weight: bold;
		color: #000;
		text-shadow: 1px 1px 2px #fff,
			-1px -1px 2px #fff,
			-1px 1px 2px #fff,
			1px -1px 2px #fff;
	}

	body.home #index-services .swiper .swiper-slide .text-box .text {
		margin-bottom: 20px;
		color: #000;
		font-weight: bold;
		text-shadow: 1px 1px 2px #fff,
			-1px -1px 2px #fff,
			-1px 1px 2px #fff,
			1px -1px 2px #fff;
	}

body.home #index-services .swiper-thumbnail {
		margin-top: 30px;
		width: 100%;
		padding: 0 100px;
		/* innerと同じ余白感に合わせる場合 */
	}

	body.home #index-services .swiper-thumbnail .swiper-slide {
		cursor: pointer;
	}

	body.home #index-services .swiper-thumbnail .swiper-slide .image {
		position: relative;
	}

	body.home #index-services .swiper-thumbnail .swiper-slide .image::after {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background-color: rgba(255, 255, 255, 0.5);
		transition: opacity 0.3s ease;
		opacity: 0;
	}

	body.home #index-services .swiper-thumbnail .swiper-slide-thumb-active .image::after {
		opacity: 1;
	}

	body.home #index-services .swiper-thumbnail .swiper-slide .image img {
		width: 100%;
		height: auto;
		display: block;
	}

	body.home #index-services .swiper-thumbnail .swiper-slide .name {
		font-size: 1.4rem;
	}

	/* recruit */
	body.home #index-recruit {
		padding: 50px 0;
		background: url(../images/home/recruit-bg.png) no-repeat center center;
		background-size: cover;
	}

	body.home #index-recruit .inner {
		margin: 0 5%;
		border-radius: 100px;
		overflow: hidden;
		background: #fff;
	}

	body.home #index-recruit .imgr-box {
		flex-direction: row;
	}

	body.home #index-recruit .imgr-box .image-box {
		width: 50%;
	}

	body.home #index-recruit .imgr-box .image-box img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	body.home #index-recruit .imgr-box .text-box {
		width: 50%;
		padding: 70px 30px 70px 70px;
	}

	body.home #index-recruit .imgr-box .text-box .title {
		margin-bottom: 30px;
	}

	body.home #index-recruit .imgr-box .text-box .lead {
		margin-bottom: 40px;
		font-size: 4.6rem;
		font-weight: bold;
		line-height: 1.2;
		letter-spacing: 0.1rem;
	}

	body.home #index-recruit .imgr-box .text-box .text {
		margin-bottom: 80px;
		padding-right: 20px;
	}

}

@media only screen and (max-width: 640px) {

	/* MAINV */
	body.home #mainv {
		position: relative;
		margin-bottom: 80px;
		padding-bottom: 50px;
		background: url(../images/home/mainv/bg_sp.png) no-repeat center bottom;
		background-size: 100% auto;
	}

	body.home #mainv .swiper-wrapper {
		position: relative;
		height: 100vh;
		width: 100%;
		border-radius: 0 0 80px 80px;
		overflow: hidden;
	}

	body.home #mainv .swiper-slide img.sp {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	body.home #mainv .swiper-slide img.pc {
		display: none;
	}

	body.home #mainv .lead {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		display: flex;
		align-items: center;
		justify-content: center;
		padding: 10px;
		z-index: 1000;
		pointer-events: none;
		/* 下の画像やボタンに干渉しないように追加 */
	}

	body.home #mainv .lead img {
		width: 100%;
		max-width: 926px;
		height: auto;
	}

body.home #mainv .swiper-pagination-bullets.swiper-pagination-horizontal {
		bottom: var(--swiper-pagination-bottom, 30px);
	}

	body.home #mainv .swiper-pagination-bullet-active {
		background: #231815;
	}

	body.home h2.title img {
		width: 180px;
		height: auto;
	}

	body.home #index-topics h2.title {
		margin-bottom: 30px;
		text-align: center;
	}

	body.home #index-topics .topics-list {
		margin-bottom: 60px;
	}

	body.home #index-topics .topics-list .topics-item {
		margin-bottom: 30px;
	}

	body.home #index-topics .topics-list .topics-item .image {
		margin-bottom: 5px;
	}

	body.home #index-topics .topics-list .topics-item .image img {
		width: 100%;
		aspect-ratio: 38 / 28;
		object-fit: cover;
		border: 1px solid #9fa0a0;
	}

	body.home #index-topics .btn-type01 {
		text-align: center;
	}

	/* company */
body.home #index-company .title {
		margin-bottom: 30px;
	}

	body.home #index-company .inner {
		margin-left: 20px;
		padding: 40px 0 50px 30px;
		background: url(../images/home/company-bg.jpg) no-repeat center center;
		background-size: cover;
		border-radius: 80px 0 0 80px;
	}

	body.home #index-company .lead {
		margin-bottom: 30px;
		/* 画面幅に応じてフォントサイズを縮小し、改行を防ぐ（最大32px） */
		font-size: min(3.2rem, 6vw);
		font-weight: bold;
		line-height: 1.3;
	}

	body.home #index-company .image-box {
		margin-bottom: 30px;
		border-radius: 40px 0 0 40px;
		overflow: hidden;
	}

	body.home #index-company .text-box .text {
		margin-bottom: 50px;
		padding-right: 20px;
	}

	/* services */
	body.home #index-services {
		position: relative;
		margin-bottom: 100px;
	}

	body.home #index-services>.title {
		margin-bottom: 30px;
		text-align: center;
	}

	body.home #index-services .inner {
		border-radius: 0 80px 80px 0;
		overflow: hidden;
		background: #fff;
	}

	body.home #index-services .swiper {
		width: 100%;
	}

	body.home #index-services .swiper .swiper-wrapper {
		align-items: center;
	}

	body.home #index-services .swiper .swiper-slide {
		position: relative;
	}

	body.home #index-services .swiper .swiper-slide .image img {
		width: 100%;
		height: 800px;
		object-fit: cover;
	}

	body.home #index-services .swiper .swiper-slide .text-box {
		position: absolute;
		top: 370px;
		left: 0;
		display: inline-block;
		padding: 0 20px;
	}

	body.home #index-services .swiper .swiper-slide .text-box .title {
		font-size: 3.6rem;
		font-weight: bold;
		line-height: 1.3;
		text-shadow: 2px 2px 4px #fff,
			-2px -2px 4px #fff,
			-2px 2px 4px #fff,
			2px -2px 4px #fff;
	}

	body.home #index-services .swiper .swiper-slide .text-box .lead {
		margin-bottom: 30px;
		font-size: 1.8rem;
		font-weight: bold;
		line-height: 1.5;
		color: #000;
		text-shadow: 1px 1px 2px #fff,
			-1px -1px 2px #fff,
			-1px 1px 2px #fff,
			1px -1px 2px #fff;
	}

	body.home #index-services .swiper .swiper-slide .text-box .text {
		margin-bottom: 20px;
		color: #000;
		font-weight: bold;
		text-shadow: 1px 1px 2px #fff,
			-1px -1px 2px #fff,
			-1px 1px 2px #fff,
			1px -1px 2px #fff;
		line-height: 1.5;
	}

body.home #index-services .swiper-thumbnail {
		margin-top: 30px;
		width: 100%;
		padding: 0 20px;
	}

	body.home #index-services .swiper-thumbnail .swiper-wrapper {
		display: flex !important;
		flex-wrap: wrap !important;
		transform: none !important;
		gap: 10px;
	}

	body.home #index-services .swiper-thumbnail .swiper-slide {
		width: calc(50% - 5px) !important;
		margin: 0 !important;
		cursor: pointer;
	}

	body.home #index-services .swiper-thumbnail .swiper-slide .image {
		position: relative;
	}

	body.home #index-services .swiper-thumbnail .swiper-slide .image::after {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background-color: rgba(255, 255, 255, 0.5);
		transition: opacity 0.3s ease;
		opacity: 0;
	}

	body.home #index-services .swiper-thumbnail .swiper-slide-thumb-active .image::after {
		opacity: 1;
	}

	body.home #index-services .swiper-thumbnail .swiper-slide .image img {
		width: 100%;
		height: auto;
		display: block;
	}

	body.home #index-services .swiper-thumbnail .swiper-slide .name {
		font-size: 1.4rem;
	}

	/* recruit */
	body.home #index-recruit {
		padding: 50px 20px;
		background: url(../images/home/recruit-bg_sp.png) no-repeat center center;
		background-size: 100% 100%;
	}

	body.home #index-recruit .inner {
		border-radius: 50px;
		overflow: hidden;
		background: #fff;
	}

body.home #index-recruit .imgr-box .text-box {
		padding: 50px 20px 50px 20px;
	}

	body.home #index-recruit .imgr-box .text-box .title {
		margin-bottom: 30px;
	}

	body.home #index-recruit .imgr-box .text-box .lead {
		margin-bottom: 30px;
		font-size: min(3.6rem, 7vw);
		font-weight: bold;
		line-height: 1.3;
	}

	body.home #index-recruit .imgr-box .text-box .text {
		margin-bottom: 30px;
	}
}