@charset "utf-8";

/* =========================================================
   POPPI — Store page styles
   (구 pages.css 에서 분리)
   ========================================================= */

/* Store 페이지 — 가로 스크롤 방지 (KV는 main overflow 적용 제외) */
body.store-page {
  overflow-x: clip;
}

body.store-page .page-wrap {
  overflow-x: clip;
  max-width: 100%;
}

body.store-page main {
  overflow-x: visible;
  max-width: 100%;
}

/* =========================================================
   STORE KV — event-news 의 .page-top + .kv-title 구조/스타일과 완전히 동일.
   - 배경: store-kv-bg-v2.png (베이지 그리드 + 하단 도넛)
   - 최대 높이 572px (1920px 기준 29.79vw)
   ========================================================= */
body.store-page .page-top {
  --event-kv-bg: #FEF4D9;                                    /* Store 베이지 (이미지 로드 전 폴백) */
  --kv-height: clamp(219px, 29.79vw, 572px);                 /* 1920 → 572 */
  --kv-title-size: clamp(48px, 5.21vw, 100px);
  --kv-title-stroke: clamp(2px, 0.26vw, 5px);
  --kv-title-outline: clamp(6px, 0.78vw, 15px);
  --kv-title-top: clamp(88px, 28%, 200px);

  position: relative;
  width: 100%;
  min-height: var(--kv-height);
  padding-top: 0;
  overflow: hidden;
  background-color: var(--event-kv-bg);
  background-image: url("../images/store/store-kv-bg-v2.png");
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: cover;
}

body.store-page .kv-title {
  position: absolute;
  top: var(--kv-title-top);
  left: 50%;
  z-index: 2;
  isolation: isolate;
  max-width: calc(100% - 32px);
  color: #452319;
  font-family: var(--font-heading, var(--font-ria));
  font-size: var(--kv-title-size);
  font-weight: 800;
  line-height: 1;
  letter-spacing: clamp(0.5px, 0.1vw, 2px);
  transform: translate(-50%, -50%) rotate(-5deg);
  transform-origin: center;
  white-space: nowrap;
  -webkit-text-stroke: var(--kv-title-stroke) #452219;
  paint-order: stroke fill;
  text-shadow:
    -1px -2px 4px rgba(255, 235, 221, 0.75),
    2px 3px 7px rgba(0, 0, 0, 0.42),
    -4px 3px 8px rgba(69, 50, 31, 0.45),
    0 6px 10px rgba(32, 18, 12, 0.2);
  margin: 0;
}

body.store-page .kv-title::before {
  content: attr(data-text);
  position: absolute;
  inset: 0;
  z-index: -1;
  color: transparent;
  font: inherit;
  letter-spacing: inherit;
  line-height: inherit;
  white-space: inherit;
  pointer-events: none;
  -webkit-text-stroke: var(--kv-title-outline) #ffffff;
  paint-order: stroke fill;
  filter: drop-shadow(0 0 1px rgba(255, 255, 255, 0.95));
}

/* TABLET — event-news 와 동일한 비례 축소 */
@media (max-width: 1024px) {
  body.store-page .page-top {
    --kv-height: clamp(219px, 29.79vw, 282px);
    --kv-title-size: clamp(44px, 7.8vw, 72px);
    --kv-title-stroke: clamp(2px, 0.35vw, 4px);
    --kv-title-outline: clamp(5px, 1vw, 12px);
    --kv-title-top: clamp(80px, 26%, 160px);
  }
}

/* MOBILE — event-news 와 동일한 비례 축소 */
@media (max-width: 560px) {
  body.store-page .page-top {
    --kv-height: 219px;
    padding-top: 0;
    --kv-title-size: clamp(36px, 10.5vw, 56px);
    --kv-title-stroke: 3px;
    --kv-title-outline: clamp(5px, 1.8vw, 9px);
    --kv-title-top: clamp(72px, 24%, 120px);
  }
}

/* =========================================================
   STORE — INTERIOR 섹션 (850px)
     • 섹션 높이 850px 고정
     • 코너 데코 이미지 (interior-deco.png) — 섹션 전체 덮개
     • INTERIOR  : Ria Sans Bold 48px, #ED6325, 가운데 정렬, y=130
     • 서브카피 : Paperlogy Regular 24px, #452219, 가운데 정렬, y=242
   ========================================================= */
.store-interior {
  position: relative;
  width: 100%;
  margin-top: 0;
  padding-top: 54px;
  padding-left: 0;
  padding-right: 0;
  padding-bottom: 0;
  box-sizing: border-box;
  background: #FFFCF6;                   /* 사용자 요청 — 부드러운 아이보리 */
  overflow: hidden;
  isolation: isolate;
  height: 850px;
  min-height: 850px;
  max-height: 850px;
}

/* 1025~1280px (예: 1096px): 데코/캐러셀 비율에 맞게 섹션 높이 축소 */
@media (min-width: 1025px) and (max-width: 1280px) {
  .store-interior {
    height: 700px;
    min-height: 700px;
    max-height: 700px;
  }
}

/* 코너 데코 — 섹션 전체에 깔리는 PNG (corners 만 보이고 가운데는 투명)
   ▶ PNG 가 흰 배경 + 컬러 블롭 형태이므로 mix-blend-mode: multiply 로
     흰 영역을 배경(#FFFCF6) 에 곱셈 합성 → 흰 영역 사실상 투명, 코너 컬러만 잔존
   ▶ PC: cover — 가로형 섹션에 맞춤
   ▶ 태블릿·모바일: fill — 세로형 섹션에 코너 블롭을 상·하단에 맞춤 (contain 시 중앙 띠만 보임) */
.store-interior__deco {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  object-fit: cover;
  object-position: center;
  z-index: 1;
  pointer-events: none;
  user-select: none;
  -webkit-user-drag: none;
  mix-blend-mode: multiply;
}

/* 헤드 — 가운데 정렬 (타이틀/서브카피는 각각 절대좌표로 y 고정) */
@media (max-width: 1024px) {
  .store-interior__deco {
    object-fit: fill;
    object-position: center;
    width: 100%;
    height: 100%;
  }
}

