/**
* ==========================================================
*  基本的なスタイル指定
* ==========================================================
*/
.text-mincho{
    font-family: "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
}


/* 基本フォント（ゴシック体） */
body{
    font-family: 'Noto Sans JP', sans-serif;
}

/* 明朝体のフォント */
.ff_mincho{
    font-family: "Yu Mincho", 游明朝,"MS PMincho","MS Mincho",'Noto Serif JP', serif;
}

/* header{
    width: 100%;
    position: fixed;
    z-index: 20;
    background:#777;
    background: #fff;
}
header .header_line_nav a{
    color: #808080;
} */
header .hamburger{
    font-size: 1.5rem;
}

main{
    min-height: 100vh;
    overflow: hidden;
    /* padding-top: 3.5rem; */
}

/*"中央寄せ"コンテナー */
.section-900{
    max-width: 900px;
    padding: 1rem;
    padding-bottom: 2rem;
    margin: 0 auto; /*中央寄せ*/
}
.section-1200{
    max-width: 1200px;
    padding: 1rem;
    padding-bottom: 2rem;
    margin: 0 auto; /*中央寄せ*/
}


/*
* ---------------------------
* コンテナー
* ---------------------------
*/
.flex-column-center{
    display: flex;
    flex-direction: column; /*縦並び*/
    justify-content: center;
    align-items: center;
    height: 100%;
}

.container-1200{
    max-width: 1200px;
    margin: 0 auto;
    padding: 1rem;
}

.container-900{
    max-width: 900px;
    margin: 0 auto;
    padding: 1rem;
}

.container-600{
    max-width: 600px;
    margin: 0 auto;
    padding: 1rem;
}



/* section 共通マージン */
section[class*="section_margin"]{
    padding-top: 4rem;
    padding-bottom:4rem;
}



/*
* ---------------------------
*  背景動画
* ---------------------------
*/
.video_section{
    position: relative;/*h1の中央寄せ配置の起点とするためのrelative*/
    /* height: 100vh; */
    /*高さを全画面にあわせる*/
}

.video_section .video-area{
    position: fixed;
    z-index: -1;/*最背面に設定*/
    top: 0;
    right:0;
    left:0;
    bottom:0;
    overflow: hidden;
}

.video_section .video-area .video {
    /*天地中央配置*/
    position: absolute;
    z-index: -1;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 177.77777778vh; /* 16:9 の幅→16 ÷ 9＝ 177.77% */
    height: 56.25vw; /* 16:9の幅 → 9 ÷ 16 = 56.25% */
    min-height: 100%;
    min-width: 100%;
}


/*
* ---------------------------
*  回転するイメージ(ハンバーガーメニュー)
* ---------------------------
*/
header .header_hamburger_nav ul{
    list-style: none;
    text-align: center;
}
header .header_hamburger_nav ul li a{
    text-decoration: none;
    line-height: 4rem;
    /* color: #000; */
    /* color: #696969; */
    color: #808080;

    font-weight: bold;
    font-size: 1.5rem;
}

#rote_image{
    width: 500px;
    height: 500px;
    border-radius: 50%;
    z-index: -1;
    position:absolute;
    top:3rem;
    left:50%;
    opacity:.8;
    animation: rote_image 30s linear infinite;

}

@keyframes rote_image {
    0% {transform: rotate(200deg)}
    100% {transform: rotate(560deg)}
}


/*
* ---------------------------
*  カルーセル ズーム
* ---------------------------
*/
.carousel-inner .carousel-item{
    height: 100vh;
}
.carousel-inner .active div{
    animation:top_carousel 10s forwards;
}
@keyframes top_carousel {
    0%{transform: scale(1,1)}
    100%{transform: scale(1.1,1.1)}
}




/*
* ---------------------------
*  グラデーション文字
* ---------------------------
*/

.gradient_effect_text {
    display: inline-block;
    background: linear-gradient(45deg, hsl(297, 70%, 50%) 16%, hsl(193, 70%, 50%) 57%, hsl(146, 70%, 50%) 90%);
    background: -webkit-linear-gradient(45deg, hsl(297, 70%, 50%) 16%, hsl(193, 70%, 50%) 57%, hsl(146, 70%, 50%) 90%);
    background-size: 300% auto;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: gradientEffect 2.5s infinite alternate;
}

@keyframes gradientEffect {
    from {background-position: left}
    to {background-position: right}
}




