@charset "UTF-8";

/* reset ---------------------------------------*/

div,dl,dt,dd,ul,ol,
li,h1,h2,h3,h4,h5,
h6,pre,code,form,fieldset,legend,
input,textarea,p,blockquote,
th,td {margin:0;padding:0;}
table {border-collapse:collapse;border-spacing:0;word-break: break-all;font-size:inherit;width:100%;}
fieldset,img {border:0;}
address,caption,cite,code,dfn,em,strong,th,var {font-style:normal;font-weight:normal;}
li {list-style:none;}
caption,th {text-align:left;}
h1,h2,h3,h4,h5,h6 {font-size:100%;font-weight:normal;}
q::before,q::after {content:'';}
abbr {border:0;font-variant:normal;}
sup {vertical-align:text-top;}
sub {vertical-align:text-bottom;}
input,textarea,select {font-family:inherit;font-size:inherit;font-weight:inherit;}
input,textarea,select {font-size:100%;}
legend {color:#000;}
select,input,button,textarea {font-size:inherit;font-family:inherit;box-sizing: border-box;}
pre,code,kbd,samp {font-family:monospace;font-size:108%;line-height:100%;}
figure {padding:0;margin:0;}
input[type="submit"],
input[type="button"],
button {border-radius: 0;-webkit-box-sizing: content-box;-webkit-appearance: button;appearance: button; border: none;box-sizing: border-box;cursor: pointer;}
input[type="submit"]::-webkit-search-decoration,
input[type="button"]::-webkit-search-decoration,
button::-webkit-search-decoration {display: none;}
input[type="submit"]:focus,
input[type="button"]:focus,
button:focus {outline-offset: -2px;}


/* base ---------------------------------------*/

* {
	box-sizing:border-box;
	min-height: 0vw;
}

html,body {height:100%;}

body {
	-webkit-text-size-adjust: 100%;
	padding:0;
	margin: 0;
	font-family: "Zen Old Mincho", serif;
	font-feature-settings: "palt" 1;
	-webkit-font-feature-settings: "palt" 1;
	color:#0A0A0A;
}

a {
	text-decoration: none;
	color:#000;
	transition: all .25s ease;
}

img {
	vertical-align: bottom;
	line-height: 1;
	max-width:100%;
	height: auto;
}


/* common item ---------------------------------------*/

.clearfix::after,
.inner::after {
	visibility: hidden;
	display: block;
	font-size: 0;
	content: " ";
	clear: both;
	height: 0;
}

.ov-h {overflow: hidden;}

.font-en {
	font-family: "Bellefair", serif;
	font-weight: 400;
	font-style: normal;
}


/* layout ---------------------------------------*/

.wrapper {
	padding: 0;
	overflow: hidden;
}

.inner {
	max-width: 1140px;
	margin: 0 auto;
	position: relative;
}

.overlay {
	display: none;
}


/* header ---------------------------------------*/

header {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 130px;
	padding: 0 40px;
}

.header-inner {
	height: 100%;
	margin: 0 auto;
	position: relative;
	max-width: 1140px;
}

.header-logo {
	position: absolute;
	left: 0px;
	top: 53%;
	transform: translate(0, -50%);
	transition: all .25s ease;
	display: block;
}

.header-logo:hover{
	opacity:0.8;
}


/* gnav ---------------------------------------*/

.gnav {
	position: absolute;
	right: 10px;
	top: 45%;
	width: calc(100% - 200px);
}

.gnav-list {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: 47px;
}

.gnav-list>li {
	font-size: 16px;
}

.gnav-list>li a {
	display: block;
	transition: all .25s ease;
}

.gnav-list>li a:hover {
	color:#7C7C7C;
}

#openmenu {
	display: none;
}


/* fixedheader ---------------------------------------*/

.fixedheader {
	position: fixed;
	left: 0;
	top: 0;
	width: 100%;
	z-index: 100;
	height:80px;
	transition: all 1.25s ease;
	background: #fff;
	transform: translate(0,-105%);
	opacity:0;
}

.fixedheader.is-active {
	transform: translate(0,0);
	opacity:1;
}


