@charset "UTF-8";
/*==============================================================================
1.ページタイトル・共通タイトル
2.イントロ
3.各店舗
4.shop モーダル
==============================================================================*/

/*============================================================================================================================================================
==============================================================================================================================================================

	1.ページタイトル・共通タイトル

==============================================================================================================================================================
============================================================================================================================================================*/
#bodywrap {
    background: var(--bg-gray);
}

#title {
    background-image: url(../1_img/shop/title.jpg);
}



/*============================================================================================================================================================
==============================================================================================================================================================

	2.イントロ

==============================================================================================================================================================
============================================================================================================================================================*/
#shop-intro {

    /* =============== 店舗リスト =============== */
    & .intro-shop_list {
        display: flex;
        flex-wrap: wrap;
        gap: 10px;

        & li {
            width: calc((100% - 10px) / 2);
            position: relative;

            & a {
                padding: 5px 10px;
                display: block;
                text-align: center;
                background-color: var(--color-sub);
                border-radius: 30px;
                font-size: 1.4rem;
                font-weight: var(--weight-bold);

                &:hover{
                    opacity: 1;
                    background-color: var(--color-font);
                    color: #fff;
                }
            }

            &::before {
                content: "";
                width: 8px;
                height: 5px;
                position: absolute;
                top: 50%;
                right: 15px;
                background-color: #fff;
                transform: translateY(-50%);
                clip-path: polygon(0 0, 50% 100%, 100% 0);
                z-index: 2;
            }
        }
    }

    /* =============== ご来店の前に =============== */
    & .intro-alert {
        margin-top: 40px;
        padding: 0 20px 30px;
        position: relative;
        border: 1px dashed var(--color-font);
        border-top: none;

        & .intro-alert_title {
            margin-left: -20px;
            width: calc(100% + 40px);
            font-size: 1.4rem;
            text-align: center;
            font-weight: var(--weight-bold);
            overflow: hidden;
            transform: translateY(-50%);

            & span {
                padding: 0 20px;
                display: inline-block;
                position: relative;

                &::before,
                &::after {
                    content: "";
                    width: 50vw;
                    height: 1px;
                    position: absolute;
                    top: 50%;
                    border-top: 1px dashed var(--color-font);
                }

                &::before {
                    left: 100%;
                }

                &::after {
                    right: 100%;
                }
            }

            & img {
                margin-right: 5px;
            }
        }

        & .intro-alert_content {
            margin-top: 10px;
            font-size: 1.3rem;
        }
    }


    /* =============== リンク =============== */
    & .intro-link {
        margin-top: 30px;

        & a {
            padding: 15px;
            display: block;
            position: relative;
            border-radius: 50px;
            text-align: center;
            font-size: 1.3rem;
            font-weight: var(--weight-bold);
            color: var(--color-font);

            & span {
                /* 文字下の点線 */
                display: inline-block;
                position: relative;

                &::after {
                    content: "";
                    position: absolute;
                    width: 95px;
                    bottom: -5px;
                    left: 50%;
                    transform: translateX(-50%);
                    border-bottom: 1px dashed var(--color-font);
                }
            }

            &::after {
                /* 矢印 */
                content: "";
                width: 7px;
                height: 12px;
                position: absolute;
                top: 50%;
                right: 30px;
                transform: translateY(-50%);
                background-color: var(--color-font);
                clip-path: polygon(0 0, 0% 100%, 100% 50%);
            }

            &.first {
                background: url(../1_img/base/icon-measure.svg) no-repeat left 25px center / 27px auto, var(--color-sub);

            }

            &.qa {
                background: url(../1_img/base/menu-qa.svg) no-repeat left 25px center / 30px auto, var(--color-sub);
            }

            &.app {
                color: #fff;
                background: var(--color-accent);

                & span::after {
                    /* 点線 */
                    border-bottom-color: #fff;
                }

                &::after {
                    /* 矢印 */
                    background-color: #fff;
                }
            }

            &+a {
                margin-top: 15px;
            }
        }
    }
}


/*==============================================================================

	イントロ PC

==============================================================================*/
@media all and (min-width: 769px) {
    #shop-intro {

        & .inner {
            width: 660px;
        }

        /* =============== 店舗リスト =============== */
        & .intro-shop_list {

            & li {
                width: calc((100% - 20px) / 3);

                & a {
                    padding: 5px 10px;
                    border-radius: 0px;
                    font-size: 1.5rem;
                }
            }
        }

        /* =============== ご来店の前に =============== */
        & .intro-alert {

            & .intro-alert_title {
                font-size: 1.5rem;
            }

            & .intro-alert_content {
                font-size: 1.4rem;
            }
        }


        /* =============== リンク =============== */
        & .intro-link {
            display: flex;
            flex-wrap: wrap;
            justify-content: center;
            gap: 20px;

            & a {
                width: calc((100% - 20px) / 2);

                &::after {
                    /* 矢印 */
                    right: 20px;
                }

                &+a {
                    margin-top: 0px;
                }
            }
        }
    }
}




