body{
    background: url(../img/bg-head.jpg) center top / 100% auto no-repeat #fff;
    color: var(--default-color);
    --default-color: #212121;
    --accent-color: #009be1;
    --font-ryumin: 'a-otf-ryumin-pr6n';
    --font-noto: 'Noto Sans CJK JP';
    font-size: 16px;
    letter-spacing: 0.5px;
    font-family: var(--font-noto);
    width: 100%;
}
:focus{
    outline: 0;
}
button{
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    border: 0 none;
    cursor: pointer;
    margin: 0;
    padding: 0;
}


@media screen and (min-width:1921px){
    body{
    }
}
a{
    color: var(--default-color);
    text-decoration: none;
}

*, ::before, ::after{
    box-sizing: border-box;
}


.wrapper{
    max-width: 1200px;
    margin: 0 auto;
}


/* HEADER                   */
#top{
    display: flex;
    flex-wrap: wrap;
    padding: 24px 0;
    justify-content: space-between;
}
#top .logo{
    margin-left: 96px;
}
#top .logo h1{
    display: inline-block;
    vertical-align: middle;
}
#top .logo h1 img{
    width: 100%;
    max-width: 283px;
    height: auto;
}
#top .logo p{
    background-image: linear-gradient(1deg, #009be1 0%, #009be1 50%, #007ae1 51%, #007ae1 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    display: inline-block;
    font-size: 1.1rem;
    font-weight: 500;
    margin-left: 8px;
    transform: translateY(12px);
}
#top address{
    text-align: right;
    margin-right: 96px;
}
#top address p{
    color: #666;
    font-size: 0.9rem;
    margin-bottom: 24px;
}
#top address p em{
    font-size: 1.4rem;
    border-bottom: 2px solid #3cc0fc;
    margin-left: 8px;
    vertical-align: bottom;
}

.button{
    background-color: #3cc0fc;
    box-shadow: 0 0 0 0 transparent;
    color: #fff;
    display: block;
    margin: 32px 0 24px auto;
    padding: 16px;
    position: relative;
    text-align: center;
    transition: 0.3s ease;
    white-space: nowrap;
    width: 260px;
}
.button::after{
    content: "";
    display: block;
    position: absolute;
    width: 100%;
    height: 100%;
    border: 1px solid #3cc0fc;
    top: 0;
    left: 0;
    transition: 0.3s ease;
}
.button:hover{
    box-shadow: 6px 6px 0 -1px rgba(255,255,255,0.6);
}
.button:hover::after{
    transform: translate(6px, 6px);
}
.button:active{
    transform: translate(6px, 6px);
    box-shadow: 0 0 0 0 transparent;
}
.button:active::after{
    transform: translate(0,0);
}

#top address a{
    font-weight: 300;
    padding: 8px 16px;
    font-size: 0.8rem;
    width: auto;
    margin: 8px 0;
    display: inline-block;
}
#top address a em{
    font-size: 1.35rem;
}

#slider{
    text-align: center;
    margin-bottom: 48px;
    position: relative;
    padding: 0 16px;
}
#slider img{
    display: inline-block;
    background-color: #efefef;
    width: 100%;
    height: auto;
}


/* NAVIGATION                     */
body>nav{
    border-bottom: 1px solid #7fcdf0;
    box-shadow: 0 0 12px rgba(0,0,0,0.1);
    background-color: rgba(255,255,255,0.7);
}
body>nav ol{
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between
}
body>nav li{
    width: 16%;
    text-align: center;
    position: relative;
    z-index: 3;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}
body>nav li::after{
    content: "";
    width: 0;
    height: 120%;
    bottom: 0;
    left: -10%;
    transform: skewX(15deg);
    position: absolute;
    background-color: #3cc0fc;
    z-index: -1;
    transition: 0.3s linear;
}
body>nav li:hover::after{
    width: 120%;
}
body>nav a{
    color: var(--accent-color);
    text-decoration: none;
    display: block;
    padding: 16px 0 18px;
}
body>nav li:hover *{
    color: #fff;
}
body>nav li em{
    color: #aaa;
    display: block;
    font-family: var(--font-ryumin);
    font-size: 0.9rem;
    margin-top: 8px;
    text-transform: uppercase;
}

