/*-----------------------------------------------------
font
-------------------------------------------------------*/
@import url(//fonts.googleapis.com/css?family=Open+Sans:400,600);
@import url(http://fonts.googleapis.com/earlyaccess/notosansjapanese.css);
@font-face {
  font-family: 'ico';
  src:  url('../fonts/ico.eot?6557ai');
  src:  url('../fonts/ico.eot?6557ai#iefix') format('embedded-opentype'),
    url('../fonts/ico.ttf?6557ai') format('truetype'),
    url('../fonts/ico.woff?6557ai') format('woff'),
    url('../fonts/ico.svg?6557ai#ico') format('svg');
  font-weight: normal;
  font-style: normal;
}

[class^="icon-"], [class*=" icon-"] {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'ico' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;

  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}


html{
    font-size: 62.5%;
}
body {
    font-family: 'futura-pt',"ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro",'Noto Sans Japanese';
    font-size: 1.45rem;
    line-height: 2;
    letter-spacing: 0.1em;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    color: #333;
    background: transparent;
}
h1{
}
h2{
    font-size: 3.6rem;
    line-height: 1em;
    font-weight: normal;
}
h2 span{
    font-size: 1.6rem;
    padding-left: 3px;
    display: block;
}
h3{
    font-size:1.1em;
    border-bottom: 1px solid #ccc;
    margin-bottom: 12px;
}
h3.important{
    font-size:1.1em;
    line-height: 1.7;
    font-weight: bold;
    color:#197971;
    border-bottom: 2px solid #197971;
    display: inline-block;
    margin-bottom:15px;
}
h4{
    font-size: 1em;
}
p{
    margin-bottom: 1.5em;
}



/*================================
Color管理
================================*/
.ttl_wrap.color_01{
    color:#333;
}
.gnav li a.color_01:after{
    background:#333;
}
/*-----------------------------------*/

.ttl_wrap.color_02{
    color:#4d0f3e;
}
.gnav li a.color_02:after{
    background:#4d0f3e;
}
/*-----------------------------------*/

.ttl_wrap.color_03{
    color:#197971;
}
.gnav li a.color_03:after{
    background:#197971;
}
.btn_main.color_03 .btn_circle{
    background:#197971;
    border: 1px solid #197971;
}
.btn_main.color_03 .btn_txt{
    color: #197971;
    border-bottom: 1px solid #197971;
}
/*-----------------------------------*/

.ttl_wrap.color_04,
.list--history dt{
    color:#FF8C00;
}
.gnav li a.color_04:after{
    background:#FF8C00;
}
/*-----------------------------------*/

.ttl_wrap.color_05,
.list--outline dt{
    color:#365899;/*#2980b9*/
}
.gnav li a.color_05:after{
    background:#365899;
}
.btn_main.color_05 .btn_circle{
    background:#365899;
    border: 1px solid #365899;
}
.btn_main.color_05 .btn_txt{
    color: #365899;
    border-bottom: 1px solid #365899;
}
/*-----------------------------------*/

.ttl_wrap.color_06,
#recruit .list--outline dt{
    color:#e74c3c;
}
.gnav li a.color_06:after{
    background:#e74c3c;
}
.btn_main.color_06 .btn_circle{
    background:#e74c3c;
    border: 1px solid #e74c3c;
}
.btn_main.color_06 .btn_txt{
    color: #e74c3c;
    border-bottom: 1px solid #e74c3c;
}
/*-----------------------------------*/
.gnav li a.color_07,
.ttl_wrap.color_07{
    color:#2c3e50;/*#ff8c00*/
}
.gnav li a.color_07:after{
    background:#2c3e50;
}
/*-----------------------------------*/
.gnav li a.color_01.hover,
.gnav li a.color_02.hover,
.gnav li a.color_03.hover,
.gnav li a.color_04.hover,
.gnav li a.color_05.hover,
.gnav li a.color_06.hover,
.gnav li a.color_07.hover{
    color: #fff;
}
/*.btn_main.color_03.hover .btn_circle,
.btn_main.color_03.hover .btn_circle,
.btn_main.color_05.hover .btn_circle,
.btn_main.color_05.hover .btn_circle,
.btn_main.color_06.hover .btn_circle,
.btn_main.color_06.hover .btn_circle{
    background-color: #fff;
    }*/




    
/*-----------------------------------------------------
base
-------------------------------------------------------*/
html,body{
    height: 100%;
    width: 100%;
    background:#fff;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
body{
    overflow-x:hidden;
}
header,footer{
    z-index: 11;
}
section{
    width: 100%;
    z-index: 10;
    margin-bottom: 60vh;
    padding-top: 100px;
    padding-bottom: 100px;
    position: relative;
    background:#fff;
    border-top: 1px solid #ddd;
    border-bottom: 1px solid #ddd;
    overflow: hidden;
}
section.is-subpage{
    margin-bottom: 0;
    border-top: none;
}
.section--center{
    padding-left: 150px;
    padding-right: 100px;
    max-width: 1440px;
    z-index: 100;
    position: relative;
    margin: 0 auto;
}
.section--left{
    max-width: 1440px;
    margin-right: auto;
}
.section--right{
    max-width: 1440px;
    margin-left: auto;
}
.align--right{
    text-align: right;
}
.section--center + .section--center{
    margin-top: 60px;
}

/*================================
flex
================================*/
.flex{
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-align-items: flex-start;
    -ms-flex-align: start;
    align-items: flex-start;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}
.flex.is--between{
    -webkit-justify-content:space-between;
    -ms-flex-pack:justify;
    justify-content:space-between;
}
.flex.is--center{
    -webkit-align-items:center;
    -ms-flex-align:center;
    align-items:center;
}
.flex.is--flex-end{
    -webkit-align-items:flex-end;
    -ms-flex-align:end;
    align-items:flex-end;
}
.flex.is--stretch{
    -webkit-align-items: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
}
/*================================
grid
================================*/
.grid{
    margin-left: -3px;
    margin-right: -3px;
}
.grid > .grid_item{
    padding-left: 3px;
    padding-right: 3px;
    margin-bottom: 6px;
}
.grid--m{
    margin-left: -10px;
    margin-right: -10px;
}
.grid--m > .grid_item{
    padding-left: 10px;
    padding-right: 10px;
}
.grid.is--col-3 > .grid_item{
    width: calc(100% / 3);
}
/*================================
grow
================================*/
.grow img,
.grow-1 img,
.grow-2 img,
.grow-3 img,
.grow-4 img,
.grow-5 img{
    width:100%;
}
.grow-1{
    -webkit-flex:1;
    -ms-flex:1;
    flex:1;
}
.grow-1_4{
    -webkit-flex:1.4;
    -ms-flex:1.4;
    flex:1.4;
}
.grow-2{
    -webkit-flex:2;
    -ms-flex:2;
    flex:2;
}
.grow-3{
    -webkit-flex:3;
    -ms-flex:3;
    flex:3;
}
.grow-4{
    -webkit-flex:4;
    -ms-flex:4;
    flex:4;
}
.grow-5{
    -webkit-flex:5;
    -ms-flex:5;
    flex:5;
}

/*================================
box
================================*/
.box{
    margin-bottom: 40px;
}
.box img{
    width:100%;
}
/*================================
column
================================*/
.column-2{
    -webkit-column-count:2;
    -moz-column-count:2;
    column-count:2;
    -webkit-column-gap:2.5em;
    -moz-column-gap:2.5em;
    column-gap:2.5em;
    text-align: justify;
    text-justify: inter-ideograph; /* IE用 */
}
/*================================
ttl
================================*/
.ttl_wrap{
    width: 18%;
}
.ttl_wrap.is--inline{
    width: 100%;
}
.ttl{
    margin-bottom: 25px;
}
.subttl{
    padding-left: 0;
    padding-right: 2.5em;
    width: 13em;
    text-align: right;
    position: relative;
}
.subttl:after{
    content: "：";
    position: absolute;
    right: 0.7em;
    top: 0;
}
/*================================
button
================================*/
.btn_circle,
.btn_main,
.btn_txt {
    transition: all 0.5s cubic-bezier(0, 0.71, 0.41, 1);
}

.btn_circle:after{
    transition: all 0.9s cubic-bezier(0, 0.71, 0.41, 1);
}
.btn_main {
    font-size: 1.6rem;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    -ms-flex-align: center;
    -webkit-align-items: center;
    align-items: center;
}
.btn_main.hover {
    text-decoration: none;
    -webkit-transform:translateX(10px);
        -ms-transform:translateX(10px);
            transform:translateX(10px);
}

/*----------------------
text
---------------------*/
.btn_txt {
    font-size: 1em;
    line-height: 1;
    font-weight: bold;
    margin-top: -1.5rem;
    padding-right: 2em;
}
.btn_main.hover .btn_txt {
    padding-right: 4em;
    letter-spacing: 0.15em;
}

/*----------------------
Circle
---------------------*/
.btn_circle {
    width: 4.2rem;
    height: 4.2rem;
    border-radius: 2em;
    line-height: 1;
    position: relative;
    display: block;
    margin-top: 1.4em\9;
}
.btn_circle:before {
    content: "";
    width: 50%;
    height: 1px;
    position: absolute;
    top: 50%;
    left: 0;
    background:  #fff;
}
.btn_circle:after {
    content: "";
    width: 50%;
    height: 1px;
    position: absolute;
    top: 50%;
    left: 0;
    background:  #fff;
    -webkit-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    transform: rotate(45deg);
    -webkit-transform-origin: 100% 0;
    -ms-transform-origin: 100% 0;
    transform-origin: 100% 0;
}
.btn_main.hover .btn_circle:after {
    -webkit-transform: rotate(1125deg);
    -ms-transform: rotate(1125deg);
    transform: rotate(1125deg);
}




/*================================
header
================================*/
header{
    position: fixed;
    width: 100px;
    top: 50%;
    left: 0;
    overflow: hidden;
    -webkit-transform: translate(-100%, -50%);
        -ms-transform: translate(-100%, -50%);
            transform: translate(-100%, -50%);
    border-radius: 0 10px 10px 0;
    background:#f8f8f8;
    border: 1px solid #ddd;
    border-left: none;
    z-index: 100;
    transition: all 0.5s cubic-bezier(0, 0.71, 0.41, 1);
}
header.active{
    -webkit-transform: translate(0, -50%);
        -ms-transform: translate(0, -50%);
            transform: translate(0, -50%);
}
/*header.is--fixed{
    width: 100%;
    position: fixed;
    top: 0;
    left: 50%;
    transform:translateX(-50%);
    border-bottom: 1px solid #ddd;
    }*/
    .tel{
        color: #197971;
        font-size: 2.5rem;
        line-height: 1;
    }

/*================================
gnav
================================*/
.gnavWrap{

}
.menu{
    position: fixed;
    top: 50%;
    -webkit-transform:translate(0,-50%);
        -ms-transform:translate(0,-50%);
            transform:translate(0,-50%);
    left: 0;
    line-height: 1;
    z-index: 20;
    display: block;
    cursor: pointer;
    border:1px solid #000;
    border-left: none;
    transition: all 0.5s cubic-bezier(0, 0.71, 0.41, 1);
}
.menu.active{
    -webkit-transform:translate(-100px,-50%);
        -ms-transform:translate(-100px,-50%);
            transform:translate(-100px,-50%);
}
.menu div{
    padding: 10px 12px;
    letter-spacing: 0;
    font-weight: bold;
    font-size: 1.2em;
    background: #000;
    color: #fff;
    position: relative;
    z-index: 100;
}
.menu div:after{
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 50%;
    width: 0;
    height: 100%;
    background: #fff;
    z-index: -100;
    transition: all 0.5s cubic-bezier(0, 0.71, 0.41, 1);
}
.menu.hover div{
    color: #333;
}
.menu.hover div:after{
    width: 100%;
    left: 0;
}
/*================================
gnav
================================*/
.gnavWrap{

}
.gnav{
}
.gnav li + li{
    border-top: 1px solid #ddd;
}
.gnav li a{
    text-align: center;
    font-size: 1.5rem;
    display: block;
    padding:15px 0;
    line-height: 1;
    position: relative;
    z-index: 1;
}
.gnav .gnavlogo{
    padding:5px 10px;
}
.icon-gnavlogo:before {
  font-size: 30px;
}
.gnav li a:after{
    content: "";
    width: 0;
    height: 100%;
    position: absolute;
    top: 0;
    left: 50%;
    z-index: -1;
    transition: all 0.5s cubic-bezier(0, 0.71, 0.41, 1);
}
.gnav li a.hover,
.gnav li a.active{
    color: #fff;
}
.gnav li a.hover:after,
.gnav li a.active:after{
    content: "";
    width: 100%;
    left: 0;
}
.icon-gnavlogo:before {
  content: "\e900";
}
.gnavlogo img{
    height: 100%;
}
/*================================
btn_scroll
================================*/
.btn_scroll{
    color: #000;
    position: absolute;
    bottom: 30px;
    left: 50%;
    transform:translate(-50%, 0) rotateY(0deg);
    transform-origin:center center;
    z-index: 100;
    text-align: center;
    font-size: 1.2em;

}
.btn_scroll_inner{
    width: 32px;
    height: 32px;
    margin: 5px auto 0;
    border-radius: 100px;
    position: relative;
    border:1px solid #000;
    background: #000;
}

.btn_scroll_inner:before,
.btn_scroll_inner:after{
    content: "";
    display: block;
    position: absolute;
    bottom: 0;
    left:50%;
    width: 1px;
    height: 36px;
    background: #fff;
    transform-origin:center bottom;
}
.btn_scroll_inner:before{
    transform:rotate(-30deg);
}
.btn_scroll_inner:after{
    transform:rotate(30deg);
}
.btn_scroll.hover{
    transform:translate(-50%, 10px) rotateY(-720deg);
}
.btn_scroll.hover .btn_scroll_inner:before{
    transform:rotate(-15deg);
}
.btn_scroll.hover .btn_scroll_inner:after{
    transform:rotate(15deg);
}


.btn_scroll,
.btn_scroll_inner,
.btn_scroll_inner:before,
.btn_scroll_inner:after{
    transition: all 0.9s cubic-bezier(0, 0.71, 0.41, 1);
}

/*================================
top
================================*/
#top{
    width: 100vw;
    height: 100vh;
    /*height: calc(100vh - 125px);
    margin-top: 125px;*/
    position: relative;
}
.showMenuTrigger{
    position: absolute;
    top: 30%;
}
.sitettl{
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
    width: 100%;
    height: 100%;
    position: fixed;
    z-index: 10;
}
.logo{
    width: 100%;
    margin: auto;
    text-align: center;
    font-weight: normal;
}
.logo > span{
    color: #fff;
    display: block;
    line-height: 1;
    text-align: center;
}
.logo > .eng{
    font-size: 6rem;
    display: block;
    font-weight: normal;
    margin-top: 7px;
    margin-bottom: 7px;
}
.logo .copy{
    font-size: 1.6rem;
}
.logo .co_name{
    font-size: 1.8rem;
    line-height: 2;
    margin-bottom: 10px;
}
/*================================
movie
================================*/
.bg_movie{
    width: 100vw;
    height: 100vh;
    top: 0;
    left: 0;
    position: fixed;
    z-index: 1;
}
.bg_movie.bgImage_sp{
    background: url(../img/mainImage_sp.jpg) no-repeat center center;
    background-size: cover;
    z-index: -1000;
}
.bg_movie.bgImage{
    background: url(../img/mainImage.jpg) no-repeat center center;
    background-size: cover;
}
/*================================
business
================================*/
.box-business{
    background:#f4f4f4;
    height: 100%;
    padding: 30px 30px 32px;
}
.ico_biz{
    padding-right: 30px;
    color: #197971;
    font-size: 85px;
    line-height: 1;
}
.icon-ico_business_01:before {
  content: "\e901";
}
.icon-ico_business_02:before {
  content: "\e902";
}
.icon-ico_business_03:before {
  content: "\e903";
}
.icon-ico_business_04:before {
  content: "\e904";
}
.icon-ico_business_05:before {
  content: "\e905";
}
.icon-ico_business_06:before {
  content: "\e906";
}


.box-business > div{
    -webkit-flex:1;
    -ms-flex:1;
    flex:1;
}
.box-business p{
    margin-bottom: 0;
    line-height: 1.75;
}
.list--business li{
    margin-bottom: 11px;
    padding-bottom: 12px;
    border-bottom: 1px solid #ccc;
}
.list--business dt{
    min-width: 10.5em;
    margin-right: 1.5em;
    border-right: 1px solid #ccc;
}
.list--works ul{
    padding-left: ;
}
.list--works dt {
    min-width: 8.5em;
}
.list--works + .list--works{
    margin-top: 1em;
    margin-bottom: 2em;
}
.list--works > .flex {
    margin-bottom: 15px;
}
/*================================
table
================================*/
dl{
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
}
dt{
    min-width: 7em;
    padding-right: 1em;
}
/*================================
history
================================*/

.list--history{
    height: 350px;
    padding-right:1.5rem;
    overflow: auto;
}
.list--history li{
    margin-bottom: 20px;
}
.list--history dt{
    min-width: 9em;
}
.img--history{
    /*height: 350px;
    overflow: hidden;*/
    padding-left: 45px;
    margin-right: calc(50% - 50vw + 25px);
}
.img--history img{
    width: 100%;
}
/*================================
outline history 
================================*/

.list--outline,
.list--history{
    text-align: left;
    vertical-align: top;
    line-height: 1.75;
}
.list--outline ul{
    margin-top: 0;
}
.list--outline li{
    margin-bottom: 14px;
    list-style-type: none;
}
.list--outline dt,
.list--outline dd{
    padding: 0;
    margin: 0;
}
.list--outline dt,
.list--history dt{
    display: inline-block;
    vertical-align: top;
    text-indent: 2px;
}
.list--outline dd{
    width: 100%;
}


#outline p{
    margin-bottom: 2rem;
    text-align: justify;
    text-justify: inter-ideograph; /* IE用 */
}
.marker{
    margin-right: 5px;
}
.marker:before{
    content: "【";
    margin-left: -0.5em;
}
.marker:after{
    content: "】";
}
/*================================
access
================================*/
#access{
    padding-bottom: 0;
}
#map{
    height: 700px;
    margin-right: calc( 50% - 50vw + 25px);
    margin-left: calc( 50% - 50vw - 25px);
}


