﻿@charset "UTF-8";

/*-- キャンペーンバナー非表示 --*/
@media all {
    body:has(#fp-contents-wrap) #campaign-banner {
        display: none !important;
    }
}

/*-- 全体共通 --*/
@media all {
    :root {
        --rs-px: calc(20 / 390 * 100vw);
    }

    #fp-contents-wrap :is(a, button, [type="button"]) {
        transition: opacity 0.3s;
    }

    #fp-contents-wrap .pane-topic-path {
        margin: 0 0 calc(10 / 390 * 100vw);
    }

    #fp-contents-wrap .block-topic-path {
        font-size: var(--rs-fs-11);
        margin: 0;
        padding: calc(12 / 390 * 100vw) var(--rs-px) calc(9 / 390 * 100vw);
    }

    #fp-contents-wrap .pane-topic-path>.container {
        padding: 0;
    }

    #fp-contents-wrap .block-topic-path--list::before,
    #fp-contents-wrap .block-topic-path--list::after {
        content: none;
    }

    #fp-contents-wrap .pane-contents {
        padding-bottom: 0;
        min-height: auto;
    }

    #fp-contents-wrap .pane-contents .container {
        margin-left: 0;
        margin-right: 0;
        width: 100%;
        overflow: hidden;
        padding: 0;
        font-size: var(--rs-fs-14);
    }

    #fp-contents-wrap .rs-search-store-root-area {
        display: block;
        width: 100%;
    }

    #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 .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: calc(360 / 390 * 100vw);
            position: relative;
            border-radius: 0;
            background-color: transparent;
            max-height: none;
            overflow: hidden;
            height: auto;
        }

        & .uk-modal-dialog>.uk-modal-close {
            background-color: transparent;
            margin: 0 0 calc(5 / 390 * 100vw) 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: calc(12 / 390 * 100vw);
            height: auto;
            aspect-ratio: var(--rs-ar-close);
            display: block;
            background-color: transparent;
            padding: 0;
        }

        & .uk-modal .rs-modal-inner {
            background-color: #fff;
            padding: 0;
            height: fit-content;
            overflow-y: auto;
            /*max-height: 88dvh;*/
            max-height: none;
            container-type: inline-size;
        }

        & .rs-modal-body {
            height: 100%;
            overflow-y: auto;
            scrollbar-width: none;
        }
    }
}

/*-- 共通ヘッダー --*/
@media all {
    #fp-contents-wrap .rs-search-store-root-area .rs-header {
        margin-left: var(--rs-px);
        margin-right: var(--rs-px);

        & h1 {
            font-size: var(--rs-fs-25);
            font-weight: var(--rs-fw-bold);
            margin: 0 0 calc(25 / 390 * 100vw) 0;
        }

        & .rs-note {
            font-size: var(--rs-fs-14);
            font-weight: var(--rs-fw-medium);
            display: flex;
            flex-direction: column;
            gap: calc(16 / 390 * 100vw) 0;
        }

        & .rs-link {
            display: flex;
            flex-direction: column;
            gap: calc(8 / 390 * 100vw) 0;
        }

        & .rs-link a {
            text-decoration: underline;
        }
    }
}

/*-- 店舗検索共通--*/
@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;
        }

    }

    #fp-contents-wrap .rs-search-container 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;

    }

    #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: calc(20 / 390 * 100vw) auto 0;

        & .rs-grid-a {
            grid-area: a;
            overflow: hidden;
        }

        & .rs-grid-b {
            grid-area: b;
        }

        & .rs-grid-c {
            grid-area: c;
        }
    }

}

