body {
    color: #fff;
    font-family: Helvetica, sans-serif;
    font-weight: normal;
    font-size: 16px;
    line-height: 1.6;
    /* 黒とグレーのグラデーションに変更 */
    background: linear-gradient(-45deg, #000000, #333333, #000000, #333333);
    /* グラデーションを動かすためのサイズを拡大 */
    background-size: 400% 400%;
    /* アニメーションを適用 */
    animation: gradientAnimation 20s ease infinite;
    padding-top: 30vh;
  }
  
  @keyframes gradientAnimation {
    0% {
      background-position: 0% 50%;
    }
    50% {
      background-position: 100% 50%;
    }
    100% {
      background-position: 0% 50%;
    }
  }
  
  
  
  

@media screen and (max-width: 991px),print {
    body {
        font-size: 12px;
        letter-spacing: .1rem;
    }
}

img {
    width: 100%;
    height: auto;
}

a {
    text-decoration: none;
    color: #fff;
}

a:hover {
    opacity: 0.7;
}

.container {
    width: 80%;
    max-width: 2300px;
    margin: auto;
}

ul {
    list-style: none;
}

.clear::after {
    content: "";
    clear: both;
    display: block;
}

.br-sp {
    display: none;
}

/* =================================
header
================================= */
header {
    height: 10vh;
    width: 100%;
    position: fixed;
    top: 0;
    left: 0;
    background-color: rgba(12%, 12%, 12%, 0.7);
    z-index: 999;
}


.header-left {
    float: left;
    width: 18%;
    height: auto;
}

.header-right {
    float: right;
    display: flex;
}

.header-title {
    width: 100%;
    height: 50px;
    /* min-width: 150px; */
}
.header-nav {
    display: flex;
    /* justify-content: end; */
}

.header-nav-item {
    float: left;
    margin-left: 2.5rem;
}

.header-nav img {
    /* width: 6%; */
    height: 1rem;
}

header {
    padding: 3.2vh 0 0 0;
}

.header-nav-item a {
    font-size: 1.1rem;
    line-height: 1.5rem;
    font-weight: lighter;
}

.insta {
    margin-left: 0.7rem;
}

.active {
    font-weight: 700;
}
/* @media screen and (max-width: 768px) {
} */


@media screen and (max-width: 991px) {
    header {
        height: 10vh;
        /* padding: 30px 0 60px 0; */
    }

    .header-right {
      /* display: none; */
      position: absolute;
      left: 0;
      top: 50px;
      width: 100%;
      /* height: calc(100vh - 50px); */
      background: #fff;
      overflow-y: auto; /*中身があふれたら縦スクロール*/
      -webkit-overflow-scrolling: touch; }/*iOSで慣性スクロール有効化*/

    .header-nav {
        /* display: block; */
        flex-direction: column;
        align-items: center;
    }
    .header-nav img {
        /* width: 6%; */
        height: 2rem;
    }


 /* =================================
  g-nav
 ================================= */
        #g-nav{
            /* display: flex; */
            /* flex-direction: row; */
            /*position:fixed;にし、z-indexの数値を大きくして前面へ*/
            position:fixed;
            z-index: 999;
            /*ナビのスタート位置と形状*/
            top:0;
            right: -120%;
            width:100%;
            height: 100vh;/*ナビの高さ*/
            background:#fff;
            /*動き*/
            transition: all 0.6s;
        }

        /*アクティブクラスがついたら位置を0に*/
        #g-nav.panelactive{
            right: 0;
        }

        /*ナビゲーションの縦スクロール*/
        #g-nav.panelactive #g-nav-list{
            /*ナビの数が増えた場合縦スクロール*/
            position: fixed;
            z-index: 999;
            width: 100%;
            height: 100vh;/*表示する高さ*/
            overflow: auto;
            -webkit-overflow-scrolling: touch;
        }

        /*ナビゲーション*/
        #g-nav ul {
            /*ナビゲーション天地中央揃え*/
            position: absolute;
            z-index: 999;
            top:50%;
            left:50%;
            transform: translate(-50%,-50%);
        }

        /*リストのレイアウト設定*/

        #g-nav li{
        list-style: none;
            text-align: center;
        }

        #g-nav li a{
        color: #333;
        text-decoration: none;
        padding:10px;
        display: block;
        text-transform: uppercase;
        letter-spacing: 0.1em;
        font-weight: bold;
        }

        /*========= ボタンのためのCSS ===============*/
        .openbtn1{
            position:fixed;
            z-index: 9999;/*ボタンを最前面に*/
            top:10px;
            right: 10px;
            cursor: pointer;
            width: 50px;
            height:50px;
        }

        /*×に変化*/
        .openbtn1 span{
            display: inline-block;
            transition: all .4s;
            position: absolute;
            left: 14px;
            height: 3px;
            border-radius: 2px;
            background-color: #666;
            width: 45%;
        }

        .openbtn1 span:nth-of-type(1) {
        top:15px;
        }

        .openbtn1 span:nth-of-type(2) {
        top:23px;
        }

        .openbtn1 span:nth-of-type(3) {
        top:31px;
        }

        .openbtn1.active span:nth-of-type(1) {
            top: 18px;
            left: 18px;
            transform: translateY(6px) rotate(-45deg);
            width: 30%;
        }

        .openbtn1.active span:nth-of-type(2) {
        opacity: 0;
        }

        .openbtn1.active span:nth-of-type(3){
            top: 30px;
            left: 18px;
            transform: translateY(-6px) rotate(45deg);
            width: 30%;
        }

}



