@charset "utf-8";
/* CSS Document */

/*----------------------------------------
  header.css
----------------------------------------*/

header {
    position: fixed;
    width: 100%;
    top: 0;
    z-index: 999;
}

header .l-headerWrap .p-navSpc__list a {
    background-repeat: no-repeat;
    background-size: 95px;
}

header .l-headerWrap .l-navSpc__list .p-navSpc__list .dropdown a {
    background-image: none;
}

header .l-headerWrap .l-navSpc__list .p-navSpc__list--about a {
    background-image: url(../images/common/nav-about.png);
}

header .l-headerWrap .l-navSpc__list .p-navSpc__list--program a {
    background-image: url(../images/common/nav-program.png);
}

header .l-headerWrap .l-navSpc__list .p-navSpc__list--flow a {
    background-image: url(../images/common/nav-flow.png);
    background-position-x: 65%;
    background-size: 55px;
}

header .l-headerWrap .l-navSpc__list .p-navSpc__list--company a {
    background-image: url(../images/common/nav-company.png);
}

header .l-headerWrap .l-navSpc__list .p-navSpc__list--contact a {
    background: #e77787;
}

header .l-headerWrap .l-navSpc__list .p-navSpc__list--contact a p {
    font-size: 12px;
    line-height: 1;
    color: #fff;
}

header .l-headerWrap .l-navSpc__list .p-navSpc__list--contact a::before {
    content: '\f0e0';
    font-family: "Font Awesome 5 Free";
    font-size: 1.8em;
    line-height: 1;
    color: #fff;
    display: inline-block;
    font-weight: bold;
}

@media (min-width: 1160px) {
    header .l-headerWrap {
        /*! background: #fff; */
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: justify;
        -ms-flex-pack: justify;
        justify-content: space-between;
        padding: 10px 30px;
        align-items: center;
        transition: all .3s;
    }
    header.transform .l-headerWrap {
        background: rgba(255, 255, 255, 0.9);
        transition: all .3s;
    }
}

@media (min-width: 1160px) and (max-width: 1350px) {
    header .l-headerWrap .l-logoSpc a {
        width: 25vw !important;
    }
}

@media (min-width: 1160px) {
    header .l-headerWrap .l-navSpc__list ul li {
        /*margin-right: 1em;*/
    }
    header .l-headerWrap .l-navSpc__list ul li a {
        font-size: 0.9em;
    }
    header .l-headerWrap .l-logoSpc a {
        display: block;
        width: 360px;
    }
    header .l-headerWrap .l-navSpc nav {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        height: 100%;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
    }
    header .l-headerWrap .l-navSpc__list ul {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        align-items: center;
    }
    header .l-headerWrap .l-navSpc__list .p-navSpc__list {
        border-left: dotted 2px #b5b5b5;
        height: 70px;
    }
    header .l-headerWrap .l-navSpc__list .p-navSpc__list--company {
        border-right: dotted 2px #b5b5b5;
        margin-right: 2rem;
    }
    header .l-headerWrap .l-navSpc__list .p-navSpc__list a {
        height: 100%;
        padding: 15px 30px;
        background-repeat: no-repeat;
        background-position: center bottom 5px;
    }
    /*contact*/
    header .l-headerWrap .l-navSpc__list .p-navSpc__list--contact a {
        border-radius: 100px;
        display: inline-block;
        text-align: center;
        padding: 18px;
    }
    header .l-headerWrap .l-navSpc__list .p-navSpc__list--contact a:hover {
        background: #f9e2e6;
    }
    header .l-headerWrap .l-navSpc__list .p-navSpc__list--contact a:hover p {
        color: #e77787;
    }
    header .l-headerWrap .l-navSpc__list .p-navSpc__list--contact a:hover::before {
        color: #e77787;
    }
    header .l-headerWrap .l-navSpc__list ul li a.c-border_effect {
        position: relative;
        display: inline-block;
    }
    header .l-headerWrap .l-navSpc__list ul li a.c-border_effect::after {
        position: absolute;
        bottom: -13px;
        left: 0;
        content: '';
        width: 100%;
        height: 2px;
        background: #e77787;
        -webkit-transform: scale(0, 1);
        transform: scale(0, 1);
        -webkit-transform-origin: right top;
        transform-origin: right top;
        -webkit-transition: -webkit-transform .3s;
        transition: -webkit-transform .3s;
        transition: transform .3s;
        transition: transform .3s, -webkit-transform .3s;
    }
    header .l-headerWrap .l-navSpc__list ul li a.c-border_effect:hover {
        color: #e77787;
        -webkit-transition: all 0.2s ease;
        transition: all 0.2s ease;
    }
    header .l-headerWrap .l-navSpc__list ul li a.c-border_effect:hover::after {
        -webkit-transform-origin: left top;
        transform-origin: left top;
        -webkit-transform: scale(1, 1);
        transform: scale(1, 1);
    }
    @-webkit-keyframes top-bottom {
        0% {
            opacity: 0;
            -webkit-transform: translateY(-100px);
            transform: translateY(-100px);
        }
        100% {
            opacity: 1;
            -webkit-transform: translateY(0);
            transform: translateY(0);
        }
    }
    @keyframes top-bottom {
        0% {
            opacity: 0;
            -webkit-transform: translateY(-100px);
            transform: translateY(-100px);
        }
        100% {
            opacity: 1;
            -webkit-transform: translateY(0);
            transform: translateY(0);
        }
    }
    /*ドロップダウンメニュー*/
    .dropdown {
        display: none;
    }
    .dropdown.open {
        display: block;
    }
    .l-navSpc__list .dropdown dd a:hover {
        background: #d8a9b3;
        color: #fff;
    }
    .l-navSpc__list {
        position: relative;
    }
    .l-navSpc__list dl {
        background: #f1e8ea;
        position: absolute;
        z-index: 999;
    }
    .l-navSpc__list dl dd a {
        font-size: 0.8em!important;
        border-bottom: solid 1px #ddd;
        padding: 1em 2em;
        display: block;
        transition: all .3s ease;
    }
    .l-navSpc__list dl dd a:hover {
        background: #f1f1f1;
        opacity: 1;
        transition: all .3s ease;
    }
    .l-navSpc__list dl dd:last-child a {
        border-bottom: none;
    }
}

