/* =====================================================================
   Store Finder — 풀스크린 레이아웃
   참조: https://www.chipotleme.com/en/store-finder
   ===================================================================== */

:root {
    --sf-brown:        #451400;
    --sf-brown-hover:  #6b321b;
    --sf-brown-light:  #786259;
    --sf-grey:         #d4cbc7;
    --sf-grey-bg:      #f2f2f2;
    --sf-beige:        #f7f2ed;
    --sf-white:        #ffffff;
    --sf-order-bg:     #5c2700;
    --sf-panel-w:      38%;       /* 좌측 패널 너비 — 원본 비율 */
    --sf-header-h:     60px;
}

/* ── 전체 리셋 ── */
.sf-wrap, .sf-wrap * { box-sizing: border-box; }
.sf-wrap ul { list-style: none; padding: 0; margin: 0; }
.sf-wrap a  { text-decoration: none; color: inherit; }
.sf-wrap button { border: 0; background: none; cursor: pointer; font: inherit; padding: 0; }
.sf-wrap {
    font-family: "Nunito SemiBold","Nunito",Helvetica Neue,Arial,sans-serif;
    color: var(--sf-brown);
}

/* ── 풀스크린 레이아웃 ── */
.sf-wrap {
    display: flex;
    height: calc(100vh - var(--sf-header-h));
    overflow: hidden;
}

/* =====================================================================
   좌측 패널
   ===================================================================== */
.sf-panel {
    width: var(--sf-panel-w);
    flex: 0 0 var(--sf-panel-w);
    display: flex;
    flex-direction: column;
    background: var(--sf-white);
    border-right: 1px solid var(--sf-grey);
    overflow: hidden;
    z-index: 2;
}

/* ── 검색바 ── */
.sf-search-bar {
    padding: 14px 16px 10px;
    border-bottom: 1px solid var(--sf-grey);
    background: var(--sf-white);
    flex: 0 0 auto;
}
.sf-search-inner {
    display: flex;
    align-items: center;
    height: 44px;
    border: 1px solid var(--sf-grey);
    border-radius: 4px;
    background: var(--sf-white);
    padding: 0 12px;
    gap: 10px;
}
.sf-search-inner:focus-within { border-color: var(--sf-brown); }
.sf-search-dot {
    width: 10px; height: 10px;
    border-radius: 50%;
    background: var(--sf-brown);
    flex: 0 0 10px;
}
.sf-search-input {
    flex: 1;
    border: 0;
    outline: none;
    font-size: 14px;
    color: var(--sf-brown);
    background: transparent;
}
.sf-search-input::placeholder { color: var(--sf-brown-light); }
.sf-locate-btn {
    color: var(--sf-brown);
    display: flex;
    align-items: center;
    opacity: 0.7;
    transition: opacity .15s;
}
.sf-locate-btn:hover { opacity: 1; }

/* ── 필터 바 ── */
.sf-filter-bar {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 16px;
    border-bottom: 1px solid var(--sf-grey);
    background: var(--sf-grey-bg);
    flex: 0 0 auto;
    flex-wrap: wrap;
}
.sf-region-select {
    height: 32px;
    padding: 0 28px 0 10px;
    border: 1px solid var(--sf-grey);
    border-radius: 3px;
    background: var(--sf-white) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23451400' stroke-width='2.5'><polyline points='6 9 12 15 18 9'/></svg>") right 8px center/10px no-repeat;
    font-size: 13px;
    color: var(--sf-brown);
    appearance: none;
    cursor: pointer;
    min-width: 110px;
}
.sf-region-select:focus { outline: none; border-color: var(--sf-brown); }
.sf-toggle-label {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: var(--sf-brown-light);
    cursor: pointer;
    user-select: none;
}
.sf-toggle-input {
    width: 14px; height: 14px;
    accent-color: var(--sf-brown);
    cursor: pointer;
    margin: 0;
}
.sf-count-badge {
    margin-left: auto;
    font-size: 12px;
    color: var(--sf-brown-light);
    white-space: nowrap;
}
.sf-count-badge #sfResultCount {
    font-weight: 700;
    color: var(--sf-brown);
}

/* ── 섹션 타이틀 ── */
.sf-section-title {
    padding: 14px 16px 10px;
    font-family: "Trade Gothic LT Bold",Helvetica Neue,Arial,sans-serif;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--sf-brown-light);
    letter-spacing: 0.5px;
    flex: 0 0 auto;
    background: var(--sf-white);
}

/* ── 매장 리스트 ── */
.sf-list {
    flex: 1 1 0;
    overflow-y: auto;
    overflow-x: hidden;
}
.sf-list::-webkit-scrollbar { width: 5px; }
.sf-list::-webkit-scrollbar-thumb { background: var(--sf-grey); border-radius: 3px; }

