.page-template-beyond .fair-reserv {
    display: none;
}
.slide-txt, .desc, #about p {
    line-height: 2.5em;
}
#hero-img {
    height: 100vh;
    background-image: url(/wp-content/themes/villas/img/beyond/hero.jpg);
    background-size: cover;
    position: relative;
    background-position: center;
}
#hero-img::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #00000040;
}
.beyond .logo {
    margin: auto;
    display: block;
}
#hero-img h1 {
    font-size: 1.5rem;
    color: #fff;
    line-height: 2em;
} 
#hero-img .logo {
    width: 12rem;
}    
#beyond, #three, #four {
    display: flex;
}
#three, #faq {
    margin-top: 20vw;
}
#five .flex {
    margin-top: 10vw;
}
#five .half {
    display: flex;
    justify-content: center;
}
#five .half > * {
    width: 65%;
}
#five .half:first-child {
    margin-top: 20vw;
}
.big{
    font-size: 6vw;
    line-height: 1em;
    margin: 14vw 0 9vw 5vw;
    text-align: left;
    white-space: nowrap;
}
.anim-img {
    position: relative;
    opacity: 0;
    transition: opacity ease-out 1s;
    overflow: hidden;
}
.anim-img img {
    transform: translateY(25%);
}
.in-view img, .active-slider .anim-img img {
    transform: translateY(0);
    transition: transform ease-out 1s;
}
.anim-img::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 75%;
    background-color: #fff;
    z-index: 1;
}
.in-view::before, .active-slider .anim-img::before {
    height: 0;
    transition: height ease-out 1s;
}
.in-view, .active-slider .anim-img {
    opacity: 1;
}
.half {
    width: 50%;
}
.desc {
    line-height: 2.5em;
    text-align: justify;
    margin: 50px 1.5rem 15vw 10%;
    letter-spacing: 2px;
    margin-bottom: 0;
}
.intro {
    width: 50%;
    max-width: 800px;
    margin: auto;
    font-size: 1.1rem
}
.float-wrap {
    position: relative;
}
.right-align {
    display: flex;
    align-items: flex-end;
    flex-direction: column;
    z-index: -1;
}
#two {
    margin-top: 16vw
}
.size-3 {
    width: 85vw;
    height: 47vw;
}
.size-4 {
    width: 30vw;
}
.size-full {
    width: 100%;
}
.flex{
    display: flex;
}
.left-img, .right-img {
    position: relative;
    width: 50%;
}
.left-img .img-wrap {
    width: 70%;
    height: 35vw;
}
.right-img .img-wrap {
    position: absolute;
    width: 30%; 
}
#gallery .img-wrap {
    box-shadow: 2px 3px 3px 1px #00000040;
}
.img-wrap img {
    object-fit: cover;
    width: 100%;
    height: 100%;
}
.right-img .img-wrap:first-child, .right-img .img-wrap:nth-child(2) {
    width: 25%;
    height: 12.5vmax;
}
.right-img .img-wrap:last-child {
    width: 40%;
    left: 50%;
    bottom: 10%;  
    transform: translateX(-50%);
}
.right-img .img-wrap:first-child {
    left: 10%;
    top: 10%;
}
.right-img .img-wrap:nth-child(2) {
    right: 10%;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
}
#service {
    margin: 20vmax 0;
}
#service h1 {
    line-height: 1.5em;
    font-size: 3.5rem;
}
.cat-wrap {
    width: 60%;
    max-width: 1000px;
    margin: 10vmax auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}
