@charset "utf-8";

@import url('https://fonts.googleapis.com/css?family=Noto+Sans+JP:400,500,700&display=swap&subset=japanese');



html {
	background: #fff;
}
body {
	font-size: 12px;
	color: #000;
	background: #fff;
}

* {
	backface-visibility: hidden;
}
img {
	image-rendering: optimizeSpeed;
}

#wrap {
	position: relative;
	z-index: 100;
}

.pc {
	display: none;
}









nav.global {
	position: fixed;
	display: flex;
	box-sizing: border-box;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	width: 50vw;
	height: 100vh;
	left: 0;
	top: 0;
	z-index: 11000;
	background: #fff;
	border-right: 1px solid #000;
}
nav.global {
}
nav.global ul {
	position: relative;
	width: 100%;
	text-align: center;
}
nav.global li {
	position: relative;
	margin: 0 auto;
}
nav.global > ul li +  li {
	margin-top: 20px;
}
nav.global > ul a {
	position: relative;
	display: inline-block;
	color: #000;
	font-size: 13px;
	letter-spacing: 2px;
	font-weight: 500;
	font-family: Montserrat, sans-serif;
	text-decoration: none;
}


nav.global i {
	position: absolute;
	display: block;
	width: 100%;
	height: 2px;
	left: 0;
	bottom: -2px;
	background: #000;
}


nav.global .sub {
	margin: 50px 0 0;
}
nav.global .sub ul a {
	display: block;
	display: inline-block;
	color: #000;
	font-size: 11px;
	letter-spacing: 1px;
	font-weight: 500;
	font-family: Montserrat, sans-serif;
	text-decoration: none;
}
nav.global .sub li +  li {
	margin-top: 15px;
}





#menu {
	position: fixed;
	display: block;
	width: 49px;
	height: 42px;
	left: 13px;
	top: 0;
	z-index: 11100;
}
#menu i {
	position: absolute;
	display: block;
	width: 35px;
	height: 1px;
	left: 7px;
	top: 50%;
	background: #000;
}
#menu i:nth-child(1) {
	margin-top: -5px;
}
#menu i:nth-child(2) {
	margin-top: -1px;
}
#menu i:nth-child(3) {
	margin-top: 3px;
}





nav.global {
	transform: translateX(-50vw);
	transition: all 300ms ease-out;
	will-change: transform;
}
body.opened-menu nav.global {
	transform: translateX(0);
}


nav.global li a {
	transition: opacity 300ms ease-out;
	will-change: opacity;
}
nav.global li i {
	transition: all 300ms ease-out;
	will-change: transform;
	transform: scale(0,1);
}

body[data-current=""]           nav.global li.top i,
body[data-current="vision"]     nav.global li.vision i,
body[data-current="works"]      nav.global li.works i,
body[data-current="value"]      nav.global li.value i,
body[data-current="service"]    nav.global li.service i,
body[data-current="team"]       nav.global li.team i,
body[data-current="member"]     nav.global li.member i,
body[data-current="corporate"]  nav.global li.corporate i {
	transform: scale(1,1);
}




#menu i {
	transition: transform 200ms ease-out;
	will-change: transform;
}

body.opened-menu #menu i:nth-child(2) {
	transform: scaleX(0);
}
body.opened-menu #menu i:nth-child(1) {
	transform: translateY(5px) rotate(45deg);
}
body.opened-menu #menu i:nth-child(3) {
	transform: translateY(-3px) rotate(-45deg);
}












#wrap > footer {
	padding: 0 0 25px;
	text-align: center;
	color: #000;
}
#wrap > footer .copyright {
	font-size: 9px;
	font-family: Montserrat, sans-serif;
	letter-spacing: 1px;
}
#wrap > footer nav {
	margin:  0 0 20px;
}
#wrap > footer nav ul {
	display: flex;
	justify-content: center;
}
#wrap > footer nav ul a {
	position: relative;
	display: inline-block;
	color: #000;
	font-size: 11px;
	letter-spacing: 1px;
	font-weight: 400;
	font-family: Montserrat, sans-serif;
	text-decoration: none;
}
#wrap > footer nav li + li::before {
	content: "";
	position: relative;
	display: inline-block;
	width: 1px;
	height: 10px;
	left: 0;
	top: 1px;
	margin: 0 15px;
	background: #000;
}







