@charset "UTF-8";
/* body{
	background: #2a2c31;
}
main{
	color: #fff;
} */
.flex-box{
	display: flex;
}
/* 重なり順の制御 */
.fadein {
transform: translateY(30px);
}
.fadein.scrollin {
transform: none;
}
/* 矢印 */
.arrow a{
	position: relative;
	display: block;
}
.arrow a span{
	display: inline-block;
	margin-left: 15px;
}
.arrow a .link{
	letter-spacing: 0.06em;
}
.arrow a .ja{
	letter-spacing: .18em;
}
.arrow a::after{
	content: '';
	display: block;
	position: absolute;
	background: var(--black);
	transform: rotate(50deg);
	transition: all 0.3s ease 0s;
}
.arrow a::before{
	content: '';
	display: block;
	position: absolute;
	margin: auto;
	background: var(--black);
	height: 1px;
	transition: all 0.3s ease 0s;
}
/* 共通 */
	.section-title span{
	line-height: 1;
	font-weight: 500;
	letter-spacing: 0.18em;
	}
	.section-title h2{
	line-height: 1;
	color: var(--gray);
	}
	.section-title p.main-txt{
	font-size: 14px;
	line-height: 1.7;
	letter-spacing: 0.08em;
	}
p.main-txt{
	line-height: 2.4;
	letter-spacing: 0.21em;
	text-align: justify;
}
@media screen and (min-width:768px) {
	.section-title{
	margin-bottom: 60px;
	}
	.section-title span{
	font-size: 12px;
	margin-bottom: 8px;
	}
	.section-title h2{
	font-size: 34px;
	margin-bottom: 8px;
	line-height: 1;
	color: var(--gray);
	}
p.main-txt{
	line-height: 2.4;
	letter-spacing: 0.21em;
	text-align: justify;
}
}
@media screen and (max-width:767px) {
	.section-title span{
    font-size: 4.27vw;
    margin-bottom: 1.5vw;
    display: block;
	}
	.section-title h2{
	font-size: 6.93vw;
	line-height: 1;
	color: var(--gray);
	}
p.main-txt{
	font-size: 3.47vw;
	line-height: 2;
	letter-spacing: 0.05em;
	text-align: justify;
}


}
/* SP */
@media screen and (max-width:767px) {
.arrow a span{
	font-size: 4.27vw;
	margin-left: 4vw;
}


}
/*------------------------
XXXX
------------------------*/
/* PC */
@media screen and (min-width:768px) {
	body{min-width:1200px;}
	.pc{display: block;}
	.sp,.sp-nav{display: none;}
	a[href*="tel:"] {
		pointer-events: none;
		cursor: default;
	}
}
/* SP */
@media screen and (max-width:767px) {
	body{font-size: 3.73vw;}
	.pc{display: none;}
	.sp{display: block;}
}
/*------------------------
ナビゲーションメニュー
------------------------*/
#page-list .page-title{
	text-align: center;
}
#page-list .page-title h1{
	font-weight: normal;
}
#page-list .list-box{
	display: flex;
	justify-content: space-between;
	margin-left: auto;
}
#page-list .page-title .en{
	line-height: 1;
	letter-spacing: 0.06em;
}
#page-list .page-title h1{
	line-height: 1;
}
#page-list ul{
	list-style: none;
	flex-direction: column;
}
#page-list li{
	font-weight: 500;
	line-height: 1;
	display: flex;
	position: relative;
	letter-spacing: 0.18em;
}
#page-list li::after{
	content: '';
	display: block;
	position: absolute;
	background: var(--black);
	transform: rotate(158deg);
	transition: all 0.3s ease 0s;
}
#page-list li::before{
	content: '';
	display: block;
	position: absolute;
	background: var(--black);
	transform: rotate(28deg);
	transition: all 0.3s ease 0s;
}
#page-list .image.main{
	flex: 1;
	position: relative;
	z-index: 10;
}
#page-list .image.main img{
	object-fit: cover;
	width: 100%;
	height: 100%;
}
@media screen and (min-width:768px) {
#page-list .page-title{
    margin-bottom: 30px;
}
#page-list .list-box{
}
#page-list .inner{
	min-width: 1200px;
	margin: 0 auto;
	overflow: hidden;
}
#page-list .page-list{
	margin-top: 20px;
	padding-left: max(20px, calc((100% - 1200px) / 2));
}
#page-list .page-title .en{
	font-size: 34px;
	margin-bottom: 4px;
}
#page-list .page-title h1{
	font-size: 14px;
}
#page-list li{
	margin-bottom:20px;
	font-size:16px ;
	min-width: 7.5em;

	position: relative;
	transition: 0.3s ease;
}
#page-list li a{
	padding-left:18px;
}
#page-list li::after{
	bottom: 3px;
	right: 0;
	width: 12px;
	height: 1px;
}
#page-list li::before{
	bottom: 8px;
	right: 0;
	width: 12px;
	height: 1px;
}
#page-list li:hover::after{
	right: -5px;
}
#page-list li:hover::before{
	right: -5px;
}
#page-list .image.main{
	flex: 1;
	height: 860px;
	margin-left: 76px;
}
}

