@charset "utf-8";

/* CSS Document */

:root {
    /* store */
    --color01: #0cb7c7;
    --font01: "Rochester", cursive;
    --font02: "Noto Serif JP", serif;
}

.imperialscriptregular {
    font-family: "Imperial Script", cursive;
    font-weight: 400;
    font-style: normal;
}

a {
    transition: 0.5s;
}

a:hover {
    opacity: 0.5;
    /*transform: scale(1.05, 1.05);*/
}

button {
    cursor: pointer;
    transition: 0.8s;
}

button:hover {
    opacity: 0.5;
    /*transform: scale(1.05, 1.05);*/
}

body {
    font-family: "Noto Serif JP", serif;
    font-optical-sizing: auto;
    font-style: normal;
    margin: 0;
    padding: 0;
    font-size: 16px;
    font-weight: 500;
    width: 100%;
    /*overflow-x: hidden;
    overflow-y: auto;*/
    line-height: 1.3;
}

body.no-scroll {
    overflow: hidden;
    height: 100vh;
}

header {
    background: #fff;
    width: 100%;
    position: fixed;
    top: 0;
    z-index: 9999;

    #top_fastview {
        display: none;
    }

    #header {
        display: flex;

        .header {
            display: flex;
            width: 100%;
            width: calc(80% - 60px);
            padding: 0;
            /*max-width: 1000px;*/
            margin: auto 20% 0 0;
            /*justify-content: space-between;*/
            height: 60px;
            position: relative;
            background: #fff;
            padding: 0 2%;

            transform: translate3d(0, 0, 0);
            backface-visibility: hidden;
            will-change: transform;

            /* iOSでのタップ/スクロール最適化 */
            -webkit-transform: translate3d(0, 0, 0);

            h1 {
                margin: auto 0;

                img {
                    height: 58px;
                    width: auto;
                }
            }

            .address {
                margin: auto 0 auto 5%;

                /*width: 250px;*/
                .tel {
                    span {
                        font-family: var(--font01);
                        font-size: 1.1em;
                    }
                }

                .open {
                    font-size: 0.8em;

                    span {
                        font-family: var(--font01);
                        font-size: 1.1em;
                    }
                }
            }

            .hnav {
                display: flex;
                width: calc(100% - 380px);
                padding: 0 10px 0 0;

                ul {
                    display: flex;
                    margin: 0;
                    justify-content: space-between;
                    width: 100%;

                    li {
                        text-align: center;
                        width: 100%;

                        a {
                            width: 100%;
                            height: 100%;
                            transition: 0s;
                            opacity: 1;
                            align-content: center;
                            display: block;
                        }

                        span {
                            display: block;
                            text-align: center;
                            font-size: 1.5em;
                            font-family: var(--font01);
                            color: var(--color01);
                        }
                    }

                    li:hover {
                        background: var(--color01);

                        a {
                            color: #fff;

                            span {
                                color: #fff;
                            }
                        }
                    }
                }

                .logo {
                    margin: -180px 0 -30px;
                }
            }
        }
    }
}


/* ==============================
   Headermenu
============================== */

.hamburger {
    width: 50px;
    height: 50px;
    border: 1px solid var(--color01);
    position: relative;
    z-index: 2000;
    background: transparent;
    padding: 0;
    cursor: pointer;
    background: #fff;
    align-content: center;
    margin: auto 2px auto 0;

    span {
        width: 80%;
        height: 2px;
        background: var(--color01);
        border-radius: 2px;
        transition: 0.3s;
        display: block;
        margin: 5px auto 0;
    }

    p {
        color: var(--color01);
        font-size: 0.9em;
    }
}

.hamburger.is-open {
    position: fixed;
    z-index: 99999;
    top: 10px;
    right: 10px;

    span:nth-child(1) {
        margin: auto;
        transform: rotate(45deg);
    }

    span:nth-child(2) {
        opacity: 0;
    }

    span:nth-child(3) {
        margin: -10px auto 0;
        transform: rotate(-45deg);
    }

    p {
        color: var(--color01);
        display: none;
    }
}

.global-nav {
    position: fixed;
    inset: 0;
    background: #fff;
    display: none;
    z-index: 1500;
    width: 100%;
    height: 100%;
    padding: 0;

    .globalcard {
        height: -webkit-fill-available;
        overflow-y: auto;
        padding: 30px 0;

        .logo {
            width: 150px;
            margin: auto auto 20px;
        }

        .nav-panel {
            width: 90%;
            max-width: 1150px;
            margin: auto auto 10px;

            nav {
                ul {
                    display: flex;
                    flex-wrap: wrap;
                    margin: auto;

                    li {
                        width: calc(100% / 2);
                        min-width: max-content;
                        height: 50px;
                        align-content: center;
                        border-left: 1px solid var(--color01);
                        border-right: 1px solid var(--color01);
                        border-bottom: 1px solid var(--color01);

                        a {
                            display: flex;

                            i {
                                width: 40px;
                                display: block;
                                align-content: center;
                                margin: 0 5px 0 0;

                                img {
                                    display: block;
                                    margin: auto;
                                    height: 20px;
                                    width: auto;
                                }
                            }

                            div {
                                font-size: 0.9em;
                                align-content: center;

                                span {
                                    font-family: var(--font01);
                                    font-size: 1.3em;
                                    display: none;
                                }
                            }
                        }
                    }

                    li:nth-child(1),
                    li:nth-child(2) {
                        border-top: 1px solid var(--color01);
                    }

                    li:nth-child(2n) {
                        border-right: 1px solid var(--color01);
                        border-left: none;
                    }
                }
            }
        }

        .rink_card {
            display: flex;
            justify-content: center;
            padding: 0;
            width: 85%;
            margin: auto;

            a {
                width: fit-content;
                margin: auto 5px;
                display: block;
            }
        }
    }
}

.global-nav.is-open {
    display: block;
}

footer {
    padding: 0 0 80px;
    z-index: 10000;
    position: relative;
    background: #fff;
    z-index: 999;
    background: url(../../images/footer_bg.jpg) no-repeat center center / cover;

    .fnav {
        position: fixed;
        bottom: 0;
        width: 100%;
        background: #ffffffe5;
        z-index: 100;
        padding: 5px 0;

        ul {
            display: flex;

            li {
                border-right: 1px solid var(--color01);
                width: calc(100% /6);
                font-size: 0.75em;
                text-align: center;

                div {
                    height: 35px;
                    align-content: center;

                    img {
                        height: 25px;
                        width: auto;
                        margin: auto;
                    }
                }
            }

            li:last-child {
                border-right: none;
            }
        }
    }

    #page-top {
        bottom: 100px;
        right: 0.5em;
        position: fixed;

        img {
            width: 50px;
            height: auto;
        }
    }

    #page-top.RightMove {
        display: none;
    }

    .footer {

        align-content: center;
        padding: 30px 0;

        .footercard {
            width: 90%;
            max-width: 1600px;
            margin: auto;
            justify-content: space-between;

            .fleft {
                margin: auto auto 30px;

                .logo {
                    width: 150px;
                    margin: auto;
                    display: block;
                }
            }

            .fright {
                font-size: 0.8em;
                width: 95%;
                max-width: 500px;
                margin: auto;

                ul {
                    display: flex;
                    flex-wrap: wrap;

                    li {
                        width: calc(100% / 3);
                        margin: 0 0 15px 0;
                        position: relative;
                        align-content: center;
                        line-height: 1em;

                        a {}
                    }
                }
            }
        }
    }

    .copy {
        background: #0cb7c7;
        text-align: center;
        height: 30px;
        font-size: 0.7em;
        align-content: center;
        color: #fff;
        box-shadow: inset 0px 5px 5px #00000023;

        a {
            color: #fff;
        }
    }
}

