﻿@charset "UTF-8";

/*-- キャンペーンバナー非表示 --*/
@media all {
    body:has(#fp-contents-wrap) #campaign-banner {
        display: none !important;
    }
}

/*-- 全体共通 --*/
@media all {
    :root {
        --rs-px: 2rem;
        --rs-container-w: calc(128rem);
    }

    #fp-contents-wrap .pane-topic-path>.container {
        width: auto;
        max-width: calc(1280px + 40px);
        padding: 0 20px;
    }

    #fp-contents-wrap :is(a, button, [type="button"]) {
        transition: opacity 0.3s;
    }

    #fp-contents-wrap .pane-contents {
        padding-bottom: 0;
    }

    #fp-contents-wrap .pane-contents .pane-topic-path>.container {
        padding-left: var(--rs-px);
        padding-right: var(--rs-px);
    }

    #fp-contents-wrap .pane-contents .container {
        margin-left: 0;
        margin-right: 0;
        width: 100%;
        /*overflow: hidden;*/
        padding: 0 0;
        font-size: var(--rs-fs-14);
    }

    #fp-contents-wrap .rs-search-store-root-area {
        min-height: auto;
        margin: 0 auto;
        display: block;
    }

    #fp-contents-wrap .rs-loading {
        display: flex;
        justify-content: center;
        align-items: center;
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: rgba(255, 255, 255, 0.3);
        z-index: calc(var(--rs-z-index-base) + 1000);
    }

    #fp-contents-wrap h1 {
        font-size: var(--rs-fs-28);
        font-weight: var(--rs-fw-bold);
        margin: 0 0 3rem 0;
    }

    #fp-contents-wrap .rs-search-container:has(.swiper-pagination-lock) .rs-js-touch-icon::before,
    #fp-contents-wrap .swiper-button-wrapper:has(.swiper-pagination-lock) {
        display: none !important;
    }
}

/*-- モーダル共通 --*/
@media all {
    #fp-contents-wrap .pane-contents {
        & .uk-modal-dialog {
            width: min(80%, 59rem);
            position: relative;
            border-radius: 0;
            background-color: transparent;
            container-type: initial;
            /*max-height: 90dvh;*/
            max-height: none;
            height: auto;
        }

        & .uk-modal .rs-modal-inner {
            background-color: #fff;
            padding: 0;
            height: fit-content;
            /*overflow-y: auto;*/
            /*max-height: 90dvh;*/
            max-height: none;
            container-type: inline-size;
            scrollbar-width: none;
            overflow: visible;
        }

        & .uk-modal-dialog>.uk-modal-close {
            background-color: transparent;
            margin: 0 0 0.5rem auto;
            border: none;
            padding: 0;
            display: block;
        }

        & .uk-modal-dialog>.uk-modal-close::after {
            content: '';
            background-image: var(--rs-svg-close);
            background-repeat: no-repeat;
            background-size: contain;
            width: 1.2rem;
            height: auto;
            aspect-ratio: var(--rs-ar-close);
            display: block;
            background-color: transparent;
            padding: 0;
        }
    }
}

/*-- 店舗検索共通--*/
@media all {

    #fp-contents-wrap .rs-search-container {

        & h2 {
            font-size: var(--rs-fs-22);
            font-weight: var(--rs-fw-bold);
            margin: 0 0 0 0;
            padding-left: var(--rs-px);
            padding-right: var(--rs-px);
        }

        & button[type="button"] {
            background-color: var(--color-red);
            color: #fff;
            border: none;
            padding: 0;
            font-size: var(--rs-fs-18);
            font-weight: var(--rs-fw-medium);
            display: flex;
            justify-content: center;
            align-items: center;
            border-radius: 1rem;
        }

        & .rs-header {
            max-width: calc(var(--rs-container-w) + 4rem);
            margin: 0 auto;
            padding-left: var(--rs-px);
            padding-right: var(--rs-px);
        }

        & .rs-header .rs-note {
            font-size: var(--rs-fs-16);
            font-weight: var(--rs-fw-medium);
            display: flex;
            flex-direction: column;
            gap: 1.5rem 0;
        }

        & .rs-header .rs-link a {
            text-decoration: underline;
        }

        & .rs-body {
            max-width: calc(var(--rs-container-w) + 4rem * 2);
            margin: 0 auto;
        }
    }

    #fp-contents-wrap .rs-search-container .rs-grid {
        display: grid;
        grid-template-columns: 1fr;
        grid-template-rows: repeat(3, auto);
        gap: 0 0;
        grid-template-areas: "a" "b" "c";
        width: 100%;
        margin: 4rem auto 0;

        & .rs-grid-a {
            grid-area: a;
            overflow: hidden;
        }

        & .rs-grid-b {
            grid-area: b;
            container-type: inline-size;
        }

        & .rs-grid-c {
            grid-area: c;
        }
    }

}

