@charset "utf-8";
/*------------------------------------------------------------
	汎用スタイル
------------------------------------------------------------*/
/* clearfix */	
.clearfix:after {content: "";display: block;clear: both;}
/* flex */    
.flex,.flexAround,.flexBetween,.flexCenter {display: flex;flex-wrap: wrap;}
.flexAround {justify-content: space-around;}
.flexBetween {justify-content: space-between;}
.flexCenter {justify-content: center;}
/*------------------------------------------------------------
	content
------------------------------------------------------------*/
.content {
	margin: 0 auto;
	padding: 0 2rem;
	max-width: 129rem;
}
.content.width {
	max-width: 124rem;
}
@media all and (min-width: 897px) {
}

@media all and (max-width: 896px) {
	.content {
		padding: 0 2.8rem;
	}
}

/*------------------------------------------------------------
	headLine
------------------------------------------------------------*/
.headLine {
	margin-bottom: 10.6rem;
	font-size: 1.8rem;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.18rem;
}
.headLine .en {
	margin: 0 0.5rem 1.3rem;
	display: block;
	color: #C42142;
	font-size: 8rem;
	font-weight: 300;
	line-height: 1;
	letter-spacing: 0;
	text-transform: uppercase;
}
@media all and (min-width: 897px) {
}

@media all and (max-width: 896px) {
	.headLine {
		margin-bottom: 7.2rem;
		font-size: 2.1rem;
		font-weight: 500;
		letter-spacing: 0.105rem;
	}
	.headLine .en {
		margin: 0 0 0.8rem;
		font-size: 6.5rem;
		font-weight: 300;
		text-transform: uppercase;
	}
}


/*------------------------------------------------------------
	headLine2
------------------------------------------------------------*/
.headLine2 {
	margin-bottom: 5.1rem;
	font-size: 3rem;
	font-weight: 700;
	letter-spacing: 0.15rem;
}
.headLine2 .en {
	margin-bottom: 1.9rem;
	display: block;
	color:  #C42142;
	font-size: 2rem;
	font-weight: 500;
	letter-spacing: 0.1rem;
	text-transform: uppercase;
}

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

@media all and (max-width: 896px) {
	.headLine2 {
		margin-bottom: 3.3rem;
		font-size: 2rem;
		letter-spacing: 0.1rem;
	}
	.headLine2 .en {
		margin-bottom: 0.7rem;
	}
}

/*------------------------------------------------------------
    headLine03
------------------------------------------------------------*/
.headLine03 {
    margin: 0 auto 4.3rem;
    padding: 1rem 2rem 1.1rem;
    min-width: 50rem;
    width: fit-content;
    text-align: center;
    color: #FFF;
    font-size: 2.8rem;
    font-weight: 500;
    border-radius: 3.1rem;
    background-color: #C42142;
}
.headLine03 .num {
    margin: 0.2rem 2.8rem 0 0;
    padding: 0.1rem 1rem 0.2rem;
    min-width: 13.6rem;
    display: inline-block;
    color: #C42142;
    font-size: 2.4rem;
    border-radius: 1rem;
    background-color: #FFF;
}
.headLine03 .sub {
    margin-right: 3.8rem;
    display: block;
}
@media all and (max-width: 896px) {
    .headLine03 {
        margin: 0 0.5rem 3.1rem;
        padding: 0.7rem 2rem 0.9rem;
        width: auto;
        min-width: inherit;
        font-size: 2rem;
    }
    .headLine03 .num {
        margin: 0.2rem 1.5rem 0 0;
        padding: 0.1rem 1rem 0.3rem;
        min-width: 9.1rem;
        font-size: 1.6rem;
        border-radius: 1.4rem;
    }
    .headLine03 .sub {
        margin-right: 0;
    }
}
/*------------------------------------------------------------
    animBorder
------------------------------------------------------------*/
.animBorder {
	position: relative;
}
.animBorder .lineSvg {
	width: calc(100% - 2px);
	height: calc(100% - 2px);
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	box-sizing: border-box;
	vertical-align: top;
	pointer-events: none;
	overflow: visible;
}
.animBorder .lineSvg .line {
	fill: none;
	stroke: #C42142;
	stroke-width: 2px;
	stroke-linecap: round;
}
.animBorder.on .lineSvg .line1 {
	animation: draw 0.75s ease-out 0.3s forwards;
}
.animBorder.on .lineSvg .line2 {
	animation: draw 0.75s ease-out 1.05s forwards;
}
@keyframes draw {
	from {
		stroke-dashoffset: var(--len);
	}
	to {
		stroke-dashoffset: 0;
	}
}
/*------------------------------------------------------------
    headLine04
------------------------------------------------------------*/
.headLine04 {
    margin: 0 auto 8.6rem;
    padding: 1.2rem 1rem;
    width: fit-content;
    min-width: 58.4rem;
    position: relative;
    color: #C42142;
    font-size: 2.4rem;
    font-weight: 500;
    text-align: center;
    letter-spacing: 0.05em;
}
@media all and (max-width: 896px) {
    .headLine04 {
        margin-bottom: 5.9rem;
        width: auto;
        min-width: inherit !important;
        font-size: 1.5rem;
        letter-spacing: 0;
    }
}