/* MOBILE MENU */
#m-menu{
    display: none;
    background-color: transparent;
    position: absolute;
    right: 16px;
    top: calc(101% + 20px);
    width: 32px;
    height: 25px;
    z-index: 100;
    transition: 0.3s ease;
}
#m-menu span{
    background-color: #333;
    display: block;
    height: 3px;
    overflow: hidden;
    position: absolute;
    top: 11px;
    transition: 0.3s ease;
    width: 100%;    
}
#m-menu::before, #m-menu::after{
    content: "";
    display: block;
    position: absolute;
    width: 100%;
    height: 3px;
    background-color: #333;
    transition: 0.3s ease;
}
#m-menu::before{top: 0;}
#m-menu::after{bottom: 0;}
nav.active #m-menu span{
    opacity: 0;
}
nav.active #m-menu::before{
    transform: rotate(45deg);
    transform-origin: left center;
}
nav.active #m-menu::after{
    transform: rotate(-45deg);
    transform-origin: left center;
}



/* EACH SECTIONS                 */
main{
    padding: 48px 64px;
    background-color: rgba(255,255,255,0.7);
}
main section{
    margin-bottom: 64px;
}
section h2{
    border-bottom: 1px solid #ccc;
    color: #999;
    font-size: 0.9rem;
    margin-bottom: 32px;
}
section h2 em{
    border-bottom: 3px solid var(--accent-color);
    color: var(--accent-color);
    font-family: var(--font-ryumin);
    font-size: 1.2rem;
    font-weight: 500;
    padding: 16px 8px;
    margin-right: 16px;
    display: inline-block;
    vertical-align: middle;
}

/* TOP PAGE                     */


/* SLIDER STYLE      */
.slick-slider button{
    background-color: #009be1;
    border-radius: 50%;
    color: transparent;
    font-size: 0;
    height: 48px;
    opacity: 0.5;
    position: absolute;
    top: 50%;
    transition: 0.3s ease-in-out;
    transform: translateY(-50%);
    width: 48px;
    z-index: 100;
}
.slick-slider button:hover{
    opacity: 0.9;
}
#slider .slick-slider button{
    top: 50%;
    transform: translateY(-50%);
    width: 56px;
    height: 56px;
}
.slick-slider button::before{
    content: "";
    display: inline-block;
    height: 0;
    width: 0;
}
.slick-prev::before{
    border: 8px solid transparent;
    border-right: 8px solid #fff;
    margin-right: 10px;
}
.slick-next::before{
    border: 8px solid transparent;
    border-left: 8px solid #fff;
    margin-left: 10px;
}
#newface .slick-prev{left: -4px;}
#newface .slick-next{right: -4px;}
#slider .slick-prev{left: 64px;}
#slider .slick-next{right: 64px;}

#newface li{
    font-size: 0.9rem;
    line-height: 1.8;
    margin: 0 14px;
    text-align: center;
}


/* GIRLS LIST STYLES             */
#latests ul, #cast ul, #schedule ul{
    display: flex;
    justify-content: space-around;
    flex-wrap: wrap;
}
#latests ul{
    flex-wrap: nowrap;
}
#latests ul li, #cast ul li, #schedule ul li{
    flex-basis: 240px;
    font-size: 0.9rem;
    line-height: 1.8;
    margin: 0 14px 24px 14px;
    position: relative;
    text-align: center;
}
#latests .new::before, #cast .new::before,  #schedule .new::before{
    border: 0 solid transparent;
    border-top: 48px solid var(--accent-color);
    border-right-width: 48px;
    content: "";
    left: 4px;
    position: absolute;
    top: 4px;
    z-index: 10;
}
#latests .new::after, #cast .new::after, #schedule .new::after{
    color: #fff;
    content: "NEW";
    font-size: 0.8rem;
    font-weight: 300;
    position: absolute;
    left: 4px;
    top: 9px;
    transform: rotate(-45deg);
    z-index: 11;
}
#latests .new::before, #schedule .new::before{ top: 40px;}
#latests .new::after, #schedule .new::after{ top: 45px;}