#logo {
	position: relative;
	height: var(--doc-height);
	display: none;
}
#logo .bar {
	position: absolute;
	width: 274px;
	height: 20px;
	left: 50%;
	top: 50%;
	margin: 42px 0 0 -137px;
	z-index: 10;
	background: #000;
}
#logo .label {
	position: absolute;
	width: 272px;
	height: 28px;
	left: calc(50% - 136px);
	top: calc(50% + 71px);
	z-index: 1000;
	background: url(../img/ci_black.svg) 0 0 no-repeat;
	background-size: 272px auto;
}
#logo-n {
	position: fixed;
	width: 15px;
	height: 14px;
	left: calc(50% + 137px + 5px);
	top: calc(50% - 10px - 4px - 16px);
	margin: -20px 0 0 -4px;
	z-index: 1000;
	background: url(../img/n_black.svg) 0 0 no-repeat;
	background-size: 15px auto;
}
#logo-n {
	transition: all 600ms ease-out;
	will-change: transform;
}
body:not(.mode2).ended #logo-n {
	transform: translate(0, 0);
}










main {
	box-sizing: border-box;
	margin: 0 auto;
	padding: 50px 20px;
}

.content-title {
	margin: 0 0 50px;
	text-align: center;
}
h1 {
	position: relative;
	display: inline-block;
	font-size: 28px;
	font-weight: 500;
	font-family: Montserrat, sans-serif;
	letter-spacing: 1px;
}
h1::after {
	position: absolute;
	display: block;
	content: "";
	width: calc(100% + 16px);
	height: 2px;
	left: -8px;
	bottom: -6px;
	background: #000;
}




nav.return {
	margin: 80px 0 0;
}
nav.return a {
	position: relative;
	display: inline-block;
	padding-left: 30px;
	font-size: 13px;
	color: #000;
	letter-spacing: 1px;
	text-decoration: none;
	cursor: pointer;
}
nav.return i {
	content: "";
	position: absolute;
	display: block;
	width: 20px;
	height: 9px;
	left: 0;
	top: calc(50% - 4px);
	background: url(../img/arrow_prev_mini.svg) 0% 50% no-repeat;
	background-size: 7px 9px;
	transition: all 200ms ease-out;
}
nav.return a i::before {
	content: "";
	position: absolute;
	display: block;
	width: 100%;
	height: 1px;
	top: 50%;
	background: #000;
}
/*
nav.return a:hover i {
	width: 40px;
	left: -15px;
}
*/




.works-list ul {
	position: relative;
	display: flex;
	flex-wrap: wrap;
}
.works-list li {
	width: calc((100% - 20px) / 2);
}
.works-list li:nth-child(2n) {
	margin-left: 20px;
}
.works-list li:nth-child(n + 3) {
	margin-top: 25px;
}
.works-list li figure {
	position: relative;
	padding-top: calc(100% - 1px);
	background-size: cover;
	background-position: 50% 50%;
	background-repeat: no-repeat;
	border: 1px solid #e5e5e5;
	transition: all 300ms ease-out;
}
.works-list li.contain figure {
	background-size: contain;
}

.works-list li a {
	text-decoration: none;
	color: #000;
}
.works-list li dt + dd {
	margin: 10px 0 0;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.8;
}
.works-list li dd + dd {
	margin: 3px 0 0;
	font-size: 12px;
	line-height: 1.8;
}

/*
.works-list li a:hover figure {
	filter: saturate(0);
}
*/





.works-main-image {
}
.works-main-image img {
	width: 100%;
	height: auto;
}

.works-title {
	margin: 20px 0 0;
}
.works-title h2 {
	font-size: 28px;
	font-weight: normal;
	line-height: 1.5;
}
.works-title .client {
	margin: 8px 0 0;
	font-size: 14px;
	line-height: 1.5;
}