/*-- 店舗検索　現在地から探す --*/
@media all {

    #fp-contents-wrap .rs-research-container #rs-research-modal .rs-location-area,
    #fp-contents-wrap .rs-search-container .rs-location-area {
        padding: 6rem 4rem;
        position: relative;
        display: block;

        &>.rs-flex {
            display: flex;
            align-items: center;
            gap: 0 1rem;
            position: relative;
        }

        & h2 {
            margin: 0;
            color: var(--color-red);
            display: flex;
            align-items: center;
            gap: 0 0.5rem;
            flex-shrink: 0;
            width: calc(385 / 1280 * 100cqw);
            padding-left: 0;
            padding-right: 0;
            font-size: var(--rs-fs-24);
            font-weight: var(--rs-fw-bold);
        }

        & h2 .rs-icon {
            position: relative;
            width: 3rem;
            height: auto;
            aspect-ratio: 1/1;
            flex-shrink: 0;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        & h2 .rs-icon::before {
            content: '';
            background-image: var(--rs-img-pin-red);
            background-repeat: no-repeat;
            background-size: contain;
            width: 1.275rem;
            height: auto;
            aspect-ratio: var(--rs-ar-img-pin-red);
            display: block;
        }

        & .rs-location-container {
            display: flex;
            gap: 0 2rem;
        }

        & .rs-button-wrapper {
            flex-shrink: 0;
            width: calc(480 / 1280 * 100cqw);
            display: flex;
            flex-direction: column;
            justify-content: center;
        }

        & .rs-search-button {
            background-color: var(--color-red);
            border: none;
            padding: 0;
            color: #fff;
            font-size: var(--rs-fs-18);
            font-weight: var(--rs-fw-medium);
            border-radius: 1rem;
            width: 100%;
            height: auto;
            aspect-ratio: 480 / 80;
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 0 0;

        }

        & .rs-note {
            align-self: center;
        }

        & .rs-note p {
            margin: 0 auto 0;
            display: flex;
            align-items: stretch;
            font-size: var(--rs-fs-12);
            gap: 0 0.9rem;
        }

        & .rs-note ::before {
            content: '';
            display: inline-block;
            background-image: var(--rs-img-info);
            background-repeat: no-repeat;
            background-size: contain;
            width: 1.8rem;
            height: auto;
            aspect-ratio: var(--rs-ar-img-info);
            flex-shrink: 0;
            position: relative;
            top: 0.3rem;
        }
    }

    #fp-contents-wrap .rs-research-container #rs-research-modal .rs-location-area::after,
    #fp-contents-wrap .rs-search-container .rs-location-area::after {
        content: '';
        display: block;
        width: calc(100% - 8rem);
        height: 1px;
        background-color: var(--color-red);
        position: absolute;
        left: 4rem;
        bottom: 0;
    }

    #fp-contents-wrap .rs-search-container .rs-location-area {
        & .rs-modal-message {
            display: none;
        }
    }

    #fp-contents-wrap .rs-research-container #rs-research-modal .rs-location-area {
        padding: 6rem 3rem;

        &::after {
            width: calc(100% - 6rem);
            left: 3rem;
        }

        & .rs-modal-message-pc {
            display: block;
            font-size: var(--rs-fs-14);
            font-weight: var(--rs-fw-regular);
            width: fit-content;
            margin: 1.65rem 0 0 calc(385 / 1280 * 100cqw + 0.5rem);
        }

        & .rs-search-button {
            width: 100%;
        }
    }
}