/* kv ---------------------------------------*/

.kv-wrapper {
	padding-top: 130px;
}

.kv {
	position: relative;
}

.kv-message {
	padding: 0 40px;
	position: relative;
}

.kv-message-text {
	max-width: 1140px;
	margin: 0 auto;
	padding: 113px 0 120px;
	font-size: 40px;
	line-height: 1.72;
	letter-spacing: 0.03em;
}

.kv-image {}

.kv-image img {
	width: 100%
}

.kv-scroll {
	position: absolute;
	left: 50%;
	bottom: 0;
	transform: translate(-50%, 0);
	width: 1px;
	height: 70px;
}

.kv-scroll-title {
	font-size: 14px;
	width: 80px;
	position: absolute;
	right: -20px;
	top: 79px;
	transform-origin: right top;
	transform: rotate(90deg);
}

.kv-scroll-line {
	position: absolute;
	left: 0;
	top: 0;
	width: 1px;
	height: 140px;
}

.kv-scroll-line::before,
.kv-scroll-line::after {
	display: block;
	content: '';
	width: 1px;
	height: 50%;
	position: absolute;
	left: 0;
}

.kv-scroll-line::before {
	background: #000;
	top: 0;
}

.kv-scroll-line::after {
	background: #fff;
	bottom: 0;
}


/* common ---------------------------------------*/

.section-title {}

.section-title-en {
	font-size: 60px;
	line-height: 1.0;
	letter-spacing: 0em;
}

.section-title-jp {
	font-size: 16px;
	font-weight: 400;
	letter-spacing: 0.01em;
	display: block;
	margin-top: 25px;
}


/* About ---------------------------------------*/

.about {
	padding: 165px 40px 157px;
}

.about-detail {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 140px;
}

.about-detail-title {
	padding-bottom: 12px;
}

.about-detail-text {
	width: 50%;
	font-size: 14px;
	line-height: 3;
}

.about-gallary-wrapper{
	margin:0 -40px;
}

.about-gallary {
    position: relative;
    width: 100vw;
    overflow: hidden;
    display: flex;
    gap: 40px;
}

.about-gallary-list {
    display: flex;
    flex-shrink: 0;
    gap: 40px;
}

.about-gallary-list:first-child {
    animation: slide1 50s linear infinite;
}

.about-gallary-list:last-child {
    animation: slide2 50s linear infinite;
}

.about-gallary-list li {
    flex-shrink: 0;
    width: 420px;
    overflow: hidden;
    border-radius: 8px;
}

.about-gallary-list li img {
    width: 100%;
    height: auto;
    display: block;
}

@keyframes slide1 {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-100%);
    }
}

@keyframes slide2 {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-100%);
    }
}


/* Situation ---------------------------------------*/

.situation {
	background: #000;
	color: #fff;
	padding: 165px 40px 0;
}

.situation-detail {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 10px;
}

.situation-detail-text {
	font-size: 16px;
	line-height: 1.6;
}

.situation-list-wrapper {}

.situation-list-slider{
	padding-top: 110px;
}

.situation-list {
	padding-bottom: 70px;
}

.situation-list-item {
	background: #fff;
	color: #000;
	border-radius: 8px;
	text-align: center;
}

.situation-list-item-inner {
	padding: 25px;
	height: 420px;
}

.situation-list-number {
	font-size: 14px;
	letter-spacing: 0em;
	margin-bottom: 20px;
}

.situation-list-title {
	font-size: 18px;
	letter-spacing: 0.1em;
	margin-bottom: 5px;
}

.situation-list-image {
	margin-bottom: 26px;
}

.situation-list-text {
	font-size: 13px;
	line-height: 2;
	letter-spacing: 0.1em;
	display: flex;
	justify-content: center;
	align-items: center;
	min-height: 40px;
}

.situation-list-slider {
	position: relative;
}

.situation  .swiper-container-horizontal>.swiper-pagination-bullets,
.situation  .swiper-pagination-custom, .swiper-pagination-fraction{
	left:auto;
	right:0;
	width:auto;
	bottom:45px;
}

.situation .swiper-pagination-bullet{
	width:6px;
	height:6px;
	background: #707070;
}