main {
    width: 100%;
    overflow-x: hidden;
    overflow-y: visible;
    /*overflow-y: clip;*/
    padding: 100px 0 0;
    min-height: calc(100vh - 350px);

    #pankuzu {
        width: 100%;
        max-width: 1860px;
        margin: auto;
        font-size: 0.7em;
        background: #fff;
        padding: 10px 1%;

        nav {
            ol {
                display: flex;
                flex-wrap: wrap;

                li {
                    display: flex;
                }

                li::after {
                    content: '>';
                    padding: 0 5px;
                    display: block;
                }

                li:last-child:after {
                    content: '';
                    padding: 0;
                }
            }
        }
    }

    .scroll {
        font-family: var(--font01);
        text-align: right;
        width: 90%;
        margin: auto;
        font-size: 2em;
        color: #e77cff;
        display: flex;
        justify-content: end;

        .scroll_down {
            animation: arrowmove 1s ease-in-out infinite;
            width: 50px;
            height: auto;
            margin: 0;
            position: relative;

            .arrow {
                position: absolute;
                left: 0;
                bottom: 0;
                width: 20px;
                height: 20px;
                opacity: 0;
                transform: scale3d(0.5, 0.5, 0.5);
                animation: move 2s ease-out infinite;
            }

            .arrow:first-child {
                animation: move 2s ease-out 1s infinite;
            }

            .arrow:nth-child(2) {
                animation: move 2s ease-out 1.5s infinite;
            }

            .arrow:nth-child(3) {
                animation: move 2s ease-out 2s infinite;
            }

            /* 矢印の羽（上） */
            .arrow::before,
            .arrow::after {
                content: '';
                position: absolute;
                right: 0;
                width: 70%;
                height: 1px;
                background: #e77cff;
            }

            /* 上の線 */
            .arrow::before {
                top: -5px;
                transform: rotate(45deg);
            }

            /* 下の線 */
            .arrow::after {
                bottom: 15px;
                transform: rotate(-45deg);
            }
        }
    }
}

@keyframes move {
    25% {
        opacity: 1;
    }

    33% {
        opacity: 1;
        transform: translateX(10px);
    }

    67% {
        opacity: 1;
        transform: translateX(20px);
    }

    100% {
        opacity: 0;
        transform: translateX(30px) scale3d(0.5, 0.5, 0.5);
    }
}

#top {
    header {
        position: relative;

        #top_fastview {
            display: block;
            margin: 100% 0 0;

            img {
                display: none;
                margin: auto;
            }
        }

        #header {
            transition: 0.3s ease;
            background: url(../../images/header_bg.jpg) no-repeat center center / cover;

            .header {
                position: relative;
                background: none;
                height: 65px;

                h1 {
                    img {
                        height: 63px;
                    }
                }

                .address {
                    .tel {
                        display: none;
                    }

                    .open {
                        font-size: 1.3em;
                    }
                }
            }
        }

        #header.fixed {
            position: fixed;
            top: 0;
            width: 100%;

            .header {
                height: 60px;

                h1 {
                    img {
                        height: 58px;
                    }
                }

                .address {
                    .tel {
                        display: block;
                    }

                    .open {
                        font-size: 0.8em;
                    }
                }
            }
        }

        /* .target {
      opacity: 0;
      display: none;
      transform: translateY(-30px);
      transition: opacity 0.6s ease, transform 0.6s ease;
    }

    .target.active {
      display: block;
      opacity: 1;
      transform: translateY(0);
    }
    .hamburger.target.active {
      transform: translateX(1000px);
      top: 7px;
    }
    .hamburger.target.active.is-open {
      display: none;
    }*/
    }

    .top_tel {
        background: var(--color01);
        color: #fff;
        height: 40px;
        align-content: center;
        font-size: 1.2em;
        text-align: center;

        span {
            font-family: var(--font01);
        }
    }

    /* main::before {
        content: "";
        position: fixed;
        top: 0;
        left: 0;
        width: 100vw;
        height: 100vh;
        margin: auto;
        background: url(../../images/sp_fast_view.webp) no-repeat top center / 100%;
        z-index: -1;
    }*/

    .main_fview {
        content: "";
        position: fixed;
        top: 0;
        left: 0;
        width: 100vw;
        height: 100vh;
        margin: auto;
        z-index: -1;
    }
}

main {
    padding: 0;
    background: #fff;
}

/* ==============================
   girls list
============================== */

.girls_list {
    width: 98%;
    max-width: 1000px;
    display: flex;
    flex-wrap: wrap;
    margin: auto auto 20px;

    a {
        width: calc(100% / 2);
        margin: 0 0 10px;

        .onecard {
            border: 1px solid #0cb7c7;
            padding: 2px;

            .time {
                background: url(../../images/girl_time_bg.jpg) no-repeat center center / 100% 100%;
                display: flex;
                justify-content: center;
                color: #fff;
                align-items: center;
                padding: 5px 0;
                font-size: 0.8em;

                img {
                    padding: 0 2px 0 0;
                    width: 15px;
                }
            }

            .img {
                position: relative;

                >img {
                    aspect-ratio: 3 / 4;
                    object-fit: cover;
                    object-position: center top;
                    width: 100%;
                }

                .icon01 {
                    position: absolute;
                    top: 5px;
                    right: 5px;
                    width: 30%;
                    max-width: 80px;
                }
            }

            .prof {
                background: url(../../images/sp_girl_tprof_bg.jpg) no-repeat center center / 100% 100%;
                text-align: center;
                padding: 5px 0px;
                min-height: 71px;
                align-content: center;

                .name {
                    font-size: 1em;

                    span {
                        font-size: 0.8em;
                    }
                }

                .size {
                    font-size: 0.9em;
                }
            }

            .wait {
                height: 30px;

                align-content: center;
                text-align: center;
                color: #0cb7c7;
                background: linear-gradient(to left, #c2fff1 0%, #fff 40%, #fff 50%, #fff 60%, #c2fff1 100%);
            }
        }
    }
}

#contents_title {
    height: 170px;
    width: 100%;
    align-content: center;
    margin: 55px auto 0;

    .contents_title_obi {
        height: 80px;
        margin: auto;
        align-content: center;

        h2 {
            width: 95%;
            max-width: 1800px;
            margin: auto;
            color: #fff;
            font-size: 1em;

            span {
                font-family: var(--font01);
                font-size: 3.5em;
                padding: 0 10px 0 0;
            }
        }
    }
}


/* 基本構造 */

.hover-effect {
    position: relative;
    display: inline-block;
    overflow: hidden;
}


/* ========== 画像 ========== */

.hover-effect img {
    transition: 0.5s ease;
}


/* ========== 白背景マスク ========== */

.hover-effect::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: 0;
    background: rgba(0, 0, 0, 0.2);
    transition: 0.45s ease;
    z-index: 9;
}


/* ========== 光のライン ========== */