/*------------------------------------------------------------
	headLine5
------------------------------------------------------------*/
.headLine5 {
	margin-bottom: 1.4rem;
	color: #C42142;
	text-align: center;
	font-size: 6.2rem;
	font-weight: 450;
	line-height: 1;
	letter-spacing: 0.25rem;
}

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

@media all and (max-width: 896px) {
	.headLine5 {
		font-size: 4.8rem;
		font-weight: 400;
		letter-spacing: 0;
	}
	
}
/*------------------------------------------------------------
	mainBox
------------------------------------------------------------*/
#main .mainBox {
	margin: 0 auto;
	max-width: 80rem;
}
@media all and (min-width: 897px) {
}

@media all and (max-width: 896px) {
	#main .mainBox {
		max-width: inherit;
	}
}

/*------------------------------------------------------------
	comLinkTxt
------------------------------------------------------------*/
.comLinkTxt a {
	padding: 0 6rem 0 4rem;
	color: #FFF;
	font-size: 1.5rem;
	font-weight: 500;
	letter-spacing: 0.075rem;
	position: relative;
}
.comLinkTxt a:after {
	width: 4.5rem;  
	height: 4.5rem;
	aspect-ratio: 1;
	background: #C42142 url(../img/common/icon07.png) no-repeat center;
	background-size: 1.1rem auto;
	position: absolute;  
	top: 50%;
	transform: translateY(-50%);
	right: 0;  
	border-radius: 100%;
	content: ""; 
	transition: 0.3s;
}
.comLinkTxt.read {
	text-align: center;
}
.comLinkTxt.read a {
	color: #C42142;
	font-size: 1.6rem;
	font-weight: 600;
	letter-spacing: 0.08rem;
	text-transform: uppercase;
}
.comLinkTxt.big a {
	font-size: 1.6rem;
}
@media all and (min-width: 897px) {
	.comLinkTxt a:hover::after {
		background-color: #891B31;
	}
}

@media all and (max-width: 896px) {
	.comLinkTxt a::after {
		background-size: 1.6rem auto;
	}
}

