@charset "UTF-8";
p.none {
	font-weight: 500;
}
/*-----------------------------------

	mainvisual_block

-----------------------------------*/
#mainvisual_block {
	width: 100vw;
	height: 100vh;
	position: relative;
	z-index: 1;
}
#mainvisual_block .contents_inner {
	width: 100%;
	max-width: initial;
	height: 100%;
}
#mainvisual_block .mv_box {
	width: min(99.74vw, 1496px);
	height: 100%;
	margin: auto;
	position: absolute;
	inset: 0;
	transform: translateX(25px);
	z-index: 1;
}
#mainvisual_block .mv_box img {
	width: auto;
	height: 100%;
	margin: 0 auto;
	object-fit: contain;
}
#mainvisual_block .scroll_box {
	width: 18px;
	height: 134px;
	position: absolute;
	right: 62px;
	bottom: 8px;
	z-index: 0;
}
#mainvisual_block .scroll_txt {
	writing-mode: vertical-rl;
	font-size: 18px;
	font-weight: 600;
	line-height: 18px;
	letter-spacing: 0.05em;
	width: max-content;
	padding-top: 83px;
	position: relative;
}
#mainvisual_block .scroll_txt::before {
	content: '';
	display: block;
	background: #2D2D2D;
	width: 1px;
	height: 68px;
	margin: auto;
	position: absolute;
	top: 0;
	left: -5px;
	right: 0;
	z-index: 1;
}
@media screen and (max-width: 640px) {
	#mainvisual_block {
		height: 100vh;
        height: 100svh;
	}
	#mainvisual_block .mv_box {
		width: 100%;
		height: 100%;
		margin: 0 auto;
		transform: translateX(0);
	}
	#mainvisual_block .mv_box img {
		margin: -20px auto 0;
	}	
	#mainvisual_block .scroll_box {
		height: 104px;
		right: 22px;
		bottom: 15px;
	}
	#mainvisual_block .scroll_txt {
		font-size: 14px;
		line-height: 14px;
		padding-top: 65px;
	}
	#mainvisual_block .scroll_txt::before {
		height: 48px;
	}
}
/*-----------------------------------

	about_block

-----------------------------------*/
#about_block {
	padding-bottom: 57px;
	margin-top: 84px;
	position: relative;
	z-index: 0;
}
#about_block::before,
#about_block::after {
	content: '';
	display: block;
	width: 54.67vw;
	margin: auto;
	position: absolute;
}
#about_block::before {
	background: #F7F1E7;
	height: calc(100% - 30px);
	border-top-right-radius: 50px;
	border-bottom-right-radius: 50px;
	top: -120px;
	left: 0;
	z-index: -2;
}
#about_block::after {
	background: #FFFFFF;
	height: 100%;
	border-top-left-radius: 50px;
	right: 0;
	bottom: 0;
	z-index: -2;
}
#about_block .left_box {
	width: 40%;
}
#about_block .left_box img {
	width: 668px;
	max-width: initial;
	margin-left: -94px;
}
#about_block .right_box {
	width: 45.84%;
	padding-right: 50px;
	margin-top: 100px;
}
#about_block .right_box h3 {
	margin-bottom: 56px;
}
#about_block .right_box h3 span {
	display: inline-block;
	font-size: 38px;
	font-weight: 500;
	line-height: 1.45;
	letter-spacing: 0.02em;
	color: #FFFFFF;
	background: #59C8F2;
	padding: 7px 21px;
	white-space: nowrap;
}
#about_block .right_box p {
	font-size: 18px;
	font-weight: 500;
	line-height: 2;
	letter-spacing: 0.02em;
	margin-bottom: 35px;
}
#about_block .right_box h3 span:not(:last-of-type) {
	margin-bottom: 10px;
}
@media screen and (max-width: 1200px) {
	#about_block .left_box img {
		width: 100%;
		margin-left: 0;
	}
	#about_block .right_box {
		padding-right: 0;
	}
}
@media screen and (max-width: 640px) {
	#about_block {
		padding-bottom: 72px;
		margin-top: 54px;
	}
	#about_block::before {
		width: 95vw;
		height: 60%;
		border-top-right-radius: 20px;
		border-bottom-right-radius: 20px;
		top: -65px;
	}
	#about_block::after {
		width: 97.5vw;
		height: 65%;
		border-top-left-radius: 20px;
	}
	#about_block .left_box,
	#about_block .right_box {
		width: 100%;
	}
	#about_block .right_box {
		margin-top: 40px;
	}
	#about_block .right_box h3 {
		margin-bottom: 26px;
	}
	#about_block .right_box h3 span {
		font-size: 22px;
		padding: 6px 11px;
	}
	#about_block .right_box h3 span:not(:last-of-type) {
		margin-bottom: 4px;
	}
	#about_block .right_box p {
		font-size: 14px;
		margin-bottom: 25px;
	}
}
/*-----------------------------------

	feature_block

-----------------------------------*/
#feature_block {
	background: url(../img/index/img_feature_bg.jpg) no-repeat center / cover;
	padding: 120px 0 113px;
}
#feature_block .contents_inner {
	position: relative;
}
#feature_block .contents_inner::before {
	content: '';
	display: block;
	background: url(../img/index/icon_feature.svg) no-repeat center center / contain;
	width: 511px;
	height: 352px;
	margin: auto;
	position: absolute;
	top: -206px;
	right: -90px;
	z-index: 0;
}
#feature_block .sec_ttl {
	position: relative;
	z-index: 2;
}
#feature_block .feature_wrapper {
	justify-content: flex-start;
	gap: 30px;
}
#feature_block .feature_box {
	width: calc((100% - 60px) / 3);
}
#feature_block .img_box {
	border-radius: 20px;
	overflow: hidden;
	position: relative;
	z-index: 0;
}
#feature_block .text_box {
	margin-top: -56px;
	position: relative;
	z-index: 1;
}
#feature_block .text_box h3 {
	display: inline-block;
	font-size: 28px;
	font-weight: 700;
	line-height: 1.43;
	letter-spacing: 0.02em;
	color: #FFFFFF;
	padding: 8px 20px;
	margin-bottom: 27px;
}
#feature_block .feature01 .text_box h3 {
	background: #CC83BD;
}
#feature_block .feature02 .text_box h3 {
	background: #9F87D2;
}
#feature_block .feature03 .text_box h3 {
	background: #59C8F2;
}
#feature_block .text_box p {
	font-size: 16px;
	font-weight: 500;
	line-height: 2;
	letter-spacing: 0.02em;
	text-align: center;
}
@media screen and (max-width: 840px) {
	#feature_block .feature_box {
		width: calc((100% - 30px) / 2);
	}
}
@media screen and (max-width: 640px) {
	#feature_block {
		padding: 80px 0 83px;
	}
	#feature_block .contents_inner::before {
		width: 211px;
		height: 144px;
		top: -128px;
    	right: -24px;
	}
	#feature_block .feature_box {
		width: 100%;
	}
	#feature_block .text_box {
		margin-top: -43px;
	}
	#feature_block .text_box h3 {
		font-size: 22px;
		padding: 6px 12px;
   		margin-bottom: 17px;
	}
	#feature_block .text_box p {
		font-size: 14px;
	}
}
/*-----------------------------------

	product_block

-----------------------------------*/
#product_block {
	padding: 120px 0 0;
	position: relative;
}
#product_block .contents_inner {
	position: relative;
}
#product_block .contents_inner::before {
	content: '';
	display: block;
	background: url(../img/index/icon_product.svg) no-repeat center center / contain;
	width: 363px;
	height: 330px;
	margin: auto;
	position: absolute;
	top: -173px;
	right: 249px;
	z-index: 1;
}
#product_block .sec_ttl {
	position: relative;
	z-index: 1;
}
#product_block .product_wrapper {
	gap: 30px 40px;
}
#product_block .product_box {
	background: #F7F1E7;
	width: calc((100% - 40px) / 2);
	padding: 60px;
	border-radius: 20px;
	position: relative;
}
#product_block .product_box h3 {
	margin-bottom: 30px;
}
#product_block .product_box h3 span {
	display: block;
	letter-spacing: 0.02em;
}
#product_block .product_box h3 .lg {
	font-size: 36px;
	font-weight: 700;
	margin-bottom: 10px;
	color: #59C8F2;
}
#product_block .product_box h3 .sm {
	font-size: 16px;
	font-weight: 500;
	line-height: 1.5;
}
#product_block .img_box {
	width: calc((100% - 20px) / 2);
}
#product_block .img_box p {
	font-size: 20px;
	font-weight: 700;
	line-height: 1.45;
	letter-spacing: 0.02em;
	margin-top: 20px;
}
#product_block .detail_btn {
	position: absolute;
	top: 74px;
	right: 60px;
	z-index: 1;
}
@media screen and (max-width: 1200px) {
	#product_block .contents_inner::before {
		right: 49px;
	}
	#product_block .product_box {
		width: 100%;
	}
}
@media screen and (max-width: 640px) {
	#product_block {
		padding: 85px 0 0;
	}
	#product_block .contents_inner::before {
		width: 163px;
		height: 150px;
		top: -138px;
		right: -15px;
	}
	#product_block .product_box {
		padding: 30px 20px;
	}
	#product_block .product_box h3 {
		margin-bottom: 20px;
	}
	#product_block .product_box h3 .lg {
		font-size: 22px;
		margin-bottom: 8px;
	}
	#product_block .product_box h3 .sm {
		font-size: 13px;
	}
	#product_block .img_box {
 	   width: calc((100% - 10px) / 2);
	}
	#product_block .img_box p {
		font-size: 16px;
		margin-top: 10px;
	}
	#product_block .detail_btn {
		top: 31px;
		right: 20px;
	}
}
/*-----------------------------------

	info_block

-----------------------------------*/
#info_block {
	padding: 120px 0 0;
}
#info_block .ttl_box {
	width: 300px;
}
#info_block .info_container {
	align-items: flex-start;
}
#info_block .info_wrapper {
	width: calc(100% - 360px);
	align-items: center;
}
#info_block .info_box {
	border-bottom: 1px solid #D5D0C9;
}
#info_block .info_box:first-of-type {
	border-top: 1px solid #D5D0C9;
}
#info_block .info_box a {
	display: flex;
	justify-content: flex-start;
	align-items: center;
	padding: 30px 0;
	position: relative;
}
#info_block .info_box a::after {
	content: '';
	display: block;
	background: url(../img/common/icon_arw_rt_bk.svg) no-repeat center center / contain;
	width: 7px;
	height: 10px;
	margin: auto;
	position: absolute;
	top: 0;
	right: 8px;
	bottom: 0;
	z-index: 1;
}
#info_block .info_box a * {
	font-size: 16px;
	letter-spacing: 0.02em;
}
#info_block .info_box time {
	display: block;
	font-weight: 500;
	color: #59C8F2;
	width: 111px;
}
#info_block .info_box h3 {
	display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    -webkit-line-clamp: 1;
	font-weight: 500;
	width: calc(100% - 141px);
}
#info_block .detail_btn.sp {
	display: none;
}
@media screen and (max-width: 840px) {
	#info_block .info_wrapper {
		width: 100%;
	}
	#info_block .detail_btn.pc {
		display: none;
	}
	#info_block .detail_btn.sp {
		display: block;
		margin-top: 30px;
	}
}
@media screen and (max-width: 640px) {
	#info_block {
		padding: 65px 0 0;
	}
	#info_block .info_box a * {
		font-size: 14px;
	}
	#info_block .info_box a {
		padding: 20px 0;
	}
	#info_block .info_box time {
		margin-bottom: 10px;
	}
	#info_block .info_box h3 {
		width: 92.5%;
	}
}
/*-----------------------------------

	recruit_block

-----------------------------------*/
#recruit_block {
	padding: 120px 0 0;
}
#recruit_block .recruit_wrapper {
	color: #FFFFFF;
	background: #59C8F2;
	padding: 98px 30px 30px 100px; 
	border-radius: 20px;
	position: relative;
}
#recruit_block .recruit_wrapper::after {
	content: '';
	display: block;
	background: url(../img/index/icon_recruit.svg) no-repeat center center / contain;
	width: 41.2%;
	height: 343px;
	margin: auto;
	position: absolute;
	top: 27px;
	right: 53px;
	z-index: 0;
}
#recruit_block .text_box {
	width: 50%;
}
#recruit_block .sec_ttl {
	margin-bottom: 35px;
}
#recruit_block .sec_ttl .en,
#recruit_block .sec_ttl .ja {
	color: #FFFFFF !important;
}
#recruit_block .text_box p {
	font-size: 22px;
	font-weight: 500;
	line-height: 1.45;
	letter-spacing: 0.02em;
}
#recruit_block .detail_btn {
	color: #FFFFFF;
}
@media screen and (max-width: 1024px) {
	#recruit_block .text_box {
		width: 100%;
		margin-bottom: 300px;
	}
	#recruit_block .recruit_wrapper::after {
		width: 368px;
		height: 257px;
		top: 337px;
	}
}
@media screen and (max-width: 640px) {
	#recruit_block {
		padding: 60px 0 0;
	}
	#recruit_block .recruit_wrapper {
		padding: 30px 20px;
	}
	#recruit_block .recruit_wrapper::after {
        width: 278px;
        height: 193px;
        top: 193px;
		left: 0;
		right: 0;
    }
	#recruit_block .text_box {
		margin-bottom: 240px;
	}
	#recruit_block .text_box p {
		font-size: 14px;
	}
}
/*-----------------------------------

	column_block

-----------------------------------*/
#column_block {
	padding: 120px 0 141px;
}
#column_block .ttl_box {
	width: 185px;
}
#column_block .column_wrapper {
	width: calc(100% - 301px);
	gap: 30px;
}
#column_block .column_box {
	width: calc((100% - 60px) / 3);
}
#column_block .img_box {
	height: 187px;
	border-top-left-radius: 10px;
	border-top-right-radius: 10px;
	overflow: hidden;
}
#column_block .img_box img {
	height: 100%;
	object-fit: cover;
}
#column_block .text_box {
	background: #FFFFFF;
	padding: 25px;
	border-bottom-left-radius: 10px;
	border-bottom-right-radius: 10px;
}
#column_block .text_box time {
	display: block;
	font-size: 16px;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0.02em;
	color: #7ED4EC;
	margin-bottom: 10px;
}
#column_block .text_box h3 {
	display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    -webkit-line-clamp: 1;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.45;
	letter-spacing: 0.02em;
}
#column_block .detail_btn.sp {
	display: none;
}
@media screen and (max-width: 1024px) {
	#column_block .column_wrapper {
		width: 100%;
	}
	#column_block .detail_btn.pc {
		display: none;
	}
	#column_block .detail_btn.sp {
		display: block;
		margin-top: 30px;
	}
}
@media screen and (max-width: 640px) {
	#column_block {
		padding: 60px 0 75px;
	}
	#column_block .column_box {
		width: 100%;
	}
	#column_block .img_box {
		height: 60vw;
	}
	#column_block .text_box {
		padding: 18px 20px;
	}
	#column_block .text_box time {
		font-size: 14px;
		margin-bottom: 6px;
	}
	#column_block .text_box h3 {
		font-size: 16px;
	}
}