/* SP */
@media screen and (max-width:767px) {
#page-list {
	position: relative;
	z-index: 20;
}
	#page-list .inner{
    margin-right:0;
		margin-left: 0;
}
#page-list .page-title{
    margin-bottom: 13.87vw;
}
#page-list .page-list{
	margin-top: 7.2vw;
    padding-left: 7.2vw;
}
#page-list .page-title .en{
	font-size: 8vw;
	margin-bottom: 4px;
}
#page-list .page-title h1{
	font-size: 4vw;
}
#page-list li{
	margin-bottom: 5.33vw;
	font-size:4.27vw;
	position: relative;
}
#page-list li::after{
	bottom: 1.87vw;
	right: 0px;
	width: 3.2vw;
	height: 1px;
}
#page-list li::before{
	bottom: 3.2vw;
	right: 0;
	width: 3.2vw;
	height: 1px;
}
#page-list .image.main{
	width: 49.87vw;
	height: 103.2vw;
	margin-left: 7.47vw;
}
}
/*------------------------
企業理念
------------------------*/
#philosophy{
	text-align: center;
}

#philosophy .content{
	display: flex;
	margin-right: auto;
}
#philosophy .image.main{
	position: relative;
	z-index: 1;
}
#philosophy .image.main img{
	object-fit: cover;
	width: 100%;
	height: 100%;
}
#philosophy .text-area{
	text-align: left;
}
#philosophy .text-area .sub-txt{
	line-height: 1;
	letter-spacing: 0.2em;
	font-weight: 500;
}
#philosophy .arrow a{
	position: relative;
	transition: all 0.3s ease 0s;
	display: block;
}
#philosophy .arrow a span{
	display: inline-block;
}
#philosophy .arrow a::after{
	content: '';
	display: block;
	position: absolute;
	background: var(--black);
	transform: rotate(50deg);
	transition: all 0.3s ease 0s;
}
#philosophy .arrow a::before{
	content: '';
	display: block;
	position: absolute;
	margin: auto;
	background: var(--black);
	transition: all 0.3s ease 0s;
}
@media screen and (min-width:768px) {
#philosophy .inner{
	width: 1200px;
	margin: 0 auto;
	text-align: center;
}
#philosophy .content{
	padding-right: 80px;
}
#philosophy .image.main{
	margin-right:220px;
	margin-top: 20px;
	margin-left: min(0px, calc((100vw - 1200px) / 2 * -1));
	width: calc((1200px - 785px) + (100vw - 1200px) / 2);
	height: 1018px;
	margin-top: -140px;
}
#philosophy .text-area{
	width: 485px;
	margin-top: 195px;
}
#philosophy .text-area .sub-txt{
	font-size: 28px;
	margin-bottom: 45px;
}
#philosophy  p.main-txt{
	margin-bottom: 57px;
}
#philosophy .arrow a{
	font-size:34px;
	padding-left: 334px;
}
#philosophy .arrow a span{
	font-size: 16px;
}
#philosophy .arrow a::after{
	bottom: 28px;
	left: 302px;
	width: 25px;
	height: 1px;
}
#philosophy .arrow a::before{
	top: 0;
	bottom: -18px;
	left: 0;
	width: 323px;
	height: 1px;
}
#philosophy .arrow:hover a::after{
	left: 307px;
}
#philosophy .arrow:hover a::before{
	left: 5px;
}
#philosophy .arrow a:hover {
	font-size:34px;
	position: relative;
	transition: all 0.3s ease 0s;
	display: block;

}
#philosophy .arrow span.link,#greeting .arrow span.link{
    font-size: 34px;
}
#philosophy .arrow:hover span.link,#greeting .arrow:hover span.link{
	color: var(--red);
}
}
/* SP */
@media screen and (max-width:767px) {
#philosophy{
	margin-bottom: 14.4vw;
}
#philosophy .content {
    flex-direction: column;
}
#philosophy .image.main{
	width: 80vw;
	height: 73.33vw;
	margin-top: -8vw;
	margin-left: -4vw;
	margin-bottom: 9.33vw;
}
#philosophy .section-title{
	text-align: center;
	margin-bottom: 8vw;
}
#philosophy .text-area .sub-txt{
	font-size: 4.8vw;
	margin-bottom: 8vw;
	text-align: center;
	font-weight: bold;
}
#philosophy  p.main-txt{
	margin-bottom: 8vw;
	text-align: justify;
	font-size: 3.47vw;
}
#philosophy .arrow{
	margin-left: -4vw;
}
#philosophy .arrow a{
	font-size: 8vw;
    padding-left: 53.33vw;
}
#philosophy .arrow a span{
	font-size: 4.27vw;
    margin-left: 4vw;
}
#philosophy .arrow a::after{
	bottom: 6.6vw;
	left: 46.4vw;
	width: 6.67vw;
	height: 1px;
}
#philosophy .arrow a::before{
	top: 0;
	bottom: -4.8vw;
	left: 0;
	width: 52vw;
	height: 1px;
}
#philosophy .arrow span.link,#greeting .arrow span.link{
    font-size: 8vw;
}
}
/*------------------------
社長挨拶
------------------------*/
#greeting{
	background: #ECEDEF;
}
#greeting .inner .content{
	position: relative;
}
#greeting .text-box{
	justify-content: flex-end;
}
#greeting .text-area{
	text-align: left;
}
#greeting .text-area .sub-txt{
	line-height: 1.8;
	letter-spacing: 0.2em;
	font-weight: 500;
}
#greeting .name span{
	letter-spacing: 0.12em;
}
#greeting .name p{
	font-weight: 500;
	letter-spacing: 0.2em;
}
#greeting .arrow a {
    line-height: 1;
}