/*-- 店舗検索　現在地から探す --*/
@media all {

    #fp-contents-wrap .rs-research-container #rs-research-modal,
    #fp-contents-wrap .rs-search-container .rs-location-area {
        padding: calc(50 / 390 * 100vw) var(--rs-px) calc(40 / 390 * 100vw);
        background-color: #fff;

        & h2 {
            margin-bottom: calc(20 / 390 * 100vw);
            color: var(--color-red);
            display: flex;
            align-items: center;
            gap: 0 calc(5 / 390 * 100vw);
            font-size: var(--rs-fs-18);
            font-weight: var(--rs-fw-bold);
        }

        & h2 .rs-icon {
            position: relative;
            width: calc(24 / 390 * 100vw);
            flex-shrink: 0;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        & h2 .rs-icon.rs-for-location::before {
            content: '';
            background-image: var(--rs-img-pin-red);
            background-repeat: no-repeat;
            background-size: contain;
            width: calc(11.26 / 390 * 100vw);
            height: auto;
            aspect-ratio: var(--rs-ar-img-pin-red);
            display: block;
        }

        & .rs-location-container button {
            width: 100%;
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 0 calc(10 / 390 * 100vw);
            background-color: var(--color-red);
            color: #fff;
            height: calc(70 / 390 * 100vw);
            border-radius: calc(10 / 390 * 100vw);
            border: none;
            font-size: var(--rs-fs-14);
            font-weight: var(--rs-fw-medium);
        }

        & .rs-note {
            margin: calc(8 / 390 * 100vw) auto 0;
            display: flex;
            align-items: stretch;
            font-size: var(--rs-fs-11);
            gap: 0 calc(5 / 390 * 100vw);
        }

        & .rs-note::before {
            content: '';
            display: block;
            background-image: var(--rs-img-info);
            background-repeat: no-repeat;
            background-size: contain;
            width: calc(13.68 / 390 * 100vw);
            height: auto;
            aspect-ratio: var(--rs-ar-img-info);
            flex-shrink: 0;
            position: relative;
            top: calc(4 / 390 * 100vw);
        }

        & .rs-modal-message {
            display: none;
        }

    }
}

/*-- 店舗検索　条件から探す --*/
@media all {

    #fp-contents-wrap .rs-research-container #rs-research-modal,
    #fp-contents-wrap .rs-search-container .rs-condition-area {
        padding: 0 var(--rs-px);
        background-color: #fff;

        & h2 {
            margin-bottom: calc(20 / 390 * 100vw);
            color: var(--color-red);
            display: flex;
            align-items: center;
            gap: 0 calc(5 / 390 * 100vw);
            background-color: #fff;
            font-size: var(--rs-fs-18);
            font-weight: var(--rs-fw-bold);
        }

        & h2 .rs-icon {
            position: relative;
            width: calc(24 / 390 * 100vw);
            flex-shrink: 0;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        & h2 .rs-icon.rs-for-condition::before {
            content: '';
            background-image: var(--rs-img-filter);
            background-repeat: no-repeat;
            background-size: contain;
            width: calc(14 / 390 * 100vw);
            height: auto;
            aspect-ratio: var(--rs-ar-img-filter);
            display: block;
        }

        & h3 {
            font-weight: var(--rs-fw-regular);
            font-size: var(--rs-fs-14);
            margin: 0 0 calc(15 / 390 * 100vw) 0;
            padding: 0 0 calc(10 / 390 * 100vw);
            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-15);
        }

        & label {
            font-size: var(--rs-fs-14);
            font-weight: var(--rs-fw-regular);
        }

        & select {
            width: 100%;
            background-color: #fff;
            border: none;
            border-radius: 0;
        }

        & .rs-keyword-section,
        & .rs-other-section,
        & .rs-category-section,
        & .rs-handling-store-section,
        & .rs-area-section {
            padding: calc(15 / 390 * 100vw) calc(15 / 390 * 100vw);
            margin: 0 0 calc(5 / 390 * 100vw);
            background-color: #F7F7F7;
        }

        & .rs-pref-container {
            position: relative;
        }

        & .rs-city-container {
            margin: calc(5 / 390 * 100vw) 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 calc(10 / 390 * 100vw);
            top: 50%;
            left: 0;
            translate: 0 -50%;
        }

        & .rs-keyword-section {
            margin-bottom: 0;
        }

        & .rs-category-container,
        & .rs-other-container,
        & .rs-handling-store-container {
            display: flex;
            flex-wrap: wrap;
            gap: calc(12 / 390 * 100vw) calc(20 / 390 * 100vw);
        }

        & .rs-search-button-section {
            margin: calc(15 / 390 * 100vw) 0 calc(50 / 390 * 100vw);
        }

        & .rs-search-button-section button {
            width: calc(280 / 390 * 100vw);
            max-width: 100%;
            margin: 0 auto;
            height: calc(55 / 390 * 100vw);
            border-radius: calc(28 / 390 * 100vw);
            font-size: var(--rs-fs-14);
            font-weight: var(--rs-fw-medium);
            display: flex;
            gap: 0 calc(10 / 390 * 100vw);
            align-items: center;
            background-color: var(--color-red);
            color: #fff;
            border: none;
            justify-content: center;
        }

        & .rs-search-button-section button::before {
            content: '';
            background-image: var(--rs-svg-search);
            background-repeat: no-repeat;
            background-size: contain;
            width: calc(16.36 / 390 * 100vw);
            height: auto;
            aspect-ratio: var(--rs-ar-search);
        }

        & .rs-keyword-section [type="text"] {
            width: 100%;
        }

        & .rs-search-button-section .rs-button-message {
            margin: 0 auto calc(10 / 390 * 100vw);
            font-size: var(--rs-fs-14);
            width: fit-content;
            text-align: center;
        }

        & .rs-search-button-section .rs-button-message:has(p:empty) {
            display: none;
        }
    }
}