.works-body {
	margin: 25px 0 0;
	padding: 25px 0 0;
	border-top: 1px solid #000;
}
.works-body h3 {
	font-size: 16px;
	font-weight: normal;
	line-height: 1.6;
}
.works-body aticle {
	display: block;
	margin: 20px 0 0;
	font-size: 13px;
	line-height: 2;
}



.works-image {
	margin: 40px 0 0;
}
.works-image img {
	width: 100%;
	height: auto;
}
.works-image li + li {
	margin-top: 20px;
}


.works-meta {
	margin: 40px 0 0;
}
.works-meta h4 {
	position: relative;
	margin: 0 0 15px;
}
.works-meta h4 strong {
	position: relative;
	display: inline-block;
	z-index: 10;
	padding-right: 15px;
	letter-spacing: 1px;
	font-size: 20px;
	font-weight: 600;
	font-family: Montserrat, sans-serif;
	background: #fff;
}
.works-meta h4::after {
	position: absolute;
	content: "";
	display: block;
	width: 100%;
	height: 1px;
	left: 0;
	top: 50%;
	background: #000;
}
.works-meta div + div {
	margin: 30px 0 0;
}
.works-meta article {
	display: block;
	line-height: 2;
	font-size: 13px;
}




div.static {
	min-height: 200px;
}





body[data-type="policy"] h3 {
	margin: 0 0 20px;
	font-size: 18px;
	font-weight: 500;
	line-height: 1.5;
}
body[data-type="policy"] article p {
	font-size: 13px;
	line-height: 1.8;
}
body[data-type="policy"] h4 {
	margin: 0 0 15px;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.5;
}
body[data-type="policy"] article + article {
	margin-top: 40px;
}






body[data-type="contact"] h3 {
	margin: 0 0 20px;
	font-size: 18px;
	font-weight: 500;
	line-height: 1.5;
}
body[data-type="contact"] .note {
	font-size: 13px;
	line-height: 1.8;
}

body[data-type="contact"] .mw_wp_form_input .note.confirm,
body[data-type="contact"] .mw_wp_form_confirm .note.input {
	display: none;
}

body[data-type="contact"] .complete {
	font-size: 15px;
	line-height: 1.8;
}




.form-container {
	margin: 40px 0 0;
}
.form-container dl {
}
.form-container dt {
	font-size: 15px;
	font-weight: 500;
}
.form-container dd {
	margin: 12px 0 0;
	line-height: 1.8;
}
.form-container dl + dl {
	margin-top: 40px;
}
.form-container dt .required {
	display: inline-block;
	margin-left: 16px;
	padding: 3px 8px 4px;
	color: #fff;
	line-height: 1;
	font-size: 13px;
	background: #000;
}
.form-container dt .option {
	display: inline-block;
	margin-left: 16px;
	padding: 3px 8px 4px;
	color: #fff;
	line-height: 1;
	font-size: 13px;
	background: #777;
}

.form-container input[type="text"],
.form-container textarea {
	box-sizing: border-box;
	padding: 6px;
	font-size: 16px;
	border: 1px solid #000;
}
.form-container input[type="text"] {
	width: 75%;
}
.form-container textarea {
	width: 100%;
}

.form-container dl.type dd {
	font-size: 13px;
}
.form-container input[type="checkbox"] {
	font-size: 16px;
}

.mw_wp_form_confirm .form-container dl.type dd {
	font-size: 0;
}
.mw_wp_form_confirm .form-container dl.type dd ul.choices {
	font-size: 13px;
}
.mw_wp_form_confirm .form-container dl.type dd ul.choices li + li {
	margin-top: 5px;
}

.form-container .agree {
	margin: 30px 0 0;
}
.form-container .agree label span {
	position: relative;
	display: inline-block;
	padding-left: 26px;
	font-size: 14px;
	font-weight: bold;
	line-height: 1.8;
}
.form-container .agree label span::before {
	content: "";
	position: absolute;
	display: block;
	box-sizing: border-box;
	width: 16px;
	height: 16px;
	left: 0;
	top: 0.35em;
	border: 1px solid #000;
}
.form-container .agree label input:checked + span::after {
	content: "✓";
	position: absolute;
	display: block;
	width: 16px;
	height: 16px;
	left: 2px;
	top: 0.35em;
	margin-top: -4px;
	line-height: 1;
	font-size: 16px;
	font-weight: 500;
	text-align: center;
}
.form-container .agree label input {
	position: absolute;
	visibility: hidden;
}