/*-- 店舗検索　条件から探す --*/
@media all {

    #fp-contents-wrap .rs-research-container #rs-research-modal .rs-condition-area,
    #fp-contents-wrap .rs-search-container .rs-condition-area {
        padding: 6rem 4rem 10rem;

        & .rs-search-block {
            display: flex;
            flex-wrap: wrap;
            align-items: stretch;
            gap: 0.8rem 0.6rem;
        }

        & h2 {
            margin: 0 0 calc(2rem - 0.6rem);
            color: var(--color-red);
            display: flex;
            align-items: center;
            gap: 0 0.5rem;
            background-color: #fff;
            width: 100%;
            order: 1;
            padding-left: 0;
            padding-right: 0;
            font-size: var(--rs-fs-24);
            font-weight: var(--rs-fw-bold);
        }

        & h2 .rs-icon {
            position: relative;
            width: 2.9rem;
            flex-shrink: 0;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        & h2 .rs-icon::before {
            content: '';
            background-image: var(--rs-img-filter);
            background-repeat: no-repeat;
            background-size: contain;
            width: 1.8rem;
            height: auto;
            aspect-ratio: var(--rs-ar-img-filter);
            display: block;
        }

        & h3 {
            font-weight: var(--rs-fw-regular);
            font-size: var(--rs-fs-16);
            margin: 0 0 1.5rem 0;
            padding: 0 0 0.9rem;
            position: relative;
        }

        & h3::after {
            content: '';
            display: block;
            width: 100%;
            height: 1px;
            background-color: #E5E5E5;
            position: absolute;
            bottom: 0;
            left: 0;
        }

        & h3 .rs-lg {
            font-size: var(--rs-fs-18);
        }

        & label {
            font-size: var(--rs-fs-16);
            font-weight: var(--rs-fw-regular);
        }

        & select {
            width: 100%;
            background-color: #fff;
            border: none;
        }

        & .rs-area-section {
            order: 2;
        }

        & .rs-keyword-section {
            order: 3;
        }

        & .rs-handling-store-section {
            order: 4;
        }

        & .rs-category-section {
            order: 5;
        }

        & .rs-other-section {
            order: 6;
        }

        & .rs-search-button-section {
            order: 7;
        }

        & .rs-area-section,
        & .rs-keyword-section {
            padding: 2rem 2rem;
            width: calc((100% - 0.6rem) /2);
            background-color: #F7F7F7;
        }

        & .rs-pref-container {
            position: relative;
        }

        & .rs-city-container {
            margin: 0.5rem 0 0 0;
            position: relative;
        }

        & .rs-select-pseudo {
            font-size: var(--rs-fs-16);
            font-weight: var(--rs-fw-regular);
            color: #C6C6C6;
            position: absolute;
            top: 0;
            left: 0;
            pointer-events: none;
            padding: 0 12px;
            top: 50%;
            left: 0;
            translate: 0 -50%;
        }

        & .rs-handling-store-section,
        & .rs-other-section,
        & .rs-category-section {
            padding: 2rem 2rem;
            width: calc((100% - 0.6rem * 2) /3);
            background-color: #F7F7F7;
        }

        & .rs-keyword-section [type="text"] {
            width: 100%;
        }

        & .rs-category-container,
        & .rs-other-container,
        & .rs-handling-store-container {
            display: flex;
            flex-wrap: wrap;
            gap: 1.5rem 2rem;
        }

        & .rs-search-button-section {
            width: 100%;
            display: flex;
            justify-content: center;
            align-items: center;
            margin: calc(1.5rem - 0.6rem) auto 0;
            position: relative;
            flex-wrap: wrap;
        }

        & .rs-search-button-section button {
            width: 28rem;
            height: 6rem;
            border-radius: 3rem;
            font-size: var(--rs-fs-18);
            font-weight: var(--rs-fw-medium);
            display: flex;
            gap: 0 0.9rem;
            align-items: center;
            margin: 0 auto;
            justify-content: center;
            background-color: var(--color-red);
            border: none;
            color: #fff;
            padding: 0;
        }

        & .rs-search-button-section button::before {
            content: '';
            background-image: var(--rs-svg-search);
            background-repeat: no-repeat;
            background-size: contain;
            width: 1.832rem;
            height: auto;
            aspect-ratio: var(--rs-ar-search);
        }

        & .rs-search-button-section .rs-button-message {
            margin: 0 0 1rem;
            font-size: var(--rs-fs-16);
            width: 100%;
            display: flex;
            justify-content: center;
            text-align: center;
        }

        & .rs-search-button-section .rs-button-message:has(p:empty) {
            display: none;
        }
    }

    #fp-contents-wrap .rs-research-container #rs-research-modal .rs-condition-area {
        padding: 6rem 3rem;
    }
}

@media (max-width: 1360px) {

    body #fp-contents-wrap .rs-search-container .rs-grid .rs-condition-area,
    body #fp-contents-wrap .rs-search-container .rs-grid .rs-location-area {
        padding-left: 2rem;
        padding-right: 2rem;
    }

    body #fp-contents-wrap .rs-search-container .rs-grid .rs-location-area {
        &::after {
            width: calc(100% - 4rem);
            left: 2rem;
        }
    }
}