/*-- 店舗検索結果　再検索モーダル --*/
@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;

        & .uk-modal-dialog {
            width: calc(350 / 390 * 100vw);
            border-radius: 0;
        }

        & .rs-modal-inner {
            height: fit-content;
            /*max-height: 90dvh;*/
            max-height: none;
        }

        & .rs-modal-body {
            padding: calc(25 / 390 * 100vw) calc(15 / 390 * 100vw);
            overflow-y: auto;
        }

        & .rs-modal-message-sp {
            display: flex;
            align-items: stretch;
            gap: 0 calc(5 / 390 * 100vw);
            font-size: var(--rs-fs-14);
            font-weight: var(--rs-fw-regular);
            margin: calc(8 / 390 * 100vw) 0 0;
        }

        & .rs-modal-message span {
            flex-shrink: 0;
        }

        & .rs-condition-area {
            display: block;
            margin: calc(40 / 390 * 100vw) 0 0;
        }

        & .rs-search-button-section {
            margin-bottom: 0;
        }
    }
}

/*-- 店舗検索　NEW OPEN --*/
@media all {
    #fp-contents-wrap .rs-search-container .rs-new-open-area {
        & h2 {
            margin: 0 auto;
            background-color: var(--color-red);
            color: #fff;
            font-size: var(--rs-fs-11);
            font-weight: var(--rs-fw-bold);
            width: calc(86 / 390 * 100vw);
            height: auto;
            aspect-ratio: 86 / 20;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        & .rs-h2-sub {
            color: var(--color-red);
            font-size: var(--rs-fs-18);
            font-weight: var(--rs-fw-bold);
            padding: 0 0 calc(8 / 390 * 100vw);
            margin: calc(6 / 390 * 100vw) auto 0;
            position: relative;
        }

        & .rs-h2-sub::before,
        & .rs-h2-sub::after {
            content: '';
            display: block;
            width: 100%;
            height: 1px;
            background-color: var(--color-red);
            position: absolute;
            bottom: 0;
            left: 0;
        }

        & .rs-h2-sub::after {
            bottom: 3px;
        }

        & .rs-new-open-inner {
            background-color: var(--rs-color-ivory);
            padding: calc(40 / 390 * 100vw) 0;
        }

        & .rs-h2-wrapper {
            display: flex;
            flex-direction: column;
            align-items: center;
            margin: 0 0 calc(30 / 390 * 100vw) 0;
            position: relative;
        }

        & .swiper-container {
            width: 100%;
            overflow: hidden;
            position: relative;
        }

        & .swiper-container.rs-js-touch-icon::before {
            display: block;
            content: "";
            width: calc(128 / 390 * 100vw);
            height: auto;
            aspect-ratio: 1/1;
            background: url(../../common/img/swipeAnimation_layer.webp) no-repeat center / contain;
            border-radius: calc(10 / 390* 100vw);
            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: calc(26.44 / 390 * 100vw);
            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% - 18 / 390 * 100vw);
            translate: 0 -50%;
            z-index: 3;
            animation: touchAnimation 2s ease-out infinite;
            pointer-events: none;
        }

        & .swiper-wrapper {
            align-items: stretch;
        }

        & .swiper-slide {
            height: auto;
            opacity: 0.5;
        }

        & .swiper-slide.swiper-slide-active {
            opacity: 1;
        }

        & .swiper-button-wrapper {
            display: flex;
            gap: 0 calc(15 / 390 * 100vw);
            margin: calc(15 / 390 * 100vw) auto 0;
            align-items: center;
            justify-content: center;
        }

        & .swiper-button-wrapper>* {
            position: static;
        }

        & :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: calc(4 / 390 * 100vw);
            height: auto;
            display: block;
        }

        & .swiper-pagination {
            font-size: var(--rs-fs-12);
            color: var(--color-red);
            width: fit-content;
            margin: 0;
        }

        & .swiper-slide .rs-inner {
            display: flex;
            flex-direction: column;
            height: 100%;
        }

        & .swiper-slide .rs-date-wrapper {
            display: none;
        }

        & .swiper-slide .rs-inner a {
            display: block;
        }

        & .swiper-slide .rs-image-wrapper img {
            width: 100%;
            height: auto;
            display: block;
            background-color: #E1E1E1;
            aspect-ratio: 350 / 222;
            object-fit: cover;
        }

        & .rs-image-wrapper img[src*="no-image"] {
            object-fit: cover;
        }

        & .swiper-slide .rs-text-wrapper {
            display: flex;
            flex-direction: column;
            margin: calc(7 / 390 * 100vw) 0 0;
        }

        & .swiper-slide .rs-store-label {
            display: flex;
            flex-wrap: wrap;
            gap: calc(4 / 390 * 100vw) calc(8 / 390 * 100vw);
            margin: 0 0 calc(7 / 390 * 100vw);
            flex-grow: 1;
        }

        & .swiper-slide .rs-store-label>li {
            background-color: #fff;
            font-size: var(--rs-fs-12);
            padding: calc(2.5 / 390 * 100vw) calc(8 / 390 * 100vw);
            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(--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;
        }

        & a.rs-store-name {
            text-decoration: underline;
        }

        & .rs-to-shop-list {
            margin: calc(40 / 390 * 100vw) var(--rs-px) 0;
        }

        & .rs-to-shop-list a {
            display: flex;
            font-size: var(--rs-fs-14);
            font-weight: var(--rs-fw-medium);
            text-decoration: underline;
            justify-content: end;
        }
    }
}