.form-container span.error {
	margin: 10px 0 0;
	color: #f33;
	font-size: 14px;
	font-weight: 600;
}
.form-container .agree span.error {
	margin-top: 20px;
}



.form-container .type label span {
	position: relative;
	display: inline-block;
	padding-left: 26px;
	font-size: 13px;
	line-height: 1.8;
}
.form-container .type dd > span:nth-child(1) {
	margin-top: 16px !important;
}
.form-container .type dd > span + span {
	margin-top: 8px !important;
}
.form-container .type label span::before {
	content: "";
	position: absolute;
	display: block;
	box-sizing: border-box;
	width: 16px;
	height: 16px;
	left: 0;
	top: 0.35em;
	border: 1px solid #000;
}
.form-container .type label input:checked + span::after {
	content: "✓";
	position: absolute;
	display: block;
	width: 16px;
	height: 16px;
	left: 2px;
	top: 0.35em;
	margin-top: -4px;
	line-height: 1;
	font-size: 16px;
	font-weight: 500;
	text-align: center;
}
.form-container .type label input {
	position: absolute;
	visibility: hidden;
}






.form-container .button {
	margin: 50px 0 0;
	text-align: center;
}
.form-container .button button,
.form-container .button input {
	position: absolute;
	visibility: hidden;
}

.form-container .button a {
	position: relative;
	display: inline-block;
	width: 120px;
	height: 40px;
	line-height: 40px;
	font-size: 13px;
	text-align: center;
	text-decoration: none;
	color: #fff;
	background: #000;
	cursor: pointer;
}
.form-container .button a::before {
	content: "";
	position: absolute;
	display: block;
	width: 12px;
	height: 1px;
	right: 0;
	top: 50%;
	background: #fff;
}
.form-container .button a i {
	content: "";
	position: absolute;
	display: block;
	width: 20px;
	height: 9px;
	right: -20px;
	top: calc(50% - 4.5px);
	background: url(../img/arrow_next_mini.svg) 100% 50% no-repeat;
	background-size: 7px 9px;
	transition: all 200ms ease-out;
}
.form-container .button a i::before {
	content: "";
	position: absolute;
	display: block;
	width: 100%;
	height: 1px;
	top: 50%;
	background: #000;
}

.form-container .button a + a {
	margin-left: 15px;
}

.form-container .button a.alt-btn-prev {
}
.form-container .button a.alt-btn-prev::before {
	left: 0;
	right: auto;
}
.form-container .button a.alt-btn-prev i {
	left: -20px;
	right: auto;
	background: url(../img/arrow_prev_mini.svg) 0% 50% no-repeat;
}


.form-container .agree-link {
	margin: 0 0 20px;
	font-size: 13px;
	line-height: 2;
}
.form-container .agree-link a {
	color: #000;
}


.mw_wp_form_confirm .form-container dt .required,
.mw_wp_form_confirm .form-container .agree {
	display: none;
}




body.mode2 nav.global  {
	background: #000;
}
body.mode2 nav.global a {
	color: #fff;
}
body.mode2 nav.global > ul i {
	background: #fff;
}
body.mode2 nav.global .sub li + li::before {
	background: #fff;
}

body.mode2 #menu i {
	transition: all 300ms ease-out;
}
body.mode2.opened-menu #menu i {
	background: #fff;
}


body.mode2 #logo-n {
	transition: all 300ms ease-out;
}
/*
body.mode2.ended #logo-n {
	opacity: 0;
}
*/
body.mode2.scrolled-lite #logo-n {
	opacity: 0;
}

body.mode2 #logo .bar::after {
	content: "";
	position: absolute;
	display: block;
	width: 15px;
	height: 14px;
	right: -20px;
	top: -5px;
	z-index: 1000;
	background: url(../img/n_black.svg) 0 0 no-repeat;
	background-size: 15px auto;
}