/* ── 매장 카드 ── */
.sf-card {
    padding: 18px 16px 16px;
    border-bottom: 1px solid var(--sf-grey);
    cursor: pointer;
    transition: background-color .12s;
}
.sf-card:hover { background: var(--sf-white); }
.sf-card.is-active {
    background: #f5f5f5;
    border-left: 3px solid var(--sf-brown);
    padding-left: 13px;
}
.sf-card.is-hidden  { display: none; }
.sf-card.is-open-soon { background: #fdfaf7; }
.sf-card.is-open-soon:hover { background: #fdfaf7; }

/* 매장명 */
.sf-card__name {
    font-family: "Trade Gothic LT Bold",Helvetica Neue,Arial,sans-serif;
    font-size: 1.05rem;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--sf-brown);
    margin: 0 0 6px;
    line-height: 1.3;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.sf-badge--soon {
    display: inline-block;
    padding: 2px 7px;
    border-radius: 10px;
    font-size: 9px;
    font-weight: 700;
    text-transform: uppercase;
    background: #b68207;
    color: #fff;
    letter-spacing: 0.3px;
}

/* 영업시간 줄들 */
.sf-card__hours {
    margin: 0 0 6px;
}
.sf-card__hours p {
    font-size: 12px;
    color: var(--sf-brown);
    margin: 0;
    line-height: 1.6;
}

/* 주소 */
.sf-card__address {
    font-size: 12px;
    color: var(--sf-brown-light);
    margin: 0 0 6px;
    line-height: 1.45;
}

/* ── CTA 버튼 래퍼 — 나란히 배치 ── */
.sf-card__cta {
    display: none;          /* 평소 숨김 */
}
.sf-card.is-active .sf-card__cta {
    display: flex;          /* 카드 선택 시에만 표시 */
    align-items: center;
    gap: 8px;
    margin-top: 12px;
    flex-wrap: wrap;
}
.ordernow,
.navigation {
    display: inline-flex;
}

/* 버튼 공통 */
.sf-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0.25rem 0.5rem;
    font-size: 1rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    transition: background-color .15s, color .15s;
    white-space: nowrap;
    cursor: pointer;
    border-radius: 0;
    line-height: 1.8;
}

/* Order Online Now — 원본 짙은 갈색 #884513 */
.sf-btn--order,
.sf-btn--order:hover,
.sf-btn--order:visited,
.sf-btn--order:active {
    background-color: #8B4513 !important;
    color: #ffffff !important;
    border: none;
}

/* GET DIRECTIONS — 테두리만 */
.sf-btn--dir {
    background-color: var(--sf-white);
    color: var(--sf-brown);
    border: 1px solid var(--sf-brown);
}
.sf-btn--dir:hover { background-color: var(--sf-brown); color: var(--sf-white); }

/* 초기화 버튼 */
.sf-btn--reset {
    background: var(--sf-white);
    color: var(--sf-brown);
    border: 1px solid var(--sf-brown);
    padding: 0.4rem 1.5rem;
}
.sf-btn--reset:hover { background: var(--sf-brown); color: var(--sf-white); }

/* Empty state */
.sf-empty {
    padding: 40px 20px;
    text-align: center;
    color: var(--sf-brown-light);
    font-size: 14px;
}
.sf-empty p { margin: 0 0 16px; }

/* =====================================================================
   우측 지도 영역
   ===================================================================== */
.sf-map-wrap {
    flex: 1 1 0;
    background: var(--sf-grey-bg);
    position: relative;
}
.sf-map {
    width: 100%;
    height: 100%;
}
.sf-map-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: var(--sf-brown-light);
    gap: 12px;
    font-size: 14px;
}

/* =====================================================================
   반응형
   ===================================================================== */
@media (max-width: 900px) {
    :root { --sf-panel-w: 45%; }
}
@media (max-width: 680px) {
    .sf-wrap { flex-direction: column; height: auto; overflow: visible; }
    .sf-panel { width: 100%; flex: none; overflow: visible; }
    .sf-list  { max-height: none; overflow: visible; }
    .sf-map-wrap {
        flex: 0 0 auto;     /* flex-basis:0 으로 높이가 0이 되던 문제 해결 */
        height: 40vh;       /* 화면 높이의 60% — 필요시 50~70vh로 조정 */
        min-height: 360px;
        order: -1;
    }
}

/* 공휴일 강조 */
.sf-card__hours .sf-hours-holiday { color: #c0392b !important; font-weight: 700; }

/* URL 미입력 시에도 버튼 외관 동일하게 유지 (cursor만 변경) */
.sf-btn--order[href=""],
.sf-btn--dir[href=""] {
    cursor: default;
    pointer-events: none;
}

.sf-card__desc {
    margin-top: 4px;
    font-size: 13px;
    color: #786259;
    line-height: 1.4;
}

.sf-btn--kakao {
    background-color: var(--sf-white);
    color: var(--sf-brown);
    border: 1px solid var(--sf-brown);
}
.sf-btn--kakao:hover { background-color: var(--sf-brown); color: var(--sf-white); }