@media screen and (min-width:768px) {
#greeting .inner{
	margin: 0 auto;
	width: 1200px;
	padding-top: 317px;
	padding-bottom: 80px;
	margin-top: -100px;
}
#greeting .section-title {
	margin-bottom: 60px;
	padding-left: 90px;
    }
#greeting .inner .content{
	margin-top: -110px;
}
#greeting .text-area{
	margin-right: 125px;
}
#greeting .text-area .sub-txt{
	font-size: 22px;
	margin-bottom: 50px;
	font-weight: 500;
}
#greeting p.main-txt{
	margin-bottom: 57px;
}
#greeting .image.main{
	width: 500px;
	height: auto;
}
#greeting p.main-txt{
	width: 485px;
}
#greeting .name{
    margin-bottom: 60px;
}
#greeting .name span{
	font-size: 16px;
}
#greeting .name p{
	font-size: 20px;
}
#greeting .arrow a {
	padding-left: 260px;
}
#greeting .arrow a::after{
	bottom: 17px;
	left: 224px;
	height: 1px;
	width: 25px;
}
#greeting .arrow a::before {
	width: 245px;
	bottom: 8px;
	left: 0;
}
#greeting .arrow:hover a::after{
	left: 230px;
}
#greeting .arrow:hover a::before{
	left: 5px;
}
}
/* SP */
@media screen and (max-width:767px) {
#greeting .inner{
	padding: 9.33vw 0 13.33vw;
}
#greeting .section-title {
	margin-bottom: 4.8vw;
	text-align: center;
    }