.shine {
    position: absolute;
    inset: -50% -50%;
    background: linear-gradient(75deg, rgba(255, 255, 255, 0.199) 0%, #ffffffe1 50%, rgba(223, 223, 223, 0.205) 100%);
    filter: blur(12px);
    transform: translateX(-120%);
    opacity: 0;
}


/* ========== View Detail ========== */

.detail {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(0.95);
    font-family: var(--font01);
    letter-spacing: 2px;
    opacity: 0;
    color: #fff;
    transition: 0.5s;
    display: flex;
    justify-content: center;
    font-size: 2em;
    width: 100%;
    text-shadow: 0 0 5px #050505;
    z-index: 10;
}


/* 下線の基本 */

.detail::after {
    content: "";
    position: absolute;
    bottom: -3px;
    left: 0;
    right: 0;
    margin: auto;
    height: 2px;
    width: 0;
    background: #fff;
    transition: width 0.45s ease;
    transform-origin: left center;
}


/* hover：左→中央まで伸びる */

.hover-effect:hover .detail::after {
    max-width: 280px;
    width: 80%;
    box-shadow: 0 0 5px #444444;
}


/* マウス離れ時：中央→右に消える */

.detail.leave::after {
    transform-origin: left center;
    width: 0;
}


/* ===== Hover動作 ===== */

.hover-effect:hover img {
    transform: scale(1.03);
    opacity: 1;
}

.hover-effect:hover::before {
    opacity: 1;
}

.hover-effect:hover .detail {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}


/* 光ラインアニメーション */

.hover-effect:hover .shine {
    opacity: 0.8;
    animation: shineMove 1.8s ease-out forwards;
}

@keyframes shineMove {
    0% {
        transform: translateX(-120%) rotate(12deg);
    }

    100% {
        transform: translateX(140%) rotate(12deg);
    }
}


/* ==============================
   index
============================== */

#index {
    main {
        background: none;
    }

    #index_main {

        padding: 70% 0 0;
        width: 100%;
        /*max-width: 1000px;*/
        margin: auto;

        .index_fview {
            content: "";
            position: fixed;
            top: 0;
            left: 0;
            width: 100vw;
            height: 100vh;
            margin: auto;
            z-index: -1;
        }

        .logo {
            width: 75%;
            max-width: 477px;
            margin: auto auto;

            img {}
        }

        .enterbtn {
            background: url(../../images/enterbtn.jpg) no-repeat center center / 100% 100%;
            aspect-ratio: 4 / 1;
            object-fit: cover;
            object-position: center top;
            font-size: 2em;
            width: 70%;
            max-width: 420px;
            text-align: center;
            align-content: center;
            display: block;
            margin: 10px auto 20px;
        }

        .btn_cards {
            background: #0cb7c7c7;
            width: 100%;
            height: 60px;
            align-content: center;

            .kin18 {
                display: flex;
                justify-content: center;

                .kin18img {
                    width: 40px;
                    flex-shrink: 0;
                    display: block;
                    height: fit-content;
                    margin: auto 5px auto 0;
                }

                .note {
                    align-content: center;

                    p {
                        font-size: 0.8em;
                    }

                    a {
                        font-size: 1.1em;
                        text-decoration: underline;
                    }
                }
            }
        }
    }

    /*#index_main::before {
        content: "";
        position: fixed;
        top: 0;
        left: 0;
        width: 100vw;
        height: 100vh;
        margin: auto;
        background: url(../../images/sp_enter_bg.jpg) no-repeat top center / 100%;
        z-index: -1;
    }*/
    #index_link {
        padding: 10px 0 30px;
        background: url(../../images/sp_enter_bg02.jpg) no-repeat center bottom / cover;

        ul {
            width: 98%;
            margin: auto;

            li {
                margin: auto auto 5px;
                width: fit-content;
            }
        }
    }

    footer {
        padding: 0;
    }
}


/* ==============================
   Top
============================== */
#top_link {
    display: none;
}

#top {
    #top_link {
        padding: 10px 0 30px;
        display: block;

        ul {
            width: 98%;
            margin: auto;

            li {
                margin: auto auto 5px;
                width: fit-content;

                iframe {
                    max-width: 350px;

                    margin: auto;
                }
            }
        }
    }
}

#top_header {
    .top_header {
        display: flex;
        width: calc(100% - 10px);
        max-width: 1550px;
        margin: auto;
        padding: 0 5px 0 5px;
        justify-content: space-between;

        .h_left {
            display: flex;
            padding: 0 168px 0 0;
            width: 50%;

            .recruit_btn {
                display: block;
                width: 295px;
                border: 1px solid #0cb7c7;
                text-align: center;
                color: #0cb7c7;
                background: #fff;
                height: 78px;
                margin: auto 0;
                align-content: center;

                span {
                    display: block;
                    font-family: var(--font01);
                    font-size: 1.35em;
                }
            }

            .address {
                width: 300px;
                text-align: center;
                align-content: center;

                .tel {
                    font-size: 1.35em;
                }
            }
        }

        .h_right {
            display: flex;
            margin: 0 100px 0 168px;
            width: 50%;

            a {
                display: block;
                margin: 0 2.5px;
            }
        }
    }
}

.section_tit {
    width: 100%;
    font-size: 1em;
    padding: 0 20px;
    margin-bottom: 1em;

    span {
        font-family: var(--font01);
        font-size: 3.5em;
        margin: 0 10px 0 0;
    }
}

#top_movie {
    margin: auto auto 10px;

    .section_tit {
        background: #0fb8c8;
        color: #fff;
        position: relative;
    }

    .top_movie {
        background: #d0fff4;
        padding: 5px 0 15px;
        margin: auto auto 20px;
        position: relative;

        .top_movies {
            width: 98%;
            margin: auto auto 10px;
            max-width: 790px;

            .onecard {
                max-width: 800px;
                background: url(../../images/waku_img.jpg) no-repeat center center / cover;
                padding: 5px;
                margin: 0 5px;

                .card {
                    background: #fff;
                    padding: 5px 0;
                    height: 100%;

                    .txtcard {
                        display: flex;
                        justify-content: space-between;
                        width: 98%;
                        margin: auto;

                        .prof {
                            min-height: 58.5px;
                            align-content: center;

                            .name {
                                font-size: 1em;

                                span {
                                    font-size: 0.8em;
                                }
                            }

                            .size {
                                font-size: 0.8em;
                            }
                        }

                        .work {
                            align-content: center;
                            height: 35px;

                            .situation {
                                font-size: 0.8em;
                                background: linear-gradient(to right, #f2b7ff 0%, #e77cff 20%, #e77cff 100%);
                                text-align: center;
                                width: 90px;
                                margin: auto 5px;
                                color: #fff;
                            }

                            .waiting {
                                font-size: 0.8em;
                                color: var(--color01);
                                text-align: center;
                                font-weight: 600;
                            }
                        }

                        .detailbtn {
                            width: 140px;
                            display: flex;
                            align-items: center;
                            justify-content: center;
                            height: 35px;
                            margin: 0;
                            background: linear-gradient(to left, #97ece6 0%, #0cb7c7 20%, #0cb7c7 50%, #0cb7c7 80%, #97ece6 100%);
                            border-radius: 5px;
                            color: #fff;
                            font-size: 0.9em;
                        }

                        .detailbtn::after {
                            content: "⇀";
                            display: block;
                            margin: auto 0 auto 5px;
                        }
                    }

                    video {
                        margin: 15px auto auto;
                        width: 98%;
                        max-width: 565px;
                        aspect-ratio: 16 / 9;
                        overflow: clip;
                    }
                }
            }
        }

        .viewmore {
            width: 300px;
            height: 50px;
            font-size: 2em;
            margin: auto;
            display: flex;
            align-items: center;
            justify-content: center;
            background: linear-gradient(to left, #0cb7c709 0%, #0cb7c7 10%, #0cb7c7 50%, #0cb7c7 90%, #0cb7c709 100%);
            color: #fff;
            font-family: var(--font01);
        }

        .viewmore::after {
            content: "⇀";
            display: block;
            margin: auto 0 auto 10px;
        }

        #movie_beside {
            .onecard {
                width: calc(100% / 3);

                .card {
                    .txtcard {
                        max-width: 565px;
                    }

                    video {
                        max-width: 565px;
                        aspect-ratio: 16 / 9;
                    }
                }
            }
        }

        #movie_vertical {
            .onecard {
                width: calc(100% / 4);

                .card {
                    .txtcard {
                        max-width: 450px;
                    }

                    video {
                        max-width: 345px;
                        /*  aspect-ratio: 9 / 16;*/
                    }
                }
            }
        }

        .slick-dots {
            bottom: 25px;
            text-align: left;

            li button:before {
                color: #bec8c5;
                font-size: 55px;
                opacity: 1;
            }

            li.slick-active button:before {
                color: var(--color01);
                opacity: 1;
            }
        }

        .slick-prev {
            background: url(../../images/sp_arrow_right.png) no-repeat center bottom / 100%;
            width: 25px;
            height: 50px;
        }

        .slick-next {
            background: url(../../images/sp_arrow_left.png) no-repeat center bottom / 100%;
            width: 25px;
            height: 50px;
        }
    }

    .top_movie .movie_beside {
        video {
            aspect-ratio: 16 / 9;
        }
    }

    .top_movie .movie_vertical {
        video {
            /* aspect-ratio: 9 / 16;*/
        }
    }
}

#top_schedule {
    .section_tit {
        background: #b589ff;
        color: #fff;
        position: relative;
    }
}

