@charset "utf-8";
/* 늘봄 메인 지역 선택 박스
   v2 — 시인성 개선: 배경(회색 판) / 버튼(흰 카드+진한 테두리)로 명도를 갈라 놓는다.
        v1은 카드도 흰색·칩도 거의 흰색이라 경계가 안 보였다. 숫자 배지는 제거. */

.gdm{
  --red:#5957c7; --red-d:#3c3ab2; --red-soft:#dfdff6;
  --ink:#11141a; --body:#3d434e; --mute:#767d8a;
  --line:#dfe3e9; --line-2:#cfd5de;
  --surface:#eef1f5;      /* 판(배경) */
  --chip:#fff;            /* 버튼 */
  margin:0 0 44px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 1px 2px rgba(16,20,28,.06), 0 6px 18px rgba(16,20,28,.05);
}

/* ── 헤더 ── */
.gdm-head{padding:22px 24px 16px; border-bottom:1px solid var(--line)}
.gdm-h{
  margin:0 0 5px; font-size:21px; font-weight:800; letter-spacing:-.02em;
  color:var(--ink); line-height:1.3;
}
.gdm-h::before{
  content:""; display:inline-block; width:5px; height:19px; margin-right:9px;
  vertical-align:-3px; border-radius:2px; background:var(--red);
}
.gdm-lead{
  margin:0; padding:0; background:none; border:0;
  font-size:13.5px; color:var(--mute); line-height:1.6; max-width:44rem;
}