/*-- 店舗検索結果　再検索モーダル --*/
@media all {
    #fp-contents-wrap .rs-research-container #rs-research-modal {
        background-color: var(--rs-color-overlay);
        max-height: none;
        overflow: auto;
        padding: 5dvh 0;

        & .rs-modal-close-wrapper {
            width: min(80%, 1280px);
        }

        & .uk-modal-dialog {
            width: min(80%, 1280px);
            border-radius: 0;
            /*max-height: 90dvh;*/
            max-height: none;
            height: fit-content;
            container-type: initial;
        }

        & .rs-modal-message {
            display: flex;
            align-items: stretch;
            gap: 0 0.5rem;
            font-size: var(--rs-fs-14);
            font-weight: var(--rs-fw-regular);
            margin: 1.65rem 0 0;
        }

        & .rs-modal-message-sp {
            display: none;
        }

        & .rs-modal-message span {
            flex-shrink: 0;
        }

        & .rs-condition-area {
            display: block;
        }

        & .rs-search-button-section {
            margin-bottom: 0;
        }
    }
}

/*-- 店舗検索　NEW OPEN --*/
@media all {
    #fp-contents-wrap .rs-search-container .rs-new-open-area {
        & h2 {
            margin: 0 0;
            background-color: var(--color-red);
            color: #fff;
            font-size: var(--rs-fs-16);
            font-weight: var(--rs-fw-bold);
            width: 11.1rem;
            padding: 0;
            height: auto;
            aspect-ratio: 111 / 34;
            display: flex;
            align-items: center;
            justify-content: center;
            flex-shrink: 0;
        }

        & .rs-h2-sub {
            color: var(--color-red);
            font-size: var(--rs-fs-22);
            font-weight: var(--rs-fw-bold);
        }

        & .rs-h2-sub::after {
            bottom: 3px;
        }

        & .rs-new-open-inner {
            background-color: var(--rs-color-ivory);
            padding: 4rem 4rem;
            position: relative;
        }

        & .rs-new-open-inner::before {
            content: '';
            display: block;
            width: 100%;
            height: 100%;
            background-color: var(--rs-color-ivory);
            position: absolute;
            left: 0;
            top: 0;
        }

        & .rs-new-open-inner>* {
            margin-left: 4rem;
            margin-right: 4rem;
        }

        & .rs-h2-wrapper {
            display: flex;
            align-items: center;
            margin: 0 auto 3rem;
            gap: 0 1.2rem;
            justify-content: start;
            position: relative;
            max-width: 120rem;
            padding: 0 0 calc(2.1rem + 0.3rem);
        }

        & .rs-h2-wrapper::before,
        & .rs-h2-wrapper::after {
            content: '';
            display: block;
            width: 100%;
            height: 1px;
            background-color: var(--color-red);
            position: absolute;
            bottom: -0.3rem;
            left: 0;
        }

        & .rs-h2-wrapper::after {
            bottom: 0;
        }

        & .swiper-container {
            width: auto;
            overflow: hidden;
            position: relative;
            max-width: 120rem;
            padding: 0;
            margin: 0 auto;
        }

        & .swiper-container.rs-js-touch-icon::before {
            display: block;
            content: "";
            width: 12.8rem;
            height: auto;
            aspect-ratio: 1/1;
            background: url(../../common/img/swipeAnimation_layer.webp) no-repeat center / contain;
            border-radius: 1rem;
            position: absolute;
            top: 50%;
            left: 50%;
            translate: -50% -50%;
            overflow: hidden;
            z-index: 2;
            pointer-events: none;
        }

        & .swiper-container.rs-js-touch-icon::after {
            display: block;
            content: "";
            width: 2.644rem;
            height: auto;
            aspect-ratio: 26.44/32.54;
            background: url(../../common/img/swipeAnimation_icon.webp) no-repeat center / contain;
            position: absolute;
            top: 50%;
            left: calc(50% - 1.8rem);
            translate: 0 -50%;
            z-index: 3;
            animation: touchAnimation 2s ease-out infinite;
            pointer-events: none;
        }

        & .swiper-wrapper {
            align-items: stretch;
        }

        & .swiper-slide {
            height: auto;
        }

        & .swiper-button-wrapper {
            display: flex;
            gap: 0 1rem;
            margin: 0 0 0 auto;
            align-items: stretch;
        }

        & .swiper-button-wrapper>* {
            position: static;
            line-height: 1;
            position: relative;
            padding: 0 0;
            height: auto;
            display: flex;
            align-items: center;
        }

        & .swiper-button-prev {
            padding-right: 1rem;
        }

        & .swiper-button-next {
            padding-left: 1rem;
        }

        & :is(.swiper-button-prev, .swiper-button-next)::after {
            content: '';
            background-image: var(--rs-svg-arrow-4);
            background-repeat: no-repeat;
            background-size: contain;
            aspect-ratio: var(--rs-ar-arrow-4);
            width: 0.5rem;
            height: auto;
            display: block;
            position: relative;
            top: 0.2rem;
        }

        & .swiper-pagination {
            font-size: var(--rs-fs-16);
            font-weight: var(--rs-fw-medium);
            color: var(--color-red);
            width: fit-content;
            margin: 0;
            display: flex;
            gap: 0 0.5rem;
            align-items: center;
        }

        & .swiper-slide .rs-inner {
            display: flex;
            flex-direction: column;
            height: 100%;
        }

        & .swiper-slide .rs-image-wrapper img {
            width: 100%;
            height: auto;
            display: block;
            background-color: #fff;
            aspect-ratio: 285 / 182;
            object-fit: cover;
        }

        & .rs-image-wrapper img[src*="no-image"] {
            object-fit: cover;
        }

        & .swiper-slide .rs-text-wrapper {
            display: flex;
            flex-direction: column;
            margin: 2rem 0 0;
        }

        & .swiper-slide .rs-store-label {
            display: flex;
            flex-wrap: wrap;
            gap: 0.3rem 0.3rem;
            margin: 0 0 1.5rem;
            flex-grow: 1;
        }

        & .swiper-slide .rs-store-label>li {
            background-color: #fff;
            font-size: var(--rs-fs-12);
            padding: 0.2rem 0.8rem;
            display: flex;
            justify-content: center;
            align-items: center;
            color: var(--color-red);
            border: 1px solid var(--color-red);
            height: fit-content;
        }

        & .swiper-slide .rs-store-label>li[data-rs-code="OF"] {
            background-color: var(--rs-color-red);
            color: #fff;
        }

        & .swiper-slide .rs-store-name {
            font-size: var(--rs-fs-18);
            font-weight: var(--rs-fw-bold);
            margin: 0;
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }

        & .swiper-slide a.rs-store-name {
            text-decoration: underline;
        }

        & .rs-to-shop-list {
            margin: 3rem 4rem 0;
        }

        & .rs-to-shop-list a {
            display: flex;
            font-size: var(--rs-fs-16);
            font-weight: var(--rs-fw-medium);
            text-decoration: underline;
            justify-content: end;
            position: relative;
        }
    }
}

