@charset "UTF-8";

/* merge-build.js 산출물 — 납품 시 css/sections/*.css 전량이 이 아래로 합쳐진다. 손으로 쓰지 않는다(CLAUDE.md 원칙 14). */
/* merge-build:dcon01 */
/* dcon01 — 오시는길 지도. .dcon01__map 이 카카오맵 컨테이너(js/location-map.js), 마커는 main_shop 좌표. 모바일 인계: 지도 폭 90vw 정사각 */
.dcon01_iner {
  padding: calc(var(--px)*95) calc(var(--px)*1) calc(var(--px)*16) 0;
}

.dcon01__title {
  margin-top: calc(var(--px)*23);
}

.dcon01__map {
  width: calc(var(--px)*1564);
  aspect-ratio: 1564 / 653;
  margin-top: calc(var(--px)*42);
  overflow: hidden;
  border-radius: calc(var(--px)*20);
  background-color: color-mix(in srgb, var(--primary) 6%, white); /* SDK 로드 전·실패 시 빈 판 */
  box-shadow: 0 0 0 transparent;
  transition: box-shadow .35s ease-out;
}

@media (hover: hover) {
  .dcon01__map:hover {
    box-shadow: 0 calc(var(--px)*4) calc(var(--px)*12) color-mix(in srgb, var(--primary) 28%, transparent); /* 섹션 overflow:hidden 하단 여유 16px 안에서 끝나게 */
  }
}

.dcon01__label-marker {
  padding: calc(var(--px)*8) calc(var(--px)*16);
  margin-bottom: calc(var(--px)*56);
  border-radius: 50vw;
  background-color: var(--primary);
  color: #ffffff;
  font-size: var(--bodyM);
  font-weight: 700;
  white-space: nowrap;
  transform-origin: 50% 100%;
  animation: dcon01-pop .35s cubic-bezier(.2, .9, .3, 1.3);
}

@keyframes dcon01-pop {
  from { opacity: 0; transform: scale(.7); }
  to { opacity: 1; transform: scale(1); }
}

/* FONT:AUTO dcon01 */
/* spec.json 파생 (tools/spec-font-to-css.js · unit=--px) — 재생성 대상, 직접 수정 금지 */
/* 예외: line-height · letter-spacing 는 값을 고치고 뒤에 OVR 주석을 붙이면 재생성이 보존한다 */
.dcon01 {
    text-align: center;
}

.dcon01__label {
    font-family: var(--font-poppins);
    font-size: var(--bodyL);
    font-weight: 700;
    letter-spacing: 0em;
    line-height: 1.44;
    color: #0f3625;
}

.dcon01__title {
    font-family: var(--font-pretendard);
    font-size: var(--titleXL);
    font-weight: 800;
    letter-spacing: -0.05em;
    line-height: 1.2;
    color: #000000;
}

.dcon01__title-accent {
    color: #0f3625;
}
/* /FONT:AUTO dcon01 END */

/* INK:AUTO dcon01 */
.dcon01__title { margin-top: calc(var(--px) * 15.5); margin-bottom: calc(var(--px) * -7.5); } /* base 23,0 */
.dcon01__title-accent { margin-top: calc(var(--px) * -7.5); margin-bottom: calc(var(--px) * -6.5); } /* base 0,0 */
.dcon01__label { margin-top: calc(var(--px) * -6.46); margin-bottom: calc(var(--px) * -5.45); } /* base 0,0 */
/* /INK:AUTO dcon01 END */

@media (max-width:599px) {
  .dcon01_iner {
    padding: 14.9333vw 0 2.1333vw 0;
  }

  .dcon01__label {
    margin-top: 0;
    margin-bottom: 0;
  }

  .dcon01__title {
    margin-top: 3.2vw;
    margin-bottom: 0;
  }

  .dcon01__map {
    width: 90vw;
    aspect-ratio: 1 / 1;
    margin-top: 6.4vw;
    border-radius: 3.2vw;
  }

  .dcon01 .map-touch-lock {
    border-radius: 3.2vw; /* 지도 판 모서리와 맞춤 — 잠금 오버레이는 지도 밖 형제라 overflow 로 안 깎임 */
  }

  .dcon01__label-marker {
    padding: 1.6vw 3.2vw;
    margin-bottom: 11.7333vw;
  }

}

