/* 検索方法選択 *******************************************************/

.select-how-to-search {
    display: flex;
    flex-wrap: wrap;
    gap: var(--pls-spacing-xs);
    margin-bottom: var(--pls-spacing-l);
    a {
        display: flex;
        flex-direction: column;
        gap: 6px;
        padding: var(--pls-spacing-l) 0;
        justify-content: center;
        align-items: center;
        width: calc((100% - 8px) / 2);
        border-radius: var(--pls-border-radius-s);
        color: var(--pls-basic-white);
        &.area-search {
            background: var(--pls-blue-800);
        }
        &.transport-search {
            background: var(--pls-sky-600);
        }
        &.map-search {
            background: #42AF42;
            border-bottom: 3px solid #287D28;
        }
        p {
            text-align: center;
            font-size: var(--pls-font-size-base);
            font-weight: var(--pls-font-weight-bold);
            span {
                font-size: var(--pls-font-size-l);
                font-weight: var(--pls-font-weight-bold);
            }
        }
    }
    &:visited {
        color: var(--pls-basic-white);
    }
}

/* 検索結果一覧 *******************************************************/
.m3-oc-c985-map-switch {
    width: 100%;
    border: 1px solid var(--pls-object-accent-dark);
    border-radius: var(--pls-border-radius-m);
    overflow: hidden;
    display: flex;
    margin-bottom: var(--pls-spacing-xs);
    > div, > a {
        width: 50%;
        padding: 14px 0;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: var(--pls-spacing-xxs);
        font-weight: var(--pls-font-weight-bold);
        font-size: var(--pls-font-size-base);
        line-height: 1;
        text-decoration: none;
        &.list-btn {
            background: var(--pls-object-accent-dark);
            color: var(--pls-basic-white);
        }
        &.map-btn {
            background: var(--pls-gray-200);
            color: var(--pls-object-accent-dark);
            .new-mark {
                font-weight: var(--pls-font-weight-bold);
                color: var(--pls-red-600);
                font-size: var(--pls-font-size-xxs);
            }
        }
    }
}

/* 詳細検索条件選択 ****************************************************/

.m3-oc-c1094-detail-search-bottom {
    .content:not(:has(.content__number)) {
        .cancel-btn {
            width: 120px;
        }
        .search-btn {
            width: calc(100% - 128px);
        }
    }
}


/* 地図検索 **********************************************************/

.m3-oc-c985-map-wrapper {
    display: flex;
    flex-direction: column;
    height: calc(100vh - 55px); /* SPヘッダー(55px)分を引く */
    height: calc(100dvh - 55px);
}
.m3-oc-c985-map-wrapper--app {
    height: 100vh; /* アプリはヘッダーがないので全画面 */
    height: 100dvh;
}