/*-- 店舗検索結果共通--*/
@media all {
    #fp-contents-wrap .rs-result-container {
        background-color: var(--rs-color-ivory);

        & h2 {
            font-size: var(--rs-fs-22);
            font-weight: var(--rs-fw-bold);
            margin: 0 0 0 0;
        }

        & button[type="button"] {
            border: none;
            padding: 0;
            display: flex;
            justify-content: center;
            align-items: center;
        }

        & .rs-header {
            background-color: #fff;
            padding: 0 var(--rs-px) 4rem;
        }

        & h1,
        & .rs-note {
            max-width: var(--rs-container-w);
            margin-left: auto;
            margin-right: auto;
        }

        & .rs-header .rs-note {
            color: var(--rs-color-gray);
            gap: 0.6rem 0;
            display: flex;
            flex-direction: column;
            font-size: var(--rs-fs-14);
            font-weight: var(--rs-fw-regular);
        }

        & .rs-header .rs-note .rs-text {
            display: flex;
            align-items: stretch;
            gap: 0 0.5rem;
        }

        & .rs-header .rs-note .rs-alert {
            display: flex;
            align-items: center;
            gap: 0 0.5rem;
        }

        & .rs-header .rs-note .rs-alert .rs-icon::before {
            content: '';
            display: block;
            background-image: url('../../common/img/information-red.png');
            background-repeat: no-repeat;
            background-size: contain;
            width: 1.3rem;
            height: auto;
            aspect-ratio: 1/1;
        }
    }

    #fp-contents-wrap .rs-result-container .rs-grid {
        display: grid;
        grid-template-columns: 39rem 1fr;
        grid-template-rows: repeat(2, auto);
        gap: 0 4rem;
        grid-template-areas: "b a";
        max-width: calc(128rem + 4rem);
        margin: 4rem auto 0;
        padding: 0 2rem;
        min-height: 100dvh;

        & .rs-grid-a {
            grid-area: a;
            overflow: hidden;

        }

        & .rs-grid-b {
            grid-area: b;
        }

        &:has(#rs-map:empty) {
            min-height: auto;
        }
    }
}