.situation .swiper-pagination-bullet-active{
	background: #fff;
}

.situation  .swiper-button-prev,
.situation  .swiper-button-next{
	width:80px;
	height:80px;
	border: 1px solid #fff;
	border-radius: 50%;
	position: absolute;
	transform: translate(0,0);
	background: none;
	transition: all .25s ease;
}

.situation .swiper-button-prev {
	left:auto;
	right:100px;
	top:0;
}

.situation .swiper-button-next {
	left:auto;
	right:0;
	top:0;
}

.situation  .swiper-button-prev::after,
.situation  .swiper-button-next::after{
	display:block;
	content:'';
	background:url('../img/arrow_right.png') no-repeat left top;
	background-size:100%;
	width:24px;
	height:24px;
	position:absolute;
	left:50%;
	top:50%;
	transform:translate(-50%,-50%);
}

.situation  .swiper-button-prev::after{transform:translate(-50%,-50%) scale(-1,1);}

.situation-footer {
	text-align: center;
	padding: 290px 0 250px;
	background: url(../img/bg_situation.png) no-repeat center top;
	background-size: 1000px;
}

.situation-footer-text {
	font-size: 18px;
	line-height: 4;
}


/* service ---------------------------------------*/

.service {}

.service-phase {}

.service-phase01 {
	background: #F0F0F0;
	padding: 165px 40px 160px;
}

.service-phase02 {
	padding: 160px 40px 155px;
}

.service-phase03 {
	background: #F0F0F0;
	padding: 160px 40px 155px;
}

.service-title {
	margin-bottom: 120px;
}

.service-block {
	display: flex;
	justify-content: space-between;
}

.service-phase03 .service-block {
	align-items: flex-end;
}

.service-block-detail {
	width: 43%
}

.service-phase02 .service-block-detail {
	width: 100%
}

.service-block-sholder {
	font-size: 16px;
	line-height: 1;
	margin-bottom: 20px;
}

.service-block-title {
	font-size: 36px;
	line-height: 1.5;
	margin-bottom: 35px;
	letter-spacing: 0.07em;
}

.service-block-subtitle {
	font-size: 20px;
	line-height: 1.6;
	margin-bottom: 17px;
}

.service-block-text {
	font-size: 14px;
	line-height: 2;
}

.service-block-point {
	width: 48.5%
}

.service-block-point-item {
	background: #fff;
	border-radius: 8px;
	padding: 27px 40px 42px;
}

.service-block-point-item:not(:first-child) {
	margin-top: 32px;
}

.service-phase01 .service-block-point-item {
	min-height: 197px;
}

.service-block-point-title {
	font-size: 16px;
	line-height: 1.6;
	margin-bottom: 17px;
}

.service-block-point-text {
	font-size: 14px;
	line-height: 1.55;
}

/* member ---------------------------------------*/


.member {
	padding: 165px 40px 160px;
}

.member-title {
	margin-bottom: 117px;
}

.member-title-en {}

.member-title-jp {}

.member-ceo {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 80px;
}

.member-ceo-image {
	width: 50%;
	overflow: hidden;
	border-radius: 8px;
}

.member-ceo-detail {
	width: 39.5%;
	padding-bottom: 20px;
}

.member-ceo-sholder {
	font-size: 17px;
	line-height: 1.2;
	margin-bottom: 10px;
}

.member-ceo-title {
	font-size: 40px;
	line-height: 1.3;
	margin-bottom: 30px;
}

.member-ceo-text {
	font-size: 14px;
	line-height: 2;
}

.member-list {
	display: flex;
	justify-content: space-between;
	gap: 32px;
}

.member-list-item {
	width: 100%;
}

.member-list-image {
	overflow: hidden;
	border-radius: 8px;
	margin-bottom: 40px;
}

.member-list-name {
	font-size: 28px;
	line-height: 1.3;
	margin-bottom: 20px;
}

.member-list-text {
	font-size: 14px;
	line-height: 1.6;
	letter-spacing: 0.05em;
}


/* company ---------------------------------------*/

.company {
	background: #F0F0F0;
	padding: 160px 40px 135px;
}

