@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600&display=swap');

/*　   ベース
--------------------------------------------------------------------------------------------- */
* {
-webkit-box-sizing:border-box;
-moz-box-sizing:border-box;
box-sizing:border-box;
}
body {
margin: 0;
padding: 0;
font-size: 16px;
line-height: 1.6em;
-webkit-text-size-adjust: 100%;
font-family: 'Noto Sans JP', sans-serif;
color: #000;
letter-spacing: .4px;
}
a {
outline:none;
color: #009DDA;
}
a:hover {
text-decoration: none;
}
a,a:hover,a:hover img {
-webkit-transition: 0.3s;
-moz-transition: 0.3s;
-o-transition: 0.3s;
transition: 0.3s;
text-decoration: none;
}
a:hover {
filter: alpha(opacity=80);
-moz-opacity:0.80;
opacity:0.80;
}
ul {
list-style: none;
}
img {
height: auto;
vertical-align: bottom;
}
h1,h2,h3,h4,h5,h6{
margin: 0;
}
.pc { display: block !important; }
.sp { display: none !important; }
@media only screen and (max-width: 768px) {
.pc { display: none !important; }
.sp { display: block !important; }
}
/* ヘッダー
----------------------------------------------------*/
/*header {
top: -100px;
position: fixed;
width: 100%;
margin: 100px auto 0;
line-height: 1;
z-index: 1;
font-family: 'Montserrat', sans-serif;
text-decoration: none;
background:rgba(255,255,255,0.5);
}*/
header {
top: 50px;
position: absolute;
width: 100%;
margin: 0 auto;
padding: 10px 0;
line-height: 1;
z-index: 1;
font-family: 'Montserrat', sans-serif;
}
header .header {
width: 1100px;
margin: 0 auto;
display:flex;
justify-content:space-between;
align-items: center;
}
header .header:after {
content: "";
clear: both;
display: block;
}
header .header .logo {
width: 420px;
margin: 0 ;
display: block;
}
nav ul {
margin: 0;
list-style: none;
font-size: 19px;
font-weight: 500;
display: flex;
align-items: center;
}
nav ul li{
display: flex;
align-items: center;
}
nav ul li a {
margin: 10px 0 0 ;
padding: 0 5px 0;
color: #FFF;
}
nav ul li a.contact_btn {
margin: 0;
padding: 10px 20px!important;
font-family: 'Noto Sans JP', sans-serif;
font-size: 14px;
color: #ffffff;
text-align: center;
font-weight: 500;
line-height:1.0;
background: #04B2C9;
border-radius: 50px;
transition: 0.3s;
display: flex;
justify-content: center;
align-items: center;
}
@media only screen and (max-width: 768px) {
nav ul {
splay: block;
rgin-right: 0px;
}
nav ul li a {
margin: 15px 0 0 ;
padding: 0 5px 0;
color: #CCC;
}
}
nav ul li {
padding: 0 10px;
}
nav ul li:last-child {
border-right: none;
}
@media only screen and (max-width: 768px) {
nav ul li {
border-right: none;
}
}
/* Fixed */
header.fixed {
margin-top: 0;
top: 0;
position: fixed;
background:rgba(41,44,59,0.7);
}
header.fixed nav ul li a {
color: #FFF;
}
header.fixed nav ul li a:hover {
color: #D3753B;
}
/* Toggle Button */
#nav-toggle {
display: none;
position: absolute;
right: 15px;
top: 15px;
width: 34px;
height: 36px;
cursor: pointer;
z-index: 101;
}
#nav-toggle div {
position: relative;
}
#mobile-head .logo_sp {
display: none;
}
@media only screen and (max-width: 768px) {
header {
position: fixed !important;
top: 0;
width: 100%;
margin: 0 auto;
z-index: 1;
}
header .header {
width: 100%;
margin: 0 auto;
display:block;
}
header .header .logo {
width: 70%;
margin: 0 0 0 5%;
display: block;
}
header.fixed {
top: 0;
}
/*#mobile-head {
background:rgba(41,46,59,0.7);
width: 100%;
height: 45px;
z-index: 999;
position: relative;
display: flex;
align-items: center;
}
#mobile-head .logo_sp {
margin: 0 0 0 20px;
font-family: 'IBM Plex Sans Hebrew', sans-serif;
font-size: 26px;
color: #04B2C9;
display: block;
z-index: 1000;
}
header.fixed .header .logo,
header .header .logo{
display: none;
}*/
nav {
position: absolute;
/* 開いてないときは画面外に配置 */
top: -520px;
background: rgba(41,44,59,0.9);
width: 100%;
padding: 30px 0 10px;
text-align: center;
-webkit-transition: .5s ease-in-out;
-moz-transition: .5s ease-in-out;
transition: .5s ease-in-out;
}
nav ul {
position: static;
padding: 0;
right: 0;
bottom: 0;
font-size: 20px;
margin: 20px 0 0 0;
list-style: none;
display: block;
}
nav ul li {
position: static;
padding: 0;
float: none;
}
header nav ul li a,
header.fixed nav ul li a {
width: 100%;
padding: 5px 0;
color: #FFF;
display: block;
}
/*header.fixed nav ul li a.contact_btn {
width: 85%;
display: block;
padding: 5px 0;
}
nav ul li a.contact_btn {
width: 85%;
margin: 23px auto 0;
padding: 15px 0!important;
font-family: 'Noto Sans JP', sans-serif;
font-size: 16px;
color: #FFF;
text-align: center;
line-height:1.0;
background: #04B2C9;
border-radius: 50px;
transition: 0.3s;
display: flex;
justify-content: center;
align-items: center;
}*/
#nav-toggle {
display: block;
}
/* #nav-toggle 切り替えアニメーション */
#nav-toggle span {
display: block;
position: absolute;
height: 1px;
width: 100%;
background: #FFF;
left: 0;
-webkit-transition: .35s ease-in-out;
-moz-transition: .35s ease-in-out;
transition: .35s ease-in-out;
}
#nav-toggle span:nth-child(1) {
top: 0;
}
#nav-toggle span:nth-child(2) {
top: 11px;
}
#nav-toggle span:nth-child(3) {
top: 22px;
}
.open #nav-toggle span:nth-child(1) {
top: 11px;
-webkit-transform: rotate(315deg);
-moz-transform: rotate(315deg);
transform: rotate(315deg);
}
.open #nav-toggle span:nth-child(2) {
width: 0;
left: 50%;
}
.open #nav-toggle span:nth-child(3) {
top: 11px;
-webkit-transform: rotate(-315deg);
-moz-transform: rotate(-315deg);
transform: rotate(-315deg);
}
/* nav スライドアニメーション */
.open nav {
/* nav top + #mobile-head height */
-moz-transform: translateY(520px);
-webkit-transform: translateY(520px);
transform: translateY(520px);
}
}
nav p {
padding: 10px 14px 0 0;
font-size: 16px;
font-weight: 300;
color: #FFF;
display: flex;
align-items: center;
justify-content: flex-end;
}
nav p:before {
border-top: 1px solid;
content: "";
width: 3em;
}
nav p:before {
margin-right: 0.5em;
}
@media only screen and (max-width: 768px) {
nav p {
padding: 30px 25px 15px 0;
font-size: 12px;
}
}


