﻿@charset "UTF-8";

/*
  지도검색 독립형 CSS
  - style.css 안에 지도 기본 스타일이 없어도 단독으로 작동
  - 기본 지도 레이아웃 + 3열 카드 + 모바일 시트 + 검색조건 아코디언 포함
*/

/* =========================================================
   MAP SEARCH VISUAL REFRESH
   ========================================================= */

.map-visual-page{
    min-height:calc(100vh - 72px);
    background:#f6f7fb;
}
.map-visual-page .map-shell{
    position:relative;
    display:grid;
    grid-template-columns:560px minmax(0,1fr);
    min-height:calc(100vh - 72px);
}
.map-visual-page.is-panel-collapsed .map-shell{
    grid-template-columns:0 minmax(0,1fr);
}
.map-visual-page .map-sidebar{
    position:relative;
    z-index:20;
    min-width:0;
    background:#fff;
    border-right:1px solid #e5e8ef;
    box-shadow:8px 0 30px rgba(24,38,74,.04);
    overflow:hidden;
}
.map-visual-page .map-sidebar__inner{
    height:calc(100vh - 72px);
    display:flex;
    flex-direction:column;
}
.map-visual-page .map-sidebar__search{
    padding:18px 20px 14px;
    border-bottom:1px solid #eef1f6;
    background:#fff;
}
.map-visual-page .map-search-box{
    display:flex;
    gap:10px;
}
.map-visual-page .map-search-box__keyword{
    flex:1 1 auto;
}
.map-visual-page .map-search-box input{
    width:100%;
    height:48px;
    padding:0 16px;
    border:1px solid #dde3ee;
    border-radius:14px;
    background:#fff;
    font-size:14px;
}
.map-visual-page .map-search-box__submit{
    flex:0 0 auto;
    min-width:86px;
    height:48px;
    border:0;
    border-radius:14px;
    background:#5b5bd6;
    color:#fff;
    font-size:14px;
    font-weight:800;
    cursor:pointer;
}
.map-visual-page .map-search-box__dates{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    margin-top:12px;
}
.map-visual-page .map-search-box__dates label{
    display:flex;
    flex-direction:column;
    gap:6px;
}
.map-visual-page .map-search-box__dates span{
    color:#6e7687;
    font-size:11px;
    font-weight:700;
}
.map-visual-page .map-search-box__dates input{
    height:42px;
    padding:0 12px;
    border:1px solid #dde3ee;
    border-radius:12px;
    font-size:13px;
}
.map-visual-page .map-filter-row{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:12px;
}
.map-visual-page .map-filter-row select{
    flex:1 1 0;
    min-width:150px;
    height:42px;
    padding:0 12px;
    border:1px solid #dde3ee;
    border-radius:12px;
    background:#fff;
    color:#394150;
    font-size:13px;
}
.map-visual-page .map-price-input{
    flex:1 1 0;
    display:flex;
    align-items:center;
    min-width:150px;
    height:42px;
    padding:0 12px;
    border:1px solid #dde3ee;
    border-radius:12px;
    background:#fff;
}
.map-visual-page .map-price-input span{
    margin-right:8px;
    color:#7b8394;
    font-size:11px;
    font-weight:700;
}
.map-visual-page .map-price-input input{
    width:100%;
    border:0;
    outline:0;
    font-size:13px;
}
.map-visual-page .map-filter-check{
    display:flex;
    align-items:center;
    gap:6px;
    height:40px;
    padding:0 12px;
    border:1px solid #dde3ee;
    border-radius:999px;
    background:#fff;
    color:#434b59;
    font-size:12px;
    font-weight:700;
}
.map-visual-page .map-filter-check input{
    accent-color:#5b5bd6;
}
.map-visual-page .map-filter-reset{
    display:inline-flex;
    align-items:center;
    height:40px;
    padding:0 12px;
    border-radius:999px;
    background:#f3f5f9;
    color:#4d5667;
    font-size:12px;
    font-weight:700;
}
.map-visual-page .map-search-message{
    margin-top:10px;
    color:#d64545;
    font-size:12px;
}
.map-visual-page .map-sidebar__summary{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:14px 20px;
    border-bottom:1px solid #eef1f6;
    background:#fff;
}
.map-visual-page .map-sidebar__summary-main strong{
    display:block;
    color:#1f2533;
    font-size:18px;
    font-weight:800;
}
.map-visual-page .map-sidebar__summary-main span{
    display:block;
    margin-top:2px;
    color:#717a8b;
    font-size:12px;
}
.map-visual-page .map-sidebar__link{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    height:38px;
    padding:0 14px;
    border-radius:12px;
    background:#f4f7fb;
    color:#455063;
    font-size:12px;
    font-weight:800;
}
.map-visual-page .map-result-list{
    flex:1 1 auto;
    overflow-y:auto;
    padding:18px 16px 24px;
    background:#f8f9fc;
}
.map-visual-page .map-result-card{
    margin-bottom:16px;
    border:1px solid #e9edf5;
    border-radius:22px;
    background:#fff;
    box-shadow:0 10px 26px rgba(18,32,77,.06);
    overflow:hidden;
    transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.map-visual-page .map-result-card:hover,
.map-visual-page .map-result-card.is-map-active{
    transform:translateY(-2px);
    border-color:#ccd7ff;
    box-shadow:0 14px 34px rgba(55,76,160,.14);
}
.map-visual-page .map-result-card>a{
    display:block;
}
.map-visual-page .map-result-card__media{
    position:relative;
}
.map-visual-page .map-result-card__image{
    aspect-ratio:16/10;
    background:#edf1f7;
    overflow:hidden;
}
.map-visual-page .map-result-card__image img{
    width:100%;
    height:100%;
    object-fit:cover;
}
.map-visual-page .map-result-card__fav{
    position:absolute;
    top:12px;
    right:12px;
    width:34px;
    height:34px;
    border:0;
    border-radius:50%;
    background:rgba(255,255,255,.92);
    box-shadow:0 8px 18px rgba(22,35,75,.12);
    color:#8a90a3;
    font-size:18px;
    line-height:1;
    cursor:pointer;
}
.map-visual-page .map-result-card__content{
    padding:14px 16px 16px;
}
.map-visual-page .map-result-card__content h2{
    margin:0;
    color:#1f2533;
    font-size:15px;
    line-height:1.4;
    font-weight:800;
}
.map-visual-page .map-result-card__addr{
    margin:6px 0 0;
    color:#677081;
    font-size:12px;
    line-height:1.45;
}
.map-visual-page .map-result-card__spec{
    margin:8px 0 0;
    color:#495261;
    font-size:12px;
    line-height:1.5;
}
.map-visual-page .map-result-card__meta{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    margin-top:12px;
}
.map-visual-page .map-result-card__meta span{
    padding:5px 8px;
    border-radius:8px;
    background:#f3f5f9;
    color:#546071;
    font-size:11px;
    font-weight:700;
}
.map-visual-page .map-result-card__price-row{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:10px;
    margin-top:14px;
}
.map-visual-page .map-result-card__price-row strong{
    color:#111827;
    font-size:17px;
    font-weight:900;
}
.map-visual-page .map-result-card__price-row strong small{
    margin-left:4px;
    color:#5e5bf0;
    font-size:14px;
    font-weight:800;
}
.map-visual-page .map-result-distance{
    flex:0 0 auto;
    padding:5px 10px;
    border-radius:999px;
    background:#eef1ff;
    color:#5164ff;
    font-size:11px;
    font-weight:800;
}
.map-visual-page .map-result-card__subprice{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-top:8px;
    color:#6a7485;
    font-size:12px;
}
.map-visual-page .map-result-empty{
    padding:52px 20px;
    border-radius:20px;
    background:#fff;
    text-align:center;
    box-shadow:0 10px 30px rgba(18,32,77,.06);
}
.map-visual-page .map-result-empty strong{
    display:block;
    font-size:17px;
}
.map-visual-page .map-result-empty p{
    margin-top:6px;
    color:#70798a;
    font-size:13px;
}
.map-visual-page .map-sidebar-toggle{
    position:absolute;
    top:50%;
    left:560px;
    z-index:30;
    width:30px;
    height:56px;
    transform:translate(-50%,-50%);
    border:1px solid #dde3ee;
    border-radius:16px;
    background:#fff;
    box-shadow:0 10px 30px rgba(20,34,74,.14);
    cursor:pointer;
}
.map-visual-page .map-sidebar-toggle span,
.map-visual-page .map-sidebar-toggle span:before{
    position:absolute;
    top:50%;
    left:50%;
    width:10px;
    height:10px;
    border-top:2px solid #5d6477;
    border-right:2px solid #5d6477;
    content:"";
    transform:translate(-40%,-50%) rotate(225deg);
}
.map-visual-page.is-panel-collapsed .map-sidebar-toggle{
    left:0;
}
.map-visual-page.is-panel-collapsed .map-sidebar-toggle span,
.map-visual-page.is-panel-collapsed .map-sidebar-toggle span:before{
    transform:translate(-60%,-50%) rotate(45deg);
}
.map-visual-page .map-search-stage{
    position:relative;
    min-width:0;
    min-height:calc(100vh - 72px);
    background:#ebeff5;
}
.map-visual-page .map-search-canvas{
    position:absolute;
    inset:0;
}
.map-visual-page .map-toolbar{
    position:absolute;
    top:16px;
    left:18px;
    z-index:8;
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}
.map-visual-page .map-toolbar__button{
    display:inline-flex;
    align-items:center;
    height:42px;
    gap:6px;
    padding:0 14px;
    border:1px solid #d7ddea;
    border-radius:14px;
    background:rgba(255,255,255,.96);
    color:#394150;
    font-size:12px;
    font-weight:800;
    box-shadow:0 10px 24px rgba(19,31,65,.10);
    cursor:pointer;
}
.map-visual-page .map-toolbar__button--primary{
    background:#111827;
    border-color:#111827;
    color:#fff;
    display:none;
}
.map-visual-page .map-toolbar__button--primary.is-visible,
.map-visual-page .map-research-button.is-visible{
    display:inline-flex;
}
.map-visual-page .map-location-status{
    right:18px;
    bottom:18px;
    z-index:8;
    max-width:340px;
    border-radius:14px;
    padding:12px 14px;
    font-size:12px;
}
.map-visual-page .kakao-map-status{
    top:18px;
    right:18px;
    left:auto;
    width:auto;
    min-width:220px;
    transform:none;
    z-index:8;
    border-radius:14px;
}
.map-visual-page .map-price-overlay{
    min-width:82px;
    padding:10px 14px;
    border:0;
    border-radius:999px;
    background:#fff;
    box-shadow:0 10px 22px rgba(18,32,77,.20);
    color:#1a2130;
    text-align:center;
    cursor:pointer;
}
.map-visual-page .map-price-overlay strong{
    display:block;
    font-size:14px;
    font-weight:900;
    line-height:1;
    white-space:nowrap;
}
.map-visual-page .map-price-overlay span{
    display:block;
    margin-top:3px;
    color:#6a7485;
    font-size:10px;
    font-weight:700;
    line-height:1;
}
.map-visual-page .map-price-overlay.is-active{
    background:#111827;
    color:#fff;
    transform:translateY(-2px);
}
.map-visual-page .map-price-overlay.is-active span{
    color:#cfd5ff;
}
.map-visual-page .map-current-location-marker{
    width:20px;
    height:20px;
    background:#5666ff;
}
.map-visual-page .map-current-location-marker span{
    inset:5px;
}
.map-visual-page .map-my-location-button,
.map-visual-page .map-research-button{
    display:none;
}

@media (max-width:1200px){
    .map-visual-page .map-shell{
        grid-template-columns:470px minmax(0,1fr);
    }
    .map-visual-page .map-sidebar-toggle{
        left:470px;
    }
    .map-visual-page .map-filter-row select,
    .map-visual-page .map-price-input{
        min-width:0;
    }
}

@media (max-width:860px){
    .map-visual-page .map-shell{
        display:block;
    }
    .map-visual-page .map-sidebar{
        position:absolute;
        inset:auto 12px 12px 12px;
        z-index:24;
        height:48vh;
        border-radius:22px;
        border-right:0;
        box-shadow:0 16px 36px rgba(18,32,77,.16);
    }
    .map-visual-page .map-sidebar__inner{
        height:100%;
    }
    .map-visual-page .map-sidebar__search{
        padding:14px 14px 12px;
    }
    .map-visual-page .map-search-box{
        gap:8px;
    }
    .map-visual-page .map-search-box input,
    .map-visual-page .map-search-box__submit{
        height:44px;
        border-radius:12px;
    }
    .map-visual-page .map-search-box__dates{
        grid-template-columns:1fr 1fr;
    }
    .map-visual-page .map-sidebar-toggle{
        top:auto;
        bottom:calc(48vh + 18px);
        left:50%;
        width:58px;
        height:30px;
        transform:translateX(-50%);
        border-radius:999px;
    }
    .map-visual-page .map-sidebar-toggle span,
    .map-visual-page .map-sidebar-toggle span:before{
        width:8px;
        height:8px;
        transform:translate(-50%,-32%) rotate(135deg);
    }
    .map-visual-page.is-panel-collapsed .map-sidebar{
        transform:translateY(calc(100% + 24px));
    }
    .map-visual-page.is-panel-collapsed .map-sidebar-toggle{
        bottom:12px;
    }
    .map-visual-page.is-panel-collapsed .map-sidebar-toggle span,
    .map-visual-page.is-panel-collapsed .map-sidebar-toggle span:before{
        transform:translate(-50%,-70%) rotate(-45deg);
    }
    .map-visual-page .map-search-stage{
        min-height:calc(100vh - 72px);
    }
    .map-visual-page .map-toolbar{
        top:12px;
        left:12px;
        right:12px;
    }
    .map-visual-page .map-toolbar__button{
        height:38px;
        padding:0 12px;
        border-radius:12px;
        font-size:11px;
    }
    .map-visual-page .map-location-status{
        right:12px;
        left:12px;
        bottom:62px;
        max-width:none;
    }
    .map-visual-page .kakao-map-status{
        top:12px;
        right:12px;
        min-width:180px;
    }
    .map-visual-page .map-price-overlay{
        min-width:76px;
        padding:8px 12px;
    }
    .map-visual-page .map-price-overlay strong{
        font-size:13px;
    }
}

@media (max-width:560px){
    .map-visual-page .map-search-box__dates{
        grid-template-columns:1fr;
    }
    .map-visual-page .map-filter-row{
        gap:6px;
    }
    .map-visual-page .map-filter-row select,
    .map-visual-page .map-price-input{
        flex:1 1 100%;
    }
    .map-visual-page .map-result-list{
        padding:12px;
    }
    .map-visual-page .map-result-card{
        border-radius:18px;
    }
    .map-visual-page .map-result-card__content{
        padding:12px 14px 14px;
    }
    .map-visual-page .map-result-card__price-row strong{
        font-size:16px;
    }
    .map-visual-page .map-sidebar__summary{
        padding:12px 14px;
    }
}


/* =========================================================
   MAP SEARCH EXTENSIONS AND OVERRIDES
   ========================================================= */

/*
  /room/map.asp 전용 레이아웃
  - 왼쪽 패널 3열 카드
  - 오른쪽 지도 최소 폭 확보
  - 잘못된 중첩 링크 구조로 카드 내용이 접히는 문제 방지
*/

.map-visual-page .map-shell{
    display:grid !important;
    grid-template-columns:clamp(520px,50vw,720px) minmax(360px,1fr) !important;
    min-height:calc(100vh - 72px);
}

.map-visual-page .map-sidebar{
    min-width:0;
    width:auto !important;
}

.map-visual-page .map-sidebar-toggle{
    left:clamp(520px,50vw,720px) !important;
}

.map-visual-page.is-panel-collapsed .map-shell{
    grid-template-columns:0 minmax(0,1fr) !important;
}

.map-visual-page.is-panel-collapsed .map-sidebar-toggle{
    left:0 !important;
}

.map-visual-page .map-result-list{
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    grid-auto-rows:max-content;
    align-content:start;
    gap:12px !important;
    height:auto !important;
    min-height:0;
    padding:14px !important;
    overflow-y:auto;
}

.map-visual-page .map-result-card{
    display:block !important;
    min-width:0;
    height:auto !important;
    margin:0 !important;
    overflow:hidden;
    border:1px solid #e5e9f1 !important;
    border-radius:14px !important;
    background:#fff !important;
    box-shadow:0 5px 16px rgba(20,35,74,.07) !important;
    opacity:1 !important;
    visibility:visible !important;
}

.map-visual-page .map-result-card > *{
    opacity:1 !important;
    visibility:visible !important;
}

.map-visual-page .map-result-card:hover,
.map-visual-page .map-result-card.is-map-active{
    border-color:#aebaff !important;
    box-shadow:0 9px 24px rgba(65,83,175,.14) !important;
    transform:translateY(-1px);
}

.map-visual-page .map-result-card__media{
    position:relative;
    display:block !important;
}

.map-visual-page .map-result-card__image-link{
    display:block !important;
}

.map-visual-page .map-result-card__image{
    display:block !important;
    width:100%;
    aspect-ratio:4/3;
    overflow:hidden;
    border-radius:0 !important;
    background:#edf1f7;
}

.map-visual-page .map-result-card__image img{
    display:block !important;
    width:100% !important;
    height:100% !important;
    object-fit:cover;
}

.map-visual-page .map-result-card__fav{
    position:absolute;
    top:8px;
    right:8px;
    display:grid;
    width:27px;
    height:27px;
    place-items:center;
    border-radius:50%;
    color:#667085;
    background:rgba(255,255,255,.94);
    box-shadow:0 4px 12px rgba(20,35,74,.13);
    font-size:17px;
    line-height:1;
    pointer-events:none;
}

.map-visual-page .map-result-card__content{
    display:block !important;
    min-width:0;
    padding:10px 11px 12px !important;
}

.map-visual-page .map-result-card__title-link{
    display:block !important;
}

.map-visual-page .map-result-card__content h2{
    display:-webkit-box !important;
    min-height:36px !important;
    margin:0 !important;
    overflow:hidden;
    color:#1d2430 !important;
    font-size:13px !important;
    line-height:1.38 !important;
    font-weight:800 !important;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
}

.map-visual-page .map-result-card__addr{
    display:block !important;
    min-height:17px !important;
    margin:5px 0 0 !important;
    overflow:hidden;
    color:#6e7788 !important;
    font-size:10px !important;
    line-height:1.4 !important;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.map-visual-page .map-result-card__spec{
    display:block !important;
    min-height:16px !important;
    margin:5px 0 0 !important;
    overflow:hidden;
    color:#444d5c !important;
    font-size:10px !important;
    line-height:1.4 !important;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.map-visual-page .map-result-card__meta{
    display:flex !important;
    min-height:22px;
    flex-wrap:nowrap !important;
    gap:4px !important;
    margin-top:8px !important;
    overflow:hidden;
}

.map-visual-page .map-result-card__meta span{
    flex:0 0 auto;
    padding:3px 5px !important;
    border-radius:5px !important;
    color:#566172 !important;
    background:#f2f4f8 !important;
    font-size:8px !important;
    font-weight:700 !important;
    white-space:nowrap;
}

.map-visual-page .map-result-card__price-row{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:5px !important;
    margin-top:9px !important;
}

.map-visual-page .map-result-card__price-row strong{
    display:block !important;
    min-width:0;
    color:#111827 !important;
    font-size:13px !important;
    line-height:1.2;
    font-weight:900 !important;
    white-space:nowrap;
}

.map-visual-page .map-result-card__price-row strong small{
    margin-left:2px !important;
    color:#5d5be8 !important;
    font-size:10px !important;
    font-weight:800 !important;
}

.map-visual-page .map-result-distance{
    flex:0 0 auto;
    padding:3px 6px !important;
    border-radius:999px !important;
    color:#5363e7 !important;
    background:#eef0ff !important;
    font-size:8px !important;
    font-weight:800 !important;
}

.map-visual-page .map-result-card__subprice{
    display:block !important;
    min-height:15px;
    margin-top:5px !important;
    color:#747d8d !important;
    font-size:9px !important;
    line-height:1.35;
}

.map-visual-page .map-search-stage{
    min-width:360px;
}

/* 보통 노트북 화면에서도 지도 영역이 사라지지 않게 유지 */
@media (max-width:1200px){
    .map-visual-page .map-shell{
        grid-template-columns:520px minmax(340px,1fr) !important;
    }

    .map-visual-page .map-sidebar-toggle{
        left:520px !important;
    }

    .map-visual-page .map-result-list{
        grid-template-columns:repeat(3,minmax(0,1fr)) !important;
        gap:9px !important;
        padding:10px !important;
    }

    .map-visual-page .map-result-card__content{
        padding:8px 9px 10px !important;
    }

    .map-visual-page .map-result-card__content h2{
        font-size:12px !important;
    }
}

/* 모바일에서는 지도 위 하단 패널로 전환 */
@media (max-width:860px){
    .map-visual-page .map-shell{
        display:block !important;
    }

    .map-visual-page .map-sidebar{
        width:auto !important;
    }

    .map-visual-page .map-result-list{
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    }

    .map-visual-page .map-sidebar-toggle{
        left:50% !important;
    }

    .map-visual-page .map-search-stage{
        min-width:0;
    }
}

@media (max-width:560px){
    .map-visual-page .map-result-list{
        grid-template-columns:1fr !important;
    }
}


/* =========================================================
   MOBILE MAP ZOOM-TO-LIST BOTTOM SHEET
   ========================================================= */

.map-mobile-sheet-head,
.map-mobile-filter-toggle{
    display:none;
}

.map-sidebar__summary-actions{
    display:flex;
    flex:0 0 auto;
    align-items:center;
    gap:7px;
}

@media (max-width:860px){
    .map-visual-page{
        min-height:calc(100dvh - 64px);
        overflow:hidden;
    }

    .map-visual-page .map-shell{
        position:relative;
        display:block!important;
        min-height:calc(100dvh - 64px);
        overflow:hidden;
    }

    .map-visual-page .map-search-stage{
        position:absolute;
        inset:0;
        min-width:0;
        min-height:0;
        height:100%;
    }

    .map-visual-page .map-search-canvas{
        position:absolute;
        inset:0;
    }

    .map-visual-page .map-sidebar{
        position:absolute!important;
        z-index:40;
        right:8px!important;
        bottom:74px!important;
        left:8px!important;
        width:auto!important;
        height:min(58vh,540px)!important;
        min-height:300px;
        overflow:hidden!important;
        border:1px solid #e2e6ee!important;
        border-radius:22px 22px 18px 18px!important;
        background:#fff!important;
        box-shadow:0 18px 44px rgba(19,31,65,.22)!important;
        transform:translateY(calc(100% - 62px));
        transition:
            transform .26s ease,
            height .26s ease;
        will-change:transform;
    }

    .map-visual-page.is-mobile-list-visible .map-sidebar{
        transform:translateY(0);
    }

    .map-visual-page.is-mobile-filter-open .map-sidebar{
        height:min(82vh,720px)!important;
    }

    .map-visual-page .map-sidebar__inner{
        display:flex;
        height:100%!important;
        min-height:0;
        flex-direction:column;
        overflow:hidden;
    }

    .map-mobile-sheet-head{
        position:relative;
        display:flex;
        min-height:61px;
        flex:0 0 61px;
        align-items:center;
        gap:11px;
        width:100%;
        padding:14px 42px 10px 16px;
        border:0;
        border-bottom:1px solid transparent;
        color:#232936;
        background:#fff;
        text-align:left;
        cursor:pointer;
    }

    .map-visual-page.is-mobile-list-visible
    .map-mobile-sheet-head{
        border-bottom-color:#edf0f5;
    }

    .map-mobile-sheet-head__grip{
        position:absolute;
        top:7px;
        left:50%;
        width:38px;
        height:4px;
        border-radius:999px;
        background:#cdd2dc;
        transform:translateX(-50%);
    }

    .map-mobile-sheet-head__text{
        min-width:0;
    }

    .map-mobile-sheet-head__text strong,
    .map-mobile-sheet-head__text small{
        display:block;
    }

    .map-mobile-sheet-head__text strong{
        color:#202633;
        font-size:14px;
        font-weight:900;
        line-height:1.25;
    }

    .map-mobile-sheet-head__text small{
        margin-top:2px;
        overflow:hidden;
        color:#747e8f;
        font-size:10px;
        line-height:1.3;
        text-overflow:ellipsis;
        white-space:nowrap;
    }

    .map-mobile-sheet-head__arrow{
        position:absolute;
        top:50%;
        right:18px;
        width:9px;
        height:9px;
        border-top:2px solid #6d7585;
        border-left:2px solid #6d7585;
        transform:translateY(-20%) rotate(45deg);
        transition:transform .20s ease;
    }

    .map-visual-page.is-mobile-list-visible
    .map-mobile-sheet-head__arrow{
        transform:translateY(-70%) rotate(225deg);
    }

    .map-visual-page .map-sidebar__search{
        display:none;
        flex:0 0 auto;
        max-height:calc(82vh - 150px);
        padding:12px!important;
        overflow-y:auto;
        border-bottom:1px solid #edf0f5;
    }

    .map-visual-page.is-mobile-filter-open
    .map-sidebar__search{
        display:block;
    }

    .map-visual-page .map-search-box{
        gap:7px;
    }

    .map-visual-page .map-search-box input{
        height:42px;
        padding:0 12px;
        font-size:12px;
    }

    .map-visual-page .map-search-box__submit{
        min-width:68px;
        height:42px;
        font-size:12px;
    }

    .map-visual-page .map-search-box__dates{
        grid-template-columns:1fr 1fr!important;
        gap:7px;
        margin-top:8px;
    }

    .map-visual-page .map-search-box__dates input{
        height:39px;
        font-size:11px;
    }

    .map-visual-page .map-filter-row{
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:7px;
        margin-top:8px;
    }

    .map-visual-page .map-filter-row select,
    .map-visual-page .map-price-input{
        min-width:0!important;
        height:39px;
        font-size:11px;
    }

    .map-visual-page .map-filter-row--checks{
        display:flex;
        flex-wrap:wrap;
    }

    .map-visual-page .map-filter-check,
    .map-visual-page .map-filter-reset{
        height:36px;
        padding:0 10px;
        font-size:10px;
    }

    .map-visual-page .map-sidebar__summary{
        display:flex;
        min-height:54px;
        flex:0 0 auto;
        align-items:center;
        gap:8px;
        padding:9px 12px!important;
    }

    .map-visual-page .map-sidebar__summary-main{
        min-width:0;
        flex:1 1 auto;
    }

    .map-visual-page .map-sidebar__summary-main strong{
        font-size:13px!important;
    }

    .map-visual-page .map-sidebar__summary-main span{
        margin-top:1px;
        overflow:hidden;
        font-size:9px!important;
        text-overflow:ellipsis;
        white-space:nowrap;
    }

    .map-sidebar__summary-actions{
        gap:5px;
    }

    .map-mobile-filter-toggle{
        display:inline-flex;
        min-height:34px;
        align-items:center;
        justify-content:center;
        padding:0 10px;
        border:1px solid #dfe3eb;
        border-radius:9px;
        color:#4a5363;
        background:#fff;
        font-size:9px;
        font-weight:850;
        white-space:nowrap;
        cursor:pointer;
    }

    .map-visual-page.is-mobile-filter-open
    .map-mobile-filter-toggle{
        color:#fff;
        border-color:#5b5bd6;
        background:#5b5bd6;
    }

    .map-visual-page .map-sidebar__link{
        height:34px;
        padding:0 10px;
        border-radius:9px;
        font-size:9px;
        white-space:nowrap;
    }

    .map-visual-page .map-result-list{
        display:block!important;
        flex:1 1 auto;
        min-height:0;
        padding:9px!important;
        overflow-x:hidden;
        overflow-y:auto;
        background:#f6f7fa;
        overscroll-behavior:contain;
    }

    .map-visual-page .map-result-card{
        display:grid!important;
        grid-template-columns:116px minmax(0,1fr)!important;
        min-height:116px;
        margin:0 0 9px!important;
        overflow:hidden;
        border-radius:14px!important;
    }

    .map-visual-page .map-result-card__media{
        min-width:0;
        height:100%;
    }

    .map-visual-page .map-result-card__image-link,
    .map-visual-page .map-result-card__image{
        display:block;
        width:100%;
        height:100%;
    }

    .map-visual-page .map-result-card__image{
        min-height:116px;
        aspect-ratio:auto!important;
    }

    .map-visual-page .map-result-card__image img{
        width:100%;
        height:100%;
        object-fit:cover;
    }

    .map-visual-page .map-result-card__fav{
        top:7px;
        right:7px;
        width:25px;
        height:25px;
        font-size:15px;
    }

    .map-visual-page .map-result-card__content{
        display:flex!important;
        min-width:0;
        flex-direction:column;
        justify-content:center;
        padding:10px 11px!important;
    }

    .map-visual-page .map-result-card__content h2{
        min-height:0!important;
        font-size:12px!important;
        -webkit-line-clamp:1;
    }

    .map-visual-page .map-result-card__addr{
        min-height:0!important;
        margin-top:4px!important;
        font-size:9px!important;
    }

    .map-visual-page .map-result-card__spec{
        min-height:0!important;
        margin-top:4px!important;
        font-size:9px!important;
    }

    .map-visual-page .map-result-card__meta{
        min-height:0;
        margin-top:6px!important;
    }

    .map-visual-page .map-result-card__meta span{
        padding:2px 4px!important;
        font-size:7px!important;
    }

    .map-visual-page .map-result-card__price-row{
        margin-top:7px!important;
    }

    .map-visual-page .map-result-card__price-row strong{
        font-size:12px!important;
    }

    .map-visual-page .map-result-card__price-row strong small{
        font-size:9px!important;
    }

    .map-visual-page .map-result-distance{
        padding:2px 5px!important;
        font-size:7px!important;
    }

    .map-visual-page .map-result-card__subprice{
        min-height:0;
        margin-top:3px!important;
        font-size:8px!important;
    }

    .map-visual-page .map-result-empty{
        padding:30px 14px;
        border-radius:14px;
    }

    .map-visual-page .map-result-empty strong{
        font-size:14px;
    }

    .map-visual-page .map-result-empty p{
        font-size:10px;
    }

    .map-visual-page .map-sidebar-toggle{
        display:none!important;
    }

    .map-visual-page .map-toolbar{
        top:10px;
        right:10px;
        left:10px;
        gap:6px;
    }

    .map-visual-page .map-toolbar__button{
        height:36px;
        padding:0 10px;
        border-radius:11px;
        font-size:10px;
    }

    .map-visual-page .map-price-overlay{
        min-width:64px;
        padding:7px 9px;
    }

    .map-visual-page .map-price-overlay strong{
        font-size:11px;
    }

    .map-visual-page .map-price-overlay span{
        font-size:8px;
    }

    .map-visual-page .map-location-status{
        right:10px;
        bottom:145px;
        left:10px;
        max-width:none;
        padding:9px 11px;
        font-size:10px;
    }

    .map-visual-page.is-mobile-list-visible
    .map-location-status{
        bottom:calc(min(58vh,540px) + 82px);
    }

    .map-visual-page .kakao-map-status{
        top:54px;
        right:10px;
        min-width:0;
        max-width:calc(100vw - 20px);
        padding:8px 10px;
        font-size:10px;
    }
}

@media (max-width:560px){
    .map-visual-page .map-result-list{
        display:block!important;
        grid-template-columns:none!important;
    }

    .map-visual-page .map-result-card{
        display:grid!important;
        grid-template-columns:108px minmax(0,1fr)!important;
        min-height:108px;
    }

    .map-visual-page .map-result-card__image{
        min-height:108px;
    }

    .map-visual-page .map-result-card__meta span:nth-child(n+4){
        display:none!important;
    }
}

@media (max-width:380px){
    .map-visual-page .map-sidebar{
        right:5px!important;
        left:5px!important;
    }

    .map-visual-page .map-result-card{
        grid-template-columns:96px minmax(0,1fr)!important;
    }

    .map-visual-page .map-sidebar__summary-main span{
        display:none;
    }

    .map-mobile-filter-toggle,
    .map-visual-page .map-sidebar__link{
        padding:0 8px;
        font-size:8px;
    }
}


/* =========================================================
   MAP LAZY LOAD / CLUSTER MODE
   ========================================================= */

.map-result-list.is-map-data-loading{
    opacity:.64;
    pointer-events:none;
}

.map-result-guide{
    grid-column:1/-1;
    align-self:start;
    min-height:170px;
}

.map-result-guide.is-cluster-guide{
    border-style:dashed;
    background:#f8f9fc;
}

.map-cluster-overlay{
    display:grid;
    min-width:48px;
    height:48px;
    place-items:center;
    padding:0 9px;
    border:2px solid rgba(255,255,255,.88);
    border-radius:999px;
    color:#fff;
    background:rgba(13,16,22,.92);
    box-shadow:
        0 5px 16px rgba(0,0,0,.28),
        inset 0 0 0 1px rgba(255,255,255,.08);
    font-size:13px;
    font-weight:900;
    line-height:1;
    cursor:pointer;
    transition:
        transform .16s ease,
        background .16s ease;
}

.map-cluster-overlay:hover{
    background:#5b5bd6;
    transform:scale(1.08);
}

.map-price-overlay{
    gap:1px;
}

.map-price-overlay__extra{
    display:inline!important;
    margin-left:3px;
    color:#655bff!important;
    font-size:9px!important;
    font-weight:850!important;
    white-space:nowrap;
}

@media(max-width:860px){
    .map-cluster-overlay{
        min-width:42px;
        height:42px;
        padding:0 8px;
        border-width:2px;
        font-size:11px;
    }

    .map-result-guide{
        min-height:140px;
    }
}


/* =========================================================
   MAP SEARCH FILTER ACCORDION
   ========================================================= */

.map-filter-accordion-toggle{
    position:relative;
    display:flex;
    min-height:58px;
    flex:0 0 auto;
    align-items:center;
    gap:12px;
    width:100%;
    box-sizing:border-box;
    padding:10px 48px 10px 16px;
    border:0;
    border-bottom:1px solid #e8ebf1;
    color:#252b36;
    background:#fff;
    text-align:left;
    cursor:pointer;
}

.map-filter-accordion-toggle:hover{
    background:#fafaff;
}

.map-filter-accordion-toggle__icon{
    position:relative;
    display:block;
    width:32px;
    height:32px;
    flex:0 0 32px;
    border:1px solid #dfe3ea;
    border-radius:10px;
    background:#f8f9fc;
}

.map-filter-accordion-toggle__icon span{
    position:absolute;
    left:8px;
    width:16px;
    height:2px;
    border-radius:999px;
    background:#596273;
}

.map-filter-accordion-toggle__icon span:nth-child(1){
    top:9px;
}

.map-filter-accordion-toggle__icon span:nth-child(2){
    top:15px;
}

.map-filter-accordion-toggle__icon span:nth-child(3){
    top:21px;
}

.map-filter-accordion-toggle__icon span::after{
    content:"";
    position:absolute;
    top:-2px;
    width:6px;
    height:6px;
    border:1px solid #596273;
    border-radius:50%;
    background:#fff;
}

.map-filter-accordion-toggle__icon span:nth-child(1)::after{
    left:2px;
}

.map-filter-accordion-toggle__icon span:nth-child(2)::after{
    right:1px;
}

.map-filter-accordion-toggle__icon span:nth-child(3)::after{
    left:6px;
}

.map-filter-accordion-toggle__text{
    display:block;
    min-width:0;
    flex:1 1 auto;
}

.map-filter-accordion-toggle__text strong,
.map-filter-accordion-toggle__text small{
    display:block;
}

.map-filter-accordion-toggle__text strong{
    color:#252b36;
    font-size:13px;
    font-weight:900;
    line-height:1.25;
}

.map-filter-accordion-toggle__text small{
    margin-top:3px;
    overflow:hidden;
    color:#7a8392;
    font-size:10px;
    line-height:1.3;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.map-filter-accordion-toggle__arrow{
    position:absolute;
    top:50%;
    right:19px;
    width:9px;
    height:9px;
    border-right:2px solid #788191;
    border-bottom:2px solid #788191;
    transform:translateY(-70%) rotate(45deg);
    transition:transform .18s ease;
}

.map-visual-page.is-filter-open
.map-filter-accordion-toggle__arrow{
    transform:translateY(-20%) rotate(225deg);
}

.map-visual-page .map-sidebar__inner{
    display:flex;
    min-height:0;
    flex-direction:column;
    overflow:hidden;
}

.map-visual-page .map-sidebar__search{
    display:none!important;
    flex:0 0 auto;
    max-height:min(66vh,560px);
    box-sizing:border-box;
    padding:16px!important;
    overflow-x:hidden;
    overflow-y:auto;
    border-bottom:1px solid #e8ebf1;
    background:#fff;
}

.map-visual-page.is-filter-open .map-sidebar__search{
    display:block!important;
}

.map-visual-page .map-search-box{
    display:block!important;
}

.map-visual-page .map-search-box__keyword{
    display:block!important;
}

.map-visual-page .map-search-box__keyword>span{
    display:block;
    margin:0 0 7px;
    color:#485163;
    font-size:11px;
    font-weight:850;
}

.map-visual-page .map-search-box__keyword input{
    display:block;
    width:100%!important;
    height:44px!important;
    box-sizing:border-box;
    padding:0 13px!important;
}

.map-search-actions{
    display:block;
    margin-top:13px;
}

.map-visual-page .map-search-actions
.map-search-box__submit{
    display:flex!important;
    width:100%!important;
    min-width:0!important;
    height:46px!important;
    align-items:center;
    justify-content:center;
    margin:0!important;
    border-radius:11px!important;
    font-size:12px!important;
    font-weight:900!important;
}

.map-visual-page.is-filter-open .map-result-list{
    min-height:120px;
}

@media(max-width:860px){
    .map-filter-accordion-toggle{
        min-height:54px;
        padding:9px 44px 9px 13px;
        gap:9px;
    }

    .map-filter-accordion-toggle__icon{
        width:29px;
        height:29px;
        flex-basis:29px;
        border-radius:9px;
    }

    .map-filter-accordion-toggle__icon span{
        left:7px;
        width:15px;
    }

    .map-filter-accordion-toggle__icon span:nth-child(1){
        top:8px;
    }

    .map-filter-accordion-toggle__icon span:nth-child(2){
        top:14px;
    }

    .map-filter-accordion-toggle__icon span:nth-child(3){
        top:20px;
    }

    .map-filter-accordion-toggle__text strong{
        font-size:12px;
    }

    .map-filter-accordion-toggle__text small{
        font-size:9px;
    }

    .map-visual-page .map-sidebar__search{
        display:none!important;
        max-height:calc(82vh - 170px);
        padding:12px!important;
    }

    .map-visual-page.is-filter-open
    .map-sidebar__search{
        display:block!important;
    }

    .map-visual-page.is-filter-open .map-sidebar{
        height:min(82vh,720px)!important;
    }

    .map-visual-page .map-search-actions
    .map-search-box__submit{
        height:43px!important;
        font-size:11px!important;
    }
}