/*-- 店舗検索結果共通--*/
@media all {
    #fp-contents-wrap .rs-result-container {
        & 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 .rs-note {
            color: var(--rs-color-gray);
            gap: 0;
            font-size: var(--rs-fs-12);
            font-weight: var(--rs-fw-regular);
            display: flex;
            flex-direction: column;
            gap: calc(10 / 390 * 100vw) 0;
        }

        & .rs-header .rs-note .rs-text {
            display: flex;
            align-items: start;
            gap: 0 calc(5 / 390 * 100vw);
        }

        & .rs-header .rs-note .rs-alert {
            display: flex;
            align-items: start;
            gap: 0 calc(5 / 390 * 100vw);
        }

        & .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: calc(15 / 390 * 100vw);
            height: auto;
            aspect-ratio: 1/1;
            position: relative;
            top: calc(3 / 390 * 100vw);
        }
    }

    #fp-contents-wrap .rs-result-container .rs-grid {
        display: grid;
        grid-template-columns: 1fr;
        grid-template-rows: repeat(3, auto);
        gap: 0 calc(40 / 390 * 100vw);
        grid-template-areas: "a" "b" "c";
        width: 100%;
        margin: calc(20 / 390 * 100vw) auto 0;

        & .rs-grid-a {
            grid-area: a;
            overflow: hidden;
        }

        & .rs-grid-b {
            grid-area: b;
        }

        & .rs-grid-c {
            grid-area: c;
        }
    }

}