@media (width>1360px) {
    #fp-contents-wrap .rs-result-container {

        & h1,
        & .rs-note {
            padding-left: 2rem;
            padding-right: 2rem;
        }
    }

    #fp-contents-wrap .rs-result-container .rs-grid {
        padding-left: 2rem;
        padding-right: 2rem;
    }
}

/*-- 店舗検索結果 店舗情報（共通）--*/
@media all {

    body:has(#fp-contents-wrap) #rs-store-modal .rs-result-item,
    #fp-contents-wrap #rs-result-area .rs-result-item,
    #fp-contents-wrap .rs-result-container .rs-result-item {
        display: flex;
        flex-direction: column;
        gap: 1.5rem 0;


        #fp-contents-wrap .rs-result-container .rs-result-item {
            display: flex;
            flex-direction: column;
            background-color: #fff;
            border: 1px solid #C6C6C6;
            padding: 2.5rem 2.5rem;
        }
    }

    #fp-contents-wrap .rs-result-container .rs-result-item,
    body:has(#fp-contents-wrap) #rs-store-modal {

        & .rs-store-label {
            display: flex;
            flex-wrap: wrap;
            gap: 0.3rem 0.3rem;
            margin: 0 0 1.5rem;
            flex-grow: 1;
        }

        & .rs-store-label>li {
            background-color: #fff;
            font-size: var(--rs-fs-12);
            padding: 0.2rem 0.8rem;
            display: flex;
            justify-content: center;
            align-items: center;
            color: var(--color-red);
            border: 1px solid var(--color-red);
            height: fit-content;
        }

        & .rs-store-label>li[data-rs-code="OF"] {
            background-color: var(--color-red);
            color: #fff;
        }

        & .rs-store-name {
            font-size: var(--rs-fs-18);
            font-weight: var(--rs-fw-bold);
            margin: 0 0 2rem;
            display: block;
        }

        & a.rs-store-name {
            text-decoration: underline;
        }

        & .rs-store-info-area {
            background-color: #F7F7F7;
            margin: 2rem 0 1.5rem;
            padding: 1.7rem 1.7rem;
            display: flex;
            align-items: stretch;
            flex-wrap: wrap;
            gap: 1rem 1rem;
        }

        & .rs-store-info-area>* {
            width: calc((100% - 1rem) / 2);
        }

        & .rs-store-info-area .rs-store-zip {
            font-size: var(--rs-fs-16);
            font-weight: var(--rs-fw-regular);
        }

        & .rs-store-info-area .rs-addr-wrapper {
            width: 100%;
        }

        & .rs-store-info-area .rs-store-addr {
            font-size: var(--rs-fs-16);
            font-weight: var(--rs-fw-regular);
            width: 100%;
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }

        & .rs-store-info-area .rs-store-info-wrapper,
        & .rs-store-info-area .rs-store-closeday-wrapper,
        & .rs-store-info-area .rs-store-tel-wrapper,
        & .rs-store-info-area .rs-store-fax-wrapper {
            display: flex;
            align-items: stretch;
        }

        & .rs-store-info-area .rs-store-info-wrapper .rs-icon,
        & .rs-store-info-area .rs-store-closeday-wrapper .rs-icon,
        & .rs-store-info-area .rs-store-tel-wrapper .rs-icon,
        & .rs-store-info-area .rs-store-fax-wrapper .rs-icon {
            display: flex;
            align-items: start;
            width: 2.4rem;
            height: auto;
            aspect-ratio: 1/1;
        }

        & .rs-store-info-area .rs-store-info-wrapper .rs-icon::before,
        & .rs-store-info-area .rs-store-closeday-wrapper .rs-icon::before,
        & .rs-store-info-area .rs-store-tel-wrapper .rs-icon::before,
        & .rs-store-info-area .rs-store-fax-wrapper .rs-icon::before {
            content: '';
            justify-content: center;
            background-repeat: no-repeat;
            background-size: contain;
            height: auto;
            display: block;
            position: relative;
        }

        & .rs-store-info-area .rs-store-info {
            font-size: var(--rs-fs-16);
            font-weight: var(--rs-fw-regular);
        }

        & .rs-store-info-area .rs-store-info-wrapper .rs-icon::before {
            background-image: var(--rs-img-clock);
            width: 1.512rem;
            aspect-ratio: var(--rs-ar-img-clock);
            top: 0.5rem;
        }

        & .rs-store-info-area .rs-store-tel span {
            font-size: var(--rs-fs-16);
            font-weight: var(--rs-fw-regular);
        }

        & .rs-store-info-area .rs-store-tel-wrapper a {
            pointer-events: none;
        }

        & .rs-store-info-area .rs-store-tel-wrapper .rs-icon::before {
            background-image: var(--rs-img-tel);
            width: 1.19rem;
            aspect-ratio: var(--rs-ar-img-tel);
            top: 0.5rem;
        }

        & .rs-store-info-area .rs-store-fax span {
            font-size: var(--rs-fs-16);
            font-weight: var(--rs-fw-regular);
        }

        & .rs-store-info-area .rs-store-fax-wrapper .rs-icon::before {
            background-image: var(--rs-img-fax);
            width: 1.8rem;
            aspect-ratio: var(--rs-ar-img-fax);
            top: 0.5rem;
        }

        & .rs-store-info-area .rs-store-closeday-wrapper .rs-icon::before {
            background-image: var(--rs-img-holiday);
            width: 1.8rem;
            aspect-ratio: var(--rs-ar-img-holiday);
            top: 0.3rem;
        }

        & .rs-store-google-maps-wrapper:has(>*),
        & .rs-store-category-wrapper:has(>*),
        & .rs-store-other-wrapper:has(>*) {
            margin: 1.6rem 0 0;
        }

        & .rs-store-category-wrapper h3,
        & .rs-store-other-wrapper h3 {
            font-size: var(--rs-fs-12);
            font-weight: var(--rs-fw-regular);
            margin: 0 0 0.7rem;
        }

        & .rs-store-category,
        & .rs-store-other {
            display: flex;
            flex-wrap: wrap;
            align-items: stretch;
            gap: 0.3rem 0.3rem;
            margin: 0 0 1.2rem;
            flex-grow: 1;
        }

        & .rs-store-category {
            margin-bottom: 0;
        }

        & .rs-store-category>li,
        & .rs-store-other>li {
            font-size: var(--rs-fs-14);
            font-weight: var(--rs-fw-regular);
            display: flex;
            justify-content: center;
            align-items: center;
            height: fit-content;
            border: 1px solid #EBEBEB;
            padding: 0.2rem 0.8rem;
        }

        & .rs-store-google-maps-wrapper {
            display: flex;
            gap: 0 1.6rem;
            flex-wrap: wrap;
            align-items: center;
        }

        & .rs-store-google-maps-wrapper a {
            position: relative;
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 0 0.7rem;
            font-size: var(--rs-fs-12);
            font-weight: var(--rs-fw-regular);
            text-decoration: underline;
        }

        & .rs-store-google-maps-wrapper a::after {
            content: '';
            background-image: var(--rs-svg-copy);
            background-repeat: no-repeat;
            background-size: contain;
            width: 1.1rem;
            height: auto;
            display: block;
            aspect-ratio: var(--rs-ar-copy);
        }

        .rs-store-google-maps-wrapper .rs-distance {
            font-size: var(--rs-fs-12);
            font-weight: var(--rs-fw-regular);
            margin-left: auto;
        }

        .rs-store-google-maps-wrapper .rs-distance span {
            font-size: var(--rs-fs-14);
            font-weight: var(--rs-fw-bold);
            color: var(--color-red);
        }
    }

}