#top_newface {
    padding: 20px 0;
    margin: auto auto 30px;
    background: #dbf4fc;

    .section_tit {
        background: #49c7f1;
        color: #fff;

        a.btn {
            position: absolute;
            right: 10px;
            width: 400px;
            height: 80px;
            border-radius: 5px;
            display: block;
            text-align: center;
            align-content: center;
            top: 0;
            bottom: 0;
            margin: auto;
            background: #fff;
            color: #0cb7c7;
        }
    }

    .top_newface {
        width: 100%;
        max-width: 800px;
        margin: auto;

        .slick-list {
            position: static;
        }

        a {
            margin: auto;
            padding: 5px 2.5px;
            background: url(../../images/waku_img.jpg) no-repeat center center / cover;
            display: block;

            .onecard {
                background: #fff;

                .days {
                    font-family: var(--font01);
                    font-size: 1.5em;
                    color: #0cb7c7;
                    line-height: 1;
                    margin: auto;
                    text-align: center;
                    padding: 5px 0;

                    span {
                        font-family: "Noto Serif JP", serif;
                        font-size: 0.5em;
                    }
                }

                .img {
                    position: relative;

                    >img {
                        aspect-ratio: 3 / 4;
                        object-fit: cover;
                        object-position: center top;
                        width: 100%;

                    }

                    .icon01 {
                        position: absolute;
                        top: 5px;
                        right: 5px;
                        width: 90px;
                    }
                }

                .prof {
                    background: url(../../images/sp_top_nf_bg.jpg) no-repeat center center / 100%;
                    padding: 3px 0;
                    text-align: center;

                    .name {
                        font-size: 1.2em;

                        span {}
                    }

                    .size {
                        font-size: 1em;
                        margin: auto;
                    }
                }
            }
        }

        .slick-prev {
            background: url(../../images/sp_arrow_left.png) no-repeat center bottom / 100%;
            width: 25px;
            height: 50px;
            right: auto;
            left: 0;
        }

        .slick-next {
            background: url(../../images/sp_arrow_right.png) no-repeat center bottom / 100%;

            width: 25px;
            height: 50px;

            right: 0;
            left: auto;
        }
    }

    .viewmore {
        width: 300px;
        height: 50px;
        font-size: 2em;
        margin: 15px auto auto;
        display: flex;
        align-items: center;
        justify-content: center;
        background: linear-gradient(to left, #c5fdf2 0%, #0cb7c7 20%, #0cb7c7 50%, #0cb7c7 80%, #c5fdf2 100%);
        color: #fff;
        color: #fff;
        font-family: var(--font01);
    }
}

#top_contents {
    position: relative;

    #top_pickup {
        padding: 0 0 20px;
        margin: auto auto 30px;
        background: #ffe7f2;
        position: relative;

        .section_tit {
            background: #fe67ac;
            color: #fff;

            a.btn {
                position: absolute;
                right: 10px;
                width: 400px;
                height: 80px;
                border-radius: 5px;
                display: block;
                text-align: center;
                align-content: center;
                top: 0;
                bottom: 0;
                margin: auto;
                background: #fff;
                color: #0cb7c7;
            }
        }

        .top_pickups_wrap {
            .top_pickups {
                margin: 0 0 0 10px;
                overflow-x: auto;

                .top_pickup {
                    display: flex;
                    width: max-content;

                    .onecard {
                        display: block;
                        margin: 0 5px;
                        width: calc(100% - 10px);
                        max-width: 300px;

                        .img {
                            position: relative;
                            margin: auto auto 5px;
                            border-radius: 20px;
                            overflow: hidden;

                            >img {
                                aspect-ratio: 3 / 4;
                                object-fit: cover;
                                object-position: center top;
                            }

                            .icon01 {
                                width: 30%;
                                max-width: 90px;
                                top: 5px;
                                right: 5px;
                                position: absolute;
                            }
                        }

                        .prof {
                            .card {
                                font-size: 1.2em;
                                padding: 3px;

                                .size {
                                    font-size: 0.8em;
                                }
                            }
                        }
                    }
                }
            }

            .arrow_left,
            .arrow_right {
                position: absolute;
                top: 50%;
                transform: translateY(-50%);
                transition: opacity 0.3s;
                opacity: 1;
                pointer-events: none;
                /* 矢印は飾りなので */
                z-index: 10;

                img {
                    height: 70px;
                    width: auto;
                }
            }

            .arrow_left {
                left: 0;
            }

            .arrow_right {
                right: 0;
            }

            .fadeout {
                opacity: 0;
            }
        }
    }

    #top_diary {
        width: 98%;
        max-width: 800px;
        padding: 0;
        margin: auto auto 30px;

        .contents_tit {
            background: linear-gradient(to right, var(--color01) 0%, #0cb7c7 50%, #c1fff1 100%);
            font-size: 2em;
            border-radius: 20px 20px 0 0;
            padding: 10px;
            color: #fff;
            margin: auto;
        }

        .top_diary {
            background: #fff;
            width: 100%;
            padding: 5px;
            border: 2px solid var(--color01);

            iframe {
                width: 100%;
                height: 245vw;
                max-height: 2000px;
            }

            .more {
                color: var(--color01);
                width: fit-content;
                display: block;
                font-size: 0.8em;

                div {
                    width: 25px;
                    height: 25px;
                    margin: auto auto 5px;
                    border-radius: 50%;
                    font-size: 1.2em;
                    text-align: center;
                    align-content: center;
                    line-height: 1;
                    font-weight: 600;
                    border: 1px solid var(--color01);
                }

                div::after {
                    content: '>';
                    display: block;
                    line-height: 1;
                    margin: auto auto 2px;
                }
            }
        }
    }
}

#top_slidebanner {
    background: url(../../images/sp_top_slide_bg.jpg) no-repeat center center / cover;
    padding: 30px 0;
    margin: auto auto 25px;

    .top_slidebanner {
        width: 100%;
        margin: auto;
        max-width: 1096px;

        .slick-slider {
            padding: 0 5px;

            .slick-dots li button:before {
                color: var(--color01);
            }
        }

        .slick-next {
            background: url(../../images/sp_arrow_right.png) no-repeat center bottom / 100%;
            width: 25px;
            height: 50px;
            right: 0;
            left: auto;
        }

        .slick-prev {
            background: url(../../images/sp_arrow_left.png) no-repeat center bottom / 100%;
            width: 25px;
            height: 50px;
            left: 0;
            right: auto;
        }
    }
}

#top_ranking {
    margin: auto;
    position: relative;
    background: url(../../images/top_rankingbg.jpg) no-repeat center center / cover;
    padding: 0px 0 10px;

    .section_tit {
        background: #fe67ac;
        color: #fff;
        position: relative;
        margin: auto;
    }

    .scroll {
        font-family: var(--font01);
        text-align: right;
        width: 100%;
        padding: 0 2.5%;
        background: #fff;
        margin: auto;
        font-size: 2em;
        color: #e77cff;
    }

    .top_rankings {
        margin: auto;
        padding: 0px 0 10px 5px;
        overflow-x: auto;

        .top_ranking {
            display: flex;
            width: max-content;
            margin: auto;

            .onecard {
                display: block;
                margin: 0 5px;
                width: calc(100% - 10px);
                max-width: 300px;

                .card {
                    .rank {
                        height: 150px;

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

                    .img {
                        position: relative;
                        margin: auto auto 10px;

                        >img {
                            aspect-ratio: 3 / 4;
                            object-fit: cover;
                            object-position: center top;
                            width: 100%;
                        }

                        .icon01 {
                            position: absolute;
                            top: 5px;
                            right: 5px;
                            width: 30%;
                            max-width: 100px;
                        }
                    }

                    .profcard {
                        padding: 2.5px;
                        text-align: center;
                        font-size: 1em;
                        background: url(../../images/waku_img.jpg) no-repeat center center / cover;

                        .prof {
                            background: #fff;
                            padding: 3px 0;

                            .name {
                                span {}
                            }

                            .size {}
                        }
                    }
                }

                .card.rank01 {
                    .profcard {
                        background: linear-gradient(to top, #f3c33c 0%, #ffe582 50%, #f3c33c 100%);
                    }
                }

                .card.rank02 {
                    .profcard {
                        background: linear-gradient(to top, #b8b8b7 0%, #fffef6 50%, #b8b8b7 100%);
                    }
                }

                .card.rank03 {
                    .profcard {
                        background: linear-gradient(to top, #aa6545 0%, #f6cc99 50%, #aa6545 100%);
                    }
                }
            }
        }
    }

    .arrow {
        position: absolute;
        top: 50%;
        right: 0;

        img {
            height: 70px;
            width: auto;
        }
    }

    .top_rankings_wrap {
        position: relative;
    }

    .arrow_left,
    .arrow_right {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        transition: opacity 0.3s;
        opacity: 1;
        pointer-events: none;
        /* 矢印は飾りなので */
        z-index: 10;

        img {
            height: 70px;
            width: auto;
        }
    }

    .arrow_left {
        left: 0;
    }

    .arrow_right {
        right: 0;
    }

    .fadeout {
        opacity: 0;
    }
}

#top_banner {
    padding: 20px 0;

    ul {
        max-width: 1300px;
        margin: auto;
        width: 98%;

        a {
            display: block;
            width: fit-content;
            margin: auto auto 10px;
        }
    }
}


/* ==============================
   EVENT
============================== */

#event {
    #contents_title {
        background: url(../../images/sp_event_title_bg.jpg) no-repeat center center / cover;

        .contents_title_obi {
            background: #fe67abc2;
        }
    }

    #eventcard {
        .cards {
            max-width: 1000px;
            margin: auto;
            width: 95%;

            figure {
                margin: auto auto 20px;

                img {
                    width: 100%;
                    margin: 0 0 10px;
                    display: block;
                    height: fit-content;
                }

                figcaption {
                    border: 1px solid var(--color01);
                    border-radius: 10px;
                    overflow: hidden;
                    margin: auto auto;

                    .tit {
                        background: var(--color01);
                        color: #fff;
                        padding: 5px 15px;

                        h3 {
                            font-size: 1em;
                            margin: auto auto 5px;
                            font-weight: 500;
                        }

                        p {
                            font-size: 0.8em;
                        }
                    }

                    .text {
                        padding: 0 5px;
                        margin: 10px;
                        overflow-y: auto;
                        max-height: 300px;
                        font-size: 0.8em;
                    }

                    .text.no-image {
                        max-height: 200px;
                    }
                }
            }
        }

        .pager {}
    }
}