.company-block {
	display: flex;
	justify-content: space-between;
}

.company-block-title {
	width: 40%;
	padding-top: 5px;
}

.company-block-title-en {}

.company-block-title-jp {}

.company-block-detail {
	width: 50%;
}

.company-block-list {
	font-size: 14px;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	line-height: 1.55;
	margin-bottom: 22px;
}

.company-block-list dt {
	width: 120px;
}

.company-block-list dd {
	width: calc(100% - 130px);
}

/* Contact ---------------------------------------*/

.contact {
	background: #0A0A0A;
	color: #fff;
	padding: 160px 40px 100px;
}

.contact-inner {}

.contact-message {
	text-align: center;
	font-size: 20px;
	line-height: 1.6;
	margin-bottom: 60px;
}

.contact-content {
	max-width: 808px;
	margin: 0 auto;
	background: #F0F0F0;
	padding: 40px;
	border-radius: 8px;
}


/* footer ---------------------------------------*/

.footer {
	background: #0A0A0A;
	color: #fff;
	padding: 20px 40px 120px;
	text-align: center;
}

.footer-inner {
	max-width: 1130px;
	margin: 0 auto;
	position: relative;
}

.footer-sns {
	margin-bottom: 80px;
}

.footer-sns a {
	display: inline-block;
	transition: all .25s ease;
	display: block;
}

.footer-sns a:hover {opacity:0.7}

.footer-nav {
	margin-bottom: 50px;
}

.footer-nav-list {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	gap: 47px;
}

.footer-nav-list li {
	font-size: 14px;
	line-height: 1.6;
}

.footer-nav-list li a {
	display: inline-block;
	color: #fff;
	display: block;
	transition: all .25s ease;
}

.footer-nav-list li a:hover {opacity:0.7}

.copyright {
	font-size: 14px;
	line-height: 1.6;
}


/* animation ---------------------------------------*/

.animation {
	transition: all .75s ease;
	transform: translate(0, 20px);
	opacity: 0;
}

.animation.on {
	transform: translate(0, 0px);
	opacity: 1;
}



/* pc only */
@media screen and (min-width: 768px) {
	.sp {display: none !important;}
	.spbr {display: none;}
}



/* small pc */
@media screen and (min-width: 768px) and (max-width: 1000px) {


}



