@charset "UTF-8";
/* body{
	background: #2a2c31;
}
main{
	color: #fff;
} */
html {
	scroll-behavior: smooth;
}
.flex-box{
	display: flex;
}
/* 重なり順の制御 */
.fadein {
transform: translateY(30px);
}
.fadein.scrollin {
transform: none;
}
/* 矢印 */
.arrow a{
	position: relative;
	display: block;
}
.arrow a span{
	display: inline-block;
}
.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);
}
/* 共通 */
	.section-title span{
	line-height: 1;
	font-weight: 600;
	}
	.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;
}
/* 矢印 */
.arrow a{
	font-size:34px;
	padding-left: 340px;
	transition: all 0.3s ease 0s;
}
.arrow a span{
	font-size: 16px;
	margin-left:18px;
}
.arrow a::after{
	bottom: 24px;
	left: 300px;
	width: 25px;
	height: 1px;
}
.arrow a::before{
	top: 0;
	bottom: -18px;
	left: 0;
	width: 323px;
	height: 1px;
}
.arrow:hover a::after{
	left: 305px;
	transition: all 0.3s ease 0s;
}
.arrow:hover a::before{
	left: 5px;
	transition: all 0.3s ease 0s;
}
}
/* SP */
@media screen and (max-width:767px) {
.arrow a{
	font-size:34px;
	padding-left: 340px;
}
.arrow a span{
	font-size: 4.27vw;
	margin-left: 4vw;
}
.arrow a::after{
	bottom: 24px;
	left: 300px;
	width: 25px;
	height: 1px;
}
.arrow a::before{
	top: 0;
	bottom: -18px;
	left: 0;
	width: 323px;
	height: 1px;
}
.arrow:hover a::after{
	left: 305px;
}
.arrow:hover a::before{
	left: 5px;
}
}
/*------------------------
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-title{
	display:flex;
	justify-content: center;
	background: url(../img/office/bg_pagetitle.jpg) no-repeat center;
	background-size: cover;
	color: #fff;
}
.page-title .text-area{
	text-align: center;
}
.page-title .text-area .en{
	font-weight: normal;
	display: block;
	letter-spacing: 0.06em;
	line-height: 1;
}
.page-title .text-area h1{
	letter-spacing: 0.18em;
	font-weight: 300;
}
/* PC */
@media screen and (min-width:768px) {
	.page-title{
		padding-top: 157px;
		height:calc(100vh - 84px);
		min-height: 650px;
	}
	.page-title h1{
		font-size: 14px;
	}
	.page-title .en{
		font-size: 34px;
	}

}
/* SP */
@media screen and (max-width:767px) {
		.page-title{
	padding-top: 26.67vw;
	height: calc(100svh - 12vw);
	}
	.page-title h1{
		font-size: 4vw;
	}
	.page-title .en{
		font-size: 8vw;
	}
}
section .inner h2 {
	font-weight: 500;
}

