/* TOP 共通 ***************************/
.ttl_box h2 {
	font-size: 60px;
	font-weight: bold;
	line-height: 1;
	margin-top: 15px;
}

@media (max-width: 767px) {}

/* KV ***************************/
#KV_area {
	position: relative;
}

#KV_area::after {
	content: "";
	position: absolute;
	background-color: #E8E8E8;
	width: 100%;
	height: 30%;
	bottom: 0;
	left: 0;
	z-index: 0;
}

#KV_area .MV-container {
	position: relative;
	z-index: 9;
}

#KV_area .MV-container .main_txt_img {
	position: absolute;
	bottom: 140px;
	right: 40px;
	z-index: 99;
	max-width: 45%;
}

#KV_area .MV-container .slick-dots li {
	width: 10px;
}

#KV_area .MV-container .slick-dots li button:before {
	font-size: 10px;
	color: #707070;
	opacity: .8;
}

#KV_area .MV-container .slick-dots li.slick-active button:before {
	opacity: 1;
	color: var(--main_color);
}

#KV_area .MV-container .slick-dots {
	bottom: 27px;
}

.slick-dotted.slick-slider {
	margin-bottom: 0;
}

#KV_area>* {
	line-height: 0;
	font-size: 0;
}

.scrolldown2 {
	/*描画位置※位置は適宜調整してください*/
	position: absolute;
	bottom: 58px;
	left: 2%;
	z-index: 99;
	height: 240px;
}

/*Scrollテキストの描写*/
/* 丸の描写 */
.scrolldown2:before {
	content: "";
	/*描画位置*/
	position: absolute;
	bottom: 0;
	left: -1px;
	/*丸の形状*/
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--main_color);
	/*丸の動き1.6秒かけて透過し、永遠にループ*/
	animation:
		circlemove 2s ease-in-out infinite, cirlemovehide 2s ease-out infinite;
}

/*下からの距離が変化して丸の全体が上から下に動く*/
@keyframes circlemove {
	0% {
		bottom: 185px;
	}

	100% {
		bottom: -5px;
	}
}

/*上から下にかけて丸が透過→不透明→透過する*/
@keyframes cirlemovehide {
	0% {
		opacity: 0
	}

	50% {
		opacity: 1;
	}

	80% {
		opacity: 0.9;
	}

	100% {
		opacity: 0;
	}
}

/* 線の描写 */
.scrolldown2:after {
	content: "";
	/*描画位置*/
	position: absolute;
	bottom: 0;
	left: 3px;
	/*線の形状*/
	width: 2px;
	height: 191px;
	background: var(--main_color);
}

@media (max-width: 1790px) {
	.scrolldown2 {
		display: none;
	}
}

@media (max-width: 767px) {
	#KV_area .MV-container .slick-dots {
		bottom: 0px;
	}
}

/* news_area ***************************/
#news_area {
	position: relative;
}

#news_area .api_list li {
	margin-bottom: 20px;
}

#news_area .api_list li:last-child {
	margin-bottom: 0;
}

#news_area .api_list li a {
	background: #fff;
	padding: 30px 80px 30px 30px;
	border-radius: 20px;
	display: flex;
	position: relative;
}

#news_area .api_list li a::after {
	content: "";
	background-image: url(../img/icon_arr.svg);
	background-size: contain;
	width: 20px;
	height: 6px;
	position: absolute;
	right: 30px;
	top: 50%;
	transform: translateY(-50%);
	-webkit-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
	transition: .3s;
}

#news_area .api_list li a:hover:after {
	right: 20px;
}

#news_area .api_list li a span {
	color: #FD0414;
	padding-right: 30px;
	min-width: 150px;
}

#news_area .btn_box {
	display: table;
	margin-right: 0;
	margin-left: auto;
}

/* about_area ***************************/
#about_area {
	position: relative;
}

#about_area .bg_icon_slide {
	position: absolute;
	width: 100%;
	top: 28%;
	left: 0;
}

.abs01 {
	position: absolute;
	right: 0;
	top: -120px;
}

.btn_ptn2 a {
	display: block;
}

#about_area .col-md-4 {
	border-right: 1px solid #9A9A9A;
}

#about_area .col-md-4:first-child {
	border-left: 1px solid #9A9A9A;
}

.btn_ptn2 a .btn_arr {
	display: flex;
	justify-content: center;
	align-items: center;
	margin: 30px auto 0;
	border: 1px solid #FD0414;
	border-radius: 50%;
	width: 40px;
	height: 40px;
	transition: .4s;
}

