﻿/* ヘッダー */
#header {
    position: fixed;
    z-index: 9999;
    top: 0;
    left: 0;
    width: 100%
}

#header .header-bar {
    position: absolute;
    top: -1px;
    left: 0;
    width: 100%;
    background-color: white;
    z-index: 10;
    -webkit-transition: -webkit-transform 0.5s cubic-bezier(0.215, 0.61, 0.355, 1) 0.4s;
    transition: -webkit-transform 0.5s cubic-bezier(0.215, 0.61, 0.355, 1) 0.4s;
    transition: transform 0.5s cubic-bezier(0.215, 0.61, 0.355, 1) 0.4s;
    transition: transform 0.5s cubic-bezier(0.215, 0.61, 0.355, 1) 0.4s, -webkit-transform 0.5s cubic-bezier(0.215, 0.61, 0.355, 1) 0.4s;
    -webkit-transform: translateY(-100%);
    transform: translateY(-100%)
}

#header .header-bar h1 {
    font-size: 0
}

#header .header-bar h1 a {
    display: inline-block
}

#header .header-bar h1 img {
    width: 100%
}

#header .header-bar.will-appear {
    -webkit-transform: translateY(0);
    transform: translateY(0)
}

#header .nav-toggle {
    position: absolute;
    z-index: 10;
    -webkit-transition: opacity 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0.6s;
    transition: opacity 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0.6s;
    opacity: 0
}

#header .nav-toggle .bar {
    background: white;
    border-radius: 50%;
    cursor: pointer
}

#header .nav-toggle .bar:after,#header .nav-toggle .bar:before {
    content: '';
    display: block;
    position: absolute;
    margin: auto;
    left: 0;
    right: 0;
    background: #00a8a9;
    -webkit-transition: all 0.4s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: all 0.4s cubic-bezier(0.215, 0.61, 0.355, 1)
}

#header .nav-toggle .label {
    position: absolute;
    margin: auto;
    top: 0;
    bottom: 0
}

#header .nav-toggle .label:before,#header .nav-toggle .label:after {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    width: 100%;
    height: 100%;
    background: right center no-repeat;
    background-size: auto 100%
}

#header .nav-toggle .label:before {
    background-image: url("../img/cmn/menu-open.png")
}

#header .nav-toggle .label:after {
    opacity: 0;
    background-image: url("../img/cmn/menu-close.png")
}

#header .nav-toggle.will-appear {
    opacity: 1
}

#header .nav-global {
    position: absolute;
    top: 0;
    left: 0;
    width: 100vw;
    height: 0;
    z-index: 10;
    background: #00a8a9;
    overflow: hidden;
    -webkit-transition: height 0.4s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: height 0.4s cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transform-origin: top right;
    transform-origin: top right
}

#header .nav-global .nav-container {
    width: 100%;
    height: 100vh
}

#header .nav-global .nav-container ul {
    margin: auto
}

#header .nav-global .nav-container ul a {
    position: relative;
    color: white;
    font-weight: bold
}

#header .nav-global .nav-container ul a:after {
    content: '';
    display: inline-block;
    position: absolute;
    bottom: -4px;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: white;
    -webkit-transition: -webkit-transform 0.4s cubic-bezier(0.19, 1, 0.22, 1);
    transition: -webkit-transform 0.4s cubic-bezier(0.19, 1, 0.22, 1);
    transition: transform 0.4s cubic-bezier(0.19, 1, 0.22, 1);
    transition: transform 0.4s cubic-bezier(0.19, 1, 0.22, 1), -webkit-transform 0.4s cubic-bezier(0.19, 1, 0.22, 1);
    -webkit-transform-origin: right top;
    transform-origin: right top;
    -webkit-transform: scaleX(0);
    transform: scaleX(0)
}

#header .nav-global .nav-container .lang {
    color: #80d4d4
}