/* /merge-build:dcon01 */
/* merge-build:dcon02 */
/* dcon02 — 지점 검색 + 아코디언 목록 (게시판 main_shop 연동: .dcon02__item 이 글 1건 단위, 펼침 상태 = .is-open) */
.dcon02 {
  background-color: white;
}

.dcon02_iner {
  padding-top: calc(var(--px) * 29);
  padding-bottom: calc(var(--px) * 134);
}

.dcon02__board {
  width: calc(var(--px) * 1440);
}

/* 검색 패널 */
.dcon02__search {
  gap: calc(var(--px) * 23);
  padding-block: calc(var(--px) * 43.5);
  background-color: var(--primary);
  border-radius: calc(var(--px) * 20);
}

.dcon02__fields {
  gap: calc(var(--px) * 40);
}

.dcon02__select,
.dcon02__select-value,
.dcon02__input,
.dcon02__submit {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  line-height: inherit;
  color: inherit;
}

.dcon02__field {
  border-bottom: 1px solid color-mix(in srgb, white 30%, transparent);
  transition: border-bottom-color .25s ease-out;
}

/* 클릭 세이프 영역 — 컨트롤이 필드 여백(10)까지 채우고 위아래 8 을 음수 margin 으로 더 넓힘 */
.dcon02__select,
.dcon02__input {
  margin-block: calc(var(--px) * -8);
}

.dcon02__select-value,
.dcon02__input {
  padding-block: calc(var(--px) * 18);
}

.dcon02__field:focus-within {
  border-bottom-color: white;
}

.dcon02__field--region {
  width: calc(var(--px) * 175);
}

.dcon02__field--district {
  width: calc(var(--px) * 295);
}

.dcon02__field--store {
  width: calc(var(--px) * 365);
}

.dcon02__select {
  width: 100%;
  padding-inline: calc(var(--px) * 11) calc(var(--px) * 15);
  text-align: left;
}

.dcon02__select-value {
  flex: 1;
  min-width: 0;
  padding-inline: 0;
  background: none;
  border: 0;
  outline: 0;
  cursor: pointer;
  appearance: none;
  text-overflow: ellipsis;

  &:disabled {
    cursor: default;
    opacity: 1;
  }

  & option {
    color: #000;
    background-color: #fff;
  }
}

.dcon02__chevron {
  flex-shrink: 0;
  pointer-events: none;
  width: calc(var(--px) * 10);
  aspect-ratio: 1;
  margin-bottom: calc(var(--px) * 8);
  border-right: 2px solid color-mix(in srgb, white 55%, transparent);
  border-bottom: 2px solid color-mix(in srgb, white 55%, transparent);
  transform: rotate(45deg);
  transition: rotate .25s ease-out, translate .25s ease-out;
}

.dcon02__field:focus-within .dcon02__chevron {
  rotate: 180deg;
  translate: 0 calc(var(--px) * 4);
}

@media (hover: hover) {
  .dcon02__field:hover:not(:focus-within) {
    border-bottom-color: color-mix(in srgb, white 60%, transparent);
  }
}

.dcon02__input {
  width: 100%;
  padding-inline: calc(var(--px) * 11);
  background: none;
  border: 0;
  outline: 0;
}

.dcon02__input::placeholder {
  color: inherit;
  opacity: 1;
}

.dcon02__submit {
  gap: calc(var(--px) * 4);
  padding: calc(var(--px) * 16.5) calc(var(--px) * 36);
  background-color: var(--secondary);
  border-radius: calc(var(--px) * 15);
  transition: background-color .25s ease-out;
}

.dcon02__submit-icon img {
  transition: transform .3s ease-out;
}

@media (hover: hover) {
  .dcon02__submit:hover {
    background-color: color-mix(in srgb, var(--secondary) 88%, black);
  }

  .dcon02__submit:hover .dcon02__submit-icon img {
    transform: rotate(-12deg) scale(1.12);
  }
}

/* 목록 */
.dcon02__list {
  margin-top: calc(var(--px) * 53);
  border-top: 1px solid var(--primary);
}