/*------------------------
マップ
------------------------*/
#map{
	position: relative;
	margin-bottom: 95px;
}
#map .text-area{
    background: #E5E7E9;
}
#map .text-area .txt{
	margin-right: auto;
}
#map .text-area .txt h2{
	position: relative;
	line-height: 1;
	color: var(--black);
	text-align: center;
	font-weight: 500;
	letter-spacing: 0.2em;
}
#map .text-area .txt h2::after{
    content: "";
    display: block;
    border-left: 1px solid #000;
    border-bottom: 1px solid #000;
    transform: rotate(-45deg);
		margin:6px auto 0;
}
#map .text-area .txt h3{
    line-height: 1.7;
    text-align: center;
    letter-spacing: 0.2em;
    font-weight: 600;
}
#map .text-area .txt .map-img{
    text-align: center;
}
#map .text-area .txt .map-img img{
	object-fit: cover;
}
#map .text-area .txt p{
    text-align: justify;
    line-height: 1.8;
		letter-spacing: 0.18em;
}
#map .content .image{
    flex: 1;
}
#map .content .image img{
	object-fit: cover;
	width: 100%;
	height:100%;
}
/* PC */
@media screen and (min-width:768px) {
#map{
	margin-bottom: 95px;
}
#map .flex-box{
	align-items: flex-end;
}
:root{
  --side-margin: max(0px, calc((100vw - 1200px) / 2));
}
#map .text-area{
	position: relative;
  padding:35px 55px 60px 50px;
  width: 598px;
	margin-top: -90px;
	margin-left: var(--side-margin);
  z-index: 1;
}
#map .text-area::before{
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  height: 100%;
 width: calc(598px + var(--side-margin));
  background: #e5e5e5;
  z-index: -1;
}
#map .text-area .txt h2{
	font-size: 26px;
	margin-bottom:92px;
}
#map .text-area .txt h2::after{
	width: 16px;
	height: 16px;
}
#map .text-area .txt h3{
	font-size: 22px;
    margin-bottom: 52px;
}
#map .text-area .txt .map-img{
	margin-bottom: 40px;
}
#map .text-area .txt .map-img img{
	width: 360px;
	height:375px;
}
#map .text-area .txt p{
	font-size: 14px;
	text-align: justify;
	line-height: 2.2;
	max-width: 485px;
}
#map .content .image{
    flex: 1;
    height: 720px;
		
}
#map .content .image img{
	object-fit: cover;
	width: 100%;
	height:100%;
}
}
/* SP */
@media screen and (max-width:767px) {
#map{
	margin-bottom: 13.33vw;
	margin-top:-16vw;
}
#map .inner{
	margin: 0;
}
#map .flex-box{
	flex-direction: column;
}
#map .text-area{
    padding: 4vw 4vw 22.93vw;
    width: 85.87vw;
}
#map .text-area .txt h2{
	font-size: 5.87vw;
	margin-bottom: 8vw;
}
#map .text-area .txt h2::after{
	width: 2.67vw;
	height: 2.67vw;
	max-width: 16px;
	max-height: 16px;
}
#map .text-area .txt h3{
	font-size: 4.27vw;
	margin-bottom: 10.13vw;
	font-weight: bold;
}
#map .text-area .txt .map-img{
	margin-bottom: 40px;
}
#map .text-area .txt .map-img img{
	width: 100%;
	height: 74.13vw;
}
#map .text-area .txt p{
    font-size: 3.47vw;
}
#map .content .image{
	height: 64vw;
	width: 85.87vw;
	margin-left: auto;
	margin-top: -13.87vw;
}
}

/*------------------------
オフィス
------------------------*/
#office h3{
    line-height: 1;
    font-weight: 500;
}
#office p.intro{
	line-height: 2;
    letter-spacing: 0.18em;
    text-align: justify;
}
/* entrance */
#office .entrance{
	margin: 0 auto;
}
#office .entrance h2{
	line-height: 1;
	text-align: center;
	letter-spacing: 0.2em;
}
#office .entrance .content{
	text-align: center;
}
#office .entrance p{
    line-height: 2;
    letter-spacing: 0.21em;
    text-align: justify;
    margin: 0 auto;
}
#office .entrance .img{
	width: 100%;
}
#office .entrance .img img{
	object-fit: cover;
	height: 100%;
}
#office .otherimg{
	display: flex;
	flex-wrap: wrap;
	width: 100%;
}


/* Conference Room～working-floor */
#office .flex-left .img img,#office .flex-right .img img{
	object-fit: cover;
	width: 100%;
	height: 100%;
}
/* Desk Area */
#office .desk-area .desk-loop{
overflow:hidden;
}
#office .desk-area .flex-box{
display:flex;
flex-wrap:nowrap;
}
#office .desk-area .img{
flex:0 0 auto;
}
#office .desk-area .img img{
width:100%;
height:100%;
object-fit:cover;
}
#office .desk-area p{
	letter-spacing: 0.18em;
}
@keyframes desk-scroll{
0%{
	transform:translateX(0);
}
100%{
	transform:translateX(-50%);
}
}