#header .nav-global .nav-container .lang a {
    display: inline-block;
    margin: 0 .5em;
    padding-bottom: .2em;
    color: white;
    font-weight: 500
}

#header .nav-global .nav-container .lang a.is-active {
    pointer-events: none;
    border-bottom: solid 1px white
}

#header .nav-global .nav-container>* {
    opacity: 0;
    -webkit-transform: translateY(10px);
    transform: translateY(10px);
    -webkit-transition: opacity 0.3s cubic-bezier(0.215, 0.61, 0.355, 1),-webkit-transform 0.3s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: opacity 0.3s cubic-bezier(0.215, 0.61, 0.355, 1),-webkit-transform 0.3s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: transform 0.3s cubic-bezier(0.215, 0.61, 0.355, 1),opacity 0.3s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: transform 0.3s cubic-bezier(0.215, 0.61, 0.355, 1),opacity 0.3s cubic-bezier(0.215, 0.61, 0.355, 1),-webkit-transform 0.3s cubic-bezier(0.215, 0.61, 0.355, 1)
}

#header.is-open .header-nav:before {
    height: 100vh
}

#header.is-open .header-nav:after {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0);
    -webkit-transition-delay: .4s;
    transition-delay: .4s
}

#header.is-open .nav-global {
    height: 100vh
}

#header.is-open .nav-global .nav-container>* {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0);
    -webkit-transition-delay: .4s;
    transition-delay: .4s
}

#header.is-open .nav-toggle .bar:before {
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg)
}

#header.is-open .nav-toggle .bar:after {
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg)
}

#header.is-open .nav-toggle .label:before {
    opacity: 0
}

#header.is-open .nav-toggle .label:after {
    opacity: 1
}

