@charset "utf-8";

/* CSS INFORMATION -====================================================
File name : story.css
Description :
===================================================================== */


/* ********************************************************************
        ストーリー
******************************************************************** */
.story h2 {
    width: calc(220 / 630 * 100%);
    margin: 0 auto calc(20 / 630 * 100%);
}

.story .story_wrap {
    margin-bottom: calc(90 / 630 * 100%);
}

.story .story_movie_photo {
    position: relative;
    background: url(../images/common/bg_story_movie.jpg) no-repeat center;
    background-size: contain;
    padding: calc(60 / 630 * 100%);
    width: calc(750 / 630 * 100%);
    margin-left: calc(-55 / 630 * 100%);
}

.story .story_movie_photo::before {
    content: '';
    position: absolute;
    background: url(../images/common/img_story_movie1.png) no-repeat center;
    background-size: 100%;
    top: 0;
    left: 0;
    margin: calc(-30 / 630 * 100%) 0 0 calc(-30 / 630 * 100%);
    width: calc(150 / 630 * 100%);
    height: calc(380 / 630 * 100%);
    z-index: 2;
}

.story .story_movie_photo::after {
    content: '';
    position: absolute;
    background: url(../images/common/img_story_movie2.png) no-repeat center;
    background-size: 100%;
    bottom: 0;
    right: 0;
    margin: 0 calc(-50 / 630 * 100%) calc(-120 / 630 * 100%) 0;
    width: calc(220 / 630 * 100%);
    height: calc(380 / 630 * 100%);
    z-index: 2;
}

.story .story_movie dl {
    margin: calc(40 / 630 * 100%) 0 calc(50 / 630 * 100%);
    text-align: center;
    font-size: 1.8rem;
}

.story .story_movie dt {
    font-weight: 600;
}

.story .story_movie dd {
    margin-top: calc(10 / 630 * 100%);
    line-height: 1.5;
}

.story .story_movie dd p {
    font-weight: 600;
}

.story .story_movie dd span {
    color: #beb09f;
    font-size: 1.2rem;
}

.story .story_txt {
    padding-top: calc(60 / 630 * 100%);
    border-top: 2px dotted #665852;
}

.story .story_txt dl dd {
    margin: calc(40 / 630 * 100%) 0;
}

.story_txt_list_photo {
    margin: 0 auto calc(40 / 630 * 100%);
}

.story_txt_list li {
    list-style: none;
}

@media screen and (min-width: 768px) {
    .story h2 {
        width: calc(160 / 1000 * 100%);
        margin: 0 auto calc(20 / 1000 * 100%);
    }

    .story .story_wrap {
        margin-bottom: calc(100 / 1000 * 100%);
    }

    .story .story_movie_photo {
        padding: calc(60 / 1000 * 100%) calc(100 / 1000 * 100%);
        width: 100%;
        margin: 0 auto;
    }

    .story .story_movie_photo::before {
        margin: calc(-10 / 1000 * 100%) 0 0 calc(-10 / 1000 * 100%);
        width: calc(175 / 1000 * 100%);
        height: calc(450 / 1000 * 100%);
        z-index: 2;
    }

    .story .story_movie_photo::after {
        margin: 0 calc(20 / 1000 * 100%) calc(-60 / 1000 * 100%) 0;
        width: calc(240 / 1000 * 100%);
        height: calc(430 / 1000 * 100%);
    }

    .story .story_movie_photo a:hover {
        opacity: 1;
    }

    .story .story_movie dl {
        margin: calc(40 / 1000 * 100%) 0;
        font-size: 2.4rem;
    }

    .story .story_movie dt {}

    .story .story_movie dd {
        margin-top: calc(10 / 1000 * 100%);
    }

    .story .story_movie dd p {
        font-weight: 600;
    }

    .story .story_movie dd span {
        font-size: 1.5rem;
    }

    .story .story_txt {
        padding-top: calc(60 / 1000 * 100%);
    }

    .story .story_txt dl {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: justify;
        -ms-flex-pack: justify;
        justify-content: space-between;
        margin-bottom: calc(50 / 1000 * 100%);
    }

    .story .story_txt dl:nth-child(even) dt {
        -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
        order: 2;
    }

    .story .story_txt dl dt,
    .story .story_txt dl dd {
        width: calc(475 / 1000 * 100%);
    }

    .story .story_txt dl dd {
        margin: 0;
    }

    .story_txt_list {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        -webkit-box-pack: justify;
        -ms-flex-pack: justify;
        justify-content: space-between;
        width: 100%;
    }

    .story_txt_list li {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        -webkit-box-pack: justify;
        -ms-flex-pack: justify;
        justify-content: space-between;
        width: calc(475 / 1000 * 100%);
    }

    .story_txt_list_photo {
        width: 100%;
        margin: 0 0 calc(80 / 1000 * 100%);
    }
}