.pager {
    padding: 0 0 30px;

    ul.pagination {
        display: flex;
        justify-content: center;

        li {
            margin: auto 5px;

            a {
                width: 30px;
                height: 30px;
                border: 1px solid var(--color01);
                border-radius: 50%;
                font-size: 1em;
                text-align: center;
                align-content: center;
                color: var(--color01);
                display: block;
                overflow: hidden;
            }

            a:hover,
            a.active {
                background: var(--color01);
                color: #fff;
            }
        }
    }
}


/* ==============================
   profile
============================== */

#profile {
    margin: 0;

    #contents_title {
        background: url(../../images/sp_profile_title_bg.jpg) no-repeat center center / cover;

        .contents_title_obi {
            background: #49c7f1c2;
        }
    }

    #profilecard {
        position: relative;
        overflow: hidden;

        .profilecard {
            width: 100%;
            margin: auto;
            max-width: 1600px;
            padding: 20px 0;

            .proftit {
                background: url(../../images/prof_tit_bg.jpg) no-repeat center left / cover;
                padding: 5px 20px;
                font-size: 0.8em;
                border-radius: 10px 10px 0 0;
                color: var(--color01);
                margin: auto;

                span {
                    font-size: 2em;
                    font-family: var(--font01);
                    margin: 0 5px 0 0;
                }
            }

            .profcard {
                margin: auto auto 30px;
                width: 98%;
                max-width: 700px;

                .profillcard {
                    margin: auto;

                    .profslide {

                        margin: 0 auto 20px;

                        img {
                            aspect-ratio: 3 / 4;
                            object-fit: cover;
                            object-position: center top;
                            width: 100%;
                            border-radius: 10px;
                            overflow: hidden;
                        }

                        .slick-prev,
                        .slick-next {
                            background: #00000071;
                            width: 20px;
                            height: 50px;
                            border-radius: 5px;
                            font-size: 0.5em;
                        }

                        .slick-prev::before {
                            content: ">";
                            display: block;
                            color: #fff;
                        }

                        .slick-next::before {
                            content: "<";
                            display: block;
                            color: #fff;
                        }

                        .slick-dots {
                            position: static;
                        }
                    }

                    .profthumbnail {
                        display: none;

                        div {
                            margin: 0 5px;
                        }
                    }
                }

                .profilrcard {
                    margin: 0 auto;

                    .name_card {
                        text-align: center;
                        padding: 5px;
                        margin: 10px auto;

                        .name {
                            font-size: 1.4em;
                            margin: 5px auto 20px;
                            width: fit-content;
                            border-left: 3px solid var(--color01);
                            border-right: 3px solid var(--color01);
                            padding: 3px 20px;

                            span {
                                font-size: 0.75em;
                            }
                        }

                        .size {
                            font-size: 1em;
                        }
                    }

                    .memo {
                        border: 2px solid var(--color01);
                        font-size: 1.2em;
                        padding: 10px 5px;
                        border-radius: 30px;
                        text-align: center;
                        color: var(--color01);
                        margin: 0 auto 20px;
                        background: #fff;
                        width: 90%;
                    }

                    .profilmovie {
                        border: 2px solid var(--color01);
                        border-radius: 10px 10px 0 0;
                        overflow: hidden;
                        width: 90%;
                        margin: auto;
                        background: #fff;

                        .tit {
                            font-size: 1.25em;
                            background: var(--color01);
                            color: #fff;
                            padding: 3px 10px;
                        }

                        .moviecards {
                            margin: 10px;
                            padding: 0 5px;

                            video {
                                margin: auto auto 5px;
                            }
                        }
                    }
                }
            }

            #profilschedule {
                margin: auto auto 20px;
                width: 98%;
                max-width: 700px;

                .profilschedule {
                    padding: 0 10px;
                    background: #fff;
                    width: 100%;
                    margin: auto;

                    .card {
                        width: 100%;
                        border-bottom: 1px solid var(--color01);
                        text-align: center;
                        padding: 5px 1%;
                        display: flex;
                        justify-content: space-between;

                        .days {
                            margin: auto 0;
                            font-size: 0.9em;
                        }

                        .time {
                            margin: auto 0;
                            font-size: 0.9em;
                        }

                        a {
                            padding: 10px 0;
                            border-radius: 5px;
                            color: #fff;
                            background: #bec8c5;
                            width: 150px;
                            display: flex;
                            justify-content: center;
                        }

                        a::after {
                            content: "⇀";
                            display: block;
                            margin: auto 0 auto 10px;
                        }
                    }

                    .card.on {
                        a {
                            background: linear-gradient(to left, #c5fdf2 0%, #0cb7c7 20%, #0cb7c7 50%, #0cb7c7 80%, #c5fdf2 100%);
                        }
                    }

                    .card:last-child {
                        border-bottom: none;
                    }
                }
            }

            #profilfaq {
                width: 100%;
                max-width: 700px;
                margin: auto auto;

                .profilfaq {
                    background: #fff;
                    padding: 0 5%;
                    margin: auto auto 30px;

                    dl {
                        font-size: 0.9em;
                        padding: 2px 0;
                        border-bottom: 1px solid #bec8c5;

                        span {
                            font-size: 1.3em;
                            font-family: var(--font01);
                            margin: 0 10px 0 0;
                        }

                        p {
                            align-content: center;
                        }

                        dt {
                            display: flex;

                            span {
                                color: #0fb8c8;
                            }
                        }

                        dd {
                            display: flex;

                            span {
                                color: #e77cff;
                            }
                        }
                    }

                    dl:last-child {
                        border-bottom: none;
                    }
                }
            }

            #commentdiary {
                width: 98%;
                max-width: 700px;
                margin: auto;

                #comment {
                    width: 98%;
                    margin: auto;

                    .comment {
                        border-radius: 10px;
                        margin: auto auto 15px;
                        padding: 10px;
                        background: #fff;

                        .tit {
                            font-size: 1.1em;
                            margin: 0 0 2px;
                        }

                        .txt {
                            max-height: 250px;
                            overflow-y: auto;
                            font-size: 0.9em;
                        }
                    }

                    .appealcomment {
                        border: 2px solid #e77cff;
                    }

                    .tenchocomment {
                        border: 2px solid #0cb7c7;
                    }
                }

                #diary {
                    border: 2px solid #0cb7c7;
                    border-radius: 20px 20px 0 0;
                    margin: auto;
                    width: 100%;
                    overflow: hidden;
                    background: #fff;

                    .tit {
                        font-size: 1.2em;
                        background: #0cb7c7;
                        padding: 10px;
                        color: #fff;
                    }

                    .diary {
                        margin: 10px;

                        iframe {
                            width: 100%;
                            height: 245vw;
                            max-height: 1740px;
                        }

                        .more {
                            color: var(--color01);
                            width: fit-content;
                            display: block;
                            font-size: 0.8em;

                            div {
                                width: 25px;
                                height: 25px;
                                margin: auto auto 5px;
                                border-radius: 50%;
                                font-size: 1.2em;
                                text-align: center;
                                align-content: center;
                                line-height: 1;
                                font-weight: 600;
                                border: 1px solid var(--color01);
                            }

                            div::after {
                                content: '>';
                                display: block;
                                line-height: 1;
                                margin: auto auto 2px;
                            }
                        }
                    }
                }
            }
        }
    }

    #profilecard::before {
        content: "";
        position: fixed;
        top: 0;
        left: 0;
        width: 100vw;
        height: 100vh;
        background: url(../../images/profile_bg.jpg) no-repeat top center / cover;
        z-index: -1;
    }
}