/*　   MV周辺
---------------------------------------------------------------------- */
.topMv_wrp {
width: 100%;
height: 100vh;
padding: 0;
display: flex;
flex-flow: column;
}
.topMv {
width: 100%;
height: 100vh;
padding: 0;
position: relative;
line-height:0;
}
.topMv .arrow{
width: 100%;
position: absolute;
bottom: -1px;
vertical-align:bottom;
display:block;
}
@media screen and (max-width: 768px) {
.topMv_wrp {
width: 100%;
height: 80vh;
height: calc(var(--vh, 1vh) * 80);
}
.topMv {
width: 100%;
height: 80vh;
padding: 0;
position: relative;
}
.topMv .arrow{
width: 100%;
bottom: -0.1vh;
}
}
/*スクロールダウン全体の場所*/
.scrolldown1{
position:absolute;
left:50%;
bottom:10px;
/*全体の高さ*/
height:50px;
}
/*Scrollテキストの描写*/
.scrolldown1 span{
position: absolute;
left:-12px;
top: -35px;
font-family: 'Montserrat', sans-serif;
writing-mode: vertical-rl;
color: #FFF;
font-size: 0.7rem;
letter-spacing: 0.05em;
}
/* 線の描写 */
.scrolldown1::after{
content: "";
position: absolute;
top: 0;
width: 1px;
height: 30px;
background: #FFF;
/*線の動き1.6秒かけて動く。永遠にループ*/
animation: pathmove 1.6s ease-in-out infinite;
opacity:0;
}
/*高さ・位置・透過が変化して線が上から下に動く*/
@keyframes pathmove{
0%{
height:0;
top:0;
opacity: 0;
}
30%{
height:30px;
opacity: 1;
}
100%{
height:0;
top:50px;
opacity: 0;
}
}
@media screen and (max-width: 768px) {
.scrolldown1{
bottom:50px;
}
}
/*　   共通
---------------------------------------------------------------------- */
.innerBox{
width: 1100px;
margin: 0 auto;
padding: 100px 0;
}
@media screen and (max-width: 768px) {
.innerBox{
width: 90%;
margin: 0 auto;
padding: 50px 0;
}
}
.main_ttl{
position: relative;
margin: 0 0 70px;
font-family: 'Montserrat', sans-serif;
font-size: 46px;
font-weight: 500;
color: #FFF;
text-align: center;
}
.main_ttl:before {
content: '';
position: absolute;
left: 50%;
bottom: -50px;
display: inline-block;
width: 16px;
height: 16px;
-moz-transform: translateX(-50%);
-webkit-transform: translateX(-50%);
-ms-transform: translateX(-50%);
transform: translate(-50%);
background: #D3753B;
border-radius: 50%;
}
@media screen and (max-width: 768px) {
.main_ttl{
margin: 0 0 70px;
font-size: 28px;
font-weight: 500;
}
.main_ttl:before {
left: 50%;
bottom: -30px;
width: 12px;
height: 12px;
}
}