/* ********************************************************************
        登場する合コン相手
******************************************************************** */

.nextcast {
    overflow-y: hidden;
    padding-bottom: calc(100 / 630 * 100%);
}

.nextcast .nextcast_wrap {
    position: relative;
    background-color: #f4f0ef;
    z-index: 2;
}

.nextcast .nextcast_wrap::before {
    content: '';
    position: absolute;
    background: url(../images/common/bg_news2.jpg) no-repeat center;
    background-size: contain;
    width: calc(320 / 750 * 100%);
    padding-top: calc(350 / 750 * 100%);
    -webkit-transform: scale(-1, -1);
    transform: scale(-1, -1);
    top: 0;
    left: 0;
    right: calc(-100 / 750 * 100%);
    margin: calc(-130 / 750 * 100%) auto 0;
    z-index: 0;
}

.nextcast .bg_nextcast {
    padding-top: calc(90 / 630 * 100%);
}

.nextcast h3 {
    font-size: 1.6rem;
    font-weight: 600;
    margin-bottom: calc(60 / 630 * 100%);
}

.nextcast h3 span {
    font-weight: 600;
}

.nextcast .nextcast_box {
    position: relative;
    z-index: 2;
    padding-bottom: calc(10 / 750 * 100%);
}

.nextcast .nextcast_box::before {
    content: '';
    position: absolute;
    background: url(../images/common/bg_stripe_blue.jpg) repeat center;
    width: 100%;
    height: calc(350 / 750 * 100%);
    z-index: 0;
    bottom: 0;
}

.nextcast .img {
    position: relative;
    z-index: 2;
    width: calc(400 / 630 * 100%);
    margin: 0 auto;
}

.nextcast .nextcast_box:nth-child(odd) .img::before {
    content: '';
    position: absolute;
    background: url(../images/top/bg_cast_spoon.png) no-repeat center;
    background-size: contain;
    width: calc(130 / 400 * 100%);
    height: calc(250 / 400 * 100%);
    bottom: 0;
    right: 0;
    margin: 0 calc(-130 / 630 * 100%) calc(-30 / 630 * 100%) 0;

}

.nextcast .nextcast_box:nth-child(even) .img::before {
    content: '';
    position: absolute;
    background: url(../images/top/bg_cast_fork.png) no-repeat center;
    background-size: contain;
    width: calc(130 / 400 * 100%);
    height: calc(230 / 400 * 100%);
    bottom: 0;
    right: 0;
    margin: 0 calc(-130 / 630 * 100%) calc(-30 / 630 * 100%) 0;

}