/*-- 店舗検索結果 上部--*/
@media all {
    #fp-contents-wrap .rs-result-container .rs-js-left-height {
        overflow: auto;
    }

    #fp-contents-wrap .rs-result-container .rs-result-overview .rs-count {
        font-size: var(--rs-fs-14);
        font-weight: var(--rs-fw-medium);
        margin: 0 auto calc(20 / 390 * 100vw);
        display: flex;
        justify-content: center;
        gap: 0 calc(10 / 390 * 100vw);
    }

    #fp-contents-wrap #rs-result-area .rs-result-items {
        display: flex;
        flex-direction: column;
        gap: calc(40 / 390 * 100vw) 0;
        overflow-y: auto;
        margin: calc(40 / 390 * 100vw) 0;
        padding: 1rem var(--rs-px);
    }

    #fp-contents-wrap .rs-result-container #rs-js-result-follow {
        position: fixed;
        bottom: 0;
        left: 0;
        width: 100%;
        display: none;
        z-index: calc(var(--rs-z-index-base) + 10);
        background-color: #fff;

        & .rs-result-overview {
            margin: calc(8 / 390 * 100vw) auto calc(12 / 390 * 100vw);
        }

        & .rs-count {
            margin-bottom: calc(8 / 390 * 100vw);
        }

        & .rs-research-button {
            margin: 0 auto;
            height: calc(45 / 390 * 100vw);
        }
    }
}

/*-- 店舗検索結果 スライダー--*/
@media all {
    #fp-contents-wrap #rs-result-slider-area {
        container-type: inline-size;
    }

    #fp-contents-wrap #rs-result-slider-area .swiper-container {
        width: 100cqw;
    }

    #fp-contents-wrap #rs-result-slider-area .rs-result-item {

        & .rs-text-wrapper .rs-store-info-area .rs-store-fax-wrapper,
        & .rs-text-wrapper .rs-store-info-area .rs-store-closeday-wrapper {
            display: none;
        }
    }
}