/* =================================
side
================================= */
.side {
    /* height: 10vh; */
    width: 15vw;
    position: fixed;
    top: 15vh;
    left: 5vw;
    /* background-color: blue; */
    z-index: 999;
}

.side-nav-title {
    font-size: 1.4rem;
    font-weight: lighter;
    line-height: 3rem;
}

@media screen and (max-width: 991px),print {
    .side-nav-title {
        writing-mode: vertical-rl;
        padding-bottom: 20px;
        font-size: 12px;
    }
}

/* =================================
top
================================= */
/* .top {
    text-align: center;
} */

.mainvisual {
    position: relative;
    /* height: 100vh; */
    width: 70%;
    margin: 15vh auto;
    /* margin-bottom: 4rem; */
    /* display: inline; */
}


/* =================================
top--SP
================================= */
@media screen and (max-width: 991px) {
    .top {
        text-align: center;
        margin: 250px 0;
    }

    .mainvisual {
        position: static;
        /* height: 40vh; */
        width: auto;
        /* margin-bottom: -4rem; */
        display: inline;
    }

    .mainvisual >img {
        width: 70%;
    }


}

/* =================================
cardlist
================================= */
.cardList {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    flex-wrap: wrap;
    /* margin-top: 70vh; */
}
.cardList__item {
    margin-top: 3.7rem;
}

.cardList__item {
    width: calc((100% - 5rem) / 2);
}
.cardList__item {
    margin-top: 3.7rem;
}

@media screen and (max-width: 991px),print {
    .cardList {
        flex-direction: column;
        justify-content: space-between;
        flex-wrap: wrap;
        /* margin-top: -5vh; */
    }
    .cardList__item {
        width: 100%;
    }
    .cardList__item {
        margin-top: 3.7rem;
    }

}

/* =================================
banner
================================= */
.banner-section {
    margin: 0 auto;
    margin-bottom: 2vh;
    width: 80%;
    /* max-width: 1000px; */
}
.banner-txtbox {
    display: flex;
    margin: 2vh auto;
    margin-top: 30vh;
    text-align: left;
}


.banner-txtbox-event-item {
    font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Kaku Gothic ProN';
    font-size: 1.2rem;
    font-weight: normal;
    margin-top: 2rem;
}