@media screen and (min-width:768px) {
#office h3{
    font-size: 24px;
    margin-bottom: 20px;
	text-align: center;
}
#office p.intro{
	font-size: 14px;
}
/* entrance */
#office .entrance{
	width: 1050px;
	margin-bottom: 153px;
}
#office .entrance h2{
	font-size: 22px;
	margin-bottom: 40px;
}
#office .entrance p{
	max-width: 485px;
	margin-bottom: 59px;
}
#office .entrance .img{
	height:750px;
	margin-bottom: 42px;
}
#office .entrance .otherimg{
	width: 724px;
	margin: 0 auto;
	gap: 50px;
}
#office .entrance .otherimg .s-img{
	width:calc((100% - 50px) / 2);
}


/* Conference Room～working-floor */
#office .flex-left{
	justify-content: left;
}
#office .flex-right{
	justify-content: right;
}
#office .flex-left .img,#office .flex-right .img{
	flex: 1;
	height: 720px;
}
/*Conference Room*/
.conference-room{
	margin-bottom:75px;
}
#office .conference-room .text,
#office .meeting-corner .text{
	width: 554px;
	margin-left: var(--side-margin);
}
#office .conference-room .text,
#office .meeting-corner .text{
	padding:35px 35px 0 35px;
}
#office .conference-room .otherimg,
#office .meeting-corner .otherimg{
	gap: 30px;
}
#office .conference-room .s-img,
#office .meeting-corner .s-img{
	width: calc((100% - 30px) / 2);
}
#office .conference-room .intro,
#office .meeting-corner .intro{
	margin-bottom: 48px;
}
/*Working Floor*/
.working-floor {
	align-items: center;
	margin-bottom:75px;
}
.working-floor .text {
	width: 554px;
	padding:0 40px 0 30px;
	margin-right: var(--side-margin);
}
#office .meeting-corner .text{
	padding: 230px 40px 200px 30px;
}
#office .working-floor{
	position: relative;
	z-index: -1;
}
/*Meeting Corner*/
#office .meeting-corner{
	position: relative;
	z-index: -2;
	margin-bottom: 100px;
}
#office .meeting-corner{
	position: relative;
	z-index: -2;
	margin-bottom: 100px;
}
/* Desk Area */
#office .desk-area{
	text-align: center;
	position: relative;
	z-index: 3;
	display: flex;
	flex-direction: column;
}
#office .desk-area .title{
	margin-bottom: 40px;
}
#office .desk-area p{
	text-align: left;
	line-height: 2.3;
	margin: auto;
	width: fit-content;
}
#office .desk-area .img{
	width:270px;
	height:270px;
	margin-right:5px;
	flex:0 0 auto;
}
#office .desk-loop.scrollin .flex-box{
animation: desk-scroll 40s linear .5s infinite;
}

}
/*SP*/
@media screen and (max-width:767px) {
#office .inner{
	margin: 0;
}
#office h3{
	font-size: 6.4vw;
	margin-bottom: 1.73vw;
	text-align: center;
}
#office p.intro{
	font-size: 3.73vw;
}
#office .entrance .otherimg,
#office .conference-room .otherimg,
#office .meeting-corner .otherimg{
	gap: 5.87vw;
}
#office .entrance .otherimg .s-img,
#office .conference-room .s-img,
#office .meeting-corner .s-img{
	width:calc(((100vw - 8vw) - 5.87vw) / 2);
}