/*-- 店舗検索結果 店舗情報（共通）--*/
@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-slider-area .rs-result-item {

        & .rs-store-label {
            display: flex;
            flex-wrap: wrap;
            gap: calc(3 / 390 * 100vw) calc(3 / 390 * 100vw);
            margin: 0 0 calc(15 / 390 * 100vw);
        }

        & .rs-store-label>li {
            background-color: #fff;
            font-size: var(--rs-fs-12);
            padding: calc(2.5 / 390 * 100vw) calc(8 / 390 * 100vw);
            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-16);
            font-weight: var(--rs-fw-bold);
            margin: 0 0 calc(20 / 390 * 100vw);
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }

        & a.rs-store-name {
            text-decoration: underline;
        }

        & .rs-store-info-area {
            margin: 0 0;
            display: flex;
            align-items: stretch;
            flex-wrap: wrap;
            gap: calc(5 / 390 * 100vw) 0;
        }

        & .rs-store-info-area>* {
            width: 100%;
        }

        & .rs-store-info-area .rs-store-zip {
            font-size: var(--rs-fs-14);
            font-weight: var(--rs-fw-regular);
        }

        & .rs-store-info-area .rs-addr-wrapper {
            width: 100%;
        }

        & .rs-store-info-area:has(.rs-addr-wrapper + *) .rs-store-wrapper {
            margin-bottom: calc(15 / 390 * 100vw);
        }

        & .rs-store-info-area .rs-store-addr {
            font-size: var(--rs-fs-14);
            font-weight: var(--rs-fw-regular);
            width: 100%;
            gap: 0 calc(5 / 390 * 100vw);
            display: flex;
            align-items: center;
        }

        & .rs-store-info-area .rs-store-addr .rs-icon {
            width: calc(18 / 390 * 100vw);
            height: auto;
            aspect-ratio: 1/1;
            flex-shrink: 0;
            display: flex;
            justify-content: center;
            align-items: center;
        }

        & .rs-store-info-area .rs-store-addr .rs-icon::before {
            content: '';
            background-image: var(--rs-img-pin-gray);
            background-repeat: no-repeat;
            background-size: contain;
            aspect-ratio: var(--rs-ar-img-pin-gray);
            width: calc(8.61 / 390 * 100vw);
            height: auto;
            display: block;
        }

        & .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;
            gap: 0 calc(5 / 390 * 100vw);
        }

        & .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;
            justify-content: center;
            width: calc(18 / 390 * 100vw);
            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;
        }

        & .rs-store-info-area .rs-store-info {
            font-size: var(--rs-fs-14);
            font-weight: var(--rs-fw-regular);
        }

        & .rs-store-info-area .rs-store-info-wrapper .rs-icon::before {
            background-image: var(--rs-img-clock);
            width: calc(11.34 / 390 * 100vw);
            aspect-ratio: var(--rs-ar-img-clock);
            position: relative;
            top: calc(5 / 390 * 100vw);
        }

        & .rs-store-info-area .rs-store-tel span {
            font-size: var(--rs-fs-14);
            font-weight: var(--rs-fw-regular);
            text-decoration: underline;
            color: var(--color-red);
        }

        & .rs-store-info-area .rs-store-tel-wrapper .rs-icon::before {
            background-image: var(--rs-img-tel);
            width: calc(10.4 / 390 * 100vw);
            aspect-ratio: var(--rs-ar-img-tel);
            position: relative;
            top: calc(5 / 390 * 100vw);
        }

        & .rs-store-info-area .rs-store-fax span {
            font-size: var(--rs-fs-14);
            font-weight: var(--rs-fw-regular);
        }

        & .rs-store-info-area .rs-store-fax-wrapper .rs-icon::before {
            background-image: var(--rs-img-fax);
            width: calc(15 / 390 * 100vw);
            aspect-ratio: var(--rs-ar-img-fax);
            position: relative;
            top: calc(3 / 390 * 100vw);
        }

        & .rs-store-info-area .rs-store-closeday-wrapper .rs-icon::before {
            background-image: var(--rs-img-holiday);
            width: calc(15 / 390 * 100vw);
            aspect-ratio: var(--rs-ar-img-holiday);
            position: relative;
            top: calc(3 / 390 * 100vw);
        }

        & .rs-store-google-maps-wrapper:has(>*),
        & .rs-store-category-wrapper:has(>*),
        & .rs-store-other-wrapper:has(>*) {
            margin: calc(12 / 390 * 100vw) 0 0;
        }

        & .rs-store-category-wrapper h3,
        & .rs-store-other-wrapper h3 {
            font-size: var(--rs-fs-11);
            font-weight: var(--rs-fw-regular);
            margin: 0 0 calc(7 / 390 * 100vw);
            padding: 0;
        }

        & .rs-store-category,
        & .rs-store-other {
            display: flex;
            flex-wrap: wrap;
            gap: calc(3 / 390 * 100vw) calc(3 / 390 * 100vw);
            margin: 0 0 calc(10 / 390 * 100vw);
            align-items: stretch;
            flex-grow: 1;
        }

        & .rs-store-category>li,
        & .rs-store-other>li {
            font-size: var(--rs-fs-13);
            font-weight: var(--rs-fw-regular);
            display: flex;
            justify-content: center;
            align-items: center;
            height: auto;
            border: 1px solid #EBEBEB;
            padding: calc(1.5 / 390 * 100vw) calc(8 / 390 * 100vw);
        }

        & .rs-store-google-maps-wrapper {
            display: flex;
            flex-wrap: wrap;
            align-items: center;
        }

        & .rs-store-google-maps-wrapper .rs-store-google-maps-link {
            text-decoration: underline;
            font-size: var(--rs-fs-12);
            flex-shrink: 0;
            display: flex;
            align-items: center;
            gap: 0 calc(7 / 390 * 100vw);
        }

        & .rs-store-google-maps-wrapper .rs-store-google-maps-link::after {
            content: '';
            background-image: var(--rs-svg-copy);
            background-repeat: no-repeat;
            background-size: contain;
            width: calc(11 / 390 * 100vw);
            height: auto;
            display: block;
            aspect-ratio: var(--rs-ar-copy);
        }


        .rs-store-google-maps-wrapper .rs-distance {
            font-size: var(--rs-fs-14);
            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-area {
        background-color: var(--rs-color-ivory);
    }

    #fp-contents-wrap #rs-result-area .rs-result-item {
        box-shadow: 0px 0px 7px rgba(0, 0, 0, 0.13);
        background-color: #fff;
        padding: calc(20 / 390 * 100vw) calc(20 / 390 * 100vw);

        & .rs-store-info-area {
            background-color: #F7F7F7;
            padding: 1.5rem 1.5rem;
        }

        & .rs-text-wrapper .rs-store-info-area:has(.rs-addr-wrapper ~ *) .rs-addr-wrapper {
            margin-bottom: calc(10 / 390 * 100vw);
        }

        & .rs-store-info-area .rs-addr-wrapper .rs-store-addr {
            display: -webkit-box;
            -webkit-line-clamp: 3;
            -webkit-box-orient: vertical;
            overflow: hidden;
            margin: 0 0;
        }

        & .rs-store-info-area .rs-addr-wrapper .rs-store-addr .rs-icon {
            display: none;
        }

        & .rs-text-wrapper .rs-store-info-area .rs-store-fax-wrapper,
        & .rs-text-wrapper .rs-store-info-area .rs-store-closeday-wrapper {
            display: none;
        }
    }
}