#greeting .inner .content{
}
#greeting .text-area{
	/* margin-right: 125px; */
}
#greeting .text-box{
	flex-direction: column-reverse;
}
#greeting .text-area .sub-txt{
	font-size: 4.27vw;
	margin-bottom: 9.33vw;
	font-weight: bold;
	text-align: center;
}
#greeting p.main-txt{
    text-align: justify;
}
#greeting .image.main{
	width: 80vw;
	height: 56vw;
	margin: 0 auto;
	margin-bottom: 8vw;
}
#greeting p.main-txt{
    margin-bottom: 11.47vw;
}
#greeting .name{
    margin-bottom: 10.67vw;
}
#greeting .name span{
	font-size: 3.2vw;
}
#greeting .name p{
    font-size: 4.8vw;
}
#greeting .arrow a {
    padding-left: 33.07vw;
}
#greeting .arrow a::after{
	bottom: 4.0vw;
	left: 25.7vw;
	width: 6.67vw;
	height: 1px;
}
#greeting .arrow a::before {
	width: 35.33vw;
	bottom: 1.35vw;
	left: -4vw;
}
}
/*------------------------
組織体系
------------------------*/
/* PC */
@media screen and (min-width:768px) {
#organization .inner{
	padding: 113px 70px 70px;
	width: 1200px;
	margin: 0 auto;
}
#organization .section-title{
	margin-bottom: 40px;
}
#organization .flex-box{
	justify-content: space-between;
}
#organization .image.main img{
	width: 445px;
	height: 342px;
}
#organization .text-area{
	width: 480px;
}
}
/* SP */
@media screen and (max-width:767px) {
#organization .inner{
    padding: 9.33vw 0 13.33vw;
}
#organization .section-title{
	margin-bottom: 8vw;
	text-align: center;
}
#organization .flex-box{
	justify-content: space-between;
}
#organization .image.main{
	margin-bottom: 13.87vw;
}
#organization .image.main img{
	width: 100%;
	height: auto;
}
#organization .main-text{
	text-align: justify;
}
}
/*------------------------
会社概要
------------------------*/
#outline .section-title{
	text-align: center;
}
#outline .outline-box1 .c-name{
	background: linear-gradient(
    255deg,
    rgb(62, 58, 57),
    rgb(102, 100, 100)
);
}
#outline .outline-box2 .c-name{
	background: linear-gradient(
    255deg,
    rgb(0, 0, 1),
    rgb(83, 122, 146)
);
}
#outline .outline-box3 .c-name{
background: linear-gradient(255deg, rgb(0, 0, 0), rgb(38, 77, 50));
}
#outline .content .c-name{
    text-align: center;
}
#outline .content .c-name .logo img{
	width: auto;
}
#outline .content table {
	width: auto;
	flex: 1;
	letter-spacing: 0.1em;
}
#outline .content table th{
	vertical-align: top;
	font-weight: 500;
}
#outline .content table tr:first-child th{
	position: relative;
}
#outline .content table tr:last-child th{
	position: relative;
}
/* PC */
@media screen and (min-width:768px) {
#outline .inner{
	padding: 70px 0 70px;
	width: 1200px;
	margin: 0 auto;
}
#outline .section-title{
	margin-bottom: 30px;
}
#outline .content{
	align-items: stretch;
}
#outline .outline-box2,#outline .outline-box3{
	margin-top: 95px;
}
#outline .content .c-name{
	width: 276px;
	padding-top: 32px;
}
#outline .content .c-name .logo img{
    height: 64px;
}
#outline .content table {
    height: 64px;
	flex: 1;
}
#outline .content table th{
	padding: 20px 46px;
	font-weight: 500;
	font-size: 16px;
	border-right: 0.5px solid #2A2C31;
	width: 235px;
}
#outline .content table td{
	padding: 20px 46px;
	font-size: 16px;
}
#outline .content table tr:first-child th::after{
	position: absolute;
	content: '';
	background-color: #fff;
	width: 2px;
	height: 20px;
	top: 0px;
	right: -1px;
}
#outline .content table tr:last-child th::after{
	position: absolute;
	content: '';
	background-color: #fff;
	width: 2px;
	height: 20px;
	bottom: 0px;
	right: -1px;
}
#outline .content table{
	border-top: 0.5px solid #2A2C31;
}
}
/* SP */
@media screen and (max-width:767px) {
#outline .inner{
}
#outline .section-title{
	margin-bottom: 4vw;
}
#outline .content{
	flex-direction: column;
}
#outline .outline-box2,#outline .outline-box3{
	margin-top: 8vw;
}
#outline .outline-box3{
	margin-bottom: 14.67vw;
}
#outline .content .c-name{
    width: 100%;
	margin-bottom: 1.6vw;
}
#outline .content .c-name h4{
    padding: 6.67vw;
}
#outline .content .c-name .logo img{
    height: 17.6vw;
}
#outline .content table {
    height: 64px;
	flex: 1;
}
#outline .content table{
	border-collapse: collapse;
	width: 100%;
}
#outline .content table th,#outline .content table td{
	display: block;
	width: 100%;
	box-sizing: border-box;
	font-size: 3.2vw;
}
#outline .content table th{
	padding: 1.87vw 0;
	color: #fff;
	text-align: center;
}
#outline .outline-box1 table th{
	background: linear-gradient(
    255deg,
    rgb(62, 58, 57),
    rgb(102, 100, 100)
);
}
#outline .outline-box2 table th{
	background: linear-gradient(
    255deg,
    rgb(0, 0, 1),
    rgb(83, 122, 146)
);
}
#outline .outline-box3 table th{
background: linear-gradient(255deg, rgb(0, 0, 0), rgb(38, 77, 50));
}
#outline .content table td{
	padding: 1.87vw 0;
	font-size: 3.2vw;
	text-align: left;
}
}
/*------------------------
マップ
------------------------*/
#map .inner{
	margin: 0 auto;
}
#map .inner .section-title {
    text-align: center;
}
@media screen and (min-width: 768px) {
#map .inner .section-title {
	margin-bottom: 20px;
}
#map iframe {
	width: 100%;
	height: 526px;
}
}
@media screen and (max-width: 767px) {
#map .inner{
	margin: 0 4vw;
}
#map .inner .section-title {
    margin-bottom: 4vw;
}
#map iframe {
	width: 100%;
	height: 66.67vw;
}
}
/*------------------------
お問い合わせ
------------------------*/
#link .link.company{
	display: none;
}
@media screen and (min-width: 768px) {
	#link .inner{
	justify-content: center;
	}
}