/*================================
footer
================================*/
footer{
    padding: 30px;
    background:#fff;
    display: relative;
}
footer{
    background:#fff;
    position: relative;
}
footer ul{
    margin-top: 10px;
    margin-bottom: 5px;
    display: flex;
}
footer li{
}
footer li a:hover{
    text-decoration: underline;
}
footer li + li{
    margin-left: 10px;
}
.copyright{
    margin-top: 15px;
    font-size: 0.6em;
}
.btn_sns{
    margin-left: 10px;
    position: relative;
    top: 5px;
}
.ninja_onebutton{
    margin-left: 10px;
}
.ninja_onebutton_output .facebook_like_button_count{
    width: 88px !important;
}
/*
.fb-like iframe{
    margin-top: -9px;
}*/
/*-----------------------------------------------------
loading
-------------------------------------------------------*/
.overlay{
    width: 100vw;
    height: 100vh;
    position: fixed;
    display: flex;
    align-items:center;
    justify-content:center;
    background: #197971;
    z-index: 9999;
    top: 0;
    left: 0;
    overflow: hidden;
    transition: all .5s cubic-bezier(.36,.03,0,.99);
}
.overlay > .logo{
    transition: all 0.3s cubic-bezier(.36,.03,0,.99);
}
.overlay .logo > .eng{
    margin: 0;
    font-size: 1em;
    margin-bottom: 5px;
}
.overlay .logo > .eng img{
    width: 143px;
}
.overlay.hide{
    height: 0;
    top: 50%;
}
.overlay.hide .logo{
    opacity: 0;
}