/*-- 店舗検索結果 店舗情報（スライダー）--*/
@media all {
    #fp-contents-wrap #rs-result-slider-area .swiper-container {
        padding: calc(40 / 390 * 100vw) 0;
        background-color: #EFEAEA;
    }

    #fp-contents-wrap:has(#rs-map:empty) #rs-result-slider-area .swiper-container {
        display: none;
    }

    #fp-contents-wrap #rs-result-slider-area .swiper-wrapper {
        display: flex;
        align-items: stretch;
    }

    #fp-contents-wrap #rs-result-slider-area .swiper-slide {
        padding: calc(20 / 390 * 100vw) calc(20 / 390 * 100vw);
        background-color: #fff;
        height: auto;
        filter: drop-shadow(0px 0px 7px rgba(0, 0, 0, 0.13));
    }

    #fp-contents-wrap #rs-result-slider-area .rs-result-item {
        border-top: calc(4 / 390 * 100vw) solid var(--color-red);

        & .rs-store-label {
            margin-bottom: calc(10 / 390 * 100vw);
        }

        & .rs-text-wrapper .rs-store-name {
            overflow: hidden;
            display: -webkit-box;
            text-overflow: ellipsis;
            -webkit-box-orient: vertical;
            -webkit-line-clamp: 2;
        }

        & .rs-text-wrapper .rs-store-info-area:has(.rs-addr-wrapper ~ *) .rs-addr-wrapper {
            margin-bottom: calc(0 / 390 * 100vw);
        }

        & .rs-text-wrapper .rs-store-info-area {
            gap: calc(3 / 390 * 100vw) 0;
        }

        & .rs-text-wrapper .rs-store-info-area .rs-store-zip,
        & .rs-text-wrapper .rs-store-info-area .rs-store-tel-wrapper,
        & .rs-text-wrapper .rs-store-other-wrapper,
        & .rs-text-wrapper .rs-store-category-wrapper {
            display: none;
        }

        & .rs-text-wrapper .rs-store-info-area .rs-addr-wrapper .rs-text {
            overflow: hidden;
            white-space: nowrap;
            text-overflow: ellipsis;
            width: 100%;
        }
    }
}