.btn_ptn2 a .btn_arr>img {
	width: 20px;
	transition: .4s;
}

.btn_ptn2 a:hover .btn_arr {
	transform: scale(1.2);
	background: #FD0414;
}

.btn_ptn2 a:hover .btn_arr>img {
	filter: brightness(0) invert(1);
}

@media (max-width: 1280px) {
	#KV_area .bg-slider {
		display: none;
	}

	#KV_area .MV-container {
		position: relative;
		top: inherit;
		left: inherit;
		transform: inherit;
		-webkit-transform: inherit;
		-ms-transform: inherit;
	}

	#banner_area {
		padding: 30px 0 20px;
	}

	.abs01 {
		top: 2%;
		width: 15%;
	}
}

@media (max-width: 767px) {
	.ttl_box .sub_txt {
		font-size: 34px;
		margin-top: 5px;
	}

	#KV_area .MV-container .main_txt_img {
		bottom: 30px;
		right: 30px;
		width: 250px;
		max-width: 60%;
	}

	#KV_area .MV-container .main_txt_img img {
		width: 100%;
	}

	#news_area .api_list li a {
		display: block;
		padding: 20px 50px 20px 20px;
	}

	#news_area .api_list li a span {
		display: block;
	}

	#news_area .api_list li a::after {
		right: 20px;
	}

	#about_area .bg_icon_slide {
		top: 30%;
	}

	#about_area .con_p_space {
		padding: 20px 0 40px 0;
	}

	#banner_area .bnr_slide .slide-arrow {
		display: none;
	}

	#banner_area .bnr_slide {
		margin-bottom: 10px;
	}

	#banner_area .slick-slide li {
		padding: 0 4px;
	}

	.btn_ptn2 a {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 25px 0;
		border-right: inherit;
		border-bottom: 1px solid #9A9A9A;
	}

	.col-md-4:first-child .btn_ptn2 a {
		border-top: 1px solid #9A9A9A;
		border-left: inherit;
	}

	#about_area .col-md-4 {
		border-right: inherit;
	}

	#about_area .col-md-4:first-child {
		border-left: inherit;
	}

	.btn_ptn2 a .btn_arr {
		margin: 0;
	}

	.abs01 {
		right: 20px;
		width: 115px;
	}

	#news_area .api_list li a:hover:after {
		right: 10px;
	}
}

@media (max-width: 320px) {
	.abs01 {
		width: 97px;
	}
}

/* TOP modal add 2025-03-14 */
.modal-container {
	width: 100%;
	height: 100%;
	position: fixed;
	top: 0;
	left: 0;
	text-align: center;
	background: rgba(0, 0, 0, 0.5);
	overflow: auto;
	opacity: 0;
	visibility: hidden;
	transition: .3s ease-out;
	z-index: 9;
}

.modal-container::before {
	content: "";
	display: inline-block;
	vertical-align: middle;
	height: 100%;
}

.modal-container.active {
	opacity: 1;
	visibility: visible;
}

.modal-body {
	position: relative;
	display: inline-block;
	vertical-align: middle;
	max-width: 500px;
	width: 90%;
}

.modal-close {
	position: absolute;
	top: -17px;
	right: 16px;
	font-size: 14px;
	color: #fff;
	background: rgba(0,0,0,60%);
	padding: 4px 15px;
	cursor: pointer;
	border-radius: 5px 5px 0 0;
	border: none;
}

.top-modal-content {
	background: #fff;
	border: 2px solid #000;
	text-align: left;
	padding: 30px;
	font-weight: bold;
}
.top-modal-content .gray-bg {
	margin-top: 15px;
	background: #eee;
	border-radius: 10px;
	padding: 20px;
	text-align: left;
}

.top-modal-content .txt {
	text-align: center;
	font-size: 16px;
	font-weight: bold;
}
.btn-modal-area>a {
	font-size: 14px;
	font-weight: bold;
	display: block;
	text-align: center;
	background: var(--corporate_color);
	padding: 12px 25px;
	color: #fff;
	max-width: 260px;
	margin-top: 20px;
	margin-inline: auto;
	border: 2px solid var(--corporate_color);
}
@media (max-width: 767px) {
	.top-modal-content .gray-bg {
		padding: 20px 10px;
	}
	.top-modal-content .txt {
		font-size: 12px;
	}
}