/*
* ---------------------------
*  グラデーション背景
* ---------------------------
*/
.bg_gradation{
    width: 100%;
    height: 100%;
    animation: bg_gradation 20s linear infinite;
    background: linear-gradient(45deg, hsl(297, 70%, 50%) 15%, rgb(38, 178, 217) 30%, hsl(146, 70%, 50%) 50%,hsl(297, 70%, 50%) 70%, rgb(38, 178, 217) 100% );
    background: -webkit-linear-gradient(45deg, hsl(297, 70%, 50%) 15%, rgb(38, 178, 217) 30%, hsl(146, 70%, 50%) 50%,hsl(297, 70%, 50%) 70%, rgb(38, 178, 217) 100% );
    background-size: 300vw auto;
}

@keyframes bg_gradation {
    from {background-position: left}
    to {background-position: right}
}




/*
* ---------------------------
*  背景斜線
* ---------------------------
*/
.back_arrow{
    position:relative;
}

    /* 赤 */
    .red_back_arrow {
        content: '';
        position: absolute;
        top: 0;
        left: -6rem;
        /*下線の形状*/
        width: 4rem;
        height: 24rem;
        /* background:#c30d23; */
        background:hsl(353, 47%, 41%);;
        transform:
            translateX(0rem)
            skewX(-45deg)
        ;
    }
    .red_back_arrow::before {
        content: '';
        position: absolute;
        top: 0;
        right: 0rem;
        /*下線の形状*/
        width: 4rem;
        height: 24rem;
        background:hsl(0, 0%, 41%);
        transform:translateX(4rem);
    }



    /* 目隠し */
    .red_back_arrow::after{
        content: '';
        position: absolute;
        top: 0;
        right: -1rem;
        /*下線の形状*/
        width: 10rem;
        height: 24rem;
        background:#ebf5fc;
        /* background: #000; */
        transform:
            translateX(4rem)
        ;

        height: 30rem;
    }
    .anima_back_arrow::after{
        animation: back_arrow .5s forwards;
    }


    /* 青 */
    .blue_back_arrow {
        content: '';
        position: absolute;
        top: 0;
        left: -6rem;
        /*下線の形状*/
        width: 4rem;
        height: 24rem;
        /* background:#c30d23; */
        background:hsl(0, 0%, 41%);
        transform:
            translateX(0rem)
            skewX(-45deg)
        ;
    }
    .blue_back_arrow::before {
        content: '';
        position: absolute;
        top: 0;
        right: 0rem;
        /*下線の形状*/
        width: 4rem;
        height: 24rem;
        background:hsl(220, 49%, 37%);
        transform:translateX(4rem);
    }
    /* 目隠し */
    .blue_back_arrow::after{
        content: '';
        position: absolute;
        top: 0;
        right: -1rem;
        /*下線の形状*/
        width: 10rem;
        height: 24rem;
        background:#ebf5fc;
        /* background: #000; */
        transform:
            translateX(4rem)
        ;

        height: 30rem;
    }
    .anima_back_arrow::after{
        animation: back_arrow .5s forwards;
    }
    @keyframes back_arrow {
        from {height: 30rem;}
        to {height: 0rem;}
    }


/*
* ------------------------------
*  大見出し
* ------------------------------
*/
.big_title{
    position: relative;
    width: 100%;
    padding-top: 10rem;
    overflow: hidden;
}

/* 英語大見出し */
.big_title .en_big_title{
    width: 100%;
    overflow: hidden;
    position: absolute;
    padding-left: 1rem;
    top:0; left:0;
    color:#aaa;
    font-size: 6rem;

    opacity: 0;
    letter-spacing: -10rem;
    transform: translateY(3rem);
}
.anima_big_title .en_big_title{
    animation: en_big_title 1.5s forwards;
}
@keyframes en_big_title {
    from {
        opacity: 0;
        letter-spacing: -10rem;
        transform: translateY(3rem);
    }
    to {
        opacity: 1;
        letter-spacing: 0rem;
        transform: translateY(0rem);
    }
}


/* 日本語大見出し */
.big_title .ja_big_title{
    padding-left: 1rem;
    position: absolute;
    top:4rem; left:0;
    font-size: 48px;
    font-weight: bold;
    letter-spacing:0rem;
    color: #fff;

    opacity: 0;
    transform: translateY(5rem);
}
.anima_big_title .ja_big_title{
    animation: ja_big_title 1.5s forwards;
}
@keyframes ja_big_title {
    from {
        opacity: 0;
        transform: translateY(5rem);
    }
    to {
        opacity: 1;
        transform: translateY(0rem);
    }
}



