@charset "utf-8";

@import url("base.css");

/***************************************************************************
 *
 * COMMON STYLE
 *
 ***************************************************************************/

 body {
    background-color: #FFFFFF;
    font-size: 14px;
    line-height: 1.5;
    color: #000000;
    font-family: "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "MS Pゴシック", "MS PGothic", sans-serif;
}

@font-face {
    font-family: 'Montserrat';
    src: url('../fonts/Montserrat-Thin.ttf');
    font-weight: 100;
}

@font-face {
    font-family: 'Montserrat';
    src: url('../fonts/Montserrat-Medium.ttf');
    font-weight: normal;
}
@font-face {
    font-family: 'Montserrat';
    src: url('../fonts/Montserrat-SemiBold.ttf');
    font-weight: 500;
}
@font-face {
    font-family: 'Montserrat';
    src: url('../fonts/Montserrat-Bold.ttf');
    font-weight: bold;
}


@font-face {
    font-family: 'Furuta-Med';
    src: url('../fonts/Futura-Med.otf');
}

.furuta {
    font-family: 'Furuta-Med', sans-serif;
}
.montse {
    font-family: 'Montserrat', sans-serif;
}
.gothic {
    font-family: "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "MS Pゴシック", "MS PGothic", sans-serif;
}

.mincho {
    font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "MS P明朝", "MS PMincho", serif;
}

.inner {
    width: 1000px;
    margin: 0 auto;
}

/*VALIDATE CONTACT*/
.error {
    display: block;
    font-size: 12px;
    color: red;
}

/* HEADER */
#header{
    width: 100%;
    box-shadow: 0 0 2px #dedede;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 9999;
    background: #fff;
}

#header .logo{
    float: left;
}

#header .logo a{
    padding: 29px 30px;
    display: block;
}

#header .logo a img{
    width: 120px;
}

#header .mainMenu{
    float: right;
}

#header .mainMenu .menu{
    overflow: hidden;
}

#header .mainMenu .menu li{
    float: left;
}

#header .mainMenu .menu li a{
    padding: 42px 17px;
    display: block;
    letter-spacing: 1px;
    font-weight: normal;
}

#header .mainMenu .menu li.menuContact{
    margin-left: 20px;
}

#header .mainMenu .menu li.menuContact a{
    letter-spacing: 2px;
    color: #fff;
    padding: 42px 57px;
    background-image: linear-gradient(to right, #0F218B , #03031A);
    background-size: 100% 100%;
}


.btn{
    text-align: center;
}

.btn a{
    color: #fff;
    text-align: center;
    display: inline-block;
    font-size: 15px;
    width: 358px;
    border: 3px solid #fff;
    letter-spacing: 2px;
    padding: 17px 5px 15px;
    border-radius: 30px;
}

.areaContact{
    background: url('../img/common/bg_contact.jpg') no-repeat center/cover;
}

.areaContact .flexBox{
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 91px 0 81px;
}

.areaContact .flexBox .text{
    color: #fff;
    font-size: 24px;
    letter-spacing: 5.5px;
    line-height: 2.6;
}

.areaContact .flexBox .btn{
    margin-right: 64px;
}

/* CONTENT */
#content{
    width: 100%;
}
#main {
    position: relative;
    overflow: hidden;
}
#main .main_photo img {
    width: 100%
}
#main .main_title {
    position: absolute;
    width: 100%;
    top: 50%;
    transform: translateY(-50%);
    font-size: 60px;
    text-align: center;
    color: #fff;
    font-weight: lighter;
    letter-spacing: 14px;
}

/* FOOTER */
#footer{
    width: 100%;
    background: #000;
    padding: 50px 0 136px;
}

#footer .box{
    overflow: hidden;
}

#footer .box .logo{
    width: 134px;
    float: left;
}

#footer .box .footerMenu{
    float: right;
    text-align: right;
    width: 540px;
}

#footer .box .footerMenu .menu li{
    margin-right: 30px;
    margin-bottom: 15px;
    display: inline-block;
}

#footer .box .footerMenu .menu li:nth-child(5n),
#footer .box .footerMenu .menu li:last-child{
    margin-right: 0;
}

#footer .box .footerMenu .menu li a{
    color: #fff;
}

#footer .box .footerMenu .menu li.menuSmall a{
    font-size: 12px;
}

#copyright{
    text-align: right;
    font-size: 12px;
    color: #808080;
    margin-top: 54px;
}

.sp {
    display: none;
}