@media only screen and (min-width: 769px) {
    #header .header-bar {
        height:80px
    }

    #header .header-bar h1 {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        height: 30px;
        margin-top: 25px;
        margin-left: 34px;
        width: 412px
    }

    #header .header-bar h1 a:hover {
        opacity: 0.7
    }

    #header .header-bar .nav {
        position: absolute;
        top: 34px;
        right: 30px;
        font-size: 0;
        text-align: right
    }

    #header .header-bar .nav li {
        display: inline-block
    }

    #header .header-bar .nav li a {
        display: inline-block;
        margin: 0 14px;
        letter-spacing: 0.1em;
        font-size: 14px;
        font-weight: 600;
        -webkit-transition: color 0.2s cubic-bezier(0.215, 0.61, 0.355, 1);
        transition: color 0.2s cubic-bezier(0.215, 0.61, 0.355, 1)
    }

    #header .header-bar .nav li a:hover {
        color: #00a8a9
    }

    #header .header-nav {
        display: none
    }

    #header .header-nav:before,#header .header-nav:after {
        content: '';
        position: absolute;
        width: 50%;
        left: 0;
        pointer-events: none
    }

    #header .header-nav:before {
        bottom: -100vh;
        height: 0;
        background: white;
        -webkit-transition: height 0.4s cubic-bezier(0.215, 0.61, 0.355, 1);
        transition: height 0.4s cubic-bezier(0.215, 0.61, 0.355, 1);
        -webkit-transform-origin: bottom right;
        transform-origin: bottom right
    }

    #header .header-nav:after {
        top: calc(50vh - 100px);
        height: 200px;
        background: url("../img/top/site-title.svg") center center no-repeat;
        background-size: 65% auto;
        opacity: 0;
        -webkit-transform: translateY(-10px);
        transform: translateY(-10px);
        -webkit-transition: opacity 0.3s cubic-bezier(0.215, 0.61, 0.355, 1),-webkit-transform 0.3s cubic-bezier(0.215, 0.61, 0.355, 1);
        transition: opacity 0.3s cubic-bezier(0.215, 0.61, 0.355, 1),-webkit-transform 0.3s cubic-bezier(0.215, 0.61, 0.355, 1);
        transition: transform 0.3s cubic-bezier(0.215, 0.61, 0.355, 1),opacity 0.3s cubic-bezier(0.215, 0.61, 0.355, 1);
        transition: transform 0.3s cubic-bezier(0.215, 0.61, 0.355, 1),opacity 0.3s cubic-bezier(0.215, 0.61, 0.355, 1),-webkit-transform 0.3s cubic-bezier(0.215, 0.61, 0.355, 1)
    }

    #header .nav-toggle {
        top: 30px;
        right: 30px
    }

    #header .nav-toggle .bar {
        width: 60px;
        height: 60px;
        -webkit-box-shadow: 0 20px 40px 0 rgba(0,0,0,0.2);
        box-shadow: 0 20px 40px 0 rgba(0,0,0,0.2);
        -webkit-transition: all 0.3s cubic-bezier(0.215, 0.61, 0.355, 1);
        transition: all 0.3s cubic-bezier(0.215, 0.61, 0.355, 1)
    }

    #header .nav-toggle .bar:after,#header .nav-toggle .bar:before {
        width: 22px;
        height: 4px;
        -webkit-transition: all 0.3s cubic-bezier(0.215, 0.61, 0.355, 1);
        transition: all 0.3s cubic-bezier(0.215, 0.61, 0.355, 1)
    }

    #header .nav-toggle .bar:before {
        top: 25px
    }

    #header .nav-toggle .bar:after {
        top: 33px
    }

    #header .nav-toggle .bar:hover {
        -webkit-transform: scale(1.1);
        transform: scale(1.1)
    }

    #header .nav-toggle .label {
        right: 72px;
        width: 60px;
        height: 13px
    }

    #header .nav-global {
        width: 50%;
        left: 50%
    }

    #header .nav-global .nav-container {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex
    }

    #header .nav-global .nav-container ul {
        margin-left: 6.25rem
    }

    #header .nav-global .nav-container ul li:nth-of-type(n+2) {
        margin-top: 2.37rem
    }

    #header .nav-global .nav-container ul a {
        font-size: 2.2vw
    }

    #header .nav-global .nav-container ul a:hover:after {
        -webkit-transform-origin: 0 0;
        transform-origin: 0 0;
        -webkit-transform: scaleX(1);
        transform: scaleX(1)
    }

    #header .nav-global .nav-container .lang {
        position: absolute;
        right: 2.18rem;
        bottom: 2.18rem
    }

    #header .nav-global .nav-container .lang a {
        font-size: .8rem;
        -webkit-transition: color .3s;
        transition: color .3s
    }

    #header .nav-global .nav-container .lang a:hover {
        color: rgba(255,255,255,0.6)
    }

    #header.is-open .nav-toggle .bar:after,#header.is-open .nav-toggle .bar:before {
        top: 29px
    }
}

@media only screen and (min-width: 769px) and (max-width: 1040px) {
    #header .header-bar h1 {
        width:35.294vw
    }

    #header .header-bar .nav li a {
        margin: 0 1.029vw;
        font-size: 1.47vw
    }
}