/*-- 店舗検索結果 店舗情報（左部）--*/
@media all {
    #fp-contents-wrap .rs-result-container .rs-js-left-height {
        overflow: auto;
        scrollbar-width: none;
    }

    #fp-contents-wrap #rs-result-area .rs-result-items {
        display: flex;
        flex-direction: column;
        gap: 1.5rem 0;
        width: calc(100% + 2rem);
        padding: 1rem 1rem 10rem;
        margin-left: -1rem;
        position: relative;
    }

    #fp-contents-wrap #rs-result-area .rs-result-item {
        width: 100%;
        margin: 0 auto;
        background-color: #fff;
        filter: drop-shadow(0px 0px 5px rgba(0, 0, 0, 0.1));
        padding: 2.5rem 2.5rem;

        & .rs-text-wrapper .rs-store-fax-wrapper,
        & .rs-text-wrapper .rs-store-closeday-wrapper {
            display: none;
        }
    }

    #fp-contents-wrap .rs-result-container .rs-result-overview .rs-count {
        font-size: var(--rs-fs-16);
        font-weight: var(--rs-fw-medium);
        margin: 0 0 1.5rem 0;
        display: flex;
        gap: 0 1rem;
    }
}

/*-- 店舗検索結果 モーダル--*/
@media all {
    body:has(#fp-contents-wrap) #rs-store-modal {
        z-index: calc(var(--rs-z-index-base) + 20);
        padding: 5dvh 0;
        overflow: auto;
    }

    body:has(#fp-contents-wrap) #rs-store-modal .uk-modal-body {
        & .rs-modal-inner .rs-result-item {
            gap: 0;
        }

        & .rs-image-wrapper img {
            width: 100%;
            height: auto;
            display: block;
            background-color: #f0f0f0;
            aspect-ratio: 590 / 370;
            object-fit: cover;
        }

        & .rs-image-wrapper img[src*="no-image"] {
            object-fit: cover;
        }

        & .rs-text-wrapper {
            display: flex;
            flex-direction: column;
            padding: 3rem 3rem;
        }

        & .rs-store-label {
            margin-bottom: 1.5rem;
        }

        & .rs-store-name {
            font-size: var(--rs-fs-18);
            font-weight: var(--rs-fw-bold);
            margin-bottom: 0;
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }

        & .rs-store-info-area {
            background-color: #F7F7F7;
            padding: 2rem 2rem;
            display: flex;
            flex-wrap: wrap;
            gap: 0 2rem;
            align-items: stretch;
            margin: 1.5rem 0 0;
        }

        & .rs-store-info-area>.rs-store-tel-wrapper,
        & .rs-store-info-area>.rs-addr-wrapper {
            width: 100%;
        }

        & .rs-store-info-area:has(.rs-addr-wrapper + *) .rs-addr-wrapper {
            margin-bottom: 1rem;
        }

        & .rs-store-info-area>.rs-store-fax-wrapper {
            display: none;
        }

        & .rs-store-info-area>.rs-store-tel-wrapper,
        & .rs-store-info-area>.rs-store-closeday-wrapper,
        & .rs-store-info-area>.rs-store-info-wrapper {
            width: fit-content;
            font-size: var(--rs-fs-16);
        }

        & .rs-store-info-area .rs-store-addr .rs-icon {
            display: none;
        }

        & .rs-text-wrapper .rs-store-other-wrapper,
        & .rs-text-wrapper .rs-store-category-wrapper {
            margin-top: 1.5rem;
        }

        & .rs-text-wrapper .rs-store-other {
            margin: 0;
        }

        & .rs-text-wrapper .rs-store-google-maps-wrapper:has(>*) {
            margin-top: 1.5rem;
        }

        & .rs-more-button {
            background-color: var(--rs-color-black);
            color: #fff;
            font-size: var(--rs-fs-16);
            display: flex;
            align-items: center;
            justify-content: center;
            width: calc(100% - 6rem);
            height: 6rem;
            margin: 0 auto 3rem;
            font-weight: var(--rs-fw-medium);
            flex-shrink: 0;
        }
    }

}