/* =================================
service
================================= */
.service {
    text-align: center;
}

.service_container {
    width: 80%;
    margin: 0 auto;
    /* margin: 0 auto 20vh auto; */
    /* text-align: center; */
}
.service_txt {
    margin-top: 8vh;
    letter-spacing: 0.4rem;
    font-weight: 200;
    line-height: 1.8rem;
    text-align: left;
}

@media screen and (max-width: 991px),print {
    .service_txt {
        font-size: 9px;
        letter-spacing: .05rem;
    }
}

/* =================================
about
================================= */
.about {
    margin-bottom: 40vh;
    margin-left: 15vw;
}

/* =================================
about-container
================================= */
.about-container {
    margin: 0 auto;
    margin-top: 2.7rem;
    margin-bottom: 120px;
    width: 90%;
    max-width: 1000px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.about-left {
    width: 48%;
    max-width: 600px;
}


.about-right {
    width: 48%;
    padding-left: 10%;
}

.position {
    font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Kaku Gothic ProN';
    font-size: 1rem;
    font-weight: normal;
}

.name {
    font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Kaku Gothic ProN';
    font-size: 2rem;
    font-weight: normal;
    margin-bottom: 2rem;
    line-height: 1.3;
}

.en-name {
    font-size: 1.1rem;
    font-weight: normal;
    margin-left: 20px;
}

.text-career-year-item {
    font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Kaku Gothic ProN';
    font-size: 0.85rem;
    font-weight: normal;
    margin-right: 40px;
}

.text-career {
    display: flex;
    margin-bottom: 0.85rem;
}

.text-career-event-item {
    font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Kaku Gothic ProN';
    font-size: 0.85rem;
    font-weight: normal;
}

.shiro {
    color: #fff;
}

.folio {
    font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Kaku Gothic ProN';
    font-size: 0.85rem;
    font-weight: normal;
}

@media screen and (max-width: 991px) {
    .about {
        margin-bottom: 180px;
    }
    .about-container {
        display: block;
    }
    .about-left {
        width: 90%;
        max-width: 1000px;
    }
    .about-right {
        width: 90%;
        padding-left: 0;
    }
    .name {
        font-size: 20px;
        padding: 5px;
        margin-bottom: 16px;
    }
    .en-name {
        font-size: 16px;
        margin-left: 0;
    }
    .position {
        font-size: 10px;
    }
    .text-career-year-item {
        font-size: 9px;
        margin-right: 14px;
    }

    .text-career-event-item {
        font-size: 9px;
        white-space: nowrap;
    }

}
/* =================================
member
================================= */
.member {
    margin: 0 auto;
    margin-bottom: 30vh;
    width: 90%;
    max-width: 1000px;
    padding-left: 10vw;
}
#section-member-title {
    font-weight: 700;
    font-size: 2rem;
    margin-bottom: 2.5rem;
}

.member-txtbox {
    display: flex;
    margin-bottom: -2rem;
}


.member-txtbox-event-item {
    font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Kaku Gothic ProN';
    font-size: 1rem;
    font-weight: normal;
    line-height: 2;
    margin-bottom: 3rem;
}
/* =================================
awards
================================= */
.awards {
    margin: 0 auto;
    margin-bottom: 30vh;
    width: 90%;
    max-width: 1000px;
    padding-left: 10vw;
}
#section-title {
    font-weight: 700;
    font-size: 2rem;
    margin-bottom: 2.5rem;
}

.awards-txtbox {
    display: flex;
    margin-bottom: 1rem;
}

.awards-txtbox-year-item {
    font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Kaku Gothic ProN';
    font-size: 1rem;
    font-weight: normal;
    margin-right: 40px;
    line-height: 2;
}