#latests h3 em, #newface h3 em, #cast h3 em, #schedule h3 em{
    font-size: 1.1rem;
    margin-right: 8px;
}
.girls-list img, #cast img, #schedule img{
    display: block;
    background-color: #efefef;
    border: 4px solid #fff;
    box-shadow: 0 0 16px rgba(0,0,0,0.1);
    width: 100%;
    height: auto;
    max-height: 320px;
    margin-bottom: 16px;
    transition: 0.3s ease;
}
.girls-list img:hover{
    opacity: 0.6;
}
.girls-list .shop{
    background-color: var(--accent-color);
    color: #fff;
    margin-bottom: 8px;
    padding: 4px 0;
}
#latests time, #schedule time{
    background: url(../img/time.png) no-repeat left center;
    color: var(--accent-color);
    display: inline-block;
    font-size: 1rem;
    line-height: 28px;
    margin-bottom: 8px;
    padding-left: 24px;
}
#cast ul li, #schedule ul li{
    margin-bottom: 48px;
}

/* TOP CONTACT                      */
#contact .row{
    display: flex;
}
#contact .colum{
    width: 50%;
    text-align: center;
    padding: 24px 0;
    border-left: 1px dashed #cecece;
    line-height: 1.5;
}
#contact .colum:first-of-type{
    align-self: center;
    border-left: 0 none;
}
#contact a[href^="tel"]{
    background: url(../img/tel.png) no-repeat left 60% / auto 45%;
    color: var(--accent-color);
    font-family: var(--font-ryumin);
    font-size: 2.4rem;
    letter-spacing: 2px;
    padding-left: 36px;
}
#contact img{
    width: 360px;
    height: 80px;
    display: inline-block;
    box-shadow: 0 0 12px rgba(0,0,0,0.2);
    background: #efefef;
    border: 1px solid #fff;
    margin-top: 16px;
}
#contact h4{
    background-image: repeating-linear-gradient(90deg, #efefef 6px, #cccccc 12px, #efefef 18px);
}


/* SCHEDULE =========================== */
#schedule ol{
    display: flex;
    flex-wrap: nowrap;
    text-align: center;
    justify-content: center;
    margin-bottom: 48px;
}
#schedule ol li{
    flex-basis: 14%;
}
#schedule ol li:nth-child(odd){ background-color: #eee; }
#schedule ol li:nth-child(even){ background-color: #f4f4f4; }
#schedule ol li.active{
    background-color: var(--accent-color);
}
#schedule ol li a{
    display: block;
    padding: 8px;
}
#schedule ol li.active a{
    color: #fff;
}


/* SYSTEM ============================ */
#system>div{
    margin-bottom: 64px;
    line-height: 1.8;
}
#system h3{
    background-color: var(--accent-color);
    color: #fff;
    font-size: 1.1rem;
    margin-bottom: 16px;
    padding: 4px 16px;
    line-height: 1.5;
    text-align: center;
}
#system .concept p{
    font-size: 1.4rem;
    padding: 0 16px;
    color: var(--accent-color);
    font-family: var(--font-ryumin);
}
#system .concept em{
    font-size: 1.8rem;
}
#system em.xlarge{
    font-size: 2.2rem;
}