/* FIX TABLET */
@media (max-width: 1200px) and (min-width: 769px) {
    body {
        width: 1349px;
    }

}
@media (max-width: 988px) and (min-width: 769px) {
    #header .logo {
        width: 120px;
    }
    #header .mainMenu .menu li a {
        font-size: 1.3vw;
        padding: 32px 17px;
        min-height: 82px;
    }
    #header .mainMenu .menu li.menuContact a {

        padding: 32px 40px;

    }

}

/*HOVER EFFECT*/
@media (min-width: 769px) {
    #header .mainMenu .menu li a{
        position: relative;
        overflow: hidden;
        transition: all 200ms linear;
    }

    #header .mainMenu .menu li a:after{
        content: "";
        position: absolute;
        bottom: 0;
        left: 0;
        height: 0;
        width: 100%;
        background: #000;
        transition: all 200ms linear;
    }

    #header .mainMenu .menu li a:hover:after{
        height: 3px;
    }
    #header .mainMenu .menu li.menuContact a:after {
        content: none;
    }
    #header .mainMenu .menu li.menuContact a:hover {
        background-size: 400% 400%;
        animation: moveBG 4s ease infinite;
    }
    @keyframes moveBG {
        0% {
            background-position: 0% 50%;
        }
        50% {
            background-position: 100% 50%;
        }
        100% {
            background-position: 0% 50%;
        }
    }

    #footer .box .footerMenu .menu li a:hover{
        border-bottom: 2px solid #fff;
    }

    .btn a{
        transition: all 200ms linear;
    }

    .btn a:hover{
        background: #fff;
        color: #00378B;
    }
}

/* STYLE MOBILE */
@media (max-width: 768px) {
    .pc {
        display: none;
    }

    .sp {
        display: block;
    }

    .inner {
        width: 100%;
        padding: 0 5.5%;
    }

    #header{
        background: #F6F6F6;
    }

    #header .spBar{
        overflow: hidden;
        padding: 18px 16px;
        position: relative;
    }

    #header .spBar .contactIcon{
        width: 30px;
        position: absolute;
        right: 56px;
        top: 50%;
        transform: translateY(-50%);
    }

    #header .spBar .hamburger{
        width: 19px;
        position: absolute;
        right: 18px;
        top: 50%;
        transform: translateY(-50%);
    }

    #header .spBar .hamburger span{
        transition: all 200ms linear;
        margin-bottom: 7.5px;
        width: 100%;
        height: 1px;
        background: #000;
        display: block;
    }

    #header .spBar .hamburger span:nth-child(3){
        margin-bottom: 0;
    }

    #header .spBar .hamburger.toggle{
        width: 30px;
    }

    #header .spBar .hamburger.toggle span:nth-child(1){
        transform: rotate(45deg) translate(6px, 6px);
    }

    #header .spBar .hamburger.toggle span:nth-child(2){
        opacity: 0;
    }

    #header .spBar .hamburger.toggle span:nth-child(3){
        transform: rotate(-45deg) translate(6px, -6px);
    }

    #header .logo a{
        padding: 0;
    }

    #header .logo a img{
        width: 74px;
    }

    #header .mainMenu{
        width: 100%;
        background: #00378B;
        height: calc(100vh - 64px);
        padding: 15% 8%;
        display: none;
        overflow-y: auto;
    }

    #header .mainMenu .menu li{
        float: none;
        margin-bottom: 22px;
    }

    #header .mainMenu .menu li a{
        color: #fff;
        font-size: 20px;
        padding: 0;
    }

    #header .mainMenu .menu li.menuContact{
        margin-left: 0;
        margin-bottom: 40px;
    }

    #header .mainMenu .menu li.menuContact a{
        background: none;
        padding: 0;
    }

    #header .mainMenu .menu li.menuSmall{
        margin-bottom: 15px;
    }

    #header .mainMenu .menu li.menuSmall a{
        font-size: 12px;
        padding: 0;
    }

    .areaContact .flexBox{
        display: block;
        padding: 38px 0 44px;
    }

    .areaContact .flexBox .text{
        font-size: 14px;
        letter-spacing: 2.5px;
        line-height: 2;
        text-align: center;
        margin-bottom: 20px;
    }

    .areaContact{
        background: #929191;
    }

    .areaContact .flexBox .btn{
        margin-right: 0;
    }

    /*#main*/
    #main .main_title {
        font-size: 38px;
        letter-spacing: 10px;
    }

    #footer{
        background: #1A1311;
        padding: 30px 0 10px;
    }

    #footer .box .logo{
        margin: 0 auto;
        float: none;
        width: 90px;
    }

    #copyright{
        text-align: center;
        font-size: 10px;
    }

    .btn a{
        width: 80%;
        margin: 0 auto;
        background: #fff;
        color: #00378B;
        font-weight: bold;
        font-size: 16px;
        padding: 14px;
    }
}