/*------------------------------------------------------------
	mainVisual
------------------------------------------------------------*/
#main .mainVisual {
	border-radius: 0 0 6rem 6rem;
	background: url(../img/company/main_img.jpg) no-repeat center;
	background-size: cover;
}
#main .mainVisual .content {
	padding: 4rem 2rem 9rem;
	min-height: 55rem;
	width: 100%;
	position: relative;
	display: flex;
	align-items: flex-end;
}
#main .mainVisualBox {
	width: 100%;
	min-height: 28.3rem;
}
#main .mainVisual p {
	position: absolute;
	bottom: 3rem;
	left: 2.5rem;
	line-height: 1.875;
	letter-spacing: 0.08rem;
}
#main .mainVisual .headLine {
	margin: 0;
	color: #333;
	font-size: 3.4rem;
	font-weight: 500;
	line-height: 1.62; 
	letter-spacing: 0.34rem;
}
#main .mainVisual .headLine .en {
	margin: 0 0 0.5rem;
	color: #333;
	font-size: 8rem;
	font-weight: 300;
	line-height: 1.1;
	letter-spacing: -0.02em;
}
@media all and (min-width: 897px) {
}

@media all and (max-width: 896px) {
	#main .mainVisual .content {
		justify-content: flex-start;
		flex-direction: column;
		min-height: 47.3rem;
		padding: 15rem 2.8rem 2rem;
	}
	#main .mainVisual {
		color: #fff;
		background-image: url(../img/company/main_img_sp.jpg);
		border-radius: 0 0 2rem 2rem;
	}
	#main .mainVisual .headLine {
		margin-bottom: 5.7rem;
		width: 100%;
		color: #fff;
		font-size: 2.2rem;
		letter-spacing: 0;
	}
	#main .mainVisual .headLine .en {
		line-height: 1.25;
		font-size: 4rem;
		color: #fff;
		min-height: 10rem;
		margin-bottom: 1rem;
	}
	#main .mainVisual p {
		width: 100%;
		position: static;
		line-height: 2;
		letter-spacing: 0.075rem;
	}
}
/*------------------------------------------------------------
    comBox
------------------------------------------------------------*/
.comBox {
    padding: 11.4rem 0 10.6rem;
}
.comBox .title {
    margin: -0.3rem 2.3rem 0;
    max-width: 68rem;
    font-size: 4rem;
    font-weight: 500;
    line-height: 1.62;
    letter-spacing: 0.1em;
}
.comBox .text {
	position: relative;
	z-index: 1;
    width: 50.9rem;
    line-height: 1.87;
    letter-spacing: 0.05em;
}
.comBox .enTitle {
    margin: 1.4rem 0.2rem 0;
    text-align: right;
    color: #E7E5E1;
    font-size: 9rem;
    font-weight: 100;
    line-height: 1;
    letter-spacing: -0.02em;
    text-transform: uppercase;
}
@media all and (max-width: 896px) {
    .comBox {
        padding: 7.9rem 0 3.3rem;
    }
    .comBox .inner {
        margin: 0 0.1rem;
        display: block;
    }
    .comBox .title {
        margin: 0 -2.5rem 5rem 0;
        width: auto;
		max-width: inherit;
        font-size: 2.6rem;
        line-height: 1.84;
        letter-spacing: 0;
    }
    .comBox .text {
        width: auto;
        line-height: 2;
        letter-spacing: 0;
    }
    .comBox .enTitle {
        margin: -3.5rem -0.6rem 0;
        color: #D7D7D5;
        font-size: 4.6rem;
        line-height: 1.13;
    }
}

/*------------------------------------------------------------
    comText
------------------------------------------------------------*/
.comText {
    margin-bottom: 7.2rem;
    text-align: center;
    font-weight: 500;
    line-height: 2.25;
}
@media all and (max-width: 896px) {
    .comText {
        margin-bottom: 4.1rem;
        line-height: 1.87;
    }
}