/* ── 1단 : 시·도 탭 ── */
.gdm-tabs{
  display:flex; gap:7px; flex-wrap:nowrap; overflow-x:auto;
  padding:14px 24px; background:#f7f8fa;
  border-bottom:1px solid var(--line);
  -webkit-overflow-scrolling:touch; scrollbar-width:thin;
}
.gdm-tabs::-webkit-scrollbar{height:3px}
.gdm-tabs::-webkit-scrollbar-thumb{background:#c9cfd8; border-radius:3px}
.gdm-tab{
  flex:0 0 auto;
  min-height:44px; padding:11px 20px;
  font-size:15px; font-weight:700; color:var(--body);
  background:#fff; border:1px solid var(--line-2); border-radius:10px;
  cursor:pointer; white-space:nowrap;
  transition:background .15s, color .15s, border-color .15s;
}
.gdm-tab:hover{border-color:var(--red); color:var(--red)}
.gdm-tab:focus-visible{outline:2px solid var(--red); outline-offset:2px}
.gdm-tab.is-on{
  background:var(--red); border-color:var(--red); color:#fff;
  box-shadow:0 3px 10px rgba(217,44,66,.32);
}
.gdm-tab.is-on:hover{background:var(--red-d); border-color:var(--red-d); color:#fff}

/* ── 패널 ── */
.gdm-panel{padding:0 24px 22px; background:#fff}
.gdm-panel[hidden]{display:none}

.gdm-bar{
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:10px; padding:15px 0 12px;
}
.gdm-all{
  font-size:14px; font-weight:800; color:var(--red); text-decoration:none;
}
.gdm-all::after{content:" →"; font-weight:500}
.gdm-all:hover{color:var(--red-d); text-decoration:underline}
.gdm-filter{
  display:inline-flex; align-items:center; gap:7px; margin:0;
  font-size:13px; font-weight:600; color:var(--body); cursor:pointer; user-select:none;
}
.gdm-filter input{width:16px; height:16px; margin:0; accent-color:var(--red); cursor:pointer}
.gdm-note{font-size:12.5px; color:var(--mute)}

/* ── 2단 : 자치구·시 버튼 ── */
.gdm-grid{
  display:flex; flex-wrap:wrap; gap:9px;
  padding:18px 18px; background:var(--surface); border-radius:13px;
}
.gdm-chip{
  display:inline-flex; align-items:center; gap:7px;
  min-height:46px; padding:12px 18px;
  font-size:15px; font-weight:700; letter-spacing:-.01em;
  color:var(--ink); text-decoration:none;
  background:var(--chip); border:1px solid var(--line-2); border-radius:11px;
  box-shadow:0 1px 2px rgba(16,20,28,.06);
  cursor:pointer; white-space:nowrap;
  transition:border-color .15s, background .15s, color .15s, box-shadow .15s, transform .12s;
}
.gdm-chip:hover{
  border-color:var(--red); color:var(--red); background:var(--red-soft);
  box-shadow:0 3px 10px rgba(217,44,66,.16);
  transform:translateY(-1px); text-decoration:none;
}
.gdm-chip:focus-visible{outline:2px solid var(--red); outline-offset:2px}
.gdm-chip.is-open{
  background:var(--red); border-color:var(--red); color:#fff; transform:none;
  box-shadow:0 3px 10px rgba(217,44,66,.32);
}
.gdm-chip.is-open:hover{background:var(--red-d); border-color:var(--red-d); color:#fff}

/* 업체 0곳 — 필터 해제 시에만 보인다 */
.gdm-chip.is-empty{
  color:var(--mute); background:transparent; border-style:dashed;
  border-color:#c3cad4; font-weight:600; box-shadow:none;
}
.gdm-chip.is-empty:hover{color:var(--body); background:#fff; border-color:#aeb6c2}
.gdm-panel.filter-on .gdm-chip.is-empty,
.gdm-panel.filter-on .gdm-cs.is-empty{display:none}

/* 펼침 화살표 */
.gdm-arw{
  width:7px; height:7px; margin-left:2px;
  border-right:2px solid currentColor; border-bottom:2px solid currentColor;
  transform:rotate(45deg) translate(-1px,-2px); opacity:.5;
  transition:transform .18s, opacity .18s;
}
.gdm-chip:hover .gdm-arw{opacity:1}
.gdm-chip.is-open .gdm-arw{transform:rotate(-135deg) translate(-2px,-1px); opacity:1}

/* ── 3단 : 하위 동·역 ── */
.gdm-drop{
  display:flex; flex-wrap:wrap; gap:8px;
  margin:10px 0 0; padding:17px 18px;
  background:#2b303a; border-radius:13px;
}
.gdm-drop[hidden]{display:none}
.gdm-cs{
  display:inline-flex; align-items:center;
  min-height:40px; padding:10px 15px;
  font-size:14px; font-weight:600; color:#e9ecf1; text-decoration:none;
  background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.16); border-radius:10px;
  transition:background .15s, border-color .15s, color .15s;
}
.gdm-cs:hover{background:#fff; border-color:#fff; color:var(--ink); text-decoration:none}
.gdm-cs:focus-visible{outline:2px solid #fff; outline-offset:2px}
.gdm-cs.lead{background:var(--red); border-color:var(--red); color:#fff; font-weight:800}
.gdm-cs.lead:hover{background:var(--red-d); border-color:var(--red-d); color:#fff}
.gdm-cs.is-empty{color:#9aa1ad; background:transparent; border-style:dashed; border-color:rgba(255,255,255,.22)}

/* ── 모바일 ── */
@media (max-width:767px){
  .gdm{margin:0 0 30px; border-radius:14px}
  .gdm-head{padding:18px 16px 13px}
  .gdm-h{font-size:18.5px}
  .gdm-lead{font-size:12.5px}
  .gdm-tabs{padding:12px 16px; gap:6px}
  .gdm-tab{min-height:42px; padding:10px 16px; font-size:14.5px}
  .gdm-panel{padding:0 16px 18px}
  .gdm-grid{padding:14px 13px; gap:8px; border-radius:12px}
  .gdm-chip{min-height:44px; padding:11px 15px; font-size:14.5px; border-radius:10px}
  .gdm-drop{padding:14px 13px; gap:7px; border-radius:12px}
  .gdm-cs{min-height:38px; padding:9px 13px; font-size:13.5px}
}

@media (prefers-reduced-motion:reduce){
  .gdm-chip,.gdm-arw,.gdm-tab,.gdm-cs{transition:none}
  .gdm-chip:hover{transform:none}
}