#system .price ul{
    font-size: 3.2rem;
    margin-bottom: 48px;
}
#system .price li{
    margin-bottom: 24px;
}
#system .price h4{
    font-family: var(--font-ryumin);
    letter-spacing: 8px;
    color: var(--accent-color);
}
#system .price h4 em{
    display: inline-block;
    margin-left: 32px;
}
#system .price h4 span{
    font-size: 1.6rem;
}
#system .price ul p{
    font-size: 0.96rem;
}
#system .price ul:first-of-type li:first-child{
    font-family: var(--font-ryumin);
    font-size: 1.8rem;
    letter-spacing: 6px;
    color: var(--accent-color);
    margin-bottom: 0;
}


#system .credit img{
    margin-top: 16px;
}
#system .caution ul{
    margin-bottom: 32px;
}
#system .caution li{
    margin-bottom: 16px;
}
#system .caution li::before{
    content: "※";
}


/* ACCESS                         */
#access ol{
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-start;
    white-space: nowrap;
}
#access li{
    border-bottom: 4px solid #eee;
    color: #999;
    flex-basis: 17%;
    line-height: 1.5;
    padding: 16px;
    position: relative;
    transition: 0.3s ease-in-out;
}

#access li h3{
    font-size: 1.2rem;
    text-align: center;
}
#access li img{
    height: auto;
    margin-bottom: 16px;
    width: 100%;
}
#access li label{
    cursor: pointer;
    display: block;
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%;
}
#access input[type="radio"]{
    display: none;
}
#googlemaps{
    overflow: hidden;
    position: relative;
}
#googlemaps div{
    opacity: 0;
    overflow: hidden;
    position: absolute;
    transition: 0.3s ease-in-out;
    z-index: 1;
}
#googlemaps img{
    height: auto;
    width: 100%;
}
#googlemaps address{
    padding: 16px;
    position: absolute;
    background-color: rgba(255,255,255,0.9);
    box-shadow: 0 0 8px rgba(0,0,0,0.18);
    right: 16px;
    top: 16px;
    transform: translateX(100%);
    z-index: 100;
}

#map1:checked ~ .ol-wrap li:nth-child(1),
#map2:checked ~ .ol-wrap li:nth-child(2),
#map3:checked ~ .ol-wrap li:nth-child(3),
#map4:checked ~ .ol-wrap li:nth-child(4),
#map5:checked ~ .ol-wrap li:nth-child(5),
#map6:checked ~ .ol-wrap li:nth-child(6){
    border-bottom: 4px solid var(--accent-color);
    color: #212121;
}
#map1:checked ~ #googlemaps div:nth-of-type(1) address,
#map2:checked ~ #googlemaps div:nth-of-type(2) address,
#map3:checked ~ #googlemaps div:nth-of-type(3) address,
#map4:checked ~ #googlemaps div:nth-of-type(4) address,
#map5:checked ~ #googlemaps div:nth-of-type(5) address,
#map6:checked ~ #googlemaps div:nth-of-type(6) address{
    opacity: 1;
    transform: translateX(0);
}
#map1:checked ~ #googlemaps div:nth-of-type(1),
#map2:checked ~ #googlemaps div:nth-of-type(2),
#map3:checked ~ #googlemaps div:nth-of-type(3),
#map4:checked ~ #googlemaps div:nth-of-type(4),
#map5:checked ~ #googlemaps div:nth-of-type(5),
#map6:checked ~ #googlemaps div:nth-of-type(6){
    position: relative;
    z-index: 2;
    opacity: 1;
}

/* FOOTER                         */
footer{
    border-top: 4px solid #3cc0fc;
    padding: 32px 0 64px;
    text-align: center;
    line-height: 2;
}
footer .wrapper{
    position: relative;
}
footer nav ul{
    display: flex;
    justify-content: center;
}
footer nav li{
    margin: 0 12px;
}
footer nav a{
    color: var(--accent-color);
}
footer nav a:hover{
    text-decoration: underline;
}
footer p{
    color: #999;
}
#scrolltop{
    right: 0;
    font-size: 0.9rem;
    position: absolute;
    display: inline-block;
    background-color: #3cc0fc;
    color: #fff;
    padding: 0 16px;
    max-height: 40px;
    min-height: 40px;
    line-height: 40px;
    top: calc(0% - 76px);
}