/*
* ---------------------------
* ボタンに'>'を付ける
* ---------------------------
*/
.btn-arrow{
    position: relative;
    border-radius: 0;
}
    .btn-arrow::after{
    content: '>';
    position: absolute;
    top: .8rem; right: 1rem;
    height: 100%; width: 1rem;
    text-align: center;
}



/*
* ---------------------------
*  大き目なlinkボタン
* ---------------------------
*/
.bg_link_btn{
    position: relative;
    display: block;
    text-decoration: none;
    max-width: 400px;
    height: 4rem;
    line-height: 4rem;
    margin: 0 auto;
    background: rgba(255, 255, 255, 0.8);

    text-align: center;
    color: #000;
    font-size: 1.2rem;
    font-weight: bold;
    transition: 0.5s;
}
.bg_link_btn::after{
    content: '>';
    position: absolute;
    top: -.15rem; right: .5rem;
    height: 100%; width: 1rem;
    text-align: center;
}
.bg_link_btn:hover{
    background: rgba(0, 0, 0, 0.8);
    color: #fff;
}



/*
* ---------------------------
* linkボタン
* ---------------------------
*/
.link_btn, .link_btn_dark{
    position: relative;
    display: block;
    text-decoration: none;
    max-width: 400px;
    height: 3.5rem;
    line-height: 3.5rem;
    border: #696969 solid 2px;
    border-radius: .2rem;
    margin: 0 auto;
    background: #fff;
    color: #000;
    color: #696969;
    /* color: #808080; */
    text-align: center;

    font-size: 1.2rem;
    font-weight: bold;
    transition: 0.5s;


}
.link_btn::after{
    content: '>';
    position: absolute;
    top: -.15rem; right: .5rem;
    height: 100%; width: 1rem;
    text-align: center;
    color: #000;
    color: #696969;
}
.link_btn:hover{
    background: #000;
    color: #fff;
}

/* リンクボタン黒 */
.link_btn_dark{
    background: #222;
    color: #fff;
}
.link_btn_dark::after{
    content: '>';
    position: absolute;
    top: -.15rem; right: .5rem;
    height: 100%; width: 1rem;
    text-align: center;
}
.link_btn_dark:hover{
    background: #fff;
    color: #696969;
}

/*
* ---------------------------
*  ページトップボタン （回転ボタン）
* ---------------------------
*/
.btn02 {
    /*背景の基点とするためrelativeを指定*/
    position: relative;
    /*ボタンの形状*/
    display: inline-block;
    width: 50px;
    max-width: 250px;
    height: 50px;
    line-height: 50px;
    text-align: center;
    outline: none;
}

/*ボタン内側の設定*/
.btn02 span {
    display: block;
    position: absolute;
    width: 100%;
    height: 100%;
    border: 1px solid #333;
    /* 重なりを3Dで表示 */
    transform-style: preserve-3d;
    /* アニメーションの設定 数字が少なくなるほど早く回転 */
    transition: 0.5s;
}

/*== くるっと回転（奥に） */

/* 回転前 */
.rotateback span:nth-child(1) {
    background: #000;
    color: #fff;
    font-weight: bold;
    transform: rotateX(0deg);/*はじめは回転なし*/
    transform-origin: 0 50%  -25px;/* 回転する起点 */
}

/*hoverをした後の形状*/
.rotateback:hover span:nth-child(1) {
    transform: rotateX(90deg);/* X軸に90度回転 */
}

/* 回転後 */
.rotateback span:nth-child(2) {
    background: #c30d23;
    color: #fff;
    font-weight: bold;
    transform: rotateX(-90deg);/*はじめはX軸に-90度回転*/
    transform-origin: 0 50%  -25px;/* 回転する起点 */
}

/*hoverをした後の形状*/
.rotateback:hover span:nth-child(2) {
    transform: rotateX(0deg);/* X軸に0度回転 */
}



/*
* ---------------------------
*  下からふわっと出るアニメーション
* ---------------------------
*/
/* .display_bottom01,.display_bottom02
{
    opacity: 0;
    transform: translateY(2rem);
} */

/* トップセクション title 表示アニメーション*/
/* .anima_display_bottom01{
    animation: display_bottom 1.5s forwards;
}
.anima_display_bottom02{
    animation: display_bottom 1.5s forwards .5s;
}
@keyframes display_bottom {
    from {
        opacity: 0;
        transform: translateY(2rem);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
} */