.dcon02__item {
  display: flex;
  align-items: center;
  padding: calc(var(--px) * 38) calc(var(--px) * 60) calc(var(--px) * 38) calc(var(--px) * 85);
  border-bottom: 1px solid color-mix(in srgb, var(--primary) 20%, transparent);
  transition: background-color .3s ease-out, box-shadow .3s ease-out;

  &:not(.is-open) {
    cursor: pointer; /* 닫힌 행 전체가 열기 클릭 영역 */
  }

  &.is-open {
    align-items: flex-start;
    padding: calc(var(--px) * 54) calc(var(--px) * 61) calc(var(--px) * 47) calc(var(--px) * 85);
    background-color: #f7f5ea;
  }
}

.dcon02__name {
  gap: calc(var(--px) * 7);
  width: calc(var(--px) * 355);
  padding-bottom: calc(var(--px) * 3);
  padding-left: calc(var(--px) * 45); /* 접힌 행은 핀 자리만큼 들여쓴다 */
  transition: transform .3s ease-out;
}

.dcon02__item.is-open .dcon02__name {
  padding-top: calc(var(--px) * 38);
  padding-left: 0;
}

.dcon02__photo {
  flex-shrink: 0;
  width: calc(var(--px) * 395);
  height: calc(var(--px) * 263); /* HEIGHT: 매장 사진 자리 시안 박스 — 사진 대신 브랜드색 + 로고 플레이스홀더 */
  margin-top: calc(var(--px) * 5);
  overflow: hidden;
  background-color: var(--primary);
  border-radius: calc(var(--px) * 30);
}

.dcon02__photo-logo {
  width: calc(var(--px) * 207);
}

.dcon02__item:not(.is-open) :is(.dcon02__pin, .dcon02__photo, .dcon02__info, .dcon02__toggle-icon--close),
.dcon02__item.is-open :is(.dcon02__addr, .dcon02__toggle-icon--expand) {
  display: none;
}

.dcon02__empty {
  padding-block: calc(var(--px) * 80);
  font-size: var(--bodyL);
  text-align: center;
  border-bottom: 1px solid color-mix(in srgb, var(--primary) 20%, transparent);
}

.dcon02__info {
  align-self: flex-end;
  gap: calc(var(--px) * 20);
  margin-left: calc(var(--px) * 74);
  margin-bottom: calc(var(--px) * 5);
}

.dcon02__info-row {
  display: flex;
  flex-direction: column;
  gap: calc(var(--px) * 9);
  padding-bottom: calc(var(--px) * 5);
}

.dcon02__toggle {
  display: block;
  margin-left: auto;
}

.dcon02__toggle-icon {
  display: block;
  transition: transform .3s ease-out;
}