.nextcast .next_name {
    color: #fff;
    width: calc(250 / 500 * 100%);
    position: relative;
    z-index: 1;
    width: calc(500 / 630 * 100%);
    margin: calc(-25 / 630 * 100%) auto calc(30 / 630 * 100%);
    padding: calc(50 / 630 * 100%) calc(20 / 630 * 100%) calc(35 / 630 * 100%);
    background:
        linear-gradient(135deg, transparent 10px, #4ad5ce 10px),
        linear-gradient(315deg, transparent 10px, #4ad5ce 10px);
    background-position: bottom left, bottom right, top right, top left;
    background-size: 50.5% 100%;
    background-repeat: no-repeat;
    text-align: center;
}

.nextcast .next_name::before,
.nextcast .next_name::after {
    content: '';
    position: absolute;
    bottom: 10%;
    left: 2%;
    width: 10px;
    padding-top: calc(60 / 630 * 100%);
    background: url(../images/common/img_border.png) no-repeat center;
    background-size: contain;
}

.nextcast .next_name::after {
    bottom: auto;
    left: auto;
    top: 10%;
    right: 2%;
}

.nextcast .btn_green {
    margin: calc(80 / 630 * 100%) 0 calc(20 / 630 * 100%) calc(-20 / 630 * 100%);
}

.nextcast .btn_green a {
    color: #fff;
    text-align: center;
}

.nextcast .bnr_mydo {}

@media screen and (min-width: 768px) {
    .nextcast {
        padding-bottom: 100px;
    }

    .nextcast .nextcast_wrap {
        max-width: 1000px;
        width: 100%;
        margin: 0 auto;
        position: relative;
        z-index: 1;
        background: linear-gradient(135deg, transparent 30px, #f4f0ef 30px), linear-gradient(225deg, transparent 30px, #f4f0ef 30px);
        background-position: top left, top right;
        background-size: 50% 100%;
        background-repeat: no-repeat;
    }

    .bg_nextcast {
        position: relative;
    }

    .bg_nextcast::before,
    .bg_nextcast::after {
        content: '';
        position: absolute;
        display: block;
        width: 0;
        height: 0;
        bottom: 0;
        right: 0;
        border-style: solid;
        border-width: 40px 40px 0 50px;
        border-color: transparent #fff transparent transparent;
        z-index: 2;
    }

    .bg_nextcast::after {
        left: 0;
        -webkit-transform: scale(-1, 1);
        transform: scale(-1, 1);

    }

    .nextcast .nextcast_wrap::after {
        position: absolute;
        content: '';
        background: url(../images/common/bg_stripe_blue.jpg) repeat center;
        bottom: 0;
        left: 0;
        width: 100%;
        height: 40%;
        z-index: 0;
    }

    .nextcast .nextcast_wrap::before {
        width: 180px;
        padding-top: 190px;
        right: calc(-50 / 1000 * 100%);
        margin: calc(-60 / 1000 * 100%) auto 0;
    }

    .nextcast .bg_nextcast {
        padding-top: calc(50 / 1000 * 100%);
    }

    .nextcast h3 {
        font-size: 2rem;
        margin-bottom: calc(40 / 1000 * 100%);
    }

    .nextcast .nextcast_flex {
        width: 100%;
        max-width: 800px;
        margin: 0 auto;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        -ms-flex-pack: distribute;
        justify-content: space-around;
    }

    .nextcast .nextcast_box {
        width: calc(250 / 800 * 100%);
        padding-bottom: 0;
        margin: 0 calc(50 / 800 * 100%) calc(50 / 800 * 100%);
    }

    .nextcast .nextcast_box::before {
        display: none;
    }

    .nextcast .img {
        width: calc(200 / 250 * 100%);
    }

    .nextcast .nextcast_box:nth-child(odd) .img::before {
        width: calc(60 / 200 * 100%);
        height: calc(100 / 200 * 100%);
        margin: 0 calc(-30 / 200 * 100%) 0 0;

    }

    .nextcast .nextcast_box:nth-child(even) .img::before {
        width: calc(70 / 200 * 100%);
        height: calc(100 / 200 * 100%);
        margin: 0 calc(-35 / 200 * 100%) 0 0;
    }

    .nextcast .next_name {
        width: 100%;
        margin: calc(-15 / 250 * 100%) auto 0;
        padding: calc(20 / 250 * 100%) 0 calc(10 / 250 * 100%);
        font-size: 1.4rem;
    }

    .nextcast .btn_green {
        margin: calc(40/ 1000 * 100%) auto calc(20 / 1000 * 100%);
    }

    .nextcast .bnr_mydo {
        position: relative;
        margin: 0 auto;
    }

    .nextcast .bnr_mydo:hover .hover {
        opacity: 1;
    }
}

/* ********************************************************************
        シェアボタン
******************************************************************** */
aside .inner {
    position: relative;
    border-top: 1px solid #8a7c5e;
    border-bottom: 1px solid #8a7c5e;
    margin-bottom: 15vw;
}

aside .inner::before,
aside .inner::after {
    content: '';
    position: absolute;
    width: 100%;
    height: 1px;
    left: 0;
    background-color: #8a7c5e;
}

aside .inner::before {
    top: 5px;
}

aside .inner::after {
    bottom: 5px;
}

aside p {
    text-align: center;
    padding-top: calc(50 / 630 * 100%);
    margin-bottom: calc(20 / 630 * 100%);
}

aside ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    padding-bottom: calc(50 / 630 * 100%);
}

aside li {
    width: calc(200 / 630 * 100%);
    text-align: center;
}

aside li:nth-child(1) a {
    background-color: #3b5998;
}

aside li:nth-child(2) a {
    background-color: #55acee;
}

aside li:nth-child(3) a {
    background-color: #00b900;
}

aside li a {
    display: block;
    color: #fff;
    padding: calc(20 / 200 * 100%) 0;
}

@media screen and (min-width: 768px) {
    aside .inner {
        margin-bottom: 110px;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        padding: 30px 0;
    }

    aside p {
        padding-top: 0;
        margin: 0 calc(40 / 1000 * 100%) 0 0;
    }

    aside ul {
        width: calc(650 / 1000 * 100%);
        padding-bottom: 0;
    }

    aside li {
        width: calc(200 / 650 * 100%);
        text-align: center;
    }

    aside li a {
        border: 2px double #fff;
    }

    aside li a:hover {
        color: #665852;
        background-color: #fff;
        border: 2px double #665852;
    }

    aside li a {
        padding: calc(10 / 200 * 100%) 0;
    }

}

/* ********************************************************************
        バックナンバー
******************************************************************** */
.back {
    background-color: #f2efeb;
}

.back h2 {
    width: calc(330 / 630 * 100%);
}

.back ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    padding-bottom: calc(150 / 630 * 100%);
}

.back ul li {
    position: relative;
    width: calc(300 / 630 * 100%);
}

.back ul li:not(:nth-child(-n+2)) {
    margin-top: calc(30 / 630 * 100%);
}

.back ul li span {
    position: absolute;
    color: #fff;
    top: 0;
    left: 0;
    padding: 2px 10px;
    font-size: 1rem;
    background: linear-gradient(315deg, transparent 4px, #4AD5CD 4px);
    background-position: bottom left, bottom right, top right, top left;
    background-repeat: no-repeat;
}

@media screen and (min-width: 768px) {
    .back h2 {
        width: calc(250 / 1000 * 100%);
    }

    .back ul {
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center;
        padding-bottom: calc(150 / 1000 * 100%);
    }

    .back ul li {
        width: calc(230 / 1000 * 100%);
    }

    .back ul li a:hover {
        opacity: .7;
    }

    .back ul li:not(:nth-child(-n+4)) {
        margin-top: calc(30 / 1000 * 100%);
    }

    .back ul li:not(:nth-child(4n)):not(:last-child) {
        margin-right: calc(20 / 1000 * 100%);
    }

    .back ul li:nth-child(-n+4) {
        margin-top: 0 !important;
    }

    .back ul li span {
        padding: 2px 15px;
        font-size: 1.4rem;
        background: linear-gradient(315deg, transparent 5px, #4AD5CD 5px);
        background-position: bottom left, bottom right, top right, top left;
        background-repeat: no-repeat;
    }

}

/* ********************************************************************
        チェインストーリー
******************************************************************** */

.chain {
    background: #c1f2f0;
    padding-bottom: 15vw;
}

.chain h2 {
    width: calc(410 / 630 * 100%);
    margin-bottom: 10px;
}

.chain .chain_box {
    position: relative;
    background: url(../images/common/bg_chain_img.jpg) no-repeat center;
    background-size: 110%;
    background-position: top, center;
}

.chain .img {
    position: relative;
    display: block;
    z-index: 2;
    padding-top: calc(80 / 630 * 100%);
}

.chain .img::before {
    content: '';
    position: absolute;
    background: url(../images/common/img_chinstory_movie1.png) no-repeat center;
    background-size: 100%;
    top: 0;
    left: 0;
    margin: calc(-30 / 630 * 100%) 0 0 calc(-170 / 630 * 100%);
    width: calc(350 / 630 * 100%);
    height: calc(400 / 630 * 100%);
    z-index: 3;
}

.chain .img::after {
    content: '';
    position: absolute;
    background: url(../images/common/img_chinstory_movie2.png) no-repeat center;
    background-size: 100%;
    bottom: 0;
    right: 0;
    margin: 0 calc(-120 / 630 * 100%) calc(-100 / 630 * 100%) 0;
    width: calc(300 / 630 * 100%);
    height: calc(330 / 630 * 100%);
    z-index: 3;
}

.chain .bebel_box {
    padding: calc(120 / 630 * 100%) calc(60 / 630 * 100%) calc(80 / 630 * 100%);
    z-index: 1;
    margin: calc(-60 / 630 * 100%) 0 0 calc(-60 / 630 * 100%);
}

.chain .bebel_box dt {
    font-size: 1.6rem;
    font-weight: 900;
    margin-bottom: calc(30 / 630 * 100%);
}

.chain .bebel_box .ttl {
    font-size: 1.6rem;
    font-weight: 600;
    margin-bottom: calc(15 / 630 * 100%);
}

.chain .bnr_chain {
    margin: calc(50 / 630 * 100%) 0 0 calc(-20 / 630 * 100%);
}

@media screen and (min-width: 768px) {
    .chain {
        padding-bottom: 100px;
    }

    .chain h2 {
        width: calc(310 / 1000 * 100%);
    }

    .chain .chain_box {
        max-width: 1000px;
        width: 100%;
        margin: 0 auto;
        background-size: 80%;
        background-position: center 100px, right;
    }

    .chain .img {
        width: calc(630 / 1000 * 100%);
        z-index: 1;
        padding-top: calc(70 / 1000 * 100%);
    }

    .chain .img::before {
        left: auto;
        right: 0;
        top: calc(100 / 630 * 100%);
        right: calc(-230 / 630 * 100%);
        width: calc(200 / 630 * 100%);
        height: calc(300 / 630 * 100%);
        z-index: 3;
    }

    .chain .img::after {
        top: calc(300 / 630 * 100%);
        right: calc(-180 / 630 * 100%);
        width: calc(150 / 630 * 100%);
        height: calc(200 / 630 * 100%);
        z-index: 3;
    }

    .chain .bebel_box {
        width: calc(560 / 1000 * 100%);
        padding: calc(40 / 1000 * 100%) calc(75 / 1000 * 100%) calc(60 / 1000 * 100%);
        z-index: 2;
        margin: calc(-60 / 1000 * 100%) 0 0 auto;
    }

    .chain .bebel_box dt {
        width: 100%;
        font-size: 1.8rem;
        font-weight: 900;
        margin-bottom: calc(30 / 1000 * 100%);
    }

    .chain .bebel_box .ttl {
        font-size: 1.8rem;
        margin-bottom: calc(15 / 560 * 100%);
    }

    .chain .bnr_chain {
        position: relative;
        z-index: 3;
        width: calc(400 / 1000 * 100%);
        margin: calc(-80 / 1000 * 100%) 0 0 calc(90 / 1000 * 100%);
    }

    .chain .bnr_chain:hover .hover {
        opacity: 1;
    }


}