/* 1025~1400px: INTERIOR 섹션 높이에 맞춰 데코를 조금 줄여 전체 형태가 잘 보이도록 */
@media (min-width: 1025px) and (max-width: 1400px) {
  .store-interior__deco {
    /* 이 구간에서 cover는 상/하단이 잘려 하단 데코가 안 보일 수 있음 → 섹션에 맞게 전체 노출 */
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: fill;
    object-position: center;
  }
}

/* 헤드 — 가운데 정렬, 타이틀↔서브카피 간격 24px */
.store-interior__head {
  position: absolute;
  z-index: 2;
  inset: 0;
  margin: 0;
  padding: 0 24px;
  text-align: center;
  pointer-events: none;
}

/* INTERIOR — Ria Sans Bold 48px, y=130, 가운데 정렬 */
.store-interior .store-interior__title {
  position: absolute;
  left: 0;
  right: 0;
  top: clamp(60px, 6.77vw, 130px);     /* Figma 130/1920 */
  margin: 0;
  font-family: var(--font-ria);
  font-weight: 700;
  font-size: clamp(28px, 2.5vw, 48px);
  line-height: 1;
  letter-spacing: 0;
  color: #ED6325;
  text-align: center;
}

/* 서브카피 — Paperlogy Regular 24px, 2줄(br) */
.store-interior__sub {
  position: absolute;
  left: 0;
  right: 0;
  top: clamp(96px, 10vw, 192px);
  margin: 0;
  font-family: var(--font-paperlogy);
  font-weight: 400;
  font-size: clamp(14px, 1.25vw, 24px);
  line-height: 1.4;
  letter-spacing: -0.02em;
  color: var(--brown-dark);
  text-align: center;
}

/* 1130px 전후(1025~1280px): 타이틀/서브카피를 조금 더 크게 */
@media (min-width: 1025px) and (max-width: 1280px) {
  .store-interior .store-interior__title {
    font-size: clamp(34px, 3.2vw, 54px);
  }

  .store-interior__sub {
    font-size: clamp(16px, 1.6vw, 26px);
  }
}

/* PC·태블릿 — 서브카피 한 줄 (모바일만 br 유지) */
@media (min-width: 541px) {
  .store-interior__sub br {
    display: none;
  }
}

/* =========================================================
   INTERIOR — 무한 캐러셀 (interior-carousel.js, peek 스타일)
   • 슬라이드 700×300, gap 20px
   • 가운데 활성 + 좌우 peek (1920 뷰포트에서 ~3장 보임)
   • 5초 자동전환, hover 일시정지, dot/드래그/키보드, 진짜 무한 루프(clone snap)
   ========================================================= */
.interior-carousel {
  position: absolute;
  z-index: 1;
  top: clamp(180px, 16.98vw, 326px);     /* y = 326 */
  left: 0;
  right: 0;
  width: 100%;
  margin: 0 auto;
  outline: none;
  /* viewport ↕ 35px ↕ dots 를 자연스럽게 세로 스택 */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 35px;
}

.interior-carousel__viewport {
  --slide-width: 700px;                  /* 카드 가로 700px */
  --slide-gap: 20px;                     /* 카드 사이 20px */
  position: relative;
  width: 100%;
  margin: 0 auto;
  overflow: hidden;
  cursor: grab;
  touch-action: pan-y;
}

.interior-carousel__viewport:active { cursor: grabbing; }

/* 데스크탑(>=1281px)에서는 카드 영역 높이 380px 고정 (300 → 380, +27%) */
@media (min-width: 1281px) {
  .interior-carousel__viewport { height: 380px; }
}

/* 1280px 이하: viewport 폭 기준 aspect-ratio는 높이가 과해져 비율/간격이 깨질 수 있음
   → 카드(슬라이드) 기준으로 자연스럽게 줄어드는 clamp 높이 사용 */
@media (max-width: 1280px) {
  .interior-carousel__viewport {
    height: clamp(280px, 26vw, 380px);
    min-height: 280px;
    aspect-ratio: unset;
  }
}

/* 1025~1280px: 뷰포트 폭에 따라 카드 가로폭을 줄여 좌·우 peek 비율을 맞춤 */
@media (min-width: 1025px) and (max-width: 1280px) {
  .interior-carousel__viewport {
    --slide-width: clamp(540px, 68vw, 700px);
  }
}

/* 캐러셀 트랙 — JS(interior-carousel.js) 가 clone 추가 + 한 칸씩 step 이동
   ▶ transition 종료를 transitionend 로 감지해 boundary snap → 시각적 끊김 0 */
.interior-carousel__track {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: stretch;
  gap: var(--slide-gap);
  /* 활성 슬라이드 중앙 정렬은 JS(centerOffsetPx)로 통일 */
  padding-left: 0;
  padding-right: 0;
  margin: 0;
  list-style: none;
  will-change: transform;
  transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}

.interior-carousel__slide {
  position: relative;
  flex: 0 0 var(--slide-width);
  width: var(--slide-width);
  height: 100%;
  margin: 0;
  border-radius: 37px;
  overflow: hidden;
  background: #f4ddc8;
  opacity: 1;                            /* 모든 슬라이드 동일 opacity → snap 시 깜빡임 0 */
  user-select: none;
}

.interior-carousel__slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  pointer-events: none;
  -webkit-user-drag: none;
}

/* ── 인디케이터 도트 — Figma 1270:280
   • 6개, gap 30px, 카드 아래 35px (부모 flex column 의 gap 으로 처리)
   • 비활성 dot: 17×17 원, #F8D2B4
   • 활성 dot: 25×25, 도넛 PNG 배경
   • 좌우 가운데 정렬 — display:flex justify-content:center */
.interior-carousel__dots {
  position: relative;
  z-index: 2;
  width: 100%;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 30px;
  height: 32px;                          /* 활성 도넛(32px) 기준 컨테이너 높이 */
  pointer-events: auto;
}