/*-- 店舗検索結果 モーダル--*/
@media all {
    body:has(#fp-contents-wrap) #rs-store-modal {
        z-index: calc(var(--rs-z-index-base) + 20);
        max-height: none;
        overflow: auto;
        padding: 5dvh 0;
    }

    body:has(#fp-contents-wrap) #rs-store-modal .uk-modal-body {
        & .rs-image-wrapper img {
            width: 100%;
            height: auto;
            display: block;
            background-color: #f0f0f0;
            aspect-ratio: 350 / 222;
            object-fit: cover;
        }

        & .rs-image-wrapper img[src*="no-image"] {
            object-fit: cover;
        }

        & .rs-text-wrapper {
            display: flex;
            flex-direction: column;
            padding: calc(25 / 390 * 100vw) calc(25 / 390 * 100vw);
        }

        & .rs-store-label {
            margin-bottom: calc(15 / 390 * 100vw);
        }

        & .rs-store-name {
            font-size: var(--rs-fs-18);
            font-weight: var(--rs-fw-bold);
            margin-bottom: calc(15 / 390 * 100vw);
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }

        & .rs-store-info-area {
            background-color: #F7F7F7;
            padding: calc(17 / 390 * 100vw) calc(17 / 390 * 100vw);
            display: flex;
            flex-wrap: wrap;
            gap: calc(5 / 390 * 100vw) calc(20 / 390 * 100vw);
        }

        & .rs-store-info-area>.rs-store-tel-wrapper,
        & .rs-store-info-area>.rs-addr-wrapper {
            width: 100%;
        }

        & .rs-store-info-area>.rs-addr-wrapper {
            margin-bottom: 0;
        }

        & .rs-store-info-area:has(.rs-addr-wrapper ~ *) .rs-addr-wrapper {
            margin-bottom: calc(15 / 390 * 100vw);
        }

        & .rs-store-info-area>.rs-store-fax-wrapper {
            display: none;
        }

        & .rs-store-info-area>.rs-store-closeday-wrapper,
        & .rs-store-info-area>.rs-store-info-wrapper {
            width: fit-content;
        }

        & .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: calc(10 / 390 * 100vw);
        }

        & .rs-text-wrapper .rs-store-category {
            margin-bottom: 0;
        }

        & .rs-text-wrapper .rs-store-other {
            margin: 0;
        }

        & .rs-text-wrapper .rs-store-google-maps-wrapper:has(>*) {
            margin-top: calc(20 / 390 * 100vw);
        }

        & .rs-more-button {
            background-color: var(--rs-color-black);
            color: #fff;
            font-size: var(--rs-fs-14);
            display: flex;
            align-items: center;
            justify-content: center;
            width: calc(300 / 390 * 100vw);
            max-width: 100%;
            height: calc(54 / 390 * 100vw);
            margin: 0 auto calc(25 / 390 * 100vw);
            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 / 900;
        }

        & #rs-map:empty {
            display: none;
        }

        & .rs-research-button {
            background-color: var(--rs-color-black);
            color: #fff;
            width: calc(280 / 390 * 100vw);
            height: calc(55 / 390 * 100vw);
            max-width: 100%;
            border-radius: calc(28 / 390 * 100vw);
            display: flex;
            align-items: center;
            justify-content: center;
            margin: calc(20 / 390 * 100vw) auto calc(40 / 390 * 100vw);
            gap: 0 calc(10 / 390 * 100vw);
            font-size: var(--rs-fs-14);
            font-weight: var(--rs-fw-medium);
        }

        & .rs-research-button::before {
            content: '';
            background-image: var(--rs-svg-search);
            background-repeat: no-repeat;
            background-size: contain;
            width: calc(16.36 / 390 * 100vw);
            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: calc(19 / 390 * 100vw);
        width: calc(148 / 390 * 100vw);
        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: calc(15 / 390 * 100vw) 0;
    }

    #rs-map:has([role="dialog"]) .rs-googlemaps-search-this-area-button {
        visibility: hidden;
    }
}