.awards-txtbox-event-item {
    font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Kaku Gothic ProN';
    font-size: 1rem;
    font-weight: normal;
    line-height: 2;
}
@media screen and (max-width: 991px) {
    .awards {
        margin-bottom: 260px;
    }
    #section-title {
        font-weight: 500;
        font-size: 32px;
        margin-bottom: 20px;
    }
    .awards-txtbox-year-item {
        font-size: 9px;
        margin-right: 20px;
    }

    .awards-txtbox-event-item {
        font-size: 9px;
    }
}
/* =================================
works
================================= */
.works-container {
    margin-left: 15vw;
}
/* =================================
works__cardlist
================================= */
.works__cardList {
    display: flex;
    flex-direction: column;
    margin-top: -1rem;
}

.works__cardList__item {
    margin-top: 3.7rem;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 1.5s ease-out, transform 1.5s ease-out;
}

.works__cardList__item.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.works__card__txt {
    line-height: 1.3;
}

@media screen and (min-width: 991px), print {
    .works__cardList {
        flex-direction: row;
        justify-content: space-between;
        flex-wrap: wrap;
    }
    .works__cardList__item {
        width: calc((100% - 5rem) / 2);
    }
}


/* =================================
works-slider
================================= */
.slider-title {
    margin-top: 3vh;
    text-align: left;
    font-size: 1.5rem;
    padding-left: 10vw;
}

/* =================================
news
================================= */
.news-section {
    margin: 0 auto;
    margin-bottom: 30vh;
    width: 90%;
    max-width: 1000px;
}
.news-txtbox {
    display: flex;
    margin: 25vh auto;
    text-align: left;
}

.news-txtbox-year-item {
    font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Kaku Gothic ProN';
    font-size: 1.2rem;
    font-weight: 700;
    margin-right: 5rem;
    line-height: 2;
}

.news-txtbox-event-title {
    font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Kaku Gothic ProN';
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 2;
}

.news-txtbox-event-item {
    font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Kaku Gothic ProN';
    font-size: 1.2rem;
    font-weight: normal;
    margin-top: 2rem;
}

@media screen and (max-width: 991px),print {
    .news-txtbox {
        display: block;
    }
    .news-txtbox-year-item {
        font-size: 14px;
    }
    
    .news-txtbox-event-title {
        font-size: 14px;
    }
    
    .news-txtbox-event-item {
        font-size: 12px;
    }
}


/* =================================
contact
================================= */
.contact__container {
    text-align: left;
}

.contact__form {
    text-align: left;
    width: 500px;
    margin-bottom: 4rem;
}

.contact__title {
    display: block;
    margin-top: 3rem;
    margin-bottom: 10px;
}


input[type="email"] ,input[type="text"] ,input[type="number"] {
    width: 500px;
    border: 1px solid #474343;
    font-size: 1.8rem;
    display: block;
    margin: 1rem auto;
}

.btn {
    padding: 10px 20px;
    display: inline-block;
    background-color: #474343;
    color: #fff;
    font-size: 1rem;
}

.btn-register {
    margin: 3rem
}

.banner {
    width: auto;
}

@media screen and (max-width: 991px) {
    .contact__container {
        width: 90%;
    }
    .contact__form {
        text-align: left;
        width: 300px;
    }
    .news-txtbox-event-item {
        letter-spacing: .05rem;
    }
    .banner {
        width: 200px;
    }
    .banner-txtbox-event-item {
        font-size: 16px;
    }
    .br-sp {
        display: block;
    }
}



/* =================================
news
================================= */
.news {
    text-align: center;
}
.news_txt {
    height: 60rem;
    font-size: 1.5rem;
    padding-top: 5rem;
}

/* =================================
diploma
================================= */
.diploma_year {
    font-size: 3rem;
}



/* =================================
footer
================================= */

footer {
    margin-top: 20vh;
    padding: 20px 0;
    text-align: center;
}

/* .footer-index {
    margin-top: -2vh;
} */

.copyright {
    font-size: 1rem;
}