/*************************************************************************/

@media (max-width: 1159px) {
    header .l-headerWrap {
        transition: all .3s;
    }
    header.transform .l-headerWrap {
        background: rgba(255, 255, 255, 0.7);
        transition: all .3s;
    }
    header .l-headerWrap .l-logoSpc a {
        display: inline-block;
        padding: 10px 0 10px 10px;
    }
    header .l-headerWrap .l-logoSpc a img {
        width: 45vw;
        max-width: 280px;
        min-width: 210px;
    }
    header .l-headerWrap .menu--sp {
        height: 20px;
        position: fixed;
        right: 20px;
        top: 20px;
        width: 30px;
        z-index: 9999;
    }
    header .l-headerWrap .menu--sp span {
        background: #898989;
        display: block;
        display: block;
        height: 2px;
        position: absolute;
        -webkit-transition: -webkit-transform .3s;
        transition: -webkit-transform .3s;
        transition: transform .3s;
        transition: transform .3s, -webkit-transform .3s;
        width: 100%;
    }
    header .l-headerWrap .menu--sp span.active {
        background: #898989;
    }
    header .l-headerWrap .menu--sp span:nth-of-type(1).active {
        top: 8px;
        -webkit-transform: rotate(45deg);
        transform: rotate(45deg);
    }
    header .l-headerWrap .menu--sp span:nth-of-type(2) {
        top: 9px;
    }
    header .l-headerWrap .menu--sp span:nth-of-type(2).active {
        -webkit-transform: scaleX(0);
        transform: scaleX(0);
    }
    header .l-headerWrap .menu--sp span:nth-of-type(3) {
        bottom: 0px;
    }
    header .l-headerWrap .menu--sp span:nth-of-type(3).active {
        bottom: 10px;
        -webkit-transform: rotate(135deg);
        transform: rotate(135deg);
    }
    header .l-headerWrap nav {
        display: none;
        background-color: #fff;
        position: absolute;
        top: 0;
        width: 100%;
        height: 100vh;
        padding: 100px 20px 0;
        z-index: 999;
        position: fixed;
    }
    header .l-headerWrap .p-navSpc__list {
        margin-bottom: 1.5em;
        border-bottom: dotted 2px #b5b5b5;
        padding-bottom: 1.5em;
    }
    header .l-headerWrap .p-navSpc__list a {
        background-position: right bottom;
        padding: 0 90px 10px 0;
    }
    header .l-headerWrap .p-navSpc__list--contact a {
        display: block;
        text-align: center;
        padding: 1rem;
    }
    header .l-headerWrap .l-navSpc__list .p-navSpc__list--contact a p {
        font-size: 18px;
        letter-spacing: 1px;
        display: inline-block;
        margin: 0 10px;
    }
    header .l-headerWrap .l-navSpc__list .p-navSpc__list--contact a::before {
        font-size: 20px;
        vertical-align: middle;
    }
    .l-navSpc__list dl dd a {
        color: #999;
        font-size: 0.9rem;
    }
    .l-navSpc__list dl dd a::before {
        content: '-';
        color: #999;
        margin-right: 0.5em;
    }
    .l-navSpc__list dl dd:first-child {
        margin-top: 0.5em;
    }
}