/*==========================================
 Floor Guide
==========================================*/

/*------------------------------------------
 Lead
------------------------------------------*/

.floor-lead{
    margin-bottom:3rem;
}


/*==========================================
 Floor Photo Slider
==========================================*/

.floor-slider{
    width:100%;
    margin-left:0;
    overflow:hidden;
    margin-bottom:70px;
}

.floor-slider-track{
    display:flex;
    gap:20px;
    width:max-content;
    will-change:transform;
}

.floor-slide{
    flex:0 0 360px;
    height:260px;
    overflow:hidden;
    border-radius:18px;
}

.floor-slide img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}


/*==========================================
 Floor Map
==========================================*/

.floor-map{
    position:relative;
    width:100%;
    margin:0 auto;
    text-align:center;
    line-height:0;
}


/*------------------------------------------
 Floor Map Image
------------------------------------------*/

.floor-map__image{
    display:block;
    width:100%;
    height:auto;
    margin:0 auto;
}


/*------------------------------------------
 SVG Click Layer
------------------------------------------*/

.floor-map__svg{
    position:absolute;
    inset:0;

    display:block;
    width:100%;
    height:100%;

    pointer-events:none;
}


/*------------------------------------------
 Click Area
------------------------------------------*/

.floor-map__link{
    pointer-events:auto;
    cursor:pointer;
    outline:none;
}

.floor-map__link polygon{
    fill:rgba(255,255,255,0);
    stroke:transparent;
    stroke-width:0;

    vector-effect:non-scaling-stroke;

    transition:fill .2s ease;
}


/*------------------------------------------
 PC : Mouse Over
------------------------------------------*/

@media (hover:hover) and (pointer:fine){

    .floor-map__link:hover polygon{
        fill:rgba(255,255,255,.15);
        stroke:transparent;
        stroke-width:0;
    }

}


/*------------------------------------------
 Keyboard Focus
------------------------------------------*/

.floor-map__link:focus polygon{
    fill:rgba(255,255,255,.15);
    stroke:transparent;
    stroke-width:0;
}


/*------------------------------------------
 Floor Map Note
------------------------------------------*/

.floor-map-note{
    margin:24px 0 0;

    color:#555;
    font-size:.95rem;
    line-height:1.8;
    text-align:center;
}


/*------------------------------------------
 Scroll Position
------------------------------------------*/

.zone-item[id]{
    scroll-margin-top:100px;
}


/*==========================================
 Zone
==========================================*/

.zone-item{
    position:relative;
    margin-bottom:120px;
}

.zone-item:last-child{
    margin-bottom:0;
}

.zone-image{
    width:75%;
    overflow:hidden;
    border-radius:24px;
}

.zone-image img{
    display:block;
    width:100%;
    height:auto;

    transition:transform .5s ease;
}

.zone-item:hover .zone-image img{
    transform:scale(1.02);
}


/*==========================================
 Zone Content
==========================================*/

.zone-content{
    position:absolute;
    top:65%;
    right:0;
    transform:translateY(-50%);
    width:50%;
    padding:30px 30px;
    background:#fff;
    border-radius:0;
    box-shadow:0 8px 30px rgba(0,0,0,.08);
    text-align:left;
    min-height:50%;
}

.zone-number{
    display:inline-block;
    margin-right:8px;

    color:var(--brand-color);
    font-size:1rem;
    font-weight:700;
}

.zone-name-en{
    display:inline-block;
    color:var(--brand-color);
    font-size:.85rem;
    font-weight:700;
    letter-spacing:.15em;
}

.zone-content h4{
    margin:10px 0 18px;

    color:var(--brand-color);
    font-size:1.8rem;
    font-weight:700;
    line-height:1.4;
}

.zone-content p{
    margin:0;

    color:#555;
    font-size:1rem;
    line-height:2;
}


/*==========================================
 Zone Closed
==========================================*/

.zone-closed .zone-image{
    position:relative;
}

.zone-closed .zone-image::after{
    content:"現在休業中";

    position:absolute;
    top:20px;
    left:20px;

    padding:8px 18px;

    background:rgba(95, 93, 93, 0.8);
    color:#fff;

    border-radius:999px;

    font-size:.9rem;
    font-weight:700;
}

.zone-status{
    color:var(--brand-color) !important;
    font-weight:700;
}


/*==========================================
 Responsive
==========================================*/

@media (max-width:768px){

    /*--------------------------------------
     Lead
    --------------------------------------*/

    .floor-lead{
        margin-bottom:2.5rem;
    }

    .floor-lead br{
        display:none;
    }


    /*--------------------------------------
     Floor Photo Slider
    --------------------------------------*/

    .floor-slider{
        margin-bottom:50px;
    }

    .floor-slider-track{
        gap:12px;
    }

    .floor-slide{
        flex:0 0 78vw;
        height:220px;
        border-radius:14px;
    }


    /*--------------------------------------
     Floor Map
    --------------------------------------*/

    .floor-map-note{
        margin-top:18px;
        font-size:.9rem;
        text-align:left;
    }

    /*
     * スマホではhover演出を無効化
     */
    .floor-map__link:hover polygon{
        fill:transparent;
        stroke:transparent;
    }

    .zone-item[id]{
        scroll-margin-top:80px;
    }


    /*--------------------------------------
     Zone
    --------------------------------------*/

    .zone-item{
        margin-bottom:60px;
    }

    .zone-image{
        width:100%;
        border-radius:16px;
    }


    /*--------------------------------------
     Zone Content
    --------------------------------------*/

    .zone-content{
        position:relative;
        top:auto;
        right:auto;
        transform:none;

        width:90%;
        margin:-35px auto 0;

        padding:26px 22px;

        border-radius:0;
    }

    .zone-content h4{
        margin-bottom:14px;
        font-size:1.4rem;
    }

    .zone-content p{
        font-size:.95rem;
        line-height:1.9;
    }

}