/*------------------------------------------------------------
	comUlBox
------------------------------------------------------------*/
#main .comUlBox {
	margin-bottom: 3.4rem;
	position: relative;
}
#main .comUlBox > a {
	display: block;
}
#main .comUlBox > a:after {
	width: 4.5rem;  
	height: 4.5rem;
	aspect-ratio: 1;
	background: #C42142 url(../img/common/icon07.png) no-repeat center;
	background-size: 1.1rem auto;
	position: absolute;  
	bottom: 1.6rem;
	right: 2.5rem;  
	border-radius: 100%;
	content: ""; 
	transition: 0.3s;
}
#main .comUlBox > a:has(ul)::after {
    display: none;
}
#main .comUlBox > a ul li:last-child::after {
    width: 4.5rem;  
    height: 4.5rem;
    aspect-ratio: 1;
    background: #C42142 url(../img/common/icon07.png) no-repeat center;
    background-size: 1.1rem auto;
    position: absolute;  
    bottom: 1.6rem;
    right: 2.5rem;  
    border-radius: 100%;
    content: ""; 
    transition: 0.3s;
}
#main .comUlBox > a:hover {
	opacity: 0.7;
}
#main .comUlBox .num {
	z-index: 1;
	width: 14rem;
	aspect-ratio: 1;
	position: absolute;
	top: 0;
	left: 0;
	color: #C42142;
	font-size: 7rem;
	font-weight: 400;
	line-height: 0.6; 
	letter-spacing: 0.35rem;
	background: url(../img/index/bg.png) no-repeat left top;
	background-size: 14rem auto;
}
#main .comUlBox ul {
	display: flex;
	overflow: hidden;
	border-radius: 2rem;
}
#main .comUlBox img {
	width: 100%;
}
@media all and (min-width: 897px) {
}

@media all and (max-width: 896px) {
	#main .comUlBox ul {
		flex-direction: column;
		gap: 2.2rem 0;
	}
	#main .comUlBox li {
		position: relative;
	}
	#main .comUlBox li img {
		aspect-ratio: 279 / 220;
		height: 100%;
		object-fit: cover;
		border-radius: 2rem;
	}
	#main .comUlBox .num {
		font-size: 4.6rem;
		letter-spacing: 0.23rem;
		background-size: 10rem auto;
	}
	#main .comUlBox {
		margin-bottom: 2.9rem;
	}
	#main .comUlBox > a::after,
    #main .comUlBox > a ul li:last-child::after {
        right: 1.6rem;
    }
}

/*------------------------------------------------------------
	comEnTxt
------------------------------------------------------------*/
#main .comEnTxt {
	margin-bottom: 2rem;
	text-align: right;
	color: #C42142;
	font-weight: 700;
	line-height: 1.2;
	display: block;
	letter-spacing: 0.02em;
}
@media all and (min-width: 897px) {
}

@media all and (max-width: 896px) {
	#main .comEnTxt {
		line-height: 1.4;
		margin-bottom: 1.2rem;
		font-size: 1.4rem;
		font-weight: 700;
		letter-spacing: 0.02em;
	}
}

/*------------------------------------------------------------
	comBusinessList
------------------------------------------------------------*/
#main .comBusinessList {
	padding-top: 10rem;
	display: flex;
	flex-wrap: wrap;
	gap: 5rem;
}
#main .comBusinessList > li {
	width: calc((100% - 25rem) / 2);
}
#main .comBusinessList > .item {
	width: calc((100% + 15rem) / 2);
}
#main .comTextBox h3 {
	margin-bottom: 2.4rem;
	text-align: center;
	font-size: 2rem;
	font-weight: 500;
}
#main .comTextBox2 {
	max-width: 47.5rem;
	margin: 0 auto;
}
#main .comTextBox p {
	font-size: 1.5rem;
	font-weight: 400;
	line-height: 1.867;
	text-align: left;
	letter-spacing: 0.075rem;
}
@media all and (min-width: 897px) {
}

@media all and (max-width: 896px) {
	#main .comBusinessList {
		padding-top: 8.8rem;
		flex-direction: column;
		gap: 8.2rem 0;
	}
	#main .comBusinessList > li {
		width: 100% !important;
	}
	#main .comTextBox h3 {
		margin-bottom: 1.7rem;
	}
	#main .comTextBox p {
		text-align: justify;
	}
}