/* ==============================
   ranking
============================== */

#ranking {
    #contents_title {
        background: url(../../images/sp_ranking_title_bg.jpg) no-repeat center center / cover;

        .contents_title_obi {
            background: #0fb8c8c2;
        }
    }

    #rankingcards {
        background: url(../../images/ranking_bg.jpg) no-repeat center center / cover;

        .rankingcards0105 {
            .onecard {
                width: 100%;
                margin: auto;
                max-width: 1200px;
                padding: 10px 0 20px;

                .card {
                    .ranking_l {
                        width: 100%;
                        margin: 0 auto;
                        max-width: 580px;

                        .namecard {
                            text-align: center;
                            border-left: 2px solid var(--color01);
                            border-right: 2px solid var(--color01);
                            margin: 10px auto 15px;
                            width: fit-content;
                            padding: 0 5%;

                            .name {
                                font-size: 1.2em;

                                span {
                                    font-size: 0.7em;
                                }
                            }
                        }

                        .text {
                            background: #fff;
                            border: 2px solid var(--color01);
                            padding: 5px;
                            border-radius: 5px;
                            width: 90%;
                            margin: auto;
                            font-size: 0.9em;

                            div {
                                overflow-y: auto;
                                height: 200px;
                            }
                        }
                    }

                    .ranking_r {
                        width: 90%;
                        margin: auto;
                        max-width: 550px;
                        position: relative;
                        padding: 0 5%;

                        .img {
                            padding: 5px;
                            border-radius: 20px;
                            overflow: hidden;
                            position: relative;

                            /* background: url(../../images/waku_img.jpg) no-repeat center center / cover;*/
                            >img {
                                border-radius: 22px;
                                overflow: hidden;
                                display: inline-block;
                                aspect-ratio: 3 / 4;
                                object-fit: cover;
                                object-position: center top;
                                width: 100%;
                            }
                        }

                        .rank {
                            position: absolute;
                            bottom: -10px;
                            right: -2.5%;
                            width: 75%;
                            max-width: fit-content;

                            img {}
                        }
                    }
                }

                .card.no01 {
                    .ranking_r {
                        .img {}

                        .img::after {
                            background: url(../../images/frameno01.png) no-repeat center center / 100% 100%;
                            content: "";
                            position: absolute;
                            top: 0;
                            left: 0;
                            width: 100%;
                            height: 100%;
                            pointer-events: none;
                        }
                    }
                }

                .card.no02 {
                    .ranking_r {
                        .img {}

                        .img::after {
                            background: url(../../images/frameno02.png) no-repeat center center / 100% 100%;
                            content: "";
                            position: absolute;
                            top: 0;
                            left: 0;
                            width: 100%;
                            height: 100%;
                            pointer-events: none;
                        }
                    }
                }

                .card.no03 {
                    .ranking_r {
                        .img {}

                        .img::after {
                            background: url(../../images/frameno03.png) no-repeat center center / 100% 100%;
                            content: "";
                            position: absolute;
                            top: 0;
                            left: 0;
                            width: 100%;
                            height: 100%;
                            pointer-events: none;
                        }
                    }
                }

                .card.no04,
                .card.no05 {
                    .ranking_r {
                        .img {
                            background: url(../../images/waku_img.jpg) no-repeat center center / cover;
                        }
                    }
                }

                a.morebtn {
                    width: 300px;
                    height: 50px;
                    font-size: 1.8em;
                    margin: 20px auto 0;
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    background: linear-gradient(to left, #c5fdf2 0%, #0cb7c7 20%, #0cb7c7 50%, #0cb7c7 80%, #c5fdf2 100%);
                    color: #fff;
                    font-family: var(--font01);
                }

                a.morebtn::after {
                    content: "⇀";
                    display: block;
                    margin: auto 0 auto 10px;
                }
            }
        }

        .rankingcards0610 {
            background: #d0fff4;
            padding: 10px 0 20px;

            .rankings_wrap {
                position: relative;

                .rankingcards {
                    width: 100%;
                    overflow-x: auto;
                    max-width: 1555px;
                    margin: auto;
                    padding: 0 0 0 5px;

                    .rankingcard {
                        display: flex;
                        width: fit-content;
                        padding: 0 0 5px;

                        .onecard {
                            margin: auto 5px;
                            width: 300px;

                            .card {
                                .rank {
                                    height: 140px;
                                    align-content: center;
                                    text-align: center;
                                    margin: auto auto 20px;

                                    img {
                                        height: 160px;
                                        width: auto;
                                        margin: auto;
                                    }
                                }

                                .img {
                                    margin: auto auto 20px;
                                }

                                .namecard {
                                    font-size: 1.2em;
                                    padding: 2px;
                                    border: 3px solid #0cb7c7;
                                    background: #fff;
                                    text-align: center;

                                    .name {
                                        span {
                                            font-size: 0.7em;
                                        }
                                    }

                                    .size {
                                        font-size: 0.7em;
                                    }
                                }
                            }
                        }
                    }
                }

                .arrow {
                    position: absolute;
                    top: 50%;
                    right: 0;

                    img {
                        height: 70px;
                        width: auto;
                    }
                }

                .arrow_left,
                .arrow_right {
                    position: absolute;
                    top: 50%;
                    transform: translateY(-50%);
                    transition: opacity 0.3s;
                    opacity: 1;
                    pointer-events: none;
                    /* 矢印は飾りなので */
                    z-index: 10;

                    img {
                        height: 70px;
                        width: auto;
                    }
                }

                .arrow_left {
                    left: 0;
                }

                .arrow_right {
                    right: 0;
                }

                .fadeout {
                    opacity: 0;
                }
            }
        }
    }
}


/* ==============================
   system
============================== */