.map-search-head {
    width: 100%;
    padding: var(--pls-spacing-s);
    > div {
        display: flex;
        flex-shrink: 0;
        justify-content: space-between;
        align-items: center;
        .count-area {
            width: calc(100% - 152px);
            display: flex;
            flex-direction: column;
            gap: 4px;
            > div {
                display: flex;
                width: 100%;
                align-items: baseline;
                line-height: 1;
                > div {
                    font-size: var(--pls-font-size-s);
                    font-weight: bold;
                    color: var(--pls-gray-700);
                    &:first-of-type {
                        width: 80px;
                    }
                    &.number{
                        text-align: left;
                        span {
                            font-weight: var(--pls-font-weight-bold);
                            color: var(--pls-orange-600);
                            font-size: var(--pls-font-size-l);
                            margin-left: var(--pls-spacing-xs);
                        }
                    }
                    &.text-link {
                        margin-left: 4px;
                        a {
                            font-size: var(--pls-font-size-s);
                            position: relative;
                            font-weight: var(--pls-font-weight-bold);
                            &::after {
                                content: " ";
                                display: inline-block;
                                vertical-align: middle;
                                width: 18px;
                                height: 18px;
                                background: url(https://clinic.m3.com/clinic/img/c1094_arrow_right_blue.svg) no-repeat left top;
                                background-size: cover;
                                margin: -2px 0 0;
                            }
                            &:visited {
                                color: var(--pls-object-link);
                            }
                        }
                    }
                }
            }
        }
        .switch-btn-area {
            display: flex;
            justify-content: space-between;
            width: 144px;
            gap: var(--pls-spacing-xs);
            a {
                display: flex;
                justify-content: center;
                align-items: center;
                gap: 2px;
                width: 92px;
                color: var(--pls-object-primary);
                background: var(--pls-basic-white);
                border-top: 1px solid var(--pls-gray-500);
                border-right: 1px solid var(--pls-gray-500);
                border-left: 1px solid var(--pls-gray-500);
                border-bottom: 3px solid var(--pls-gray-500);
                border-radius: var(--pls-border-radius-s);
                font-size: var(--pls-font-size-s);
                text-align: center;
                padding: var(--pls-spacing-xs) 0;
                &:visited {
                    color: var(--pls-object-primary);
                }
            }
        }
    }
    .map-search-head-caution {
        color: var(--pls-object-warning);
        font-size: var(--pls-font-size-xs);
        margin-top: var(--pls-spacing-s);
    }
}

.map-area {
    flex-grow: 1;
    width: 100%;
    overflow: hidden;
    overscroll-behavior: none;
    > div {
        width: 100%;
        height: 100%;
        position: relative;
        .mesh-pin p {
            width: 50px;
            height: 50px;
            display: flex;
            align-items: center;
            justify-content: center;
            background: var(--pls-basic-white);
            border: 3px solid var(--pls-blue-600);
            border-radius: 50%;
            color: var(--pls-blue-600);
            font-size: var(--pls-font-size-base);
            font-weight: var(--pls-font-weight-bold);
            text-align: center;
        }
        .marker-pin {
            position: absolute;
            background: none;
            border: none;
            padding: 0;
            cursor: pointer;
            outline: none;
            .pin-outer {
                fill: var(--pls-red-600);
                stroke: none;
            }
            .pin-inner {
                fill: var(--pls-basic-white);
            }
            &.is-active {
                .pin-outer {
                    fill: var(--pls-basic-white);
                    stroke: var(--pls-red-600);
                    stroke-width: 2px;
                }
                .pin-inner {
                    fill: var(--pls-red-600);
                }
            }
        }
        .estate-balloon-wrapper {
            position: fixed;
            bottom: 20px;
            left: 0;
            width: 100%;
            padding: 0 var(--pls-spacing-m);
            &:hover .detail-link a {
                text-decoration: underline;
            }
            .balloon-content {
                background: var(--pls-basic-white);
                border-radius: var(--pls-border-radius-m);
                box-shadow: 0 2px 4px var(--pls-scrim-primary);
            }
            .detail-link {
                padding: var(--pls-spacing-xs) var(--pls-spacing-s);
                display: flex;
                align-items: flex-start;
                gap: var(--pls-spacing-xs);
                border-bottom: 1px solid var(--pls-gray-300);
                a {
                    width: calc(100% - 23px);
                    color: var(--pls-object-link);
                    font-size: var(--pls-font-size-s);
                    &:hover {
                        text-decoration: underline;
                    }
                    &:visited {
                        color: var(--pls-object-link);
                    }
                }
                .window-close {
                    text-align: center;
                    background-color: transparent;
                    border-color: transparent;
                    border-radius: 0;
                }
            }
            .estate-outline {
                padding: var(--pls-spacing-xs) var(--pls-spacing-s);
                .info {
                    display: flex;
                    flex-direction: column;
                    gap: var(--pls-spacing-xxs);
                    margin-bottom: var(--pls-spacing-xs);
                    > div {
                        display: inline-flex;
                        align-items: flex-start;
                        font-size: var(--pls-font-size-xs);
                        gap: 6px;
                        width: 100%;
                        font-weight: var(--pls-font-weight-bold);
                        .icon-mark {
                            font-weight: var(--pls-font-weight-regular);
                            background: var(--pls-gray-300);
                            padding: var(--pls-spacing-xxs);
                            font-size: var(--pls-font-size-xs);
                            line-height: 1;
                        }
                        .cost {
                            color: var(--pls-red-600);
                            font-weight: var(--pls-border-radius-m);
                        }
                    }
                }
                p {
                    font-size: var(--pls-font-size-xs);
                    line-height: 1.5;
                }
            }
        }
    }
    #map {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
    }
}