/*------------------------------------------------------------
	system
------------------------------------------------------------*/
#main .system {
	margin-bottom: 20.7rem;
}
#main .system .bgBox {
	padding: 1rem 8rem 8.2rem;
}
#main .system .headLine03 {
	margin: -4.2rem auto 4.3rem;
	padding: 1.4rem 2rem 1.3rem;
	font-size: 2.4rem;
}
#main .system .imgBox .systemList {
	width: calc(100% - 44.3rem);
}
#main .system .imgBox .systemList li {
	margin-bottom: 7rem;
	padding: 1rem 3.2rem 2.3rem;
	border-radius: 1rem;
	background: linear-gradient(90deg, #F0EFEC 0%, #FFF 100%);
	background-blend-mode: multiply;
}
#main .system .imgBox .systemList li:last-child {
	margin-bottom: 0;
}
#main .system .imgBox .systemList li h4 {
	margin: -3.6rem 0 1.1rem;
	font-size: 2rem;
	font-weight: 500;
}
#main .system .imgBox .systemList li h4 .number {
	margin: 0 -0.5rem 2.2rem;
	padding-bottom: 0.3rem;
	width: fit-content;
	min-width: 17.6rem;
	min-height: 4.2rem;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #FFF;
	font-size: 3.2rem;
	font-weight: 400;
	line-height: 1.2;
	border-radius: 3rem;
	background-color: #C42142;
}
#main .system .imgBox .systemList li h4 .en {
	margin: 0.5rem 2rem 0 0;
	display: block;
	font-size: 1.8rem;
	letter-spacing: 0.05em;
}
#main .system .imgBox .systemList li h4 .digit {
	display: block;
}
#main .system .imgBox .systemList li p {
	font-size: 1.5rem;
	line-height: 1.87;
	letter-spacing: 0.05em;
}
#main .system .imgBox .photoList {
	width: 37rem;
	margin-top: 0.2rem;
}
#main .system .imgBox .photoList li {
	margin-bottom: 5rem;
	overflow: hidden;
	border-radius: 1rem;
}
#main .system .imgBox .photoList li:last-child {
	margin-bottom: 0;
}
#main .system .imgBox .photoList li img {
	width: 100%;
}
@media all and (min-width: 897px) {
}

@media all and (max-width: 896px) {
	#main .system {
		margin-bottom: 12.2rem;
	}
	#main .system .bgBox {
		padding: 1rem 2rem 4rem;
	}
	#main .system .headLine03 {
		margin: -4.2rem 1rem 4.2rem;
		padding: 0.6rem 2rem 0.7rem;
		font-size: 2rem;
	}
	#main .system .comText {
		margin-bottom: 5.8rem;
		font-size: 1.6rem;
	}
	#main .system .imgBox {
		margin: 0 -0.1rem;
		display: block;
	}
	#main .system .imgBox .systemList {
		margin-bottom: 4.1rem;
		width: auto;
	}
	#main .system .imgBox .systemList li {
		margin-bottom: 5.8rem;
		padding: 1rem 1.8rem 2.4rem;
	}
	#main .system .imgBox .systemList li h4 {
		margin: -2.8rem -1.5rem 1.5rem;
		font-size: 1.8rem;
		text-align: center;
	}
	#main .system .imgBox .systemList li h4 .number {
		margin: 0 auto 2.2rem;
		min-width: 16.8rem;
		min-height: 3.5rem;
		font-size: 2.6rem;
	}
	#main .system .imgBox .photoList {
		width: auto;
		margin: 0 0.1rem;
	}
	#main .system .imgBox .photoList li {
		margin-bottom: 3.8rem;
	}
	#main .system .imgBox .systemList li h4 .en {
		margin-top: 0.2rem;
	}
}