.main_ttl.dark{
color: #505671;
}
ul.base {
list-style-type: none;
margin: 0;
padding: 0;
text-align: left;
}
ul.base li {
margin: 0;
padding-left: 1em;
text-indent: -1em;
}
.arrow100{
width: 100%;
margin: 0 auto -1px;
display: block;
vertical-align: bottom;
line-height: 0;
}

/*　   コンテンツ
---------------------------------------------------------------------- */
.service_wrp{
width: 100%;
margin: 0 auto;
background:#292C3B;
border-bottom: 2px solid #FFF;
outline-offset: -2px;
}
.flex_inner{
width: 100%;
margin: 0 auto;
display:flex;
justify-content:space-between;
flex-wrap: wrap;
align-items: flex-start;
}
@media only screen and (max-width: 768px) {
.flex_inner{
width: 100%;
margin: 0 auto;
display:flex;
justify-content:space-between;
flex-wrap: wrap;
align-items: flex-start;
}
.flex_inner{
width: 100%;
display:block;
}
}
@media screen and (min-width: 768px) {
.flex_inner figure:first-of-type{
transition-delay: .2s;
}
.flex_inner figure:nth-of-type(2){
transition-delay: .4s;
}
.flex_inner figure:nth-of-type(3){
transition-delay: .6s;
}
}
.flex_inner figure{
width: 30%;
margin: 50px 0;
color: #FFF;
}
.flex_inner figure:nth-child(2){
width: 30%;
margin: 50px 0 0 9%;
color: #FFF;
}
@media only screen and (max-width: 768px) {
.flex_inner figure{
width: 100%;
margin: 50px auto 0;
}
.flex_inner figure:nth-child(2){
width: 100%;
margin: 50px auto 0;
}
}
.flex_inner figure img{
width: auto;
height: 105px;
margin: 0 auto 40px;
display: block;
}
.flex_inner figure:nth-child(2) img{
margin: 0 0 40px 70px;
display: block;
}
.flex_inner figure figcaption{
padding: 0 0 20px;
font-family: 'Montserrat', sans-serif;
font-size: 26px;
font-weight: 500;
color: #D3753B;
}
@media only screen and (max-width: 768px) {
.flex_inner figure img{
height: 80px;
margin: 40px auto 20px;
}
.flex_inner figure:nth-child(2) img{
margin: 0 auto 20px;
display: block;
}
.flex_inner figure figcaption{
padding: 0 0 10px;
font-size: 22px;
text-align: center;
}
}
.works_inner{
width: 1100px;
margin: 0 auto;
padding: 100px 0;
text-align: center;
}
.works_inner p {
padding: 40px 0;
}
@media screen and (max-width: 768px) {
.works_inner{
width: 90%;
margin: 0 auto;
padding: 50px 0;
text-align: center;
}
.works_inner p {
padding: 20px 0 10px;
}
}
.works_inner img {
width: 100%;
}
.company_wrp{
width: 100%;
margin: 0 auto;
background:#EBECEF url("../img/arrow_white.svg") left bottom -1px no-repeat;
background-size: 100% auto;
}
.company_inner{
width: 1100px;
margin: 0 auto;
padding: 100px 0 0 0;
}
@media screen and (max-width: 768px) {
.company_inner{
width: 90%;
margin: 0 auto;
padding: 50px 0 0 0;
}
}
dl.detail {
width: 48%;
padding: 0;
margin: 43px 0 0;
display: flex;
flex-wrap: wrap;
transition-delay: .2s;
}
dl.detail dt {
width: 30%;
padding: 17px 10px;
margin: 0;
display: flex;
align-items: center;
border-bottom: 1px solid #000;
}
dl.detail dd {
width: 65%;
padding: 17px 10px;
margin: 0;
border-bottom: 1px solid #000;
}
@media screen and (max-width: 768px) {
dl.detail {
width: 100%;
margin: 43px 0 0;
font-size: 14px;
}
dl.detail dt {
width: 35%;
padding: 10px 10px 10px 5px;
}
dl.detail dd {
width: 65%;
padding: 10px 10px 10px 5px;
}
}
/*.company_img{
width: 46%;
margin: 60px 0 0;
box-shadow: -20px 30px 0 #F3CF51;
}
.company_img img{
width: 100%;
}*/
.company_img{
position: relative;
width: 46%;
margin: 60px 0 0;
z-index: 0;
transition-delay: .4s;
}
@media screen and (max-width: 768px) {
.company_img{
position: relative;
width: 90%;
margin: 60px auto 0;
margin-left: 8%;
z-index: 0;
}
}
.company_img img{
width: 100%;
}
.company_img::before{
content: '';
position: absolute;
left: -20px;
bottom: -30px;
width: 100%;
height: 100%;
background: #F3CF51;
z-index: -1;
}
@media screen and (max-width: 768px) {
.company_img::before{
left: -20px;
bottom: -20px;
}
}
.identity_wrp{
width: 100%;
margin: 0 auto;
padding: 150px 0 0;
text-align: center;
background:url("../img/identity_bg.jpg") center top no-repeat;
background-size: 100% auto;
}
.identity_wrp p {
padding: 40px 0;
line-height: 2.2;
}
.identity_wrp .logo{
width: 200px;
margin: 50px auto 0;
display: block;
}
.identity_wrp .logoname{
width: 270px;
margin: 30px auto 0;
display: block;
}
.st2{fill:none;stroke:#FFF;stroke-width:9.4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.svgall{width: 330px;height: auto;}
@media screen and (max-width: 768px) {
.identity_wrp{
width: 100%;
margin: 0 auto;
padding: 80px 0 0;
text-align: center;
background:url("../img/identity_bg.jpg") center top no-repeat;
background-size: cover;
}
.identity_wrp p:first-of-type {
text-align: left;
}
.identity_wrp p {
width: 90%;
margin: 0 auto;
padding: 10px 0;
line-height: 2.2;
}
.identity_wrp .logo{
width: 50%;
margin: 30px auto 0;
display: block;
}
.identity_wrp .logoname{
width: 70%;
margin: 20px auto 30px;
display: block;
}
}
.prof_wrp{
width: 100%;
margin: 0 auto;
background:#505671 url("../img/arrow_white.svg") left bottom -1px no-repeat;
background-size: 100% auto;
}
.prof_inner{
width: 90%;
margin: 0 auto;
padding: 70px 0 30px 0;
display:flex;
justify-content:space-between;
flex-wrap: wrap;
align-items: flex-start;
}
@media screen and (max-width: 768px) {
.prof_inner{
width: 90%;
margin: 0 auto;
padding: 30px 0 30px 0;
display:block;
}
}
.prof_inner figure{
position: relative;
width: 200px;
margin: 0;
z-index: 0;
transition-delay: .2s;
}
.prof_inner figure img{
width: 100%;
}
.prof_inner figure::before{
content: '';
position: absolute;
left: -20px;
bottom: -30px;
width: 60%;
height: 105%;
background: #D3753B;
z-index: -1;
}
@media screen and (max-width: 768px) {
.prof_inner figure{
width: 200px;
margin: 0 auto;
}
.prof_inner figure img{
width: 100%;
}
.prof_inner figure::before{
bottom: -20px;
}
}
.prof_inner .profBox{
width: 700px;
margin: 0;
color: #FFF;
transition-delay: .4s;
}
.prof_inner .profBox h3{
margin: 5px 0 30px;
font-size: 24px;
font-weight: 500;
}
.prof_inner .profBox h3:after{
content:'TETSUYA OTA';
padding: 0 0 0 20px;
font-size: 14px;
font-weight: 300;
color: rgba(252,252,252,0.5);
}
@media screen and (max-width: 768px) {
.prof_inner .profBox{
width: 100%;
margin: 60px auto 0;
}
.prof_inner .profBox h3{
margin: 5px 0 30px;
font-size: 22px;
}
}

/*　   フッター
---------------------------------------------------------------------- */
footer{
width: 100%;
padding: 0 0 20px;
font-family: 'Montserrat', sans-serif;
color: #505671;
}
footer ul {
list-style-type: none;
padding-left: 0;
display: flex;
justify-content: center;
flex-wrap: wrap;
}
footer li {
padding: 20px;
}
@media screen and (max-width: 768px) {
footer li {
padding: 5px 15px 2px;
font-size: 12px;
line-height: 1.2;
}
}
footer li a{
color: #505671;
}
footer li a:hover{
color: #D3753B;
}
footer small{
color: #292C3B;
text-align: center;
display: block;
}
footer .spacer {
width: 100%;
display: none;
}
#page_top{
position: fixed;
right: 40px;
bottom: -50px;
color: #15171D;
font-size: 45px;
text-decoration: none;
display: flex;
justify-content: center;
align-items: center;
}
@media screen and (max-width: 768px) {
#page_top{
right: 20px;
font-size: 30px;
}
footer .spacer {
width: 100%;
display: inline-block;
}
}
/*　   Contact
---------------------------------------------------------------------- */
.contactMv_wrp {
width: 100%;
height: 380px;
padding: 0;
display: flex;
flex-flow: column;
}
.contactMv {
width: 100%;
height: 380px;
padding: 150px 0 0;
position: relative;
display: flex;
justify-content: center;
align-items: center;
background:url(../img/contact_fv.jpg) center top no-repeat;
background-size: cover;
}
.contactMv .arrow{
width: 100%;
position: absolute;
bottom: -1px;
display: block;
}
.contactBox{
width: 600px;
margin: 0 auto;
padding: 100px 0;
}
@media screen and (max-width: 768px) {
.contactMv_wrp {
width: 100%;
height: 180px;
}
.contactMv {
width: 100%;
height: 180px;
padding: 100px 0 0;
}
.contactBox{
width: 90%;
margin: 0 auto;
padding: 20px 0 60px;
}
}
.contactBox > p{
padding: 0;
text-align: left;
}
.contactBox > p.center{
padding: 0;
text-align: center;
}
.contactBox a{
color: #D3753B;
}