/* s0 only */
@media screen and (max-width: 767px) {

	/* common item ---------------------------------------*/

	.pc {display: none !important;}
	.pcbr {display: none;}


	/* layout ---------------------------------------*/

	.header-inner,.footer-inner,.inner,.wrapper {
		min-width: 0;
		width: 100%;
	}


	/* header ---------------------------------------*/

	.overlay {
		content:'';
		display: block;
		position:fixed;
		width:100%;
		height:100vh;
		background: rgba(255,255,255,0.5);
		left:0;
		top:0;
		z-index:6;
	}

	#openmenu {
		display:block;
		width:60px;
		height:65px;
		text-indent: -99em;
		overflow: hidden;
		position:absolute;
		right:10px;
		top:0;
		z-index:100;
	}

	#openmenu span {
		content:'';
		display: block;
		width:40px;
		height:1px;
		background: #0A0A0A;
		position: absolute;
		left:10px;
		transition: all .25s ease;
	}

	#openmenu span:nth-child(1) {top:28px;}
	#openmenu span:nth-child(2) {top:36px;}

	#openmenu.is-open span:nth-child(1) {
		transform:rotate(18deg);
		top:31px;
		left:10px;
	}

	#openmenu.is-open span:nth-child(2) {
		transform:rotate(-18deg);
		top:31px;
		left:10px;
	}

	header {
		position: fixed;
		height:65px;
		padding: 0;
		z-index:100;
		background: #fff;
	}

	.header-logo {
		left: 20px;
		top: 53%;
		transform: translate(0, -50%);
		width:105px;
		z-index:105;
	}

	/* gnav ---------------------------------------*/

	.gnav {
		border:none;
		background: #fff;
		padding-bottom: 30px;
		overflow:auto;
		z-index:100;
		position: absolute;
		left:0px;
		top:0px;
		width:100%;
		height: 100vh;
		display: none;
	}
	
	.gnav-list {
		display: block;
		max-width:200px;
		margin:0 auto;
		padding-top: 180px;
	}

	.gnav-list>li {
		font-size: 24px;
		text-align: center;
	}

	.gnav-list>li:not(:first-child){
		margin-top: 40px;
	}

	.gnav-list>li a{display: inline-block;}


	/* fixedheader ---------------------------------------*/

	.fixedheader {
		display: none !important;
	}

	
	/* kvr ---------------------------------------*/

	.kv-wrapper {
		padding-top: 60px;
	}

	.kv-message {
		padding: 0 30px;
	}

	.kv-message-text {
		padding: 83px 0 78px;
		font-size: 32px;
		line-height: 1.6;
		letter-spacing: 0.13em;
	}

	.kv-scroll {
		left: auto;
		right:30px;
		height: 50px;
	}

	.kv-scroll-line {
		height: 100px;
	}


	/* common ---------------------------------------*/

	.section-title-en {
		font-size: 40px;
	}

	.section-title-jp {
		font-size: 14px;
		margin-top: 15px;
	}


	/* About ---------------------------------------*/

	.about {
		padding: 103px 30px 100px;
	}

	.about-detail {
		display: block;
		margin-bottom: 70px;
	}

	.about-detail-title {
		padding-bottom: 0;
		margin-bottom: 50px;
	}

	.about-detail-text {
		width: auto;
		font-size: 14px;
		line-height: 2.71;
	}

	.about-gallary-wrapper{
		margin:0 0px;
	}

	.about-gallary {margin:0 -30px;}

	.about-gallary {
		gap: 16px;
	}
	
	.about-gallary-list {
		gap: 16px;
	}
	
	.about-gallary-list:first-child {
		animation: slide1 50s linear infinite;
	}
	
	.about-gallary-list:last-child {
		animation: slide2 50s linear infinite;
	}
	
	.about-gallary-list li {
		width: 300px;
	}


	/* Situation ---------------------------------------*/

	.situation {
		padding: 100px 30px 100px;
	}

	.situation-detail {
		display: block;
		margin-bottom: 75px;
	}

	.situation-detail-title{
		margin-bottom: 50px;
	}

	.situation-detail-text {
		font-size: 14px;
		line-height: 2.7;
	}

	.situation-list-wrapper {
		margin:0 -20px 60px;
	}

	.situation-list {
		padding-bottom: 100px;
	}

	.situation-list-item {
	}

	.situation-list-item-inner {
		padding: 20px;
		height: 280px;
	}

	.situation-list-number {
		margin-bottom: 10px;
	}

	.situation-list-title {
		font-size: 16px;
		margin-bottom: 5px;
	}

	.situation-list-image {
		margin-bottom: 3px;
	}

	.situation-list-image img{
		width:140px;
	}

	.situation-list-text {
		font-size: 12px;
		min-height: 50px;
	}

	.situation-list-slider {
		padding-top: 0;
		padding-bottom: 20px;
	}

	.situation  .swiper-container-horizontal>.swiper-pagination-bullets,
	.situation  .swiper-pagination-custom, .swiper-pagination-fraction{
		width:100%;
		bottom:95px;
	}
	
	.situation  .swiper-button-prev,
	.situation  .swiper-button-next{
		width:56px;
		height:56px;
	}
	
	.situation .swiper-button-prev {
		left:50%;
		right:auto;
		top:auto;
		bottom:0;
		margin-left: -65px;
	}
	
	.situation .swiper-button-next {
		left:auto;
		right:50%;
		top:auto;
		bottom:0;
		margin-right: -65px;
	}
	
	.situation  .swiper-button-prev::after,
	.situation  .swiper-button-next::after{
		display:block;
		content:'';
		background:url('../img/arrow_right.png') no-repeat left top;
		background-size:100%;
		width:24px;
		height:24px;
		position:absolute;
		left:50%;
		top:50%;
		transform:translate(-50%,-50%);
	}
	
	.situation  .swiper-button-prev::after{transform:translate(-50%,-50%) scale(-1,1);}
	
	.situation-footer {
		margin:0 -10px;
		padding: 175px 0 75px;
		background: url(../img/bg_situation.png) no-repeat center top;
		background-size: 500px;
	}

	.situation-footer-text {
		font-size: 16px;
		line-height: 3.375;
	}


	/* service ---------------------------------------*/

	.service-phase01 {
		padding: 100px 30px 100px;
	}

	.service-phase02 {
		padding: 100px 30px 100px;
	}

	.service-phase03 {
		padding: 100px 30px 100px;
	}

	.service-title {
		margin-bottom: 65px;
	}

	.service-block {
		display: block;
	}

	.service-block-detail {
		width: auto;
		margin-bottom: 60px;
	}

	.service-phase02 .service-block-detail {margin-bottom: 0;}

	.service-block-sholder {
		font-size: 14px;
		line-height: 1;
		margin-bottom: 20px;
	}

	.service-block-title {
		font-size: 24px;
		line-height: 1.5;
		margin-bottom: 25px;
		letter-spacing: 0.07em;
	}

	.service-block-subtitle {
		font-size: 18px;
		line-height: 2.1;
		margin-bottom: 5px;
	}

	.service-block-point {
		width: auto
	}

	.service-block-point-item {
		padding: 20px 30px 20px 30px;
	}

	.service-block-point-item:not(:first-child) {
		margin-top: 24px;
	}

	.service-phase01 .service-block-point-item {
		min-height: 192px;
	}

	.service-block-point-title {
		font-size: 15px;
		line-height: 1.6;
		margin-bottom: 15px;
	}

	.service-block-point-text {
		font-size: 12px;
		line-height: 1.55;
		text-align:justify;
	}


	/* member ---------------------------------------*/

	.member {
		padding: 102px 30px 100px;
	}

	.member-title {
		margin-bottom: 60px;
	}

	.member-ceo {
		display: block;
		margin-bottom: 35px;
	}

	.member-ceo-image {
		width: auto;
		margin-bottom: 33px;
	}

	.member-ceo-image img{width:100%;}

	.member-ceo-detail {
		width: auto;
		padding-bottom: 20px;
	}

	.member-ceo-sholder {
		font-size: 14px;
		line-height: 1.2;
		margin-bottom: 10px;
	}

	.member-ceo-title {
		font-size: 32px;
		line-height: 1.3;
		margin-bottom: 28px;
	}

	.member-list {
		flex-wrap: wrap;
		gap: 40px 8px
	}

	.member-list-item {
		width: calc(50% - 4px);
	}

	.member-list-image {
		margin-bottom: 0px;
	}

	.member-list-image img{width:100%;}

	.member-list-name {
		margin-top: 22px;
		font-size: 20px;
		margin-bottom: 10px;
	}

	.member-list-text {
		font-size: 14px;
		line-height: 1.6;
		letter-spacing: 0.05em;
	}


	/* company ---------------------------------------*/

	.company {
		padding: 100px 30px 82px;
	}

	.company-block {
		display: block;
	}

	.company-block-title {
		width: auto;
		padding-top: 0;
		margin-bottom: 55px;
	}
	
	.company-block-detail {
		width: auto;
	}

	.company-block-list {
		gap: 10px;
		line-height: 2;
		margin-bottom: 15px;
	}

	.company-block-list dt {
		width: 100px;
	}

	.company-block-list dd {
		width: calc(100% - 110px);
	}

	/* Contact ---------------------------------------*/

	.contact {
		padding: 95px 30px 60px;
	}

	.contact-inner {}

	.contact-message {
		font-size: 18px;
		line-height: 2;
		margin-bottom: 35px;
	}

	.contact-content {
		padding: 20px;
	}


	/* footer ---------------------------------------*/

	.footer {
		padding: 20px 30px 70px;
	}

	.footer-sns {
		margin-bottom: 60px;
	}

	.footer-nav {
		margin-bottom: 40px;
		padding:0 30px;
	}

	.footer-nav-list {
		gap: 15px 47px;
	}



}


/* iphone5 iphoneSE用 */
@media screen and (max-width: 370px) {

}