/* ▶ 깜빡임 방지 패턴:
   · 모든 도트가 32×32 고정 (레이아웃 reflow 0)
   · 내부 ::before(원), ::after(도넛 PNG) 둘 다 항상 렌더 → PNG 가 전체 도트에 미리 디코딩됨
   · 활성/비활성은 opacity 만 토글 → 자연스러운 페이드, 빈 프레임 없음 */
.interior-carousel__dot {
  position: relative;
  width: 32px;
  height: 32px;
  padding: 0;
  margin: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.interior-carousel__dot::before {
  /* 비활성: 17×17 베이지 원 (Figma Ellipse 48/50/52/53/49) */
  content: '';
  position: absolute;
  width: 17px;
  height: 17px;
  border-radius: 50%;
  background: #F8D2B4;
  opacity: 1;
  transition: opacity 0.18s ease;
  pointer-events: none;
}

.interior-carousel__dot::after {
  /* 활성: 32×32 도넛 PNG (항상 로드해두고 opacity 만 토글 → 깜빡임 0) */
  content: '';
  position: absolute;
  inset: 0;
  background-image: url('../images/store/dot-active-donut.png');
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  opacity: 0;
  transition: opacity 0.18s ease;
  pointer-events: none;
}

.interior-carousel__dot:hover::before { background: #F2B988; }

.interior-carousel__dot.is-active::before { opacity: 0; }
.interior-carousel__dot.is-active::after  { opacity: 1; }

@media (max-width: 1280px) {
  .interior-carousel__dots { gap: 22px; height: 26px; }
  .interior-carousel__dot { width: 26px; height: 26px; }
  .interior-carousel__dot::before { width: 13px; height: 13px; }
}

@media (max-width: 767px) and (min-width: 541px) {
  .interior-carousel__dots { gap: 16px; }
  /* 678px 등에서 너무 작아 '사라져' 보이는 문제 방지 */
  .interior-carousel__dot { width: 13px; height: 13px; }
  .interior-carousel__dot.is-active { width: 20px; height: 20px; }
}

/* ── 02. STORE SEARCH — Figma 1258:873 (store_PC, x=240/y=130, 1440×670)
       ▶ Figma 구조:
         · title  "STORE SEARCH"  (0,   0)  1440×69
         · content frame          (0, 109)  1440×561
             ├ select (576.5, 0)    863.5×52  — 우측 정렬 (4-pill 필터)
             └ map    (0, 76)       1440×485  — 컨텐츠 박스 바닥 flush
       ▶ 핵심 간격:
         · 섹션 top padding   130px (사용자 요청: 텍스트 130px 아래)
         · title → filters    40px  (109 - 69)
         · filters → map      24px  (76 - 52)
         · 좌우 (1920-1440)/2 = 240px  → max() 로 안전 처리
   ── */
.store-search {
  position: relative;
  width: 100%;
  padding-top: clamp(60px, 6.77vw, 130px);    /* Figma: title 130px from section start */
  padding-bottom: clamp(40px, 3.13vw, 60px);  /* 지도 아래 여백 (Figma 외부) */
  /* 좌우 패딩 = clamp(16px, 12.5vw, 240px)
     ▶ 1920px 뷰포트: 240px → 필터/지도 우측 끝 = 1920-240 = 1680px (사용자 요청) */
  padding-inline: clamp(16px, 12.5vw, 240px);
  background: #ffffff;
  overflow: visible;
  box-sizing: border-box;
}

.store-search__head {
  text-align: center;
  margin: 0 auto clamp(20px, 2.08vw, 40px);   /* Figma: title→content gap 40px */
}

.store-search .store-search__title {
  font-family: var(--font-ria);
  font-weight: 700;
  font-size: clamp(34px, 2.5vw, 48px);
  line-height: 1;
  letter-spacing: 0.012em;
  color: #ED6325;
  margin: 0;
}

/* 필터 한 줄 — Figma 1258:876 처럼 우측 정렬 (3 드롭다운 + 검색 입력)
   filters→map gap 24px (Figma 76-52=24) */
.store-search__filters {
  display: flex;
  flex-wrap: nowrap;                          /* 한 줄 강제, 우측 끝 마지막 위치 확정 */
  gap: clamp(10px, 1.04vw, 16px);
  align-items: center;
  justify-content: flex-end;                  /* 우측 끝까지 밀착 */
  margin: 0 auto clamp(14px, 1.25vw, 24px);   /* Figma: filters→map gap 24px */
  max-width: 1440px;                          /* 지도 max-width 와 정확히 일치 → 우측 라인 매칭 */
  width: 100%;
}

@media (max-width: 768px) {
  .store-search__filters { justify-content: center; }
}

/* 검색어 입력 (필터 행 안쪽, 매그니파이어 버튼 내장) */
.store-search__keyword {
  position: relative;
  display: inline-flex;
  align-items: center;
}

.store-search__keyword input {
  appearance: none;
  background: #ffffff;
  border: 2px solid #ED6325;
  color: var(--brown-dark);
  font-family: var(--font-paperlogy);
  font-weight: 500;
  font-size: clamp(15px, 1.04vw, 20px);
  padding: 10px 50px 10px 24px;
  border-radius: 999px;
  width: clamp(220px, 19vw, 320px);
  outline: none;
  line-height: 1.2;
}

.store-search__keyword input::placeholder { color: var(--brown-dark); opacity: 0.5; }
.store-search__keyword input:focus,
.store-search__keyword input:focus-visible { outline: none; box-shadow: none; }

.store-search__keyword-btn {
  position: absolute;
  right: 6px;
  top: 50%;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 0;
  background: transparent;
  border: 0;
  color: #ED6325;
  cursor: pointer;
  transition: color 0.15s ease;
}
.store-search__keyword-btn:hover { color: #d0541c; }

/* 흰 배경 + 오렌지 보더 셀렉트 */
.store-search__select {
  position: relative;
  display: inline-flex;
  align-items: center;
}

.store-search__select select {
  appearance: none;
  -webkit-appearance: none;
  background: #ffffff;
  border: 2px solid #ED6325;
  color: #ED6325;
  font-family: var(--font-paperlogy);
  font-weight: 500;
  font-size: clamp(15px, 1.04vw, 20px);
  padding: 10px 48px 10px 30px;
  border-radius: 999px;
  cursor: pointer;
  line-height: 1.2;
}

.store-search__select select:focus,
.store-search__select select:focus-visible { outline: none; box-shadow: none; }

/* 비활성 상태 — 도/시 미선택 시 구/군 잠금 */
.store-search__select.is-disabled,
.store-search__select select:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}
.store-search__select select:disabled {
  background: #FFF5EC;
  color: #B07A5A;
  border-color: #F2B988;
}
.store-search__select.is-disabled::after {
  opacity: 0.4;
}

.store-search__select::after {
  content: "";
  position: absolute;
  right: 20px;
  top: 50%;
  width: 10px;
  height: 6px;
  background:
    linear-gradient(45deg,  transparent 50%, #ED6325 50% 65%, transparent 65%),
    linear-gradient(-45deg, transparent 50%, #ED6325 50% 65%, transparent 65%);
  background-size: 6px 6px;
  background-repeat: no-repeat;
  background-position: left center, right center;
  transform: translateY(-25%);
  pointer-events: none;
}

/* Figma 1327:260 — 필터 행에 들어가는 오렌지 필 버튼 (내 주변 매장)
   ⚠ 옆 셀렉트(.store-search__select select)와 세로 크기가 일치해야 자연스러움.
      → select: padding 10px / border 2px / line-height 1.2 → 총 ≈ 48px
      이에 맞춰 padding·border·line-height 동일하게 설정.
   • bg #ED6325, color #fff, radius 999px, padding 10px 30px
   • font Paperlogy 500 / clamp(15px, 1.04vw, 20px) */
.store-search__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px clamp(18px, 1.56vw, 30px);          /* select 좌우 padding(30px) 매칭 */
  font-family: var(--font-paperlogy);
  font-weight: 500;                                  /* select 와 동일 */
  font-size: clamp(15px, 1.04vw, 20px);              /* select 와 동일 */
  line-height: 1.2;                                  /* select 와 동일 → 동일 세로 크기 */
  border: 0;
  border-radius: 999px;
  cursor: pointer;
  white-space: nowrap;
  /* 사용자 요청 — hover/active 애니메이션 제거 (transition 없음) */
}

.store-search__btn--primary {
  background: #ED6325;
  color: #ffffff;
  border: 2px solid #ED6325;                         /* select 와 동일한 2px → 세로 크기 일치 */
}

/* (구버전 호환) .store-search__actions 블록은 이제 HTML 에서 제거됨.
   혹시라도 다른 페이지에서 남아 있으면 숨김 처리. */
.store-search__actions {
  display: none;
}

/* ── 지도 + 매장 리스트 (스테이지) ── */
.store-search__stage,
.store-search__body {
  position: relative;
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
}

.store-search__map-body {
  position: relative;
  width: 100%;
}

/* 모바일 바텀시트 — 기본 숨김, ≤540px 에서만 활성 */
.store-search__sheet {
  display: none;
}

.store-search__sheet-handle {
  display: none;
}

.store-search__map-wrap {
  position: relative;
  width: 100%;
  /* Figma 1258:881 — map 1440×485 (사용자 요청 높이 485px) */
  height: clamp(240px, 25.26vw, 485px);
  border-radius: 25px;
  overflow: hidden;
  background: #f6efe7;
}

.store-search__map-wrap .store-search__map {
  width: 100%;
  height: 100%;
  /* CSS 단독 안전망 — JS 의 ensureMapSize 와 별개로, 컨테이너가 어떤 이유로든
     0×0 으로 잡히는 것을 방지. Kakao Map 은 초기 사이즈가 0 이면 회복이 어려움. */
  min-height: 240px;
  min-width: 1px;
  background: none;
  margin: 0;
  border-radius: 0;
}

.store-search__map-fallback {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 24px;
  text-align: center;
  background: linear-gradient(135deg, #fff5ec 0%, #fde7d8 100%);
  color: var(--brown-dark);
  font-family: var(--font-paperlogy);
}

.store-search__map-fallback-title {
  font-size: clamp(16px, 1.04vw, 20px);
  font-weight: 700;
  margin: 0;
}

.store-search__map-fallback-desc {
  font-size: clamp(13px, 0.83vw, 16px);
  font-weight: 500;
  color: #823c1d;
  margin: 0;
  line-height: 1.6;
}

.store-search__map-fallback code {
  background: rgba(237, 99, 37, 0.1);
  padding: 2px 8px;
  border-radius: 6px;
  color: #ED6325;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}

/* 매장 리스트 — 지도 위에 떠 있는 좌측 패널 (380×자동)
   ※ 700~800px 제약 → 맵 영역 안쪽으로 맞춰서 내부 스크롤 */
.store-search__list {
  position: absolute;
  left: 20px;
  top: 20px;
  width: 380px;
  max-width: calc(100% - 40px);
  max-height: calc(100% - 40px);
  display: flex;
  flex-direction: column;
  background: #ffffff;
  border: 3px solid var(--apricot-bg);
  border-radius: 25px;
  padding: 20px;
  z-index: 3;
  box-shadow: 0 8px 24px rgba(132, 60, 29, 0.08);
  overflow: hidden;
}

.store-search__list .store-search__store-list {
  flex: 1 1 auto;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

/* 매장명 검색 입력 */
.store-search__search-input {
  position: relative;
  padding: 0;
  border: 0;
  margin: 0 0 8px;
}

.store-search__search-input input {
  width: 100%;
  appearance: none;
  border: 2px solid #ED6325;
  background: #ffffff;
  color: var(--brown-dark);
  font-family: var(--font-paperlogy);
  font-weight: 500;
  font-size: 20px;
  border-radius: 999px;
  padding: 10px 50px 10px 20px;
  outline: none;
  line-height: 1.2;
}

.store-search__search-input input::placeholder {
  color: var(--brown-dark);
  opacity: 0.5;
}

.store-search__search-icon {
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  color: #ED6325;
  display: inline-flex;
}

.store-search__store-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.store-search__store-item {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 20px 0;
  border-bottom: 1px solid #ECDED2;
  cursor: pointer;
  transition: background 0.2s ease;
}

.store-search__store-item:last-child { border-bottom: 0; }

.store-search__store-item:hover { background: rgba(253, 226, 207, 0.25); }
.store-search__store-item.is-active { background: rgba(253, 226, 207, 0.5); }

.store-search__store-name,
.store-search__store-addr {
  display: flex;
  align-items: center;
  gap: 20px;
  margin: 0;
  padding: 0 3px;
}

/* 검색 결과 없음 */
.store-search__empty {
  margin: 24px 0 0;
  padding: 28px 16px;
  text-align: center;
  font-family: var(--font-paperlogy);
  font-weight: 500;
  font-size: 16px;
  line-height: 1.4;
  color: var(--brown-dark);
  opacity: 0.65;
  background: rgba(248, 210, 180, 0.18);
  border-radius: 14px;
}

.store-search__store-name {
  font-family: var(--font-ria);
  font-weight: 700;
  font-size: 24px;
  line-height: 1;
  letter-spacing: 0.016em;
  color: var(--brown-dark);
  gap: 25px;
}

.store-search__store-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #ED6325;
  flex: 0 0 auto;
}

.store-search__store-icon--addr { color: #ED6325; }

.store-search__store-addr {
  font-family: var(--font-paperlogy);
  font-weight: 500;
  font-size: 20px;
  line-height: 1.2;
  color: #823c1d;
}

/* Kakao Map 커스텀 오버레이 핀 */
.map-pin {
  position: relative;
  display: inline-flex;
  padding: 6px 12px;
  background: #ED6325;
  color: #ffffff;
  border-radius: 999px;
  font-family: var(--font-paperlogy);
  font-weight: 700;
  font-size: 13px;
  white-space: nowrap;
  box-shadow: 0 6px 14px rgba(60, 28, 14, 0.2);
}

.map-pin::after {
  content: "";
  position: absolute;
  bottom: -7px;
  left: 50%;
  transform: translateX(-50%);
  border: 7px solid transparent;
  border-top-color: #ED6325;
  border-bottom: 0;
}

/* Kakao Map 커스텀 오버레이 핀 */
.map-pin {
  position: relative;
  display: inline-flex;
  padding: 6px 12px;
  background: var(--donut-orange);
  color: #ffffff;
  border-radius: 999px;
  font-family: var(--font-paperlogy);
  font-weight: 700;
  font-size: 13px;
  white-space: nowrap;
  box-shadow: 0 6px 14px rgba(60, 28, 14, 0.2);
}

.map-pin::after {
  content: "";
  position: absolute;
  bottom: -7px;
  left: 50%;
  transform: translateX(-50%);
  border: 7px solid transparent;
  border-top-color: var(--donut-orange);
  border-bottom: 0;
}

/* =========================================================
   Production spacing pass — Store
   - PC: 12col / gutter 24 / max 1440 기준
   - 섹션 고정 높이 제거, 콘텐츠 기준 자연 높이 적용
   - 제목↔설명↔이미지/지도 간격을 공통 토큰으로 통일
   ========================================================= */
.store-interior,
.store-search {
  --store-container: min(var(--site-max), calc(100% - (var(--site-gutter) * 2)));
}

.store-interior {
  margin-top: 0;
  padding-top: 54px;
  padding-left: 0;
  padding-right: 0;
  padding-bottom: 0;
  height: 850px;
  min-height: 850px;
  max-height: 850px;
  overflow: hidden;
}

/* INTERIOR / SUB / HEAD 위치는 store.css 상단 정의(절대좌표) 사용 — 오버라이드 안 함 */

/* STORE SEARCH — Figma 1258:873 사양 유지 (오버라이드 충돌 방지) */
.store-search .store-search__title {
  font-family: var(--font-ria);
  font-weight: 700;
  font-size: clamp(34px, 2.5vw, 48px);        /* Figma 48px Ria Sans bold */
  line-height: 1;
  color: #ED6325;
}

.store-search {
  padding-top: clamp(60px, 6.77vw, 130px);
  padding-bottom: clamp(40px, 3.13vw, 60px);
  padding-inline: clamp(16px, 12.5vw, 240px);  /* 1920px → 240px → 우측 끝 = x 1680px */
  min-height: auto;
  max-height: none;
  overflow: visible;
}

.store-search__head {
  margin-bottom: clamp(20px, 2.08vw, 40px);
}

.store-search__filters,
.store-search__stage,
.store-search__body {
  max-width: 1440px;
}

.store-search__filters {
  margin-bottom: clamp(14px, 1.25vw, 24px);
}

.store-search__map-wrap {
  max-height: none;
  height: clamp(240px, 25.26vw, 485px);       /* Figma map 1440×485 */
  aspect-ratio: auto;
}

.store-search__store-name,
.store-search__store-addr,
.store-search__keyword input,
.store-search__select select,
.store-search__btn,
.store-search__search-input input {
  font-family: var(--font-paperlogy);
}

.store-search__store-name {
  font-weight: 700;
  font-size: var(--type-b1);
  line-height: 1.25;
}

.store-search__store-addr {
  font-size: var(--type-b2);
  line-height: 1.45;
}

@media (max-width: 1024px) {
  .store-interior,
  .store-search {
    padding-top: var(--section-y-md);
    padding-bottom: var(--section-y-md);
  }

  .store-interior {
    margin-top: 0;
  }

  .store-interior__deco {
    object-fit: fill;
    object-position: center;
  }

  /* 타이틀·서브카피 아래 캐러셀 — 태블릿에서 40px 하향 (541~767px, 768+는 flex 블록) */
  .interior-carousel {
    top: clamp(220px, calc(16.98vw + 40px), 366px);
  }

  /* STORE SEARCH 필터 — 긴 라벨(점포유형) + chevron 겹침 방지 */
  .store-search__select {
    flex-shrink: 0;
  }

  .store-search__select select {
    padding: 9px 42px 9px 22px;
    font-size: 16px;
    white-space: nowrap;
  }

  .store-search__select select[data-filter-type] {
    min-width: 10.8em;
  }
}

/* ---------- ≤767px : 소형 태블릿 (Figma 1308:152 — 768×582, 768px은 아래 768~1024 블록) ---------- */
@media (max-width: 767px) and (min-width: 541px) {
  /* 541~767px: 타이틀↔서브카피 간격을 8px로 고정 */
  .store-interior__head {
    position: relative;
    z-index: 3;
    inset: auto;
    top: auto;
    left: auto;
    right: auto;
    width: 100%;
    margin: 0;
    padding-inline: var(--site-gutter);
    padding-top: clamp(60px, 10.42vw, 80px);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 8px;
    pointer-events: none;
  }

  .store-interior {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    height: clamp(520px, 75.78vw, 582px);
    min-height: clamp(520px, 75.78vw, 582px);
    max-height: clamp(520px, 75.78vw, 582px);
  }

  /* 541~767px: 캐러셀을 flow로 내려 타이틀과 겹침 방지 */
  .interior-carousel {
    position: relative;
    top: auto;
    left: auto;
    right: auto;
    width: 100%;
    margin-top: 24px;
    gap: 24px;
  }

  .interior-carousel__viewport {
    height: clamp(240px, 34vw, 280px);
    min-height: 240px;
    --slide-width: clamp(420px, 78vw, 520px);
    --slide-gap: 14px;
  }

  /* INTERIOR 텍스트 — Figma 1308:153: Ria Bold 36px */
  .store-interior .store-interior__title {
    font-size: clamp(28px, 4.69vw, 36px) !important;
    position: static;
    top: auto !important;
    margin: 0;
  }

  /* 서브카피 — Figma 1308:157: Paperlogy Regular 20px */
  .store-interior__sub {
    font-size: clamp(16px, 2.6vw, 20px) !important;
    position: static;
    top: auto !important;
    margin: 0;
  }

  .interior-carousel__dots {
    gap: 16px;
  }
}

/* ---------- 태블릿 768~1024 : INTERIOR 472×216, 가운데+좌우 peek(3장) ---------- */
@media (min-width: 768px) and (max-width: 1024px) {
  .store-interior {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    margin-top: 0;
    padding: 0;
    height: 582px;
    min-height: 582px;
    max-height: 582px;
    overflow-x: clip;
    overflow-y: hidden;
  }

  /* 타이틀 영역 — flex 흐름(absolute 시 캐러셀에 가려짐 방지) */
  .store-interior__head {
    position: relative;
    z-index: 3;
    inset: auto;
    top: auto;
    left: auto;
    right: auto;
    width: 100%;
    max-width: 100%;
    margin: 0 auto 24px;
    padding: 0 var(--site-gutter, 24px);
    gap: 8px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    flex-shrink: 0;
    pointer-events: none;
  }

  .store-interior .store-interior__title {
    position: static;
    top: auto !important;
    font-size: clamp(28px, 4.69vw, 36px) !important;
    font-weight: 700 !important;
    line-height: 1;
    width: 100%;
    text-align: center;
    margin: 0;
  }

  .store-interior__sub {
    position: static;
    top: auto !important;
    font-size: clamp(16px, 2.6vw, 20px) !important;
    font-weight: 400 !important;
    line-height: 1.4;
    padding: 0;
    max-width: 100%;
    text-align: center;
    margin: 0;
  }

  .interior-carousel {
    position: relative;
    z-index: 2;
    top: auto;
    left: auto;
    right: auto;
    width: 100%;
    max-width: none;
    margin-inline: 0;
    padding-inline: 0;
    align-self: stretch;
    flex-shrink: 0;
    gap: 35px;
  }

  .interior-carousel__viewport {
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
    height: 216px;
    min-height: 216px;
    aspect-ratio: unset;
    --slide-width: 472px;
    --slide-gap: 14px;
    overflow: hidden;
  }

  .interior-carousel__track {
    padding-left: 0;
    padding-right: 0;
  }

  .interior-carousel__slide {
    flex: 0 0 472px;
    width: 472px;
    height: 216px;
    aspect-ratio: unset;
    border-radius: 22px;
  }

  .interior-carousel__slide img {
    object-fit: cover;
  }
}

/* =========================================================
   STORE — Footer (모바일만 숨김, 태블릿·PC 노출)
   ========================================================= */
@media (max-width: 540px) {
  body.store-page .poppi-footer-wrap {
    display: none !important;
  }
}

/* =========================================================
   ★ ≤540px : 모바일 (Figma 1295:114 — 402×1959 정밀 매칭) ★
   ========================================================= */
@media (max-width: 540px) {
  /* INTERIOR 섹션 — Figma 402×548 */
  .store-interior {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    box-sizing: border-box;
    margin-top: 0;
    padding: 54px 0 28px;
    width: 100%;
    height: auto;
    min-height: 548px;
    max-height: none;
    overflow-x: hidden;
    overflow-y: visible;
  }

  .store-interior__deco {
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: fill;
    object-position: center;
    z-index: 1;
  }

  /* 타이틀 영역 — 상 54px(섹션 padding), 타이틀↔서브 8px, 하단 24px */
  .store-interior__head {
    position: relative;
    z-index: 3;
    top: auto;
    left: auto;
    right: auto;
    inset: auto;
    width: 100%;
    max-width: 370px;
    margin: 0 auto 24px;
    padding: 0 16px;
    gap: 8px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    flex-shrink: 0;
    pointer-events: none;
  }

  .store-interior .store-interior__title {
    position: static;
    top: auto !important;
    font-size: 32px !important;
    font-weight: 700 !important;
    line-height: 1;
    width: 100%;
    text-align: center;
    margin: 0;
  }

  .store-interior__sub {
    position: static;
    top: auto !important;
    font-size: 15px !important;
    font-weight: 400 !important;
    line-height: 1.4;
    padding: 0;
    max-width: 100%;
    text-align: center;
    margin: 0;
  }

  /* 캐러셀 — 242×263 고정, 가운데 활성 + 좌우 peek(반쯤 잘림 허용) */
  .interior-carousel {
    position: relative;
    top: auto;
    left: auto;
    right: auto;
    z-index: 2;
    width: 100%;
    max-width: none;
    margin-inline: 0;
    padding-inline: 0;
    box-sizing: border-box;
    flex: 0 1 auto;
    align-items: center;
    align-self: stretch;
    gap: 35px;
  }

  .interior-carousel__viewport {
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
    height: 263px;
    min-height: 263px;
    aspect-ratio: unset;
    --slide-width: 242px;
    --slide-gap: 12px;
    overflow: hidden;
  }

  .interior-carousel__track {
    padding-left: 0;
    padding-right: 0;
  }

  .interior-carousel__slide {
    flex: 0 0 242px;
    width: 242px;
    height: 263px;
    aspect-ratio: unset;
    border-radius: 22px;
  }

  .interior-carousel__slide img {
    object-fit: cover;
  }

  /* 도트 — Figma (134,520) gap 28.7 → 모바일 12px */
  .interior-carousel__dots {
    gap: 12px;
    margin-top: 0;
    height: 18px;
    justify-content: center;
    width: 100%;
  }

  .interior-carousel__dot {
    width: 18px;
    height: 18px;
  }

  .interior-carousel__dot::before {
    width: 10px;
    height: 10px;
  }

  .interior-carousel__dot.is-active::before { opacity: 0; }
  .interior-carousel__dot.is-active::after  { opacity: 1; }

  /* STORE SEARCH — 모바일 바텀시트 (지도 상단 + 스와이프 업 패널) */
  .store-search {
    padding: 0;
    overflow: hidden;
  }

  .store-search__sheet {
    display: flex;
  }

  .store-search__sheet-handle {
    display: block;
  }

  .store-search__stage {
    position: relative;
    width: 100%;
    max-width: none;
    /* 지도가 세로 대부분 차지 → 시트는 지도 위에 겹침 (던킨 매장찾기) */
    height: clamp(580px, 86svh, 820px);
    min-height: 580px;
    margin: 0;
  }

  .store-search__map-body {
    position: absolute;
    inset: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
  }

  .store-search__map-wrap {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    border-radius: 0;
  }

  .store-search__map-wrap .store-search__map {
    width: 100%;
    height: 100%;
  }

  .store-search__sheet {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 10;
    display: flex;
    flex-direction: column;
    height: var(--store-sheet-h, 320px);
    max-height: 94%;
    background: #ffffff;
    border-radius: 20px 20px 0 0;
    box-shadow: 0 -6px 28px rgba(76, 54, 48, 0.14);
    transition: height 0.34s cubic-bezier(0.32, 0.72, 0, 1);
    overflow: hidden;
  }

  .store-search__sheet.is-dragging {
    transition: none;
  }

  .store-search__sheet.is-expanded {
    max-height: 94%;
  }

  .store-search__sheet-handle {
    flex: 0 0 auto;
    width: 100%;
    padding: 10px 0 4px;
    margin: 0;
    border: 0;
    background: transparent;
    cursor: grab;
    touch-action: none;
  }

  .store-search__sheet-handle::before {
    content: "";
    display: block;
    width: 44px;
    height: 5px;
    margin: 0 auto;
    background: #d4c8be;
    border-radius: 999px;
  }

  .store-search__sheet-handle:active {
    cursor: grabbing;
  }

  .store-search__sheet-scroll {
    flex: 1 1 auto;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding: 0 16px 24px;
    overscroll-behavior: contain;
  }

  /* 접힌 상태 — 필터·버튼만 보이고 매장 목록은 펼친 뒤 노출 */
  .store-search__sheet:not(.is-expanded) .store-search__sheet-scroll {
    overflow-y: hidden;
  }

  .store-search__sheet:not(.is-expanded) .store-search__list {
    visibility: hidden;
    pointer-events: none;
  }

  .store-search .store-search__title {
    font-size: 28px;
  }

  .store-search__head {
    margin-bottom: 16px;
    text-align: center;
  }

  .store-search__filters {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    flex-wrap: wrap;
    justify-content: stretch;
    align-items: stretch;
    max-width: 100%;
    margin-bottom: 12px;
  }

  .store-search__select {
    display: flex;
    width: 100%;
    min-width: 0;
  }

  .store-search__select select {
    width: 100%;
    min-width: 0;
    padding: 12px 36px 12px 14px;
    font-size: 14px;
    font-weight: 500;
    border-radius: 10px;
    border-width: 1px;
    border-color: #e0d5cc;
    color: var(--brown-dark);
    white-space: nowrap;
    text-overflow: ellipsis;
  }

  .store-search__select select[data-filter-type] {
    min-width: 0;
  }

  .store-search__select::after {
    right: 14px;
  }

  .store-search__select:nth-of-type(3) {
    grid-column: 1 / -1;
  }

  /* 필터 행 안으로 옮겨진 "내 주변 매장" 버튼
     → 모바일에선 2-col 그리드의 한 행 전체를 채움. */
  .store-search__filters .store-search__btn {
    grid-column: 1 / -1;        /* 전체 행 span */
    width: 100%;
    padding: 12px 16px;          /* select 모바일 padding 과 매칭 */
    font-size: 15px;
    font-weight: 500;
    border-radius: 10px;
    border-width: 1px;           /* select 모바일 border 1px 매칭 */
    line-height: 1.2;
  }

  .store-search__list {
    position: relative;
    left: auto;
    top: auto;
    width: 100%;
    max-width: 100%;
    max-height: none;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
    overflow: visible;
  }

  .store-search__search-input {
    display: none;
  }

  .store-search__store-list {
    max-height: none;
    border-top: 1px solid #ecd9cf;
  }

  .store-search__store-item {
    padding: 16px 4px;
    gap: 8px;
    border-bottom-color: #ecd9cf;
  }

  .store-search__store-item.is-active {
    background: rgba(253, 226, 207, 0.35);
  }

  .store-search__store-name {
    font-family: var(--font-paperlogy);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.35;
    gap: 0;
    color: var(--brown-dark);
  }

  .store-search__store-name .store-search__store-icon {
    display: none;
  }

  .store-search__store-addr {
    font-size: 13px;
    font-weight: 400;
    line-height: 1.5;
    gap: 0;
    color: #6b5348;
    padding-left: 0;
  }

  .store-search__store-addr .store-search__store-icon {
    display: none;
  }
}

/* STORE SEARCH — 태블릿·PC: 제목 → 필터 → 지도 + 좌측 리스트 오버레이 (모바일 시트 비활성) */
@media (min-width: 541px) {
  .store-search {
    padding-top: clamp(60px, 6.77vw, 130px);
    padding-bottom: clamp(40px, 3.13vw, 60px);
    padding-inline: clamp(16px, 12.5vw, 240px);
  }

  .store-search__stage {
    display: grid;
    grid-template-areas:
      "head"
      "filters"
      "map";
    grid-template-rows: auto auto minmax(clamp(240px, 25.26vw, 485px), auto);
    height: auto !important;
    min-height: 0 !important;
  }

  .store-search__sheet {
    display: contents;
  }

  .store-search__sheet-handle {
    display: none !important;
  }

  .store-search__sheet-scroll {
    display: contents;
  }

  .store-search__head {
    grid-area: head;
    text-align: center;
    margin: 0 auto clamp(20px, 2.08vw, 40px);
  }

  .store-search__filters {
    grid-area: filters;
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-end;
    gap: clamp(10px, 1.04vw, 16px);
    align-items: center;
    max-width: 1440px;
    width: 100%;
    margin: 0 auto clamp(14px, 1.25vw, 24px);
  }

  .store-search__select {
    display: inline-flex;
    width: auto;
    min-width: 0;
  }

  .store-search__select select {
    width: auto;
    min-width: 0;
    padding: 10px 48px 10px 30px;
    font-size: clamp(15px, 1.04vw, 20px);
    border-width: 2px;
    border-color: #ED6325;
    border-radius: 999px;
    color: #ED6325;
  }

  .store-search__select select[data-filter-type] {
    min-width: 10.8em;
  }

  /* .store-search__keyword* / .store-search__actions 룰은 HTML 에서 제거됐으므로
     태블릿 미디어쿼리의 잔여 정의도 함께 제거. 새 버튼(.store-search__btn--primary) 은
     베이스 정의로 충분히 정상 표시됨. */

  .store-search__map-body {
    grid-area: map;
    position: relative;
    width: 100%;
    min-height: clamp(240px, 25.26vw, 485px);
    height: clamp(240px, 25.26vw, 485px);
  }

  .store-search__map-wrap {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border-radius: 25px;
    margin: 0;
  }

  .store-search__list {
    grid-area: map;
    position: absolute;
    left: 20px;
    top: 20px;
    width: 380px;
    max-width: calc(100% - 40px);
    max-height: calc(100% - 40px);
    margin: 0;
    padding: 20px;
    border: 3px solid var(--apricot-bg);
    border-radius: 25px;
    background: #ffffff;
    box-shadow: 0 8px 24px rgba(132, 60, 29, 0.08);
    z-index: 3;
    overflow: hidden;
  }

  .store-search__search-input {
    display: block;
  }

  .store-search__store-name {
    font-family: var(--font-ria);
    font-size: 24px;
    font-weight: 700;
    gap: 25px;
  }

  .store-search__store-name .store-search__store-icon {
    display: inline-flex;
  }

  .store-search__store-addr {
    font-size: clamp(14px, 1.04vw, 16px);
    gap: 16px;
  }

  .store-search__store-addr .store-search__store-icon {
    display: inline-flex;
  }
}

/* 태블릿 — 지도·리스트 오버레이 (541~1024px, Figma 768×330 → 43vw) */
@media (min-width: 541px) and (max-width: 1024px) {
  .store-search__stage {
    grid-template-rows: auto auto minmax(clamp(232px, 43vw, 485px), auto);
  }

  .store-search__map-body {
    /* 작은 태블릿(541~744)에서 min 320px 강제 시 비율이 너무 두꺼워짐 →
       Figma 비율(768×330 ≈ 0.43) 유지를 위해 232px 까지 허용 */
    min-height: clamp(232px, 43vw, 485px);
    height: clamp(232px, 43vw, 485px);
  }

  .store-search__map-wrap {
    min-height: 100%;
    height: 100%;
    /* 작은 태블릿에서 border-radius 가 map 가장자리를 잘라 보이게 하는 것 방지 */
    border-radius: clamp(12px, 1.5vw, 25px);
  }

  .store-search__list {
    grid-area: map;
    position: absolute;
    top: 16px;
    left: 16px;
    /* 작은 태블릿에서 map height 가 232~330 사이일 때 list 가 map 을 다 가리지 않도록 */
    width: min(300px, calc(50% - 24px));
    max-width: calc(100% - 32px);
    max-height: calc(100% - 32px);
    min-height: 0;
    padding: 16px;
  }
}

/* PC (1020~1920px) — 지도 세로 길이 확대 */
@media (min-width: 1020px) and (max-width: 1920px) {
  .store-search__stage {
    grid-template-rows: auto auto minmax(clamp(420px, 32vw, 640px), auto);
  }

  .store-search__map-body {
    min-height: clamp(420px, 32vw, 640px);
    height: clamp(420px, 32vw, 640px);
  }
}

/* ---------- ≤380px : 초소형 단말 미세 조정 ---------- */
@media (max-width: 380px) {
  .store-interior .store-interior__title {
    font-size: clamp(20px, 6vw, 26px) !important;
  }

  .interior-carousel__dots {
    gap: 10px;
  }
}