.category {
    font-size: 3.5rem;
    font-family: 'SaolDisplay', 'Times New Roman',serif;
    cursor: pointer;
    display: flex;
    align-items: center;
    margin: 1rem 0;
}
.category .kana  {
    font-size: 0.4em;
}
.cat-num {
    font-size: 2.5rem;
    margin-right: 1rem;
    width: 2em;
    line-height: 2em;
    text-align: center;
    position: relative;
}
.category .cat-num::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: 100%;
    background-repeat: no-repeat;
    background-position: center;
    background-image: url(/wp-content/themes/villas/img/beyond/select.svg);
    opacity: 0;
    transition: ease-out 0.2s;
}
.category:hover .cat-num::before, .active-control .cat-num::before {
    opacity: 1;
}
.slide-ttl {
    text-transform: uppercase;
    font-size: 1.5rem;
    margin: 3em 0 2.5em;
}
.slide {
    width: 45vw;
    margin: 0 5vw;
    flex-shrink: 0;
    cursor: grab;
}
.slider-1 .img-wrap {
    width: 100%;
    height: 30vw;
}
.cta-wrap {
    width: 100%;
    text-align: center;
    margin: 8rem 0;
}
.cta {
    padding: 2em 7em;
    background-color: #0D4C82;
    color: #fff;
    border: solid 1px #0D4C82;
    transition: ease-out 0.2s;
}
.cta:hover {
    color: #0D4C82;
    background-color: #fff;
}
.slider {
    display: flex;
    flex-wrap: nowrap;
    position: relative;
    transition: left ease-out 0.4s;
}
.slider-1 {
    left: -87.5vw;
}
.slider-2 {
    left: -50vw;
}
.slide-txt-wrap {
    opacity: 0;
    transition: opacity ease-out 0.4s;
}
.active .slide-txt-wrap {
    opacity: 1;
}
.slider-wrap {
    width: 100vw;
    overflow: hidden;
    position: absolute;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease-out;
}
.active-slider, .store-slider {
    opacity: 1;
    position: relative;
    pointer-events: all;
    transition: opacity 0.3s 0.15s ease-in;
}
.prev, .next {
    position: absolute;
    width: 5vw;
    height: 5vw;
    border-right: solid 4px #fff;
    border-top: solid 4px #fff;
    box-shadow: 3px -3px 2px 0 #44444488;
    z-index: 2;
    top: 12.5vw;
    cursor: pointer;
}
.prev {
    left: 2.5vw;
    transform: rotateZ(-135deg);
}
.next {
    right: 2.5vw;
    transform: rotateZ(45deg);
}
.next::after, .prev::after {
    transform: rotateZ(-90deg);
    top: 34%;
    left: 64%;
}
.next::before, .prev::before {
    left: 56%;
    top: 27%;
    transform: none;
}
.question-list {
    width: 80%;
    margin: 5vw auto;
    max-width: 800px;
    line-height: 2em;
}
.question {
    padding: 2rem 3rem 0;
    margin-bottom: 2rem;
    cursor: pointer;
    position: relative;
    color: #0D4C82;
}
.answer {
    height: 0;
    overflow: hidden;
    padding: 0 3rem;
    opacity: 0;
    transition: ease-out 0.4s;
    background-color: #f0f5fd;
}
.open .answer {
    padding: 3rem 3rem;
    opacity: 1;
    height: auto;
}
.question::after {
    content:'';
    position: absolute;
    right: 2rem;
    top: 2.5rem;
    width: 1rem;
    height: 1rem;
    border-right: solid 1px #666;
    border-bottom: solid 1px #666;
    transform: rotateZ(45deg);
    cursor: pointer;
    pointer-events: none;
}
.open .question::after {
    transform: rotateZ(-135deg)
}
#faq h2, #about h2 {
    text-align: center;
    font-size: 2.5rem;
}
#about p {
    width: 800px;
    margin: 5vw auto;
}
.question-list {
    font-size: 1.25rem;
}
.store-slider .slide{
    margin: 0;
    width: 40vw;
    cursor: grab;
}
.slide:active{
    cursor: grabbing;
}
.store-slider .img-wrap {
    width: 80%;
    height: 30vw;
    margin: auto;
    position: relative;
}
#about .store-slider .slide-txt {
    width: 100%;
    margin-bottom: 2.5vw;
}
.store-name {
    position: absolute;
    font-size: 8rem;
    left: 0;
    bottom: -0.15em;
    line-height: 1em;
    margin: 0;
    width: 100%;
    text-align: center;
    font-weight: normal;
    color: #fff;
    text-shadow: 0 -2px 8px #444;
}
.cta-inline {
    font-size: 1.5rem;
    padding-bottom: 0.25em;
    position: relative;
}
.cta-inline::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    border-bottom: solid 1px #444;
    transition: width 0.2s ease-out;
}
.cta-inline:hover::after {
    width: 0;
}
#about {
    padding: 10vmax 0;
}
.center {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);    
}
#service .desc:first-child {
    text-align: center;
    margin:0 auto 8vmax;
    font-size:1.5rem;
    width:90%;
}
@media screen and (max-width:800px) {
    #gallery .flex {
        flex-direction: column;
    }
    .left-img, .right-img {
        width: 100%;
    }
    .left-img .img-wrap {
        width: 65%;
        height: 65vw;
    }
    .right-img {
        height: 65vh;
    }
    .right-img .img-wrap:first-child, .right-img .img-wrap:nth-child(2) {
        width: 35%;
        height: 30vw;
    }
    .right-img .img-wrap:last-child {
        width: 55%;
        height: 35vw;
    }
    #service h1 {
        font-size: 2.5rem;
    }
    .cat-wrap {
        width: 90%;
        padding: 0 5%;
        flex-direction: column;
    }
    .slide {
        width: 75vw;
    }
    .slider-1 {
        left: -162.5vw;
    }
    .slider-1 .img-wrap {
        height: 60vw;
    }
    .category {
        font-size: 2rem;
        color: #000;
        opacity: 0.5;
    }
    .active-control {
        opacity: 1;
        border-color: #000;
    }
    .store-slider .slide {
        width: 75vw;
    }
    .slider-2 {
        left: -137.5vw;
        margin-top: 10vh;
    }
    .store-slider .img-wrap {
        height: 75vw;
    }
    .store-name {
        font-size: 4rem;
    }
    #about h2 + p {
        padding: 2rem 1rem;
        width: 85%;
    }
    .question-list {
        width: 100%;
    }
    .cta-wrap {
        margin: 6rem 0;
    }
    .intro {
        width: 80%;
    }
    .half{
        width: 100%;
    }
    #beyond {
        flex-direction: column;
        align-items: center;
        padding-top: 10vh;
    }
    #beyond .has-img {
        width: 70%;
    }
    .big {
        font-size: 3rem;
        width: 70%;
        margin: 10vh auto;
    }
    .desc {
        width: 70%;
        margin: auto;
    }
    .size-3 {
        width: 100vw;
        height: 87vw;
        object-fit: cover;
    }
    .size-4 {
        width: 56vw;
        height: 48vw;
        object-fit: cover;
        margin-left: 7vw;
    }
    #three {
        flex-direction: column-reverse;
        margin-top: 30vh;
    }
    #four {
        flex-direction: column;
        margin-top: 10vh;
    }
    #three .has-img img, #four .has-img img {
        width: 59vw;
        height: 102vw;
        object-fit: cover;
    }
    #three .has-img {
        display: flex;
        justify-content: flex-end;
    }
    #service, #five, #faq {
        margin-top: 30vh;
    }
    .size-full {
        width: 100vw;
        height: 87vw;
        object-fit: cover;
    }
    #five .flex .size-full {
        width: 100%;
        height: 50vw;
    }
    #five .flex {
        flex-direction: column;
    }
    #five .half:first-child {
        margin: 10vh 0;
        justify-content: flex-end;
    }
    #five .half:nth-child(2) {
        justify-content: flex-start;
    } 
    #five .half:first-child > * {
        width: 65.5vw;
        height: 102vw;
    }
    #five .half .size-full {
        height: 100%;
        width: 100%;
    }
    #five .half:nth-child(2) > * {
        width: 76.5vw;
        height: 53vw;
    }
    .category .kana  { 
        display: block;
        font-size: 0.6em;
    }
    #service .desc:first-child {
        text-align: left;
        margin-bottom: 24vh;
    }
}