#system {
    #contents_title {
        background: url(../../images/sp_system_title_bg.jpg) no-repeat center center / cover;

        .contents_title_obi {
            background: #b589ffc2;
        }
    }

    .system::before {
        content: "";
        position: fixed;
        top: 0;
        left: 0;
        width: 100vw;
        height: 100vh;
        background: url(../../images/sp_system_bg.jpg) repeat center center / 100%;
        z-index: -1;
    }

    .system {
        position: relative;
        overflow: hidden;
        padding: 0 0 10px;

        .system_tit {
            text-align: center;
            width: fit-content;
            margin: auto;
            padding: 0 10%;
            border-left: 2px solid var(--color01);
            border-right: 2px solid var(--color01);

            span {
                font-family: var(--font01);
                font-size: 2em;
                margin: auto auto 5px;
                display: block;
            }
        }

        #system_charge {
            padding: 20px 0;

            .chargecard {
                display: block;
                flex-wrap: wrap;
                justify-content: center;
                margin: 30px auto;
                max-width: 1450px;

                .card {
                    display: flex;
                    width: 100%;
                    margin: auto auto 20px;
                    justify-content: center;

                    .min {
                        font-size: 0.8em;
                        align-content: end;
                        padding: 0;
                        align-content: center;
                        width: 80px;

                        span {
                            font-size: 1.5em;
                        }
                    }

                    .price {
                        font-size: 2em;
                        color: #5dc1d0;

                        span {
                            font-size: 0.5em;
                            display: block;
                        }
                    }
                }

                .card:last-child {
                    .min {
                        padding: 0 0 0px;
                        width: 100px;

                        span {
                            display: block;
                        }
                    }
                }
            }

            .system_note {
                width: 90%;
                margin: auto auto 30px;
                font-size: 0.9em;
                line-height: 1.5;
                width: 90%;
                max-width: fit-content;
            }

            .system_note::before {
                content: '';
                margin: auto auto 20px;
                width: 80%;
                height: 2px;
                display: block;
                background: var(--color01);
            }

            .basicplay {
                border: 2px solid var(--color01);
                width: 98%;
                max-width: 800px;
                border-radius: 20px 20px 0 0;
                margin: auto;
                overflow: hidden;

                .tit {
                    background: var(--color01);
                    color: #fff;
                    padding: 5px 10px;

                    span {
                        font-family: var(--font01);
                        font-size: 2em;
                    }
                }

                .play {
                    font-size: 0.9em;
                    text-align: center;
                    line-height: 2;
                    padding: 5px;
                    background: #fff;
                }
            }
        }

        #system_option {
            .optioncard {
                margin: 20px auto;
                max-width: 1350px;

                .card {
                    display: flex;
                    margin: auto auto 10px;
                    max-width: 520px;
                    justify-content: center;

                    .play {
                        font-size: 1em;
                        align-content: end;
                        padding: 0;
                        align-content: center;
                        width: 110px;

                        span {
                            font-size: 1.5em;
                        }
                    }

                    .price {
                        font-size: 2em;
                        color: #5dc1d0;

                        span {
                            font-size: 0.5em;
                            display: block;
                        }
                    }
                }
            }

            p.note {
                text-align: center;
                font-size: 0.9em;
                line-height: 1.3;
            }

            .movieoption {
                border: 3px solid var(--color01);
                padding: 3px;
                background: #fff;
                width: 98%;
                max-width: 800px;
                margin: 30px auto;
                text-align: center;

                .line {
                    border: 1px solid var(--color01);
                    padding: 10px 0;
                    line-height: 2;

                    .tit {
                        font-size: 1.2em;
                        margin: auto auto 5px;
                    }

                    .txt {
                        font-size: 0.9em;
                        margin: auto auto 5px;
                    }

                    p {
                        font-size: 0.7em;
                    }
                }
            }
        }

        #system_area {
            padding: 0;

            .system_tit {
                max-width: 1000px;
                padding: 0 5%;
            }

            .areacards {
                width: 85%;
                max-width: 700px;
                margin: auto;

                .onecard {
                    margin: 20px auto;

                    .tit {
                        padding: 0 0 10px;
                        display: flex;
                        font-size: 1.1em;
                        justify-content: space-between;
                    }

                    .tit::before,
                    .tit::after {
                        width: 35%;
                        height: 1px;
                        background: #000;
                        display: block;
                        content: "";
                        align-content: center;
                        margin: auto 0;
                    }

                    .card {
                        margin: auto auto 10px;

                        .price {
                            font-size: 1.8em;
                            color: var(--color01);
                            margin: 0 0 5px;

                            span {
                                font-size: 0.5em;
                            }
                        }

                        .area {
                            font-size: 1em;
                            align-content: end;
                        }
                    }
                }
            }
        }

        #system_service {
            background: #ffffffa3;
            padding: 20px 0;

            .areacards {
                margin: 10px auto auto;
                width: 90%;
                font-size: 0.9em;
                max-width: 1200px;
                line-height: 1.5;
            }
        }
    }
}


/* ==============================
   hotellist
============================== */

#hotellist {
    #contents_title {
        background: url(../../images/sp_hotellist_title_bg.jpg) no-repeat center center / cover;

        .contents_title_obi {
            background: #fe67acc2;
        }
    }

    #hotellist {
        padding: 20px 0;

        .hotellist {
            a {
                width: 300px;
                height: 50px;
                display: flex;
                margin: auto auto 10px;
                text-align: center;
                align-content: center;
                background: linear-gradient(to left, #c5fdf2 0%, #0cb7c7 20%, #0cb7c7 50%, #0cb7c7 80%, #c5fdf2 100%);
                color: #fff;
                flex-wrap: wrap;
                justify-content: center;
            }

            a::after {
                content: "⇀";
                display: block;
                margin: auto 0 auto 15px;
            }
        }
    }

    #hotellist_area {
        padding: 15px 0 20px;

        .tit {
            font-size: 1em;
            text-align: center;
            padding: 0 20px;
            border-left: 2px solid var(--color01);
            border-right: 2px solid var(--color01);
            width: fit-content;
            margin: auto auto 20px;
        }

        .hotellist_area {
            width: 90%;
            margin: auto;
            max-width: 1450px;
            display: flex;
            flex-wrap: wrap;
            justify-content: space-between;

            a {
                width: 49%;
                display: block;
                background: var(--color01);
                color: #fff;
                text-align: center;
                font-size: 0.9em;
                padding: 13px 0;
                border-radius: 30px;
                margin: auto 0 15px;
            }
        }
    }

    #hotellist_in {
        width: 95%;
        margin: auto;
        padding: 30px 0;

        .tit {
            font-size: 1em;
            text-align: center;
            padding: 0 20px;
            border-left: 2px solid var(--color01);
            border-right: 2px solid var(--color01);
            width: fit-content;
            margin: auto auto 20px;
        }

        .hotellist_in {
            a {
                width: 100%;
                max-width: 800px;
                margin: auto auto 10px;
                display: block;

                dl {
                    display: flex;
                    flex-wrap: wrap;
                    border-radius: 10px 0 0 10px;
                    overflow: hidden;
                    border-right: 1px solid var(--color01);
                    border-top: 1px solid var(--color01);
                    border-top: 1px solid var(--color01);
                    font-size: 0.9em;

                    dt {
                        width: 30%;
                        background: var(--color01);
                        color: #fff;
                        padding: 0 5px;
                        height: 40px;
                        align-content: center;
                    }

                    dd {
                        width: 70%;
                        align-content: center;
                        padding: 0 5px;
                        border-bottom: 1px solid var(--color01);
                        height: 40px;
                    }
                }
            }
        }
    }

    #hotel_details {
        width: 100%;
        margin: auto;
        padding: 10px 0 20px;
        max-width: 1000px;

        .hotel_btn {
            display: flex;
            width: 95%;
            max-width: 990px;
            margin: auto auto 20px;
            justify-content: space-around;

            a {
                position: relative;
                overflow: hidden;
                width: 45%;
                margin: auto 0.5% auto;
                max-width: 300px;
                border: 1px solid var(--color01);
                height: 40px;
                justify-content: center;
                color: var(--color01);
                display: flex;
                align-content: center;
                flex-wrap: wrap;
                transition: color 0.3s ease;
            }

            a:hover {
                color: #fff;
                background: #0cb7c7;
            }

            a::after {
                content: "⇀";
                display: block;
                margin: auto 0 auto 10px;
            }
        }

        .hotel_address {
            width: 90%;
            margin: auto auto 20px;

            .name {
                align-content: center;
                font-size: 1.2em;
                padding: 0 0 10px;
            }

            address {
                border-left: 2px solid var(--color01);
                padding: 0 0 0 10px;
                font-size: 0.9em;
                font-style: normal;
            }
        }

        iframe {
            margin: auto auto 20px;
        }

        .return {
            width: 300px;
            height: 50px;
            font-size: 1em;
            margin: auto;
            display: flex;
            align-items: center;
            justify-content: center;
            background: linear-gradient(to left, #c5fdf2 0%, #0cb7c7 20%, #0cb7c7 50%, #0cb7c7 80%, #c5fdf2 100%);
            color: #fff;
        }

        .return::after {
            content: "⇀";
            display: block;
            margin: auto 0 auto 10px;
        }
    }
}


/* ==============================
   newface
============================== */