/*　   フォーム部分
---------------------------------------------------------------------- */
.formArea{
margin: 60px auto 0;
}
.formBox{
width: 600px;
margin: 0 auto;
padding: 20px 0;
display: flex;
align-items: center;
border-bottom: 1px solid #C2C2C2;
}
.formBox .txt{
width: 200px;
margin: 0;
padding: 0;
}
@media screen and (max-width: 768px) {
.formBox{
width: 90%;
display: block;
border: none;
}
.formBox .txt{
width: 100%;
margin: 0;
padding: 0;
}
}
.form_area .kakunin{
padding: 25px 20px;
margin: 0 0 30px 0;
}
.form_area .soushin_ok{
margin: 0 0 30px 0;
text-align: center;
}
.m-form-text {
height: 2.4em;
width: 100%;
margin: 0;
padding: 25px 20px;
background: #FCFCFC;
border: none;
box-shadow: 0 0 0 1px #C2C2C2 inset;
appearance: none;
-webkit-appearance: none;
-moz-appearance: none;
box-sizing: border-box;
}
.m-form-text:focus {
outline: 0;
box-shadow: 0 0 0 2px #04B2C9 inset;
}
.m-form-text::placeholder {
color: #C2C2C2;
}
@media screen and (max-width: 768px){
.m-form-text {
width: 100%;
padding: 20px;
box-sizing: border-box;
}
}
textarea{
font-weight: 300;
}
.m-form-textarea {
display: block;
width: 100%;
height: 170px;
margin: 0;
padding: 25px 20px;
font-weight: 300;
background: #FCFCFC;
border: none;
box-shadow: 0 0 0 1px #C2C2C2 inset;
appearance: none;
-webkit-appearance: none;
-moz-appearance: none;
resize: vertical;
box-sizing: border-box;
}
.m-form-textarea:focus {
outline: 0;
box-shadow: 0 0 0 2px #04B2C9 inset;
}
.m-form-textarea::placeholder {
color: #C2C2C2;
}
@media screen and (max-width: 768px){
.m-form-textarea {
display: block;
width: 100%;
height: 130px;
margin: 0 0 25px 0;
padding: 20px;
box-sizing: border-box;
}
}
.submit{
margin: 70px 0 0 0;
text-align: center;
}
@media screen and (max-width: 768px) {
.submit{
margin: 10px 0 0 0;
}
}
a.hBack{
color: #D3753B;
text-decoration: underline;
}
.submit input.submit{
-webkit-box-sizing: border-box;
box-sizing: border-box;
-webkit-appearance: button;
appearance: none;
border-radius: 50px;
cursor:pointer;
border:none;
display: block;
width:300px;
background:#505671;
color: #FFF;
margin:20px auto 5px;
padding: 20px 15px;
}
.submit input.submit2{
-webkit-box-sizing: border-box;
box-sizing: border-box;
-webkit-appearance: button;
appearance: none;
border-radius: 50px;
cursor:pointer;
border:none;
display: block;
width:300px;
background:#04B2C9;
color: #FFF;
margin:0 auto 20px;
padding: 20px 15px;
}
@media screen and (max-width: 768px){
.submit input.submit{
width:250px;
padding: 15px 10px;
font-size: 16px;
}
.submit input{
width:250px;
}
.submit input.submit2{
-webkit-box-sizing: border-box;
box-sizing: border-box;
-webkit-appearance: button;
appearance: none;
border-radius: 50px;
cursor:pointer;
border:none;
display: block;
width:250px;
background:#04B2C9;
color: #FFF;
margin:0 auto 20px;
padding: 20px 15px;
}
}
.form_err{
width: 100%;
margin: 0 auto 50px;
color: #E11414;
font-weight: 500;
text-align: center;
}
.form_err a{
color: #404040;
}
a.p_link{
color: #04B2C9;
text-align: center;
}