/*============================================================================================================================================================
==============================================================================================================================================================

	3.各店舗

==============================================================================================================================================================
============================================================================================================================================================*/
.content>section {
    margin-top: 70px;
}

.shop-wrap {
    padding: 0 20px;

    & .inner {
        padding-top: 40px;
        padding-bottom: 40px;
        background-color: #fff;
    }

    /* =============== 見出し =============== */
    & h2 {
        margin-bottom: 30px;
        padding-bottom: 5px;
        position: relative;
        font-size: 1.5rem;
        font-weight: var(--weight-bold);
        text-align: center;

        &::after {
            content: "";
            width: 100px;
            height: 1px;
            position: absolute;
            left: 50%;
            bottom: 0;
            transform: translateX(-50%);
            border-bottom: 1px dashed var(--color-font);
        }
    }

    /* =============== 画像と住所 =============== */
    & .shop-info {

        & picture img {
            width: 100%;
        }

        & table {
            margin-top: 30px;

            & tr:last-child{
                & th {
                    border-bottom: 1px dashed var(--color-font);
                }

                & td {
                    border-bottom: 1px dashed var(--color-font);
                }
            }
            & tr+tr {
                & th {
                    border-top: 1px dashed var(--color-font);
                }

                & td {
                    border-top: 1px dashed var(--color-font);
                }
            }

            & th {
                padding: 15px 0;
                width: 85px;
                color: var(--color-main);
                font-size: 1.3rem;
            }

            & td {
                padding: 15px 10px;
                font-size: 1.3rem;
            }
        }

        & table,
        & table * {
            border: none;
        }

    }

    /* =============== 注意書き =============== */
    & .shop-note {
        margin-top: 20px;

        & span {
            padding-left: 30px;
            position: relative;
            display: inline-block;

            & img {
                position: absolute;
                left: 0;
                top: 50%;
                transform: translateY(-50%);
            }
        }
    }

    /* =============== googlemapとモーダル =============== */
    & .shop-link {
        margin-top: 30px;

        & button,
        & a {
            padding: 15px;
            width: 100%;
            display: block;
            position: relative;
            border-radius: 50px;
            text-align: center;
            font-size: 1.3rem;
            font-weight: var(--weight-bold);
            color: var(--color-font);
            background: var(--color-sub);
            outline: none;

            & span {
                /* 文字下の点線 */
                display: inline-block;
                position: relative;

                &::after {
                    content: "";
                    position: absolute;
                    width: 95px;
                    bottom: -5px;
                    left: 50%;
                    transform: translateX(-50%);
                    border-bottom: 1px dashed var(--color-font);
                }
            }

            &::after {
                /* 矢印 */
                content: "";
                width: 7px;
                height: 12px;
                position: absolute;
                top: 50%;
                right: 30px;
                transform: translateY(-50%);
                background-color: var(--color-font);
                clip-path: polygon(0 0, 0% 100%, 100% 50%);
            }

            &.shop-btn {
                background: url(../1_img/base/icon-school.svg) no-repeat left 25px center / 18px auto, var(--color-sub);
            }

            &+ button,
            &+a {
                margin-top: 10px;
            }
        }
    }

    /* =============== 取扱商品 =============== */
    & .item-wrap {
        margin-top: 30px;

        & h3 {
            margin-bottom: 20px;
            font-weight: var(--weight-bold);
        }

        & ul {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;

            & li {
                width: calc((100% - 10px) / 2);
                display: flex;
                align-items: center;
                gap: 10px;
                font-size: 1.3rem;
                letter-spacing: 0.1em;
                line-height: 1.2;

                & img {
                    flex-shrink: 0;
                }
            }
        }

        & div {
            margin-top: 20px;
            font-size: 1.3rem;
        }
    }

    /* =============== 取扱サービス =============== */
    & .item-wrap + .service-wrap{
        margin-top: 20px;
        padding-top: 20px;
        border-top: 1px dashed var(--color-font);
    }
    & .service-wrap {
        margin-top: 45px;

        & h3 {
            margin-bottom: 20px;
            font-weight: var(--weight-bold);
        }

        & ul {
            display: flex;
            justify-content: center;
            gap: 0 20px;

            & li {
                display: flex;
                align-items: center;
                gap: 10px;
                font-size: 1.2rem;
                line-height: 1.2;

                & img {
                    flex-shrink: 0;
                }
            }
        }

        & .note {
            margin-top: 25px;
            text-align: center;

            & a {
                font-weight: var(--weight-bold);
            }
        }
    }
}
/*==============================================================================

	各店舗 PC

==============================================================================*/
@media all and (min-width: 769px) {

    .shop-wrap {
        padding: 0;

        & .inner {
            padding: 70px 140px;
        }

        /* =============== 見出し =============== */
        & h2 {
            margin-bottom: 40px;
            padding-bottom: 10px;
            font-size: 1.7rem;
        }

        /* =============== 画像と住所 =============== */
        & .shop-info {
            display: flex;
            align-items: start;
            gap: 0 40px;

            & picture {
                flex-shrink: 0;
            }

            & table {
                margin-top: 0px;

                & tr:first-child {

                    & th {
                        padding-top: 0;
                    }

                    & td {
                        padding-top: 0;
                    }
                }

                & th {
                    font-size: 1.4rem;
                }

                & td {
                    padding-right: 30px;
                    font-size: 1.4rem;
                }
            }

        }

        /* =============== 注意書き =============== */
        & .shop-note {
            margin-top: 40px;
            text-align: center;
        }

        /* =============== googlemapとモーダル =============== */
        & .shop-link {
            margin-top: 40px;
            display: flex;
            gap: 0 20px;

            & button,
            & a {

                &+ button,
                &+a {
                    margin-top: 0;
                }
            }
        }

        /* =============== 取扱商品 =============== */
        & .item-wrap {
            margin-top: 30px;

            & ul {
                display: flex;
                flex-wrap: wrap;
                gap: 10px;

                & li {
                    width: calc((100% - 30px) / 4);
                }
            }

            & div {
                margin-top: 30px;
                font-size: 1.3rem;
                text-align: center;
            }
        }

        /* =============== 取扱サービス =============== */
        & .item-wrap + .service-wrap{
            margin-top: 30px;
            padding-top: 30px;
        }
        & .service-wrap {
            display: flex;
            flex-wrap: wrap;
            align-items: center;

            & h3 {
                margin-bottom: 0;
                width: 172px;
            }

            & ul {
                width: calc(100% - 172px);
                display: flex;
                flex-wrap: wrap;
                justify-content: left;
                gap: 10px;

                & li {
                    width: 160px;
                    display: flex;
                    align-items: center;
                    gap: 10px;
                    font-size: 1.3rem;
                    line-height: 1.2;
                    font-weight: var(--weight-bold);
                }
            }

            & .note {
                width: 100%;
            }
        }
    }
}