#newface {
    #contents_title {
        background: url(../../images/sp_newface_title_bg.jpg) no-repeat center center / cover;

        .contents_title_obi {
            background: #49c7f1c2;
        }
    }

    #newface {
        padding: 0 0 30px;

        .newfacecards {
            width: 100%;
            max-width: 700px;
            margin: auto;

            a {
                display: block;
                width: calc(100% - 5px);
                margin: auto auto 10px;
                padding: 3px;
                background: url(../../images/waku_img.jpg) no-repeat center center / cover;
                border-radius: 10px;

                .onecard {
                    background: url(../../images/newface_bg.jpg) no-repeat center center / cover;
                    padding: 5px;
                    border-radius: 10px;
                    overflow: hidden;
                    justify-content: space-between;
                    align-items: stretch;

                    .img {
                        position: relative;
                        width: 100%;
                        border-radius: 10px;
                        overflow: hidden;
                        margin: auto auto 10px;

                        >img {
                            aspect-ratio: 3 / 4;
                            object-fit: cover;
                            object-position: center top;
                        }

                        .icon01 {
                            position: absolute;
                            top: 5px;
                            right: 5px;
                            width: 30%;
                            max-width: 100px;
                        }
                    }
                }

                .prof {
                    width: 100%;
                    border-radius: 10px;
                    background: #fff;
                    padding: 10px;
                    align-content: space-around;

                    .days {
                        color: var(--color01);
                        margin: 0 0 2px;
                        position: relative;
                        display: flex;

                        div {
                            font-family: var(--font01);
                            font-size: 1.3em;
                            display: block;
                            font-weight: 0;
                            position: relative
                        }

                        span {
                            font-family: var(--font02);
                            font-size: 0.5em;
                            position: absolute;
                            width: max-content;
                            right: 0;
                            top: 0;
                        }

                        >div {
                            padding: 5px 0 0;
                        }

                        div:last-child {
                            margin: 0 auto auto 5px;
                            font-size: 1.5em;
                            padding: 0;
                        }
                    }

                    .name {
                        font-size: 1.2em;
                        margin: 0 0 2px;

                        span {}
                    }

                    .size {
                        font-size: 1em;
                        margin: 0 0 8px;
                    }

                    .memo {
                        font-size: 1em;
                        /*height: 30px;*/
                        align-content: center;
                        border: 2px solid;
                        color: var(--color01);
                        border-radius: 30px;
                        text-align: center;
                        margin: auto auto 5px;
                        padding: 5px;
                    }

                    .text {
                        overflow: auto;
                        padding: 5px 0;
                        margin: auto 0;
                        max-height: 150px;
                    }
                }
            }
        }
    }
}


/* ==============================
   movie
============================== */

#movie {
    #contents_title {
        background: url(../../images/sp_movie_title_bg.jpg) no-repeat center center / cover;

        .contents_title_obi {
            background: #0fb8c8c2;
        }
    }

    .moviecards {
        padding: 0 0 20px;
        margin: auto;
        width: 100%;
        justify-content: center;

        .onecard {
            background: url(../../images/waku_img.jpg) no-repeat center center / cover;
            padding: 3px;
            margin: 5px auto;
            width: 95%;
            max-width: 800px;

            .card {
                background: #fff;
                padding: 10px 0;
                height: 100%;

                .txtcard {
                    display: flex;
                    justify-content: space-between;
                    width: 98%;
                    margin: auto;

                    .prof {
                        min-height: 58.5px;
                        align-content: center;

                        .name {
                            font-size: 1em;

                            span {
                                font-size: 0.8em;
                            }
                        }

                        .size {
                            font-size: 0.8em;
                        }
                    }

                    .work {
                        align-content: center;
                        height: 35px;

                        .situation {
                            font-size: 0.9em;
                            background: linear-gradient(to right, #f2b7ff 0%, #e77cff 20%, #e77cff 100%);
                            text-align: center;
                            width: 90px;
                            margin: auto 5px;
                            color: #fff;
                        }

                        .waiting {
                            font-size: 0.8em;
                            color: var(--color01);
                            text-align: center;
                            font-weight: 600;
                        }
                    }

                    .detailbtn {
                        width: 140px;
                        display: flex;
                        align-items: center;
                        justify-content: center;
                        height: 30px;
                        margin: auto 0;
                        background: linear-gradient(to left, #97ece6 0%, #0cb7c7 20%, #0cb7c7 50%, #0cb7c7 80%, #97ece6 100%);
                        border-radius: 5px;
                        color: #fff;
                        font-size: 0.8em;
                    }

                    .detailbtn::after {
                        content: "⇀";
                        display: block;
                        margin: auto 0 auto 5px;
                    }
                }

                video {
                    margin: 10px auto auto;
                    width: 98%;
                    aspect-ratio: 16 / 9;
                    overflow: clip;
                }
            }
        }
    }

    #movie_beside {
        .onecard {
            .card {
                .txtcard {}

                video {
                    aspect-ratio: 16 / 9;
                }
            }
        }
    }

    #movie_vertical {
        .onecard {
            max-width: 800px;

            .card {
                .txtcard {}

                video {
                    /*aspect-ratio: 9 / 16;*/
                }
            }
        }
    }
}


/* ==============================
   girls
============================== */

#girls {
    #contents_title {
        background: url(../../images/sp_girls_title_bg.jpg) no-repeat center center / cover;

        .contents_title_obi {
            background: #49c7f1c2;
        }
    }

    .girls_list {
        margin: 0 auto 20px;
    }
}


/* ==============================
   schedule
============================== */

#schedule {
    #contents_title {
        background: url(../../images/sp_schedule_title_bg.jpg) no-repeat center center / cover;

        .contents_title_obi {
            background: #b589ffc2;
        }
    }

    #schedule_btn {
        width: 100%;
        padding: 5px 0 10px;
        background: #d0fff4;

        .schedule_btn {
            max-width: fit-content;
            width: 100%;
            margin: auto;
            overflow-x: auto;

            ul {
                display: flex;
                justify-content: center;
                width: max-content;

                a {
                    position: relative;
                    overflow: hidden;
                    border: 1px solid var(--color01);
                    color: var(--color01);
                    font-size: 1em;
                    margin: auto 2.5px;
                    height: 35px;
                    border-radius: 5px;
                    text-align: center;
                    align-content: center;
                    transition: color 0.3s ease;
                    width: 96px;
                    background: #fff;
                }

                a.on {
                    color: #fff;
                    background: var(--color01);
                }
            }
        }
    }

    #schedule_days {
        text-align: center;
        margin: 10px auto auto;
        font-size: 1.2em;
    }

    .girls_list {
        margin: 10px auto 20px;
    }
}

/* ==============================
260129
============================== */
#top_fview {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    margin: auto;
    z-index: -1;
}

.top_fview {
    /* width: 80vw;
  height: 53vw;*/
    margin-inline: auto;
    overflow: hidden;

}

.top_fview-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* ==============================
260209
============================== */

#index {
    #index_main {
        .logo {
            width: 70%;
            max-width: 477px;
            margin: auto auto;
        }
    }

    .btn_card_new {
        display: flex;
        justify-content: space-evenly;
        width: 98%;
        margin: 0 auto 10px;
        max-width: 400px;

        .enter_btn {
            min-width: 100px;
            width: 27%;
            border-radius: 50%;
            aspect-ratio: 1 / 1;
            font-weight: 700;
            overflow: clip;
            background: url(../../images/enter_btn_sp.png) no-repeat center center / 100% 100%;
            text-align: center;
            align-content: center;
            margin: 0 5px;
            font-size: 1.2em;
        }

        .delitown {
            min-width: 100px;
            width: 27%;
            border-radius: 50%;
            aspect-ratio: 1 / 1;
            overflow: clip;
            font-weight: 700;
            background: url(../../images/delihel_btn_sp.png) no-repeat center center / 100% 100%;
            margin: 0 5px;
            text-align: center;
            align-content: center;
            font-size: 0.7em;
        }
    }
}

/*260324　追加*/

.girls_search {
    form {
        max-width: 1000px;
        width: 98%;
        margin: 1em auto;

        label {
            text-align: center;
            margin: auto auto 0.5em;
            width: 100%;
            font-size: 1em;
        }

        .search-box {
            position: relative;

            input {
                padding: 0.5em 3em 0.5em 0.5em;
            }

            .search-btn {
                position: absolute;
                left: auto;
                right: 10px;
                top: 0;
                bottom: 0;
                margin: auto;

                background: none;
                border: none;
                cursor: pointer;
                background: var(--color01);
                color: #fff;
                border-radius: 50%;
                width: 30px;
                height: 30px;
            }
        }
    }
}