/*-- 店舗検索結果 右部--*/
@media all {
    #fp-contents-wrap .rs-result-container .rs-google-maps-area {
        & #rs-map {
            width: 100%;
            height: auto;
            aspect-ratio: 850 / 594;
        }

        & #rs-map:empty {
            display: none;
        }

        & .rs-research-button {
            width: 28rem;
            height: 6rem;
            display: flex;
            gap: 0 0.9rem;
            align-items: center;
            justify-content: center;
            margin: 2rem auto 4rem;
            border-radius: 3rem;
            background-color: var(--rs-color-black);
            color: #fff;
            font-size: var(--rs-fs-18);
            font-weight: var(--rs-fw-bold);
        }

        & .rs-research-button::before {
            content: '';
            background-image: var(--rs-svg-search);
            background-repeat: no-repeat;
            background-size: contain;
            width: 1.832rem;
            height: auto;
            aspect-ratio: var(--rs-ar-search);
            display: block;
        }
    }
}

/*-- Google Maps このエリアで検索する --*/
@media all {
    .rs-googlemaps-search-this-area-button {
        background-color: #fff;
        border-radius: 1.9rem;
        width: 14.8rem;
        height: auto;
        aspect-ratio: 148 / 38;
        font-size: var(--rs-fs-14);
        font-weight: var(--rs-fw-medium);
        display: flex;
        align-items: center;
        justify-content: center;
        margin: 1.5rem;
    }
}