/* entrance */
#office .entrance{
	margin: 0 4vw;
	margin-bottom: 10.67vw;
}
#office .entrance h2{
	font-size: 4.27vw;
	margin-bottom:4.8vw;
	font-weight: 600;
	line-height: 1.8;
}
#office .entrance p{
	padding: 0 7.47vw;
	font-size: 3.73vw;
	margin-bottom: 6.93vw;
}
#office .entrance .img{
	height: 65.6vw;
	margin-bottom: 4vw;
}
/* Conference Room～working-floor */
#office .flex-right,#office .flex-left{
    width: 85.87vw;
}
#office .flex-right,#office .flex-left{
    margin-bottom: 16vw;
}
#office .flex-left{
	flex-direction: column;
}
#office .flex-right{
	flex-direction: column-reverse;
    margin-left: auto;

}
#office .flex-left .img,#office .flex-right .img{
	height: 64vw;
}
#office .flex-left .text,#office .flex-right .text{
	padding: 5.33vw 4vw 0;
}
#office .conference-room p,
#office .meeting-corner p {
	margin-bottom: 6.74vw;
}
#office .conference-room .otherimg,
#office .meeting-corner .otherimg{
	margin-left: -14.13vw;
	width: calc(100% + 14.13vw);
}




/* Desk Area */
#office .desk-area{
	display: flex;
	flex-direction: column-reverse;
}
#office .desk-area .desk-loop{
	margin-bottom: 5vw;
}
#office .desk-area .title{
	margin: 0 4vw;
	margin-bottom: 8vw;
}
#office .desk-area p{
	text-align: justify;
	padding: 0 7.47vw;
	font-size: 3.73vw;
	line-height: 2;
	letter-spacing:.18em;
}
#office .desk-area .img{
	width:53.87vw;
	height:53.87vw;
	margin-right:5px;
	flex:0 0 auto;
}
#office .desk-area .flex-box{
	animation: desk-scroll 20s linear infinite;
}



}
/*------------------------
メンバー
------------------------*/
#member .inner{
	margin: 0 auto;
	background:#E5E7E9;
}
#member h3{
	text-align: center;
    font-weight: 600;
    line-height: 1.8;
    letter-spacing: 0.2em;
}
#member .img img{
	width:100%;
	height:100%;
	object-fit:cover;
}
#member .arrow{
	position: relative;
}
/* 矢印 */
#member  .arrow a{
	position:relative;
	display:block;
}
#member .arrow a::before,
#member .arrow a::after{
	content:"";
	position:absolute;
	height:1px;
	background:#000;
	transition:left 0.3s ease;
}
@media screen and (min-width:768px) {
#member{
	position:relative;
}
#member .inner{
	position:relative;
	padding: 234px 166px 125px;
	margin-top: -135px;
	z-index:2;
	width: fit-content;
}
#member h3{
    margin-bottom: 70px;
    font-size: 22px;
}
#member .img{
	width:484px;
	height:190px;
	margin-bottom: 50px;
}
#member .arrow{
	z-index: 1;
}
#member  .arrow a{
	font-size:34px;
	padding-left: 255px;
}
#member .arrow a span{
	font-size: 16px;
	margin-left:18px;
}
#member .arrow a::after{
	bottom: 28px;
	left: 225px;
	width: 25px;
}
#member .arrow a::before{
	top: 0;
    bottom: -18px;
    left: 0;
    width: 245px;
}
#member .arrow a:hover::after{
	left:230px;
}
#member .arrow a:hover::before{
	left:5px;
}
#member .arrow a:hover {
	font-size:34px;
	position: relative;
	transition: all 0.3s ease 0s;
	display: block;
	padding-left: 255px;
}
#member  .arrow span.link{
    font-size: 34px;
}
#member  .arrow:hover span.link{
	color: var(--red);
}
}
@media screen and (max-width:767px) {
#member .inner{
	padding: 10.67vw;
	text-align: center;
}
#member h3{
    margin-bottom: 5.33vw;
    font-size: 4.27vw;
}
#member .img{
	width: 77.33vw;
	height: 30.4vw;
	margin: 0 auto;
	margin-bottom: 4.27vw;
}
#member .arrow a {
	padding-left: 30.67vw;
}
#member .arrow a::after{
	bottom: 7.43vw;
	left: 17vw;
	width: 6.67vw;
}
#member .arrow a::before {
	width: 33.33vw;
	top: 0;
	bottom: -3.4vw;
	left: -10.67vw;
}
#member .arrow a span{
	font-size: 4.27vw;
	margin-left: 3.2vw;
}
#member .arrow span.link{
    font-size: 8vw;
}
}