@media (hover: hover) {
  .dcon02__item:not(.is-open):hover {
    background-color: color-mix(in srgb, #f7f5ea 50%, white);
    box-shadow: inset calc(var(--px) * 6) 0 0 0 var(--primary);
  }

  .dcon02__item:not(.is-open):hover .dcon02__name {
    transform: translateX(3%);
  }

  .dcon02__toggle:hover .dcon02__toggle-icon {
    transform: rotate(90deg);
  }
}

/* 페이지네이션 */
.dcon02__pager {
  gap: calc(var(--px) * 30);
  margin-top: calc(var(--px) * 50);
}

.dcon02__pages {
  gap: calc(var(--px) * 25);
  padding-inline: calc(var(--px) * 17);
}

.dcon02__pager-link,
.dcon02__page {
  transition: opacity .2s ease-out, transform .2s ease-out;
}

@media (hover: hover) {
  .dcon02__pager-link:hover,
  .dcon02__page:hover {
    opacity: .6;
  }

  .dcon02__pager-link--prev:hover,
  .dcon02__pager-link--first:hover {
    transform: translateX(-30%);
  }

  .dcon02__pager-link--next:hover,
  .dcon02__pager-link--last:hover {
    transform: translateX(30%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .dcon02 *,
  .dcon02 *::before,
  .dcon02 *::after {
    transition: none;
  }
}

/* IMG:AUTO dcon02 */
/* 섹션 HTML 파생 (tools/img-size-to-css.js · unit=--px) — 재생성 대상, 직접 수정 금지 */
/* 예외: 값을 고치고 뒤에 OVR 주석을 붙이면 재생성이 보존한다 */
.dcon02__submit-icon {
    width: calc(var(--px)*31);
    aspect-ratio: 31 / 30;
}

.dcon02__pin {
    width: calc(var(--px)*38);
    aspect-ratio: 38 / 38;
}

.dcon02__toggle-icon.dcon02__toggle-icon--close {
    width: calc(var(--px)*39);
    aspect-ratio: 39 / 39;
}

.dcon02__toggle-icon.dcon02__toggle-icon--expand {
    width: calc(var(--px)*42);
    aspect-ratio: 42 / 43;
}

.dcon02__pager-link.dcon02__pager-link--first,
.dcon02__pager-link.dcon02__pager-link--last {
    width: calc(var(--px)*16);
    aspect-ratio: 16 / 13;
}

.dcon02__pager-link.dcon02__pager-link--prev,
.dcon02__pager-link.dcon02__pager-link--next {
    width: calc(var(--px)*8);
    aspect-ratio: 8 / 13;
}
/* /IMG:AUTO dcon02 END */

/* INK:AUTO dcon02 */
.dcon02__info-value.dcon02__info-value--02 { margin-top: calc(var(--px) * -5.49); margin-bottom: calc(var(--px) * -5.49); } /* base 0,0 */
.dcon02__info-value.dcon02__info-value--03 { margin-top: calc(var(--px) * -5.49); margin-bottom: calc(var(--px) * -5.49); } /* base 0,0 */
.dcon02__page-current { margin-top: calc(var(--px) * -6.46); margin-bottom: calc(var(--px) * -3.54); } /* base 0,0 */
.dcon02__page { margin-top: calc(var(--px) * -6.46); margin-bottom: calc(var(--px) * -3.54); } /* base 0,0 */
.dcon02__info-label.dcon02__info-label--01 { margin-top: calc(var(--px) * -5.49); margin-bottom: calc(var(--px) * -4.49); } /* base 0,0 */
.dcon02__info-value.dcon02__info-value--01 { margin-top: calc(var(--px) * -4.49); margin-bottom: calc(var(--px) * -4.49); } /* base 0,0 */
.dcon02__info-label.dcon02__info-label--02 { margin-top: calc(var(--px) * -4.49); margin-bottom: calc(var(--px) * -4.49); } /* base 0,0 */
.dcon02__info-label.dcon02__info-label--03 { margin-top: calc(var(--px) * -4.49); margin-bottom: calc(var(--px) * -4.49); } /* base 0,0 */
.dcon02__name-text { margin-top: calc(var(--px) * -4); margin-bottom: calc(var(--px) * -3); } /* base 0,0 */
.dcon02__select-value { margin-top: calc(var(--px) * -2.3); margin-bottom: calc(var(--px) * -2.29); } /* base 0,0 */
/* /INK:AUTO dcon02 END */

@media (max-width: 599px) {
  .dcon02_iner {
    padding-top: 4.2667vw;
    padding-bottom: 17.0667vw;
    padding-inline: 5.3333vw;
  }

  .dcon02__board {
    width: 100%;
  }

  .dcon02__search {
    flex-direction: column;
    align-items: stretch;
    gap: 4.2667vw;
    padding-block: 6.4vw;
    padding-inline: 5.3333vw;
    border-radius: 4.2667vw;
  }

  .dcon02__fields {
    flex-direction: column;
    align-items: stretch;
    gap: 4.2667vw;
  }

  .dcon02__field--region,
  .dcon02__field--district,
  .dcon02__field--store {
    width: 100%;
  }

  .dcon02__select,
  .dcon02__input {
    margin-block: -2.1333vw;
    padding-inline: 2.1333vw;
  }

  .dcon02__select-value,
  .dcon02__input {
    padding-block: 5.3333vw;
  }

  .dcon02__chevron {
    width: 2.1333vw;
    margin-bottom: 1.0667vw;
  }

  .dcon02__submit {
    gap: 1.0667vw;
    padding: 3.2vw 6.4vw;
    border-radius: 3.2vw;
  }

  .dcon02__list {
    margin-top: 8.5333vw;
  }

  .dcon02__item,
  .dcon02__item.is-open {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    row-gap: 2.1333vw;
    padding: 6.4vw 4.2667vw;
  }

  .dcon02__item.is-open {
    row-gap: 4.2667vw;
  }

  .dcon02__name {
    grid-column: 1;
    grid-row: 1;
    width: auto;
    gap: 1.0667vw;
    padding-bottom: 0;
    padding-left: 0;
  }

  .dcon02__item.is-open .dcon02__name {
    padding-top: 0;
  }

  .dcon02__addr {
    grid-column: 1;
    grid-row: 2;
  }

  .dcon02__toggle {
    grid-column: 2;
    grid-row: 1 / span 2;
  }

  .dcon02__item.is-open .dcon02__toggle {
    grid-row: 1;
  }

  .dcon02__photo,
  .dcon02__info {
    grid-column: 1 / -1;
  }

  .dcon02__photo {
    width: 100%;
    height: auto;
    aspect-ratio: 395 / 263;
    margin-top: 0;
    border-radius: 5.3333vw;
  }

  .dcon02__photo-logo {
    width: 46.6667vw;
  }

  .dcon02__info {
    align-self: auto;
    gap: 3.2vw;
    margin-left: 0;
    margin-bottom: 0;
  }

  .dcon02__info-row {
    gap: 1.0667vw;
    padding-bottom: 0.5333vw;
  }

  .dcon02__pager {
    gap: 4.2667vw;
    margin-top: 8.5333vw;
  }

  .dcon02__pages {
    gap: 4.2667vw;
    padding-inline: 3.2vw;
  }

  .dcon02__submit-icon {
    width: 5.3333vw;
  }

  .dcon02__pin {
    width: 6.4vw;
  }

  .dcon02__toggle-icon.dcon02__toggle-icon--close,
  .dcon02__toggle-icon.dcon02__toggle-icon--expand {
    width: 7.4667vw;
  }

  .dcon02__pager-link.dcon02__pager-link--first,
  .dcon02__pager-link.dcon02__pager-link--last {
    width: 4.2667vw;
  }

  .dcon02__pager-link.dcon02__pager-link--prev,
  .dcon02__pager-link.dcon02__pager-link--next {
    width: 2.1333vw;
  }
}

/* FONT:AUTO dcon02 */
/* spec.json 파생 (tools/spec-font-to-css.js · unit=--px) — 재생성 대상, 직접 수정 금지 */
/* 예외: line-height · letter-spacing 는 값을 고치고 뒤에 OVR 주석을 붙이면 재생성이 보존한다 */
.dcon02__search {
    font-family: var(--font-pretendard);
    font-size: var(--bodyL);
    letter-spacing: -0.05em;
    line-height: 1.2;
}

.dcon02__fields {
    font-weight: 400;
    color: #ffffff;
}

.dcon02__submit-text {
    font-weight: 700;
    color: #0f3625;
}

.dcon02__list {
    font-family: var(--font-pretendard);
    color: #000000;
}

.dcon02__name-text {
    font-size: var(--headS);
    font-weight: 700;
    letter-spacing: -0.025em;
    line-height: 1.2;
    text-align: center;
}

.dcon02__info {
    font-size: var(--subheadS);
    letter-spacing: -0.05em;
    line-height: 1.47;
}

.dcon02__info-label {
    font-weight: 800;
}

.dcon02__info-value,
.dcon02__page {
    font-weight: 300;
}

.dcon02__addr {
    font-size: var(--bodyL);
    font-weight: 500;
    letter-spacing: -0.05em;
    line-height: 1.39;
}

.dcon02__pages {
    font-family: var(--font-suit);
    font-size: var(--bodyL);
    letter-spacing: -0.01em;
    line-height: 1.44;
    text-align: center;
    color: #000000;
}

.dcon02__page-current {
    font-weight: 700;
}
/* /FONT:AUTO dcon02 END */

/* /merge-build:dcon02 */
/* merge-build:sub-hero */
/* sub-hero — 서브 공용 히어로(텍스트는 페이지마다 교체). 모바일 인계: 판 폭 100% 로 줄이고 세로 1열 그대로 */
.sub-hero_iner {
  padding: calc(var(--hd-h) + 1px) 0 calc(var(--px)*20); /* 고정 헤더 높이만큼 비움 */
}

.sub-hero_box {
  position: relative;
  width: calc(var(--px)*1800);
  border-radius: calc(var(--px)*40);
  overflow: hidden;
}

.sub-hero_box_iner {
  padding: calc(var(--px)*159) 0 calc(var(--px)*175.02);
}

.sub-hero__crumb-list {
  gap: calc(var(--px)*13);
  padding-right: calc(var(--px)*26);
}

.sub-hero__home-link {
  display: block;
  transition: transform .25s ease-out;
}

/* 홈 아이콘 hover·focus 확대 (CSS 레인) */
@media (hover:hover) {
  .sub-hero__home-link:hover { transform: scale(1.15) rotate(-8deg); }
}
.sub-hero__home-link:focus-visible { transform: scale(1.15) rotate(-8deg); }

.sub-hero__crumb-sep {
  opacity: 0.33;
}

.sub-hero__title {
  margin-top: calc(var(--px)*29);
}

.sub-hero__desc {
  margin-top: calc(var(--px)*36);
}

/* IMG:AUTO sub-hero */
/* 섹션 HTML 파생 (tools/img-size-to-css.js · unit=--px) — 재생성 대상, 직접 수정 금지 */
/* 예외: 값을 고치고 뒤에 OVR 주석을 붙이면 재생성이 보존한다 */
.sub-hero__home-img {
    width: calc(var(--px)*31);
    aspect-ratio: 31 / 31;
}
/* /IMG:AUTO sub-hero END */

/* FONT:AUTO sub-hero */
/* spec.json 파생 (tools/spec-font-to-css.js · unit=--px) — 재생성 대상, 직접 수정 금지 */
/* 예외: line-height · letter-spacing 는 값을 고치고 뒤에 OVR 주석을 붙이면 재생성이 보존한다 */
.sub-hero__crumb-list {
    font-size: var(--bodyL);
    font-weight: 600;
    letter-spacing: -0.02em;
    line-height: 1;
    color: #000000;
}

.sub-hero__crumb-sep {
    font-family: var(--font-suit);
}

.sub-hero__crumb-current {
    font-family: var(--font-poppins);
}

.sub-hero__title {
    font-family: var(--font-poppins);
    font-size: calc(var(--px)*70.03);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.07;
    color: #0f3625;
}

.sub-hero__desc {
    font-family: var(--font-pretendard);
    font-size: var(--bodyXL);
    font-weight: 500;
    letter-spacing: -0.05em;
    line-height: 1.45;
    color: #222222;
}
/* /FONT:AUTO sub-hero END */

/* INK:AUTO sub-hero */
.sub-hero__title { margin-top: calc(var(--px) * 18.03); margin-bottom: calc(var(--px) * -11.96); } /* base 29,0 */
.sub-hero__desc { margin-top: calc(var(--px) * 30.5); margin-bottom: calc(var(--px) * -5.5); } /* base 36,0 */
.sub-hero__crumb-current { margin-top: calc(var(--px) * -2.5); margin-bottom: calc(var(--px) * -1.5); } /* base 0,0 */
.sub-hero__crumb-sep { margin-top: calc(var(--px) * -1.5); margin-bottom: calc(var(--px) * -1.5); } /* base 0,0 */
/* /INK:AUTO sub-hero END */

@media (max-width:599px) {
  .sub-hero_iner { padding-bottom: 3.2vw; }
  .sub-hero_box { width: 91.4667vw; border-radius: 6.4vw; }
  .sub-hero_box_iner { padding: 12.8vw 5.3333vw; word-break: keep-all; }
  .sub-hero__crumb-list { gap: 2.1333vw; padding-right: 4.2667vw; }
  .sub-hero__home-img { width: 5.3333vw; }
  .sub-hero__title { font-size: var(--displayS); margin-top: 4.2667vw; margin-bottom: 0; }
  .sub-hero__desc { margin-top: 4.2667vw; margin-bottom: 0; text-wrap: balance; }
}

/* /merge-build:sub-hero */