.loading > .circle{
    display: block;
    width: 30px;
    height: 30px;
    margin: 0 auto;
    background-color: #fff;
    border-radius: 100%;
    -webkit-animation: loading .9s infinite cubic-bezier(.36,.03,0,.99);
    animation: loading .9s infinite cubic-bezier(.36,.03,0,.99);
}
.loading > .text{
    color: #fff;
    -webkit-animation: flash .1s infinite ;
    animation: flash .1s infinite ;
}

@-webkit-keyframes loading {
    0% { -webkit-transform: scale(0) }
    100% {
        -webkit-transform: scale(1.0);
        opacity: 0;
    }
}

@keyframes loading {
    0% { 
        -webkit-transform: scale(0);
        transform: scale(0);
    } 100% {
        -webkit-transform: scale(1.0);
        transform: scale(1.0);
        opacity: 0;
    }
}

@-webkit-keyframes flash {
    50% {
        opacity: 0.6;
    }
}

@keyframes flash {
    50% {
        opacity: 0.6;
    }
}
/*================================
padding
================================*/
.pad-T-s{padding-top:1.5rem;}
.pad-B-s{padding-bottom:1.5rem;}
.pad-L-s{padding-left:1.5rem;}
.pad-R-s{padding-right:1.5rem;}
.pad-T-m{padding-top:3rem;}
.pad-B-m{padding-bottom:3rem;}
.pad-L-m{padding-left:3rem;}
.pad-R-m{padding-right:3rem;}
.pad-T-l{padding-top:6rem;}
.pad-B-l{padding-bottom:6rem;}
.pad-B-xl{padding-bottom:9rem;}
.pad-L-l{padding-left:6rem;}
.pad-R-l{padding-right:6rem;}


.mar-R-s{margin-right:1.5rem;}