/*============================================================================================================================================================
==============================================================================================================================================================

	4.shop モーダル

==============================================================================================================================================================
============================================================================================================================================================*/
#shop-modal-wrapper{
    padding-top: 40px;
    width: 90%;
    border-radius: 5px;
    box-shadow: 0px 5px 15px 0px rgba(0, 0, 0, 0.1);
    position: relative;
    min-height: 100px; /* ローディングだけの時も高さ確保 */

    & h3{
        margin-bottom: 10px;
        padding-bottom: 10px;
        font-weight: var(--weight-bold);
        border-bottom: 1px dashed var(--color-font);
    }

    & .shop-schools{
        max-height: 50vh;
        overflow: scroll;

        & ul + h3{
            margin-top: 30px;
        }
    }
}
.fancybox__backdrop{
    background-color: rgb(255 255 255 / 0.8)!important;
}
.fancybox__slide .f-button[data-fancybox-close]{
    top: 10px!important;
    right: 10px!important;
}
.f-button{
    color: black!important;
}

.loading-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(255, 255, 255, 0.8);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 9999; /* モーダルより上に */
}
.loading {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    font-size: 1rem;
    color: #333;
}

.loading::before {
    content: "";
    width: 40px;
    height: 40px;
    margin-bottom: 10px;
    border: 4px solid var(--color-sub);
    border-top-color: var(--color-accent);
    border-radius: 50%;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}
/*==============================================================================

	モーダル PC

==============================================================================*/
@media all and (min-width: 769px) {
    #shop-modal-wrapper{
        width: 680px;
        padding: 40px 40px;

        & h3{
            margin-bottom: 10px;
            padding-bottom: 10px;
            font-weight: var(--weight-bold);
            border-bottom: 1px dashed var(--color-font);
        }

        & .shop-schools{
            max-height: 50vh;
            overflow: scroll;

            & ul{
                display: flex;
                flex-wrap: wrap;
                gap: 0 20px;

                & li{
                    width: calc((100% - 20px) / 2);
                }
            }
        }
    }
}