@media only screen and (max-width: 768px) {
    #header .header-bar {
        height:16vw
    }

    #header .header-bar h1 {
        margin-top: 5.333vw;
        margin-left: 5.333vw;
        width: 58.666vw
    }

    #header .header-bar h1 a:nth-of-type(1) {
        width: 28.666vw
    }

    #header .header-bar h1 a:nth-of-type(2) {
        width: 30vw
    }

    #header .header-bar .nav {
        display: none
    }

    #header .nav-toggle {
        top: 1.333vw;
        right: 2vw
    }

    #header .nav-toggle .bar {
        width: 13.333vw;
        height: 13.333vw;
        -webkit-transition: -webkit-box-shadow 0.3s cubic-bezier(0.215, 0.61, 0.355, 1);
        transition: -webkit-box-shadow 0.3s cubic-bezier(0.215, 0.61, 0.355, 1);
        transition: box-shadow 0.3s cubic-bezier(0.215, 0.61, 0.355, 1);
        transition: box-shadow 0.3s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-box-shadow 0.3s cubic-bezier(0.215, 0.61, 0.355, 1)
    }

    #header .nav-toggle .bar:after,#header .nav-toggle .bar:before {
        width: 5.333vw;
        height: .8vw
    }

    #header .nav-toggle .bar:before {
        top: 5.333vw
    }

    #header .nav-toggle .bar:after {
        top: 7.2vw
    }

    #header .nav-global {
        width: 100vw
    }

    #header .nav-global .nav-container {
        padding-left: 10.666vw
    }

    #header .nav-global .nav-container ul {
        margin-top: calc((100vh - 120vw) / 2);
        margin-bottom: 13.333vw
    }

    #header .nav-global .nav-container ul li {
        margin-bottom: 10.666vw
    }

    #header .nav-global .nav-container ul a {
        font-size: 8vw
    }

    #header .nav-global .nav-container .lang {
        margin-left: -1.334vw
    }

    #header.is-open .nav-toggle .bar {
        -webkit-box-shadow: 0 0 12px 3px rgba(0,0,0,0.2);
        box-shadow: 0 0 12px 3px rgba(0,0,0,0.2)
    }

    #header.is-open .nav-toggle .bar:after,#header.is-open .nav-toggle .bar:before {
        top: 6.266vw
    }
}

/* フッター */
#footer {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background-color: white;
    z-index: 10;
    text-align: right;
    -webkit-transition: -webkit-transform 0.5s cubic-bezier(0.215, 0.61, 0.355, 1) 0.4s;
    transition: -webkit-transform 0.5s cubic-bezier(0.215, 0.61, 0.355, 1) 0.4s;
    transition: transform 0.5s cubic-bezier(0.215, 0.61, 0.355, 1) 0.4s;
    transition: transform 0.5s cubic-bezier(0.215, 0.61, 0.355, 1) 0.4s, -webkit-transform 0.5s cubic-bezier(0.215, 0.61, 0.355, 1) 0.4s;
    -webkit-transform: translateY(100%);
    transform: translateY(100%)
}

#footer .copyright {
    display: inline-block;
    background: right top no-repeat;
    background-size: contain;
    color: rgba(255,255,255,0)
}

#footer.will-appear {
    -webkit-transform: translateY(0);
    transform: translateY(0)
}

@media only screen and (min-width: 769px) {
    #footer {
        height:80px
    }

    #footer .copyright {
        width: 168px;
        height: 30px;
        margin-top: 25px;
        margin-right: 34px;
        background-image: url("../img/cmn/copyright.png")
    }
}

@media only screen and (max-width: 768px) {
    #footer {
        height:16vw
    }

    #footer .copyright {
        width: 31.333vw;
        height: 5.866vw;
        margin-top: 5.333vw;
        margin-right: 6.4vw;
        background-image: url("../img/cmn/copyright-sp.png")
    }
}

.p-inner #header .header-bar,.p-inner #header .nav-toggle {
    -webkit-transition: none;
    transition: none;
    -webkit-transform: none;
    transform: none;
    opacity: 1
}

.p-inner #footer {
    position: relative;
    border-top: solid 1px #ccc
}

.contents {
    line-height: 2;
    position: relative;
    overflow: hidden;
    width: 100%
}

.contents img {
    max-width: 100%;
    height: auto
}

@media only screen and (min-width: 769px) {
    .contents {
        padding-top:80px;
        padding-bottom: 70px;
        font-size: 16px
    }
}

@media only screen and (max-width: 768px) {
    .contents {
        padding-top:16vw;
        padding-bottom: 50px;
        font-size: 13px
    }
}

@media only screen and (max-width: 768px) and (max-width: 374px) {
    .contents {
        font-size:3.47594vw
    }
}