/*------------------------------------------------------------
	unique
------------------------------------------------------------*/
#main .unique .bgBox {
	padding-bottom: 11rem;
}
#main .unique .headLine03 {
	margin: -2.9rem auto 4.2rem;
	padding: 1.4rem 2rem 1.3rem;
	font-size: 2.4rem;
	background-color: #0682BE;	
}
#main .unique .lead {
	margin-bottom: 2.3rem;
	font-size: 3.2rem;
	font-weight: 500;
	text-align: center;
}
#main .unique .comText {
	margin-bottom: 9.8rem;
}
#main .unique .imgList {
	margin: 0 0.4rem;
	gap: 8.8rem 0;
}
#main .unique .imgList li {
	width: calc(50% - 3.6rem);
	text-align: center;
}
#main .unique .imgList li .photo {
	margin-bottom: 4rem;
	border-radius: 1rem;
	overflow: hidden;
}
#main .unique .imgList li .photo img {
	width: 100%;
}
#main .unique .imgList li .title {
	min-height: 4.2rem;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	font-size: 1.8rem;
	letter-spacing: 0.09rem;
}
#main .unique .imgList li .title .tag {
	margin: 0.2rem 0 0 1.6rem;
	padding: 0.3rem 1rem 0.6rem;
	min-width: 14.9rem;
	color: #FFF;
	font-size: 2.2rem;
	text-align: center;
	font-weight: 400;
	border-radius: 3rem;
	background-color: #0682BE;
}
@media all and (min-width: 897px) {
}

@media all and (max-width: 896px) {
	
	#main .unique .bgBox {
		padding-bottom: 11rem;
	}
	#main .unique .headLine03 {
		margin: -4.2rem 1rem 3.4rem;
		padding: 0.6rem 2rem 0.7rem;
		font-size: 2rem;
	}
	#main .unique .lead {
		margin-bottom: 2.3rem;
		font-size: 1.6rem;
		line-height: 1.87;
	}
	#main .unique .comText {
		margin-bottom: 4.5rem;
		text-align: justify;
		letter-spacing: 0.05em;
	}
	#main .unique .imgList {
		margin: 0 0 0.4rem;
		gap: 0;
		display: block;
	}
	#main .unique .imgList li {
		margin-bottom: 5.8rem;
		width: auto;
	}
	#main .unique .imgList li:last-child {
		margin-bottom: 0;
	} 
	#main .unique .imgList li .photo {
		margin-bottom: 3.4rem;
	}
	#main .unique .imgList li .title {
		min-height: inherit;
		font-size: 1.6rem;
	}
	#main .unique .imgList li .title .tag {
		margin: 0.2rem 0 0 1.3rem;
		padding: 0.2rem 1rem 0.3rem;
		min-width: 9.4rem;
		line-height: 1.2;
		font-size: 1.7rem;
	}
}

/*------------------------------------------------------------
	comBgBox
------------------------------------------------------------*/
#main .comBgBox {
	max-width: 124rem;
	margin: 0 auto;
	padding: 1rem 8rem 8rem;
	border-radius: 6rem;
	background-color: #FFF;
}
@media all and (min-width: 897px) {
}

@media all and (max-width: 896px) {
	#main .comBgBox {
		padding: 2rem 2rem 4rem;
		max-width: inherit;
		border-radius: 3rem;
	}
}

/*------------------------------------------------------------
	common
------------------------------------------------------------*/
.fadeInUp {
    opacity: 0;
	transform: translate(0,20px);
    transition: transform ease 0.5s,opacity ease 0.5s;
}
.fadeInUp.on {
    opacity: 1;
	transform: translate(0, 0);
}
.dely02 {
	transition-delay: 0.3s;
}
.dely03 {
	transition-delay: 0.6s;
}
.dely04 {
	transition-delay: 0.9s;
}
.fadeGroup .fadeItem {
	opacity: 0;
	transform: translate(0,20px);
    transition: transform ease 0.5s,opacity ease 0.5s;
}
.fadeGroup .fadeItem.on {
	opacity: 1;
	transform: translate(0, 0);
}
@media all and (min-width: 897px) {
}

@media all and (max-width: 896px) {
}