@media screen and (max-width: 1023px){
    body{
        background-size: 100% auto, ;
    }
    #slider img{
        width: 90%;
        height: auto;
    }
    #info article{
        padding: 16px 32px;
    }
}
@media screen and (max-width: 959px){
    body{
        background-size: 100% auto, 25% auto, 25% auto;
    }
    #top .logo{
        margin-left: 16px;
    }
    #top address{
        margin-right: 16px;
    }
    #contact .row{
        flex-wrap: wrap;
    }
    #contact .colum{
        width: 100%;
        border: 0 none;
    }
    #latests ul{
        flex-wrap: wrap;
    }
    #latests ul li, #cast ul li, #schedule ul li{
        flex-basis: 30%;
        margin: 0 0 32px 0;
    }
    #system .concept p{
        margin-bottom: 24px;
    }
}
@media screen and (max-width: 799px){
    #top .logo{
        position: relative;
    }
    #top .logo p{
        position: absolute;
        width: 100%;
        white-space: nowrap;
        top: 75px;
        left: 130px;
    }
    #access ol{
        overflow-x: scroll;
    }
    #googlemaps address{
        position: relative;
        top: initial;
        right: initial;
        justify-content: flex-end;
        padding: 0;
        text-align: right;
    }
    #googlemaps address p{
        border-bottom: 1px solid #ccc;
        padding: 16px 8px;
        flex-basis: 100%;
    }
    .banner-box{
        width: 100%;
    }
    .hhw_link{
        width: 100%;
    }
    .hhw_link a{
        width: 100%;
    }
    .hhw_link a img{
        max-width: 100%;
    }
}

@media screen and (max-width: 640px){
    main{
        padding: 32px 16px;
    }
    #top{
        display: block;
    }
    #top .logo p{
        position: static;
        margin: 16px 0 24px;
        transform: translate(0, 0);
    }
    #top .logo, #top address{
        display: block;
        text-align: center;
        margin: 0;
    }
    body>nav{
        position: fixed;
        top: 0;
        left: 0;
        background-color: #333;
        transition: 0.3s ease;
        transform: translateY(-101%);
        width: 100%;
        z-index: 1;
    }
    body>nav ol{
        flex-wrap: wrap;
    }
    body>nav li{
        width: 30%;
    }
    #m-menu{
        display: block;
    }
    body>nav.active{
        z-index: 99;
        opacity: 1;
        transform: translateY(0);
        z-index: 101;
    }
    #system .price li{
        text-align: center;
    }
    #system .price h4{
        letter-spacing: 4px;
    }
    #system .price h4 em{
        display: block;
        margin-left: 0;
    }
    .button{
        margin: 24px auto 24px;
    }
    footer nav ul{
        flex-wrap: wrap;
    }
}
    
@media screen and (max-width: 544px){
    #slider .slick-prev{left: 8px;}
    #slider .slick-next{right: 8px;}
    .ol-wrap{
        position: relative;
    }
    .scroll-hint{
        position: absolute;
        right: 0;
        width: 48px;
        height: 100%;
        background-image: linear-gradient(90deg, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.5) 50%, rgba(255,255,255,0.9) 100%);
        transition: opacity 0.2s ease;
        z-index: 101;
    }
    .scroll-hint.hide{
        opacity: 0;
    }
    #schedule ol, #access ol{
        overflow-x: scroll;
        justify-content: flex-start;
    }
    #schedule ol li a{
        padding: 8px 16px;
    }
}
@media screen and (max-width: 479px){
    #top .logo h1 img{
        width: 90%;
        height: auto;
    }
    #contact img{
        width: 80%;
        height: auto;
    }
    #latests ul li, #cast ul li, #schedule ul li{
        flex-basis: 45%;
    }
    footer p em{
        display: block;
        line-height: 1.5;
    }
}
@media screen and (max-width: 319px){
    body{
        font-size: 15px;
    }
}