@charset "UTF-8";
@import url("./vweb-anim.css");

/* section 의 overflow·width·font-family, section img 폭은 common.css 가 소유한다 */
section {
  font-weight: 300;
  font-size: var(--bodyL);
  letter-spacing: -0.04vw;
}

/* 마커디자인 */
.map_marker {
  position: relative;
  display: inline-block;
}

/* 말풍선 텍스트 박스 */
.map_marker_text {
  background: #513f20;
  border: 1px solid #fff;
  padding: calc(var(--px) * 9) calc(var(--px) * 19);
  border-radius: 100px;
  font-size: var(--bodyXS);
  font-weight: 500;
  color: #fff;
  white-space: nowrap;
  box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.1);
}

/* 말풍선 꼬리 (삼각형 테두리) */
.map_marker_tail {
  position: absolute;
  bottom: -8px;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-top: 8px solid #fff;
}

/* 말풍선 꼬리 내부 (흰색 채우기) */
.map_marker_tail::after {
  content: "";
  position: absolute;
  top: -9px;
  left: -7px;
  border-left: 7px solid transparent;
  border-right: 7px solid transparent;
  border-top: 7px solid #513f20;
}

/* 퍼블시작 */

/* ===== 모바일 지도 터치 잠금 오버레이 (md/map_zoom_control.md §3) ===== */
.map-touch-lock-parent {
  position: relative;
}

.map-touch-lock {
  position: absolute;
  z-index: 30;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0;
  padding: 0;
  color: #fff;
  background: rgba(0, 0, 0, 0.58);
  border: 0;
  box-sizing: border-box;
  text-align: center;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  touch-action: pan-y;
}

.map-touch-lock-text {
  display: block;
  padding: 0 calc(var(--px) * 20);
  font-size: var(--bodyM);
  font-weight: 700;
  line-height: 1.3;
  word-break: keep-all;
}

.is-map-touch-unlocked .map-touch-lock {
  opacity: 0;
  pointer-events: none;
}

/* ===== MAIN: 메인비주얼 ===== */
.main {
  margin-top: calc(var(--px)*122);
  overflow-x: clip;
  overflow-y: visible;
}

.main__brand-mark img,
.main__menu-item img,
.main__visual-slide img {
  display: block;
}

/* 자연폭 1920 복원 = 스케일 1.0 — inset:0 로 1905 에 묶이면 cover 가 세로를 crop 한다 */
.main__bg {
  left: calc(var(--px)*-8);
  right: auto;
  top: calc(var(--px)*-122);
  bottom: auto;
  width: calc(var(--px)*1920);
  height: auto;
}

.main_iner {
  flex-direction: column;
  align-items: center;
  padding: calc(var(--px)*164) 0 calc(var(--px)*171) 0;
  gap: calc(var(--px)*18);
}

/* 잉크 실측 — mark↔title 실간격 20 (gap 18 + 2) */
.main__title {
  margin-top: calc(var(--px)*2);
}

/* title·lead 하강분 2 를 상쇄 — desc 는 시안과 이미 일치 */
.main__desc {
  margin-top: calc(var(--px)*50);
  opacity: .502;
}

.main__menu-flow {
  left: calc(var(--px)*-172);
  bottom: calc(var(--px)*262);
  width: calc(var(--px)*776);
  overflow: visible;
  mask-image: linear-gradient(to right, #000 calc(var(--px)*442), rgba(0, 0, 0, .68) calc(var(--px)*549), rgba(0, 0, 0, .44) calc(var(--px)*597), rgba(0, 0, 0, .22) calc(var(--px)*645), rgba(0, 0, 0, .06) calc(var(--px)*693), transparent calc(var(--px)*757));
  -webkit-mask-image: linear-gradient(to right, #000 calc(var(--px)*442), rgba(0, 0, 0, .68) calc(var(--px)*549), rgba(0, 0, 0, .44) calc(var(--px)*597), rgba(0, 0, 0, .22) calc(var(--px)*645), rgba(0, 0, 0, .06) calc(var(--px)*693), transparent calc(var(--px)*757));
}

/* 마퀴 흐름 트랙 — mask 는 .main__menu-flow 소유, 이동은 트랙만. 복제 1벌은 js/animation.js prepMarquee */
.main__menu-track {
  align-items: center;
  width: max-content;
  animation: v-marquee-half 20s infinite linear;
}

/* 간격을 flex gap 이 아니라 margin 으로 갖는다 — 아이템 박스가 자기 뒤 간격을 포함해야 -50% 가 주기와 정확히 맞는다 */
.main__menu-item {
  margin-right: calc(var(--px)*31.5);
}

.main__visual {
  right: calc(var(--px)*53);
  top: calc(var(--px)*65);
  width: calc(var(--px)*387);
  aspect-ratio: 387 / 641;
  overflow: hidden;
  border-radius: calc(var(--px)*20);
}

/* 라이브러리 v-marquee-y 는 -100% 라 2벌 복제 전제와 안 맞는다 — 세로 half 는 미포함이라 섹션 로컬 */
@keyframes main-visual-half {
  from { transform: translateY(0); }
  to { transform: translateY(-50%); }
}

.main__visual-track {
  flex-direction: column;
  align-items: stretch;
  width: 100%;
  animation: main-visual-half 40s infinite linear;
}

/* con01 */
.con01_iner {
  flex-direction: column;
  padding-bottom: calc(var(--px) * 92);
}

/* 래퍼 aspect-ratio 를 inline img 의 baseline descender 가 밀어내는 것 차단 */
.con01__divider-mark img,
.con01__hero-photo img,
.con01__hero-emblem img,
.con01__quote-glow img {
  display: block;
}

.con01__ribbon {
  width: 100%;
  padding: calc(var(--px) * 16) 0 calc(var(--px) * 15);
  background: linear-gradient(to right, #e6c286 0%, #d6ae73 16%, #fcf9cc 52%, #e0bf89 100%);
}

.con01__divider {
  gap: calc(var(--px) * 30);
  width: 100%;
  margin-top: calc(var(--px) * 16);
}

.con01__divider-rule {
  width: calc(var(--px) * 904);
  height: 4px;
  border-top: 1px solid rgba(81, 63, 32, .302);
  border-bottom: 1px solid rgba(81, 63, 32, .302);
}

.con01__lead {
  margin-top: calc(var(--px) * 86);
}

.con01__hero-photo {
  margin-top: calc(var(--px) * 31);
  overflow: hidden;
  border-radius: calc(var(--px) * 20);
}

/* Swiper 래퍼는 PC 에서 박스를 만들지 않아 quote absol 포함블록이 .con01_iner 로 유지된다 */
.con01__quotes,
.con01__quotes-track {
  display: contents;
}

.con01__quote {
  position: absolute;
  opacity: .4;
  transition: opacity .6s ease;
}

.con01__quote--active {
  opacity: 1;
}

.con01__quote--kid {
  left: calc(var(--px) * 115);
  top: calc(var(--px) * 513);
}

.con01__quote--parent {
  right: calc(var(--px) * 260);
  top: calc(var(--px) * 531);
}

.con01__quote--body {
  right: calc(var(--px) * 140);
  bottom: calc(var(--px) * 547);
}

.con01__quote--family {
  left: calc(var(--px) * 265);
  bottom: calc(var(--px) * 511);
}

.con01__quote--meal {
  right: calc(var(--px) * 248);
  bottom: calc(var(--px) * 338);
}

.con01__quote--gather {
  left: calc(var(--px) * 215);
  bottom: calc(var(--px) * 335);
}

.con01__hero-emblem {
  position: absolute;
  left: calc(var(--px) * 894);
  bottom: calc(var(--px) * 563);
}

/* 부모가 center 라 offset 없이 static-position 만으로 중앙에 놓인다 */
.con01__quote-glow {
  position: absolute;
  opacity: 0;
  transform: scale(.8);
  transition: opacity .6s ease, transform .6s ease;
}

.con01__quote--active .con01__quote-glow {
  opacity: 1;
  transform: scale(1);
}

.con01__quote-text {
  transition: color .6s ease;
}

/* positioned 인 배경 위로 글씨를 올린다 (z 1) */
.con01__quote-text,
.con01__stat-label,
.con01__stat-value {
  position: relative;
}

.con01__title {
  margin-top: calc(var(--px) * 66);
}

.con01__desc {
  margin-top: calc(var(--px) * 26);
}

.con01__stats {
  align-items: flex-start;
  gap: calc(var(--px) * 24);
  margin-top: calc(var(--px) * 37);
}

.con01__stat {
  position: relative;
  flex-direction: column;
  box-sizing: border-box;
  overflow: hidden;
  width: calc(var(--px) * 236);
  padding: calc(var(--px) * 38) 0 calc(var(--px) * 37);
  background-color: #ffffff;
  border: 1px solid #fadfb4;
  border-radius: calc(var(--px) * 20);
  transition: background-color .6s ease, border-color .6s ease;
}

/* border-width 를 0 으로 없애면 전환이 튄다 — 색만 투명하게 해 두께를 유지한다 */
.con01__stat--active {
  background-color: transparent;
  border-color: transparent;
}

.con01__stat-bg {
  opacity: 0;
  transition: opacity .6s ease;
}

.con01__stat--active .con01__stat-bg {
  opacity: 1;
}

/* FONT:AUTO 의 --phrase(0,2,0) 가 --active(0,2,0) 보다 뒤라 이긴다 — (0,3,0) 으로 되찾는다 */
.con01__stats .con01__stat-label,
.con01__stats .con01__stat-value {
  transition: color .6s ease;
}

.con01__stats .con01__stat--active .con01__stat-label,
.con01__stats .con01__stat--active .con01__stat-value {
  color: #ffffff;
}

/* FONT:AUTO con01 */
/* spec.json 파생 (tools/spec-font-to-css.js · mode=robust unit=px) — 직접 수정 금지 */
.con01__ribbon-text {
    font-family: var(--font-wanted);
    font-size: var(--bodyM);
    font-weight: 600;
    letter-spacing: -0.05em;
    line-height: 1.2;
    text-align: center;
    color: #513f20;
}

.con01__lead {
    font-family: var(--font-kopub-batang);
    font-size: var(--titleXS);
    font-weight: 700;
    letter-spacing: -0.04em;
    line-height: 1.09;
    text-align: center;
    color: #000000;
}

.con01__lead-brand {
    color: #6f452e;
}

.con01__quote-text {
    font-family: var(--font-kopub-batang);
    font-size: var(--headM);
    font-weight: 700;
    letter-spacing: -0.06em;
    line-height: 0.75;
    text-align: center;
    color: #4c2c1b;
}

.con01__quote.con01__quote--active .con01__quote-text {
    font-family: var(--font-kopub-batang);
    font-size: var(--headM);
    font-weight: 700;
    letter-spacing: -0.06em;
    line-height: 0.75;
    text-align: center;
    color: #3b2316;
}

.con01__title {
    font-family: var(--font-wanted);
    font-size: var(--titleL);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.09;
    text-align: center;
    color: #000000;
}

.con01__title-em {
    color: #513f20;
}

.con01__desc {
    font-family: var(--font-wanted);
    font-size: var(--bodyXL);
    font-weight: 500;
    letter-spacing: -0.06em;
    line-height: 1.5;
    text-align: center;
    color: #000000;
}

.con01__stat-label.con01__stat-label--active {
    font-family: var(--font-wanted);
    font-size: var(--bodyL);
    font-weight: 600;
    letter-spacing: -0.06em;
    line-height: 1.67;
    text-align: center;
    color: #ffffff;
}

.con01__stat-value.con01__stat-value--active {
    font-family: var(--font-wanted);
    font-size: var(--titleXS);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.46;
    text-align: center;
    color: #ffffff;
}

.con01__stat {
    font-family: var(--font-wanted);
    text-align: center;
}

.con01__stat-label {
    font-size: var(--bodyL);
    font-weight: 600;
    letter-spacing: -0.06em;
    line-height: 1.67;
    color: #000000;
}

.con01__stat-value.con01__stat-value--phrase {
    font-size: var(--titleXS);
    font-weight: 800;
    letter-spacing: -0.06em;
    line-height: 1.46;
    color: #271b14;
}

.con01__stat-value {
    font-size: var(--titleXS);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.46;
    color: #271b14;
}
/* /FONT:AUTO con01 */

/* IMG:AUTO con02 */
/* layout-spec.json 파생 (tools/img-size-to-css.js · unit=--px) — 직접 수정 금지 */
.con02__hero-band {
    width: calc(var(--px)*639);
    aspect-ratio: 639 / 952;
}

.con02__hero-dish {
    width: calc(var(--px)*871);
    aspect-ratio: 871 / 870;
}

.con02__blossom {
    width: calc(var(--px)*307);
    aspect-ratio: 307 / 262;
}

.con02__head-mark {
    width: calc(var(--px)*23);
    aspect-ratio: 23 / 11;
}

.con02__quote-orn {
    width: calc(var(--px)*80);
    aspect-ratio: 80 / 21;
}

.con02__quote-thumb {
    width: calc(var(--px)*201);
    aspect-ratio: 201 / 141;
}

.con02__compare-fold {
    width: calc(var(--px)*113);
    aspect-ratio: 113 / 539;
}

.con02__ocean-emblem {
    width: calc(var(--px)*37);
    aspect-ratio: 37 / 41;
}
/* /IMG:AUTO con02 */

/* FONT:AUTO con02 */
/* spec.json 파생 (tools/spec-font-to-css.js · mode=robust unit=px) — 직접 수정 금지 */
.con02__head-title {
    font-family: var(--font-wanted);
    font-size: var(--titleL);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.09;
    color: #000000;
}

.con02__head-title-em {
    color: #513f20;
}

.con02__head-desc {
    font-family: var(--font-wanted);
    font-size: var(--bodyXL);
    font-weight: 400;
    letter-spacing: -0.04em;
    line-height: 1.5;
    color: #000000;
}

.con02__lead {
    font-family: var(--font-wanted);
    font-size: var(--headL);
    font-weight: 700;
    letter-spacing: -0.04em;
    line-height: 1.2;
    color: #000000;
}

.con02__compare {
    font-family: var(--font-wanted);
}

.con02__rival-card {
    color: #000000;
}

.con02__rival-title {
    font-size: var(--subheadS);
    font-weight: 700;
    letter-spacing: -0.05em;
    line-height: 1.36;
}

.con02__rival-list {
    font-size: var(--bodyL);
    font-weight: 500;
    letter-spacing: -0.05em;
    line-height: 2.78;
    text-align: center;
}

.con02__brand-card {
    color: #ffffff;
}

.con02__brand-title {
    font-size: var(--subheadL);
    font-weight: 700;
    letter-spacing: -0.05em;
    line-height: 1.36;
}

.con02__brand-list {
    font-size: var(--bodyXL);
    font-weight: 500;
    letter-spacing: -0.05em;
    line-height: 2.78;
    text-align: center;
}

.con02__quote-open {
    font-family: var(--font-kopub-batang);
    font-size: var(--headL);
    font-weight: 700;
    letter-spacing: 0em;
    line-height: 1.18;
    color: #281c15;
}

.con02__quote-close {
    font-family: var(--font-kopub-batang);
    font-size: var(--headL);
    font-weight: 700;
    letter-spacing: 0em;
    line-height: 1.18;
    color: #291d16;
}

.con02__ocean-word {
    font-family: var(--font-wanted);
    font-size: var(--displayL);
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 0.89;
    text-align: right;
    color: #271b14;
}
/* /FONT:AUTO con02 */

/* ===== CON02: 경쟁력 비교 ===== */
.con02 img {
  display: block;
}

/* 좌측 여백은 padding 이 아니라 content 의 margin 이 소유한다 — _iner 는 content-box·width 1905 라 padding 이 폭에 더해져 right 앵커가 화면 밖으로 밀린다 */
.con02_iner {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: calc(var(--px)*164) 0 calc(var(--px)*171);
}

.con02_iner > .con02__hero-band {
  position: absolute;
  left: calc(var(--px)*-8);
  top: 0;
  z-index: 0;
}

.con02_iner > .con02__hero-dish {
  position: absolute;
  left: calc(var(--px)*-8);
  top: calc(var(--px)*-27);
  z-index: 1;
}

.con02_iner > .con02__blossom {
  position: absolute;
  right: calc(var(--px)*115);
  top: calc(var(--px)*62);
}

.con02__side-rule {
  position: absolute;
  right: calc(var(--px)*103);
  top: 0;
  width: calc(var(--px)*11);
  padding-top: calc(var(--px)*1180);
}

.con02__side-rule::before,
.con02__side-rule::after {
  content: "";
  position: absolute;
  top: 0;
  width: 1px;
  height: 100%;
  background-color: rgba(40, 34, 32, 0.2);
}

.con02__side-rule::before {
  left: 0;
}

.con02__side-rule::after {
  left: calc(var(--px)*10);
}

.con02__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: calc(var(--px)*691);
  margin-left: calc(var(--px)*960);
}

.con02__head {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: calc(var(--px)*20);
}

/* 시안 대조 기준값 — FONT:AUTO 의 1.09 는 잉크 bbox 가 아니라 line-box 라 2줄이 8.9px 초과한다 */
.con02__head > .con02__head-title {
  line-height: 1;
}

.con02__content > .con02__head-desc {
  margin-top: calc(var(--px)*39.12);
}

.con02__content > .con02__lead {
  margin-top: calc(var(--px)*167);
}

.con02__content > .con02__compare {
  margin-top: calc(var(--px)*41.41);
  display: flex;
  align-items: center;
  gap: calc(var(--px)*34);
}

.con02__compare > .con02__rival-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: calc(var(--px)*302);
  padding-bottom: calc(var(--px)*31);
  overflow: hidden;
  border-radius: calc(var(--px)*20);
  background-color: #f2ece2;
}

.con02__rival-head {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  padding: calc(var(--px)*23.5) 0;
  border-radius: calc(var(--px)*20) calc(var(--px)*20) 0 0;
  background-color: #a49b8d;
}

.con02__rival-card > .con02__rival-list {
  width: calc(var(--px)*240);
  margin-top: calc(var(--px)*5);
  margin-left: calc(var(--px)*9);
  line-height: 2.731;
}

.con02__rival-item + .con02__rival-item {
  border-top: 1px solid rgba(59, 35, 22, 0.2);
}

.con02__compare > .con02__brand-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: calc(var(--px)*352);
  padding-bottom: calc(var(--px)*36);
  overflow: hidden;
  border-radius: calc(var(--px)*20);
  background-color: #271b14;
}

.con02__brand-head {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  padding: calc(var(--px)*27.3) 0;
  border-radius: calc(var(--px)*20) calc(var(--px)*20) 0 0;
  background-color: #3b2316;
}

.con02__brand-card > .con02__brand-list {
  width: calc(var(--px)*279);
  margin-top: calc(var(--px)*6);
  margin-left: calc(var(--px)*9);
  line-height: 2.863;
}

.con02__brand-item + .con02__brand-item {
  border-top: 1px solid rgba(242, 236, 226, 0.102);
}

.con02_iner > .con02__quote {
  position: absolute;
  left: calc(var(--px)*-183);
  bottom: calc(var(--px)*135);
  width: calc(var(--px)*810);
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: calc(var(--px)*53);
}

.con02__quote-divider {
  display: flex;
  align-items: center;
  gap: calc(var(--px)*22);
}

.con02__quote-rule {
  position: relative;
  width: calc(var(--px)*705);
}

.con02__quote-rule::before,
.con02__quote-rule::after {
  content: "";
  position: absolute;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: rgba(59, 35, 22, 0.2);
}

.con02__quote-rule::before {
  top: 0;
}

.con02__quote-rule::after {
  top: calc(var(--px)*6);
}

.con02__quote-body {
  display: flex;
  align-items: flex-end;
}

.con02__quote-body > .con02__quote-thumb {
  border-radius: calc(var(--px)*10);
  overflow: hidden;
}

/* 세로쓰기 advance 가 KoPubWorld Batang 의 vertical metrics(1.42em) 라 시안 자간으로 되돌린다 */
.con02__quote-body > .con02__quote-open {
  writing-mode: vertical-rl;
  margin-left: calc(var(--px)*27);
  line-height: 0.94;
  letter-spacing: -0.451em;
  word-spacing: 0.451em;
}

.con02__quote-body > .con02__quote-close {
  writing-mode: vertical-rl;
  margin-left: calc(var(--px)*12);
  line-height: 0.94;
  letter-spacing: -0.522em;
  word-spacing: 0.522em;
}

.con02_iner > .con02__compare-fold {
  position: absolute;
  right: calc(var(--px)*582);
  bottom: calc(var(--px)*171);
}

.con02_iner > .con02__ocean-emblem {
  position: absolute;
  right: calc(var(--px)*195);
  bottom: calc(var(--px)*256);
}

.con02__ocean-word--gradient {
  position: absolute;
  right: calc(var(--px)*-13);
  bottom: calc(var(--px)*63);
  width: calc(var(--px)*365);
  white-space: nowrap;
  line-height: 0.811;
  background: linear-gradient(90deg, #271b14 calc(var(--px)*225), #634a3c calc(var(--px)*443));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* IMG:AUTO con01 */
/* layout-spec.json 파생 (tools/img-size-to-css.js · unit=--px) — 직접 수정 금지 */
.con01__divider-mark {
    width: calc(var(--px)*37);
    aspect-ratio: 37 / 41;
}

.con01__hero-photo {
    width: calc(var(--px)*835);
    aspect-ratio: 835 / 393;
}

.con01__quote-glow {
    width: calc(var(--px)*145);
    aspect-ratio: 145 / 145;
}

.con01__hero-emblem {
    width: calc(var(--px)*117);
    aspect-ratio: 117 / 115;
}
/* /IMG:AUTO con01 */

/* IMG:AUTO main */
/* layout-spec.json 파생 (tools/img-size-to-css.js · unit=--px) — 직접 수정 금지 */
.main__brand-mark {
    width: calc(var(--px)*168);
    aspect-ratio: 168 / 155;
}

.main__menu-item--01 {
    width: calc(var(--px)*229);
    aspect-ratio: 229 / 210;
}

.main__menu-item--02 {
    width: calc(var(--px)*257);
    aspect-ratio: 257 / 260;
}

.main__menu-item--03 {
    width: calc(var(--px)*227);
    aspect-ratio: 227 / 211;
}

.main__menu-item--04 {
    width: calc(var(--px)*314);
    aspect-ratio: 314 / 209;
}

.main__menu-item--05 {
    width: calc(var(--px)*336);
    aspect-ratio: 336 / 193;
}

.main__visual-slide {
    width: calc(var(--px)*387);
    aspect-ratio: 387 / 641;
}
/* /IMG:AUTO main */

/* IMG:AUTO con03 */
/* layout-spec.json 파생 (tools/img-size-to-css.js · unit=--px) — 직접 수정 금지 */
.con03__ornament {
    width: calc(var(--px)*37);
    aspect-ratio: 37 / 41;
}
/* /IMG:AUTO con03 */

/* IMG:AUTO con04 */
/* layout-spec.json 파생 (tools/img-size-to-css.js · unit=--px) — 직접 수정 금지 */
.con04__frame {
    width: calc(var(--px)*1781);
    aspect-ratio: 1781 / 618;
}
/* /IMG:AUTO con04 */

/* IMG:AUTO con05 */
/* layout-spec.json 파생 (tools/img-size-to-css.js · unit=--px) — 직접 수정 금지 */
.con05__chart-grid {
    width: calc(var(--px)*690);
    aspect-ratio: 690 / 261;
}

.con05__chart-bars {
    width: calc(var(--px)*541);
    aspect-ratio: 541 / 237;
}

.con05__chart-line {
    width: calc(var(--px)*538);
    aspect-ratio: 538 / 98;
}
/* /IMG:AUTO con05 */

/* IMG:AUTO con06 */
/* layout-spec.json 파생 (tools/img-size-to-css.js · unit=--px) — 직접 수정 금지 */
.con06__chart-graph {
    width: calc(var(--px)*359);
    aspect-ratio: 359 / 422;
}

.con06__dish {
    width: calc(var(--px)*554);
    aspect-ratio: 554 / 554;
}
/* /IMG:AUTO con06 */

/* IMG:AUTO con07 */
/* layout-spec.json 파생 (tools/img-size-to-css.js · unit=--px) — 직접 수정 금지 */
.con07__eyebrow {
    width: calc(var(--px)*240);
    aspect-ratio: 240 / 14;
}

.con07__path-line {
    width: calc(var(--px)*848);
    aspect-ratio: 848 / 212;
}

.con07__path-dot {
    width: calc(var(--px)*17);
    aspect-ratio: 17 / 17;
}

.con07__bonus {
    width: calc(var(--px)*135);
    aspect-ratio: 135 / 135;
}

.con07__dish {
    width: calc(var(--px)*453);
    aspect-ratio: 453 / 1072;
}
/* /IMG:AUTO con07 */

/* IMG:AUTO con08 */
/* layout-spec.json 파생 (tools/img-size-to-css.js · unit=--px) — 직접 수정 금지 */
.con08__menu-photo {
    width: calc(var(--px)*406);
    aspect-ratio: 406 / 310;
}

.con08__corner-top-left,
.con08__corner-top-right,
.con08__corner-bottom-left,
.con08__corner-bottom-right {
    width: calc(var(--px)*215);
    aspect-ratio: 215 / 215;
}
/* /IMG:AUTO con08 */

/* IMG:AUTO con09 */
/* layout-spec.json 파생 (tools/img-size-to-css.js · unit=--px) — 직접 수정 금지 */
.con09__panel-mark {
    width: calc(var(--px)*37);
    aspect-ratio: 37 / 41;
}

.con09__panel-emblem {
    width: calc(var(--px)*139);
    aspect-ratio: 139 / 127;
}

.con09__stat-num {
    width: calc(var(--px)*24);
    aspect-ratio: 24 / 24;
}
/* /IMG:AUTO con09 */

/* IMG:AUTO con10 */
/* layout-spec.json 파생 (tools/img-size-to-css.js · unit=--px) — 직접 수정 금지 */
.con10__map-shape {
    width: calc(var(--px)*472);
    aspect-ratio: 472 / 628;
}

.con10__map-zone--near {
    width: calc(var(--px)*121);
    aspect-ratio: 121 / 121;
}

.con10__map-pin {
    width: calc(var(--px)*23);
    aspect-ratio: 23 / 23;
}

.con10__map-zone--far {
    width: calc(var(--px)*391);
    aspect-ratio: 391 / 391;
}

.con10__brand-mark {
    width: calc(var(--px)*288);
    aspect-ratio: 288 / 26;
}
/* /IMG:AUTO con10 */

/* IMG:AUTO con11 */
/* layout-spec.json 파생 (tools/img-size-to-css.js · unit=--px) — 직접 수정 금지 */
.con11__gallery-item--portrait {
    width: calc(var(--px)*299);
    aspect-ratio: 299 / 398;
}

.con11__gallery-item--landscape {
    width: calc(var(--px)*323);
    aspect-ratio: 323 / 263;
}

.con11__gallery-item--landscape-lg {
    width: calc(var(--px)*444);
    aspect-ratio: 444 / 362;
}
/* /IMG:AUTO con11 */

/* IMG:AUTO con12 */
/* layout-spec.json 파생 (tools/img-size-to-css.js · unit=--px) — 직접 수정 금지 */
.con12__frame {
    width: calc(var(--px)*1829);
    aspect-ratio: 1829 / 797;
}

.con12__backdrop {
    width: calc(var(--px)*761);
    aspect-ratio: 761 / 524;
}

.con12__dish {
    width: calc(var(--px)*689);
    aspect-ratio: 689 / 517;
}

.con12__badge {
    width: calc(var(--px)*350);
    aspect-ratio: 350 / 192;
}

.con12__band-bg {
    width: calc(var(--px)*1920);
    aspect-ratio: 1920 / 349;
}
/* /IMG:AUTO con12 */

/* con12 — 3WAY 매출 구조 */
.con12 {
    background-color: #ffffff;
}

.con12_iner {
    display: flex;
    flex-direction: column;
    padding-top: calc(var(--px)*152);
}

/* line-height = 정본 잉크높이 ÷ font-size — FONT:AUTO(0-1-0) 를 덮으려 0-2-0 */
.con12 .con12__title {
    line-height: 1.009;
}

.con12__frame {
    top: calc(var(--px)*32);
    left: calc(var(--px)*38);
}

.con12__backdrop {
    bottom: calc(var(--px)*267);
    left: calc(var(--px)*572);
    z-index: 1;
}

.con12__dish {
    bottom: calc(var(--px)*214);
    left: calc(var(--px)*608);
    z-index: 3;
}

.con12__node {
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: calc(var(--px)*93);
    aspect-ratio: 1;
    border: 1px solid #fadfb4;
    border-radius: 50%;
    z-index: 4;
    transition: background-color .6s ease, color .6s ease;
}

.con12__node:not(.is-active) {
    background-color: #f2e7d5;
    color: #000000;
}

.con12__node.is-active {
    background-color: #3b2416;
    color: #ffffff;
}

.con12__node--delivery {
    top: calc(var(--px)*287);
    left: calc(var(--px)*906);
}

.con12__node--hall {
    top: calc(var(--px)*518);
    left: calc(var(--px)*530);
}

.con12__node--togo {
    top: calc(var(--px)*518);
    right: calc(var(--px)*532);
}

.con12__stats {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding: calc(var(--px)*221) calc(var(--px)*235) calc(var(--px)*40) calc(var(--px)*231);
}

.con12__note {
    padding: calc(var(--px)*88) calc(var(--px)*56) calc(var(--px)*10);
    z-index: 4;
    font-family: var(--font-wanted);
    font-size: var(--bodyS);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 1.5;
    text-align: right;
    color: rgba(39, 27, 20, .6);
}

.con12__stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--px)*10);
    width: calc(var(--px)*250);
    padding: calc(var(--px)*36) 0 calc(var(--px)*41);
    border-top: 1px solid rgba(39, 27, 20, .5);
    border-bottom: 1px solid rgba(39, 27, 20, .5);
}

.con12__stat-label {
    line-height: 0.95;
}

.con12__stat-value {
    line-height: 0.7167;
}

.con12__badge {
    bottom: calc(var(--px)*215);
    right: calc(var(--px)*489);
    z-index: 4;
}

/* peel 회전은 이 래퍼가 소유 — badge 는 absol 위치·모바일 translateX 를 소유한다 */
.con12__badge-peel {
    width: 100%;
    height: 100%;
}

.con12__band {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: calc(var(--px)*177) 0 calc(var(--px)*89);
    overflow: clip;
    z-index: 2;
}

.con12__band-bg {
    top: 0;
    right: calc(var(--px)*-7);
}

.con12 .con12__band-desc {
    line-height: 1.3;
    z-index: 1;
}

.con13 {
    background-color: #000000;
}

.con13__band-image {
    left: calc(var(--px)*-8);
    right: auto;
    width: calc(var(--px)*1920);
    object-position: 50% 57.8%;
    filter: contrast(1.3213) brightness(0.7568);
}

.con13_iner {
    /* HEIGHT: 흐름 자식 0, 468 은 크롭 확정 디자인값 (STEP 2.5 승인) */
    height: calc(var(--px)*468);
}

/* con15 — 창업비용 */
.con15_iner {
    padding: calc(var(--px)*112) 0 calc(var(--px)*103);
    background-color: #302928;
}

/* 시안대로 블러된 배경 실루엣 — 실제 금액 비노출(000 마스킹) */
.con15__cost-table {
    left: calc(var(--px)*379);
    top: calc(var(--px)*289);
    z-index: 0;
    width: calc(var(--px)*1137);
    table-layout: fixed;
    border-collapse: collapse;
    filter: blur(calc(var(--px)*3));
    user-select: none;
    pointer-events: none;
    font-family: var(--font-wanted);
    font-size: var(--bodyL);
    font-weight: 400;
    letter-spacing: -0.04em;
    line-height: 1;
    color: #ffffff;
    text-align: left;
}

.con15__cost-col--label {
    width: calc(var(--px)*229);
}

.con15__cost-col--price {
    width: calc(var(--px)*176);
}

.con15__cost-col--desc {
    width: calc(var(--px)*732);
}

.con15__cost-table thead th {
    padding: calc(var(--px)*20) 0;
    background-color: #ffefd7;
    color: #302928;
    font-weight: 400;
}

.con15__cost-table thead th:nth-child(1) {
    padding-left: calc(var(--px)*125);
}

.con15__cost-table thead th:nth-child(2) {
    padding-left: calc(var(--px)*77);
}

.con15__cost-table thead th:nth-child(3) {
    padding-left: calc(var(--px)*394);
}

.con15__cost-table tbody th,
.con15__cost-table tbody td {
    padding: calc(var(--px)*10.7) 0 calc(var(--px)*10.7) calc(var(--px)*75);
    border-top: 1px solid rgba(255, 255, 255, .06);
    font-weight: 400;
}

.con15__cost-table tbody th {
    padding-left: calc(var(--px)*51);
}

.con15__cost-table tfoot th,
.con15__cost-table tfoot td {
    padding: calc(var(--px)*19.5) 0;
    background-color: #211918;
    font-weight: 400;
}

.con15__cost-table tfoot th {
    padding-left: calc(var(--px)*93);
}

.con15__cost-table tfoot td:first-of-type {
    padding-left: calc(var(--px)*67);
    font-size: var(--bodyXL);
    font-weight: 700;
    color: #f6e6cb;
}

.con15__consult-frame {
    left: calc(var(--px)*689);
    top: calc(var(--px)*326);
    z-index: 1;
}

.con15__head {
    gap: calc(var(--px)*19);
}

.con15__head-mark img,
.con15__consult-logo img {
    display: block;
}

.con15__head-mark img {
    margin-left: calc(var(--px)*-1);
}

.con15__title {
    margin-bottom: calc(var(--px)*-8.94);
}

.con15__subtitle {
    margin-bottom: calc(var(--px)*-41);
}

.con15__consult-card {
    box-sizing: border-box;
    width: calc(var(--px)*526);
    margin-top: calc(var(--px)*85);
    padding: calc(var(--px)*64) 0 calc(var(--px)*82);
    gap: calc(var(--px)*34);
    z-index: 2;
}

.con15__consult-copy {
    gap: calc(var(--px)*35);
}

.con15__consult-contact {
    gap: calc(var(--px)*11);
}

.con15__consult-label {
    margin-bottom: calc(var(--px)*-15.19);
}

.con15__consult-phone {
    margin-bottom: calc(var(--px)*-25.19);
    /* v-shine-text 기본 base 는 금색 그라디언트 — 정지 상태 색이 시안(#fadfb4)과 달라지므로 원색으로 고정 */
    --shine-base: linear-gradient(#fadfb4, #fadfb4);
}

.con15__consult-desc {
    margin-bottom: calc(var(--px)*-11.16);
}

.con15__recovery-panel {
    width: calc(var(--px)*1129);
    margin-top: calc(var(--px)*104);
    padding: calc(var(--px)*55) 0 calc(var(--px)*50);
    gap: calc(var(--px)*15);
    overflow: hidden;
    border-radius: calc(var(--px)*20);
    background-color: #1a1514;
}

/* layout-spec.json 파생 (tools/img-size-to-css.js · unit=--px) — 직접 수정 금지 */
/* IMG:AUTO con14 */
/* layout-spec.json 파생 (tools/img-size-to-css.js · unit=--px) — 직접 수정 금지 */
.con14__bowl {
    width: calc(var(--px)*410);
    aspect-ratio: 410 / 786;
}

.con14__quote {
    width: calc(var(--px)*42);
    aspect-ratio: 42 / 35;
}

.con14__review-slide {
    width: calc(var(--px)*518);
    aspect-ratio: 518 / 326;
}
/* /IMG:AUTO con14 */

/* IMG:AUTO con15 */
/* layout-spec.json 파생 (tools/img-size-to-css.js · unit=--px) — 직접 수정 금지 */
.con15__consult-frame {
    width: calc(var(--px)*526);
    aspect-ratio: 526 / 474;
}

.con15__head-mark {
    width: calc(var(--px)*80);
    aspect-ratio: 80 / 21;
}

.con15__consult-logo {
    width: calc(var(--px)*138);
    aspect-ratio: 138 / 138;
}
/* /IMG:AUTO con15 */

/* IMG:AUTO con17 */
/* layout-spec.json 파생 (tools/img-size-to-css.js · unit=--px) — 직접 수정 금지 */
.con17__store-more-mark {
    width: calc(var(--px)*36);
    aspect-ratio: 36 / 36;
}

.con17__filter-arrow {
    width: calc(var(--px)*16);
    aspect-ratio: 16 / 10;
}

.con17__search-mark {
    width: calc(var(--px)*31);
    aspect-ratio: 31 / 31;
}

.con17__map-marker {
    width: calc(var(--px)*67);
    aspect-ratio: 67 / 67;
}

.con17__footer-bg {
    width: calc(var(--px)*1920);
    aspect-ratio: 1920 / 48;
}
/* /IMG:AUTO con17 */

/* IMG:AUTO con18 */
/* layout-spec.json 파생 (tools/img-size-to-css.js · unit=--px) — 직접 수정 금지 */
.con18__frame {
    width: calc(var(--px)*1486);
    aspect-ratio: 1486 / 1639;
}

.con18__dish {
    width: calc(var(--px)*958);
    aspect-ratio: 958 / 817;
}

.con18__banner-mark {
    width: calc(var(--px)*37);
    aspect-ratio: 37 / 41;
}
/* /IMG:AUTO con18 */

/* IMG:AUTO con19 */
/* layout-spec.json 파생 (tools/img-size-to-css.js · unit=--px) — 직접 수정 금지 */
.con19__photo {
    width: calc(var(--px)*1358);
    aspect-ratio: 1358 / 906;
}

.con19__seal {
    width: calc(var(--px)*91);
    aspect-ratio: 91 / 189;
}
/* /IMG:AUTO con19 */

@media (max-width: 599px) {
  .map-touch-lock-text {
    font-size: 4.3vw;
    padding: 0 4vw;
  }
}

/* FONT:AUTO main */
/* spec.json 파생 (tools/spec-font-to-css.js · mode=robust unit=px) — 직접 수정 금지 */
.main__title {
    font-family: var(--font-wanted);
    font-size: var(--displayS);
    font-weight: 700;
    letter-spacing: -0.04em;
    line-height: 1.2;
    text-align: center;
    color: #fadfb4;
}

.main__title-body {
    color: #ffffff;
}

.main__lead {
    font-family: var(--font-wanted);
    font-size: var(--headM);
    font-weight: 500;
    letter-spacing: -0.05em;
    line-height: 1.33;
    text-align: center;
    color: #ffffff;
}

.main__desc {
    font-family: var(--font-wanted);
    font-size: var(--bodyXL);
    font-weight: 400;
    letter-spacing: -0.05em;
    line-height: 1.5;
    text-align: center;
    color: #ffffff;
}
/* /FONT:AUTO main */

/* FONT:AUTO con03 */
/* spec.json 파생 (tools/spec-font-to-css.js · mode=robust unit=px) — 직접 수정 금지 */
.con03__title {
    font-family: var(--font-wanted);
    font-size: var(--titleL);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.09;
    text-align: center;
    color: #ffffff;
}

.con03__title-em {
    color: #fadfb4;
}

.con03__lead {
    font-family: var(--font-wanted);
    font-size: var(--bodyXL);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 3;
    color: #ffffff;
}

.con03__card-title {
    font-family: var(--font-wanted);
    font-size: var(--subheadS);
    font-weight: 700;
    letter-spacing: -0.04em;
    line-height: 1.13;
    text-align: center;
    color: #000000;
}

.con03__desc {
    font-family: var(--font-wanted);
    font-size: var(--bodyL);
    font-weight: 400;
    letter-spacing: -0.04em;
    line-height: 1.39;
    text-align: center;
    color: #8f7568;
}
/* /FONT:AUTO con03 */

/* ===== CON03: 브랜드 신뢰 + 4대 강점 카드 ===== */
.con03_iner {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: calc(var(--px)*26) 0 calc(var(--px)*25);
}

.con03_box {
  position: relative;
  width: calc(var(--px)*1874);
  overflow: hidden;
  border-radius: calc(var(--px)*30);
  background-color: #251914;
}

.con03_box_iner {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: calc(var(--px)*98) 0 calc(var(--px)*110);
}

.con03__title {
  margin-top: calc(var(--px)*13.5);
}

.con03__lead {
  margin-top: calc(var(--px)*-5);
}

.con03__cards {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(var(--px)*28);
  margin-top: calc(var(--px)*15.5);
}

.con03__card {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: calc(var(--px)*234);
  overflow: hidden;
  border-radius: calc(var(--px)*20);
  padding: calc(var(--px)*52) 0;

  & .con03__card-title {
    position: relative;
  }
}

.con03__desc {
  margin-top: calc(var(--px)*26);
}

/* FONT:AUTO con04 */
/* spec.json 파생 (tools/spec-font-to-css.js · mode=robust unit=px) — 직접 수정 금지 */
.con04__head-eyebrow {
    font-family: var(--font-kopub-batang);
    font-size: var(--headM);
    font-weight: 700;
    letter-spacing: -0.06em;
    line-height: 0.75;
    text-align: center;
    color: #ffffff;
}

.con04__head-title {
    font-family: var(--font-wanted);
    font-size: var(--titleL);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.09;
    text-align: center;
    color: #ffffff;
}

.con04__stat-head {
    font-family: var(--font-wanted);
}

.con04__stat-label {
    font-size: var(--subheadS);
    font-weight: 700;
    letter-spacing: -0.04em;
    line-height: 1.27;
    color: #000000;
}

.con04__stat-amount {
    font-size: var(--titleXL);
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 2.73;
    text-align: center;
    color: #271b14;
}

.con04__stat-fact {
    font-family: var(--font-wanted);
    font-size: var(--bodyM);
    font-weight: 600;
    letter-spacing: -0.04em;
    line-height: 1.75;
    color: #896c35;
}
/* /FONT:AUTO con04 */

/* ===== con04 ===== */
.con04 {
  background-color: #2b2624;
}

.con04_iner {
  padding: calc(var(--px)*190) 0 calc(var(--px)*87);
}

.con04__frame {
  left: calc(var(--px)*61);
  top: calc(var(--px)*39);
}

.con04__head-eyebrow {
  font-family: var(--font-kopub-batang);
  font-size: var(--headM);
  font-weight: 700;
  letter-spacing: -0.06em;
  line-height: 1.2;
  text-align: center;
  /* 그라디언트 본체는 .v-shine-text 가 깔고 이 값을 파라미터로 받는다 */
  --shine-base: linear-gradient(90deg, #e7c588, #fefbcb, #e0c38b);
  color: transparent;
}

.con04__head-title {
  margin: calc(var(--px)*13) 0 calc(var(--px)*42);
}

.con04__stats {
  width: calc(var(--px)*1440);
  overflow: hidden;
}

/* common.css 의 div.swiper-slide(center) 를 이기려면 셀렉터가 더 구체적이어야 한다 */
.con04__stats .con04__stat {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: stretch;
  gap: calc(var(--px)*23);
  padding: calc(var(--px)*55) calc(var(--px)*44) calc(var(--px)*57) calc(var(--px)*45);
  border-radius: calc(var(--px)*20);
  background: #ffffff;
  opacity: .22;
  transition: opacity .4s;
}

.con04__stat.swiper-slide-active {
  opacity: 1;
}

/* h1~h6 전역 font-family 가 상속을 덮어 spec 폰트가 죽는다 — spec.json 세그먼트에 fontFamily 가 없어 FONT:AUTO 가 낸 선언이 없다 */
.con04__stat-label {
  font-family: var(--font-wanted);
}

.con04__stat-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.con04__stat-fact {
  white-space: nowrap;
}

.con04__stat-amount {
  line-height: 1;
  --shine-base: linear-gradient(90deg, #3a2823 0%, #6e4f44 100%);
  --shine-hl: 201 162 39;
  --shine-strength: 1;
  color: transparent;
  margin-right: calc(var(--px)*4);
  animation-play-state: paused;
}

/* 샤이닝은 밝아진 카드에서만 흐른다 — con03 이 활성 카드만 두르는 것과 같은 규칙 */
.con04__stat.swiper-slide-active .con04__stat-amount {
  animation-play-state: running;
}

.con04__stat-facts {
  display: flex;
  align-items: center;
  gap: calc(var(--px)*15);
  padding: calc(var(--px)*7) calc(var(--px)*20) calc(var(--px)*6);
  border-radius: calc(var(--px)*10);
  overflow: hidden;
}

/* HEIGHT: 구분선 rect(layout-spec stat_*_div w1 h9) — 콘텐츠가 없어 높이를 만들 자식이 없다 */
.con04__stat-divider {
  box-sizing: border-box;
  flex-shrink: 0;
  width: calc(var(--px)*1);
  padding-block: calc(var(--px)*4.5);
  border-left: 1px solid rgba(137, 108, 53, .34);
}

/* con05 */
.con05 {
  margin-bottom: -6px;
}

.con05__bg {
  object-position: 50% 100.7%;
}

.con05_iner {
  box-sizing: border-box;
  justify-content: space-between;
  align-items: flex-start;
  padding: calc(var(--px)*48) calc(var(--px)*232) calc(var(--px)*125) calc(var(--px)*234);
}

.con05__intro {
  flex-direction: column;
  align-items: flex-start;
  gap: calc(var(--px)*40);
  margin-top: calc(var(--px)*106);
}

/* h1~h6 전역 font-family 명시선언이 상속을 이겨 spec 폰트가 죽는다 — con04 와 같은 처방 */

/* 래퍼 aspect-ratio 를 inline img 의 baseline descender 가 밀어내는 것 차단 */
.con05__chart-grid img,
.con05__chart-bars img,
.con05__chart-line img {
  display: block;
}

.con05__chart-col {
  flex-direction: column;
  align-items: flex-end;
  gap: calc(var(--px)*27);
}

.con05__chart-panel {
  box-sizing: border-box;
  flex-direction: column;
  align-items: flex-start;
  gap: calc(var(--px)*76);
  width: calc(var(--px)*840);
  padding: calc(var(--px)*70) calc(var(--px)*75) calc(var(--px)*53);
  border-radius: calc(var(--px)*25);
  background: #ffffff;
  overflow: visible;
}

.con05__chart {
  align-items: flex-start;
  width: calc(var(--px)*690);
  overflow: visible;
}

.con05__chart-bars {
  top: 0;
  right: calc(var(--px)*74);
  z-index: 1;
}

.con05__chart-line {
  top: calc(var(--px)*-42);
  right: calc(var(--px)*75);
  z-index: 2;
}

/* swiper container — 4열이 딱 맞는 폭(197*4 + 17*3). 열간격은 spaceBetween 이 소유한다.
   swiper.css 의 margin-inline:auto 가 부모 잔여 1px 을 반씩 먹어 트랙을 0.5px 밀므로 되돌린다 */
.con05__rates {
  align-self: flex-start;
  width: calc(var(--px)*839);
  margin-inline: 0;
}

.con05__rates .swiper-wrapper {
  align-items: flex-start;
}

/* swiper.css 의 .swiper-slide{display:block} 이 .flex 유틸을 덮어 카드 안 중앙정렬이 죽는다 */
.con05__rate-card {
  display: flex;
  box-sizing: border-box;
  flex-shrink: 0;
  flex-direction: column;
  align-items: center;
  gap: calc(var(--px)*9);
  width: calc(var(--px)*197);
  padding: calc(var(--px)*41) 0 calc(var(--px)*34);
  border: 1px solid #261916;
  border-radius: calc(var(--px)*25);
  background: #0f0b09;
}

/* FONT:AUTO con05 */
/* spec.json 파생 (tools/spec-font-to-css.js · mode=robust unit=px) — 직접 수정 금지 */
.con05__intro {
    font-family: var(--font-wanted);
    color: #ffffff;
}

.con05__intro-title {
    font-family: var(--font-wanted);
    font-size: var(--titleL);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.045;
}

.con05__intro-title-em,
.con05__intro-body-em {
    color: #fadfb4;
}

.con05__intro-body {
    font-size: var(--bodyXL);
    font-weight: 400;
    letter-spacing: -0.04em;
    line-height: 1.5;
}

.con05__intro-note {
    font-size: var(--bodyM);
    font-weight: 400;
    letter-spacing: -0.04em;
    line-height: 1.56;
}

.con05__chart-title {
    font-family: var(--font-wanted);
    font-size: var(--headM);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.19;
    color: #000000;
}

.con05__rates {
    font-family: var(--font-wanted);
}

.con05__rate-label {
    font-size: var(--bodyL);
    font-weight: 600;
    letter-spacing: -0.04em;
    line-height: 1.1;
    color: #ffffff;
}

.con05__rate-value {
    font-size: var(--titleXS);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.04;
    color: #efd5ad;
}

.con05__rate-fact {
    font-size: var(--bodyS);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 1;
    color: #ffffff;
}

.con05__chart-note {
    font-family: var(--font-wanted);
    font-size: var(--bodyS);
    font-weight: 400;
    letter-spacing: -0.04em;
    line-height: 2.14;
    color: #ffffff;
}
/* /FONT:AUTO con05 */

/* 헤딩 line-box 초과가 뒤 형제로 전파돼 5b 에서 밀림으로 잡힌다 — 관리블록 뒤에서만 덮인다 */

.con05__chart-title {
  line-height: 0.89;
}

/* 시안 gap 9 는 잉크 기준 — 카드 안 단일행들의 line-box 여백이 그 위에 덧붙어 value 를 밀어낸다 */
.con05__rate-label,
.con05__rate-value {
  line-height: 0.83;
}

.con05__intro-note {
  line-height: 1.31;
}

.con05__chart-note {
  line-height: 1.07;
}

/* FONT:AUTO con06 */
/* spec.json 파생 (tools/spec-font-to-css.js · mode=robust unit=px) — 직접 수정 금지 */
.con06__head {
    text-align: center;
}

.con06__head-lead {
    font-family: var(--font-kopub-batang);
    font-size: var(--headM);
    font-weight: 700;
    letter-spacing: -0.06em;
    line-height: 1;
    color: #513f20;
}

.con06__head-title {
    font-family: var(--font-wanted);
    font-size: var(--titleL);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.09;
    color: #000000;
}

.con06__nav-arrow {
    font-family: var(--font-suit);
    font-size: var(--subheadS);
    font-weight: 700;
    letter-spacing: -0.04em;
    line-height: 1.36;
    text-align: center;
    color: #ffffff;
}

.con06__card-title {
    font-family: var(--font-wanted);
    font-size: var(--headM);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1;
    color: #000000;
}

.con06__card-meta-sales,
.con06__card-meta-profit {
    font-family: var(--font-wanted);
    font-size: var(--bodyL);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 1.56;
    color: #000000;
}

.con06__chart-rate {
    font-family: var(--font-wanted);
    font-size: var(--titleM);
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 1.53;
    color: #8e381e;
}

.con06__desc {
    font-family: var(--font-wanted);
    font-size: var(--bodyXL);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 1.5;
    text-align: center;
    color: #000000;
}

.con06__desc-em {
    font-weight: 900;
}
/* /FONT:AUTO con06 */

/* FONT:AUTO con07 */
/* spec.json 파생 (tools/spec-font-to-css.js · mode=robust unit=px) — 직접 수정 금지 */
.con07__title {
    font-family: var(--font-wanted);
    font-size: var(--titleL);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.09;
    text-align: center;
    color: #000000;
}

.con07__desc {
    font-family: var(--font-wanted);
    font-size: var(--bodyXL);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.5;
    text-align: center;
    color: #000000;
}

.con07__desc-sub {
    font-weight: 500;
}

.con07__step-title {
    font-family: var(--font-wanted);
    font-size: var(--subheadL);
    font-weight: 600;
    letter-spacing: -0.04em;
    line-height: 1.15;
    text-align: center;
    color: #ffffff;
}

.con07__cook-time {
    font-family: var(--font-kopub-batang);
    font-size: calc(var(--px)*113.24);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 1.09;
    text-align: center;
    color: #513f20;
}

.con07__cook-note {
    font-family: var(--font-wanted);
    font-size: var(--bodyM);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 2;
    text-align: center;
    color: #000000;
}

.con07__stay-label {
    font-family: var(--font-wanted);
    font-size: var(--bodyM);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 3.62;
    text-align: center;
    color: #ffffff;
}

.con07__stay-value {
    font-family: var(--font-wanted);
    font-size: var(--subheadM);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 2.17;
    text-align: center;
    color: #ffffff;
}

.con07__summary {
    font-family: var(--font-wanted);
    font-size: var(--bodyXL);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 1.5;
    text-align: center;
    color: #000000;
}
/* /FONT:AUTO con07 */

/* ===== con06 ===== */
.con06 {
  background-color: #f4ede0;
  background-image: radial-gradient(ellipse calc(var(--px)*1200) calc(var(--px)*420) at 50% 0, rgba(236, 217, 166, 0.16), rgba(236, 217, 166, 0) 70%);

  & .con06_iner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--px)*11.56); /* 잉크 16 − head-title 하단 half-leading 4.44 */
    padding: calc(var(--px)*137) 0 calc(var(--px)*120);
  }

  & .con06__head {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--px)*10.56); /* 잉크 15 − head-title 상단 half-leading 4.44 */
  }

  & .con06__carousel {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: calc(var(--px)*30);
  }

  & .con06__nav-prev,
  & .con06__nav-next {
    width: calc(var(--px)*47);
    height: calc(var(--px)*47);
    margin-top: calc(var(--px)*12);
    border-radius: calc(var(--px)*10);
    background-color: #634a3c;
    cursor: pointer;
  }

  & .con06__slider {
    width: calc(var(--px)*1561);
    overflow: hidden;
  }

  & .con06__card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--px)*13.46); /* 잉크 19 − meta 상단 half-leading 5.04 (title lh1 이라 상단 half 0.5) */
    box-sizing: border-box;
    padding: calc(var(--px)*68.5) 0 calc(var(--px)*67); /* border 1px + half-leading 보정 */
    border: 1px solid #513f20;
    border-radius: calc(var(--px)*20);
    background-color: rgba(255, 255, 255, 0.549);
  }

  & .con06__card-title {
    margin-right: calc(var(--px)*17); /* 시안 title 은 카드 중앙보다 8.5 좌측 (정본 로컬 x 73 vs 중앙 80.5) */
  }

  & .con06__card-meta {
    width: 100%;
  }

  & .con06__card-meta-sales,
  & .con06__card-meta-profit {
    flex: 1 1 0;
  }

  & .con06__card-meta-sales {
    padding-right: calc(var(--px)*24);
    text-align: right;
  }

  & .con06__card-meta-profit {
    padding-left: calc(var(--px)*48.5); /* 시안 L/R 비대칭(divider 기준 +31.5 / +42.5) 평균 — 잔차 ±5.5 */
  }

  & .con06__card-meta-divider {
    width: calc(var(--px)*1);
    height: calc(var(--px)*15);
    background-color: #281513;
    opacity: 0.2;
  }

  & .con06__chart {
    margin-top: calc(var(--px)*8.5);
  }

  & .con06__chart-rate {
    top: calc(var(--px)*117); /* 잉크 137 − 자체 half-leading 20 */
    /* 원본색을 .v-shine-text 의 base 로 넘겨 시각결과 유지 — 하이라이트만 흐른다 */
    --shine-base: linear-gradient(90deg, #8e381e, #8e381e);
    --shine-hl: 231 197 136; /* 밝은 배경의 어두운 글자 = 금색 (흰색이면 글자가 흐려진다) */
    --shine-strength: 0.95;
    color: transparent; /* FONT:AUTO 의 color 를 (0,2,0) 으로 덮어 background-clip:text 를 살린다 */
  }

  & .con06__desc {
    margin-top: calc(var(--px)*19.44); /* 잉크 20 + iner gap 보정분 − desc 상단 half-leading 5 */
  }

  & .con06__chart-graph img,
  & .con06__dish img {
    display: block; /* inline baseline gap 7px 제거 */
  }

  & .con06__dish {
    right: calc(var(--px)*675);
    bottom: calc(var(--px)*279);
    z-index: 1;
  }
}

/* ===== con07 ===== */
/* 래퍼 aspect-ratio 를 inline img 의 baseline descender 가 밀어내는 것 차단 */
.con07__eyebrow img,
.con07__path-line img,
.con07__path-dot img,
.con07__bonus img,
.con07__dish img {
  display: block;
}

.con07_iner {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: calc(var(--px)*141) 0 calc(var(--px)*117);
}

.con07__title {
  margin-top: calc(var(--px)*20);
}

.con07__desc {
  margin-top: calc(var(--px)*20);
}

.con07__steps {
  display: flex;
  justify-content: center;
  gap: calc(var(--px)*49);
  margin-top: calc(var(--px)*31);
}

.con07__step {
  position: relative;
  width: calc(var(--px)*447);
  aspect-ratio: 447 / 352;
  overflow: hidden;
  background-color: #000000;
  border-radius: calc(var(--px)*30);
}

/* 압력밥솥 아랫열 차단 — 소스 16:9 박스를 프레임보다 키워 상단만 노출(% = 부모 비례라 PC·모바일 공통) */
.con07__step--fire .con07__step-media {
  position: absolute;
  top: 0;
  left: -40.05%;
  width: 180.09%;
  height: 128.69%;
}

.con07__step-head {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: calc(var(--px)*22) 0;
  background-color: #3b2316;
}

.con07__path {
  position: absolute;
  right: calc(var(--px)*527);
  bottom: calc(var(--px)*306);
  z-index: -1; /* 주행 dot 이 .con07__step(relative) 위로 겹치는 것 차단 — .front 컨텍스트 안에서만 낮춤 */
}

.con07__path-dot {
  position: absolute;
  top: calc(var(--px)*1); /* 아치 첫 점 중심(4.5,9.5) 실측 — dot 중심을 거기 얹는다 */
  left: calc(var(--px)*-4);
}

.con07__result {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: calc(var(--px)*29);
}

.con07__cook-time {
  margin-top: calc(var(--px)*6);
  margin-right: calc(var(--px)*18); /* 자간 trailing + 글리프 사이드베어링 상쇄 (잉크중심 -9) */
}

.con07__cook-note {
  margin-top: calc(var(--px)*-13);
  opacity: 0.6;
}

.con07__stay {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: calc(var(--px)*183);
  margin-top: calc(var(--px)*62);
  padding-top: calc(var(--px)*2);
  padding-bottom: calc(var(--px)*5);
  overflow: visible;
  background-color: #271b14;
  border-radius: calc(var(--px)*10);
}

.con07__stay-value {
  margin-top: calc(var(--px)*-31);
}

.con07__bonus {
  position: absolute;
  right: calc(var(--px)*-108);
  bottom: calc(var(--px)*12);
}

.con07__summary {
  margin-top: calc(var(--px)*12);
}

.con07__dish {
  position: absolute;
  right: calc(var(--px)*-7);
  bottom: calc(var(--px)*98);
}

/* ===== con08 ===== */
/* 래퍼 aspect-ratio 를 inline img 의 baseline descender 가 밀어내는 것 차단 */
.con08__menu-photo img,
.con08__corner-top-left img,
.con08__corner-top-right img,
.con08__corner-bottom-left img,
.con08__corner-bottom-right img {
  display: block;
}

.con08_iner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(var(--px)*50);
  padding: calc(var(--px)*145) 0 calc(var(--px)*180);
}

.con08__head {
  display: flex;
  flex-direction: column;
  align-items: center;
}


.con08__slider {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: calc(var(--px)*28);
}

.con08__slider-prev,
.con08__slider-next {
  width: calc(var(--px)*47);
  height: calc(var(--px)*47);
  margin-top: calc(var(--px)*131);
  border-radius: calc(var(--px)*10);
  background-color: #634a3c;
  cursor: pointer;
}

.con08__slider-viewport {
  width: calc(var(--px)*1286);
  overflow: hidden;
}

/* 이름이 2줄이 된 카드만 높아지지 않도록 트랙이 slide 높이를 맞춘다 — swiper-slide 의 height:100% 는 auto 높이 부모에서 stretch 를 막는다 */
.con08__slider-track {
  align-items: stretch;
}

.con08__menu-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  height: auto;
  gap: calc(var(--px)*23);
  padding-bottom: calc(var(--px)*23.6); /* 30 − 6.4 = menu-name line-height 0.91→1.2 증가분 상쇄 */
  border-radius: calc(var(--px)*20);
  background-color: #f8f2e6;
}

.con08__menu-photo {
  overflow: hidden;
  border-radius: calc(var(--px)*20);
}

/* 게시판 업로드 사진은 원본 비율이 제각각 — 래퍼 비율에 맞춰 채운다 */
.con08__menu-photo img {
  height: 100%;
  object-fit: cover;
}

/* 첨부 없는 글 — 사진 자리를 비우지 않고 섹션 톤으로 채운다 (폭·비율은 IMG:AUTO 관리블록 소유) */
.con08__menu-photo--empty {
  background-color: var(--tertiary);
}

/* main_menu 글 0건 폴백 — 카드 1장 자리를 그대로 유지 */
.con08__menu-empty {
  width: 100%;
  min-height: calc(var(--px)*363);
  padding-bottom: 0;
}

/* 0건이면 화살표는 남기되 비활성 — DOM 에서 빼면 ani_con08 이 target not found 를 낸다 */
.con08__slider--empty .con08__slider-prev,
.con08__slider--empty .con08__slider-next {
  opacity: 0.35;
  pointer-events: none;
}

.con08__corner-top-left {
  top: calc(var(--px)*27);
  left: calc(var(--px)*54);
}

.con08__corner-top-right {
  top: calc(var(--px)*27);
  right: calc(var(--px)*56);
  transform: scaleX(-1);
}

.con08__corner-bottom-left {
  bottom: calc(var(--px)*36);
  left: calc(var(--px)*54);
  transform: scaleY(-1);
}

.con08__corner-bottom-right {
  bottom: calc(var(--px)*36);
  right: calc(var(--px)*56);
  transform: scale(-1, -1);
}

/* FONT:AUTO con08 */
/* spec.json 파생 (tools/spec-font-to-css.js · mode=robust unit=px) — 직접 수정 금지 */
.con08__head {
    text-align: center;
}

.con08__head-eyebrow {
    font-family: var(--font-kopub-batang);
    font-size: var(--headM);
    font-weight: 700;
    letter-spacing: -0.06em;
    line-height: 1;
    color: #513f20;
}

.con08__head-title {
    font-family: var(--font-wanted);
    font-size: var(--titleL);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.09;
    color: #513f20;
}

.con08__head-title-label {
    color: #000000;
}

.con08__head-desc {
    font-family: var(--font-wanted);
    font-size: var(--bodyXL);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 1.5;
    color: #000000;
}

.con08__head-desc-em {
    font-weight: 900;
}

.con08__slider-arrow {
    font-family: var(--font-suit);
    font-size: var(--subheadS);
    font-weight: 700;
    letter-spacing: -0.04em;
    line-height: 1.36;
    text-align: center;
    color: #ffffff;
}

.con08__menu-name {
    font-family: var(--font-wanted);
    font-size: var(--subheadS);
    font-weight: 700;
    letter-spacing: -0.04em;
    line-height: 1.36;
    text-align: center;
    color: #000000;
}
/* /FONT:AUTO con08 */

/* FONT:AUTO 의 line-height 는 PSD auto-leading 추정치라 실렌더 line-box 가 정본 잉크 블록보다 크다 — 관리블록 뒤에서 정본 h 로 수렴 */
.con08__head-eyebrow {
  line-height: 0.96666; /* 29/30 */
}

.con08__head-title {
  margin-top: calc(var(--px)*17);
  line-height: 0.92727; /* 51/55 */
}

.con08__head-desc {
  margin-top: calc(var(--px)*31);
  line-height: 1.2; /* 48 / (20 × 2줄) */
}

/* 게시판 입력이라 이름 길이가 가변 — 카드 폭 안에서 2줄까지 흘리고 넘치면 말줄임.
   1줄 잉크수렴 0.91 은 2줄에서 행간이 -2px 라 겹치므로 1.2 로 올리고, 늘어난 6.4px 는 카드 padding-bottom 이 되돌린다 */
.con08__menu-name {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  box-sizing: border-box;
  width: 100%;
  padding-inline: calc(var(--px)*24);
  line-height: 1.2;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

/* ===== con09 ===== */
.con09 {
  overflow-x: clip;
  overflow-y: visible; /* 패널이 섹션 상단으로 41px bleed */
  background-color: #120f0d;
}

.con09_iner {
  box-sizing: border-box;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: calc(var(--px)*195) calc(var(--px)*65) calc(var(--px)*163) calc(var(--px)*66);
}

.con09_box {
  display: flex;
  flex-direction: column;
  left: calc(var(--px)*614);
  top: calc(var(--px)*-41);
  width: calc(var(--px)*676);
  border-radius: calc(var(--px)*28);
  overflow: hidden;
}

.con09_box_iner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(var(--px)*24);
  padding: calc(var(--px)*158) 0 calc(var(--px)*177);
}

.con09__panel-mark img,
.con09__panel-emblem img,
.con09__stat-num img {
  display: block; /* inline baseline gap 7px 제거 */
}

.con09__panel-desc {
  margin-top: calc(var(--px)*10);
}

.con09__panel-emblem {
  left: calc(var(--px)*883);
  bottom: calc(var(--px)*126);
}

.con09__stat-col {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.con09__stat-col--cost {
  gap: calc(var(--px)*70);
  margin-top: calc(var(--px)*1);
}

.con09__stat-col--result {
  gap: calc(var(--px)*71);
}

.con09__stat-item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: calc(var(--px)*8);
}

.con09__stat-col--cost .con09__stat-item {
  margin-left: calc(var(--px)*61);
}

.con09__stat-col--result .con09__stat-item {
  margin-left: calc(var(--px)*71);
}

.con09__stat-col--cost .con09__divider + .con09__stat-item {
  margin-top: calc(var(--px)*10);
}

.con09__stat-col--result .con09__divider + .con09__stat-item {
  margin-top: calc(var(--px)*9);
}

.con09__stat-head {
  display: flex;
  align-items: center;
  gap: calc(var(--px)*11);
  margin-left: calc(var(--px)*-35);
}

.con09__stat-num {
  border-radius: calc(var(--px)*5);
  overflow: hidden;
  opacity: 0;
}

.con09__stat-item.is-active .con09__stat-num {
  opacity: 1;
}

.con09__stat-desc {
  margin-top: calc(var(--px)*11);
}

.con09__divider {
  height: 1px;
  background: #fadfb4;
  opacity: 0.2;
}

.con09__stat-col--cost .con09__divider {
  width: calc(var(--px)*466);
}

.con09__stat-col--result .con09__divider {
  width: calc(var(--px)*464);
}

/* FONT:AUTO con09 */
/* spec.json 파생 (tools/spec-font-to-css.js · mode=robust unit=px) — 직접 수정 금지 */
.con09__panel-title {
    font-family: var(--font-wanted);
    font-size: var(--titleL);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.09;
    text-align: center;
    color: #ffffff;
}

.con09__panel-desc {
    font-family: var(--font-wanted);
    font-size: var(--bodyXL);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 1.5;
    text-align: center;
    color: #ffffff;
}

.con09__stat-label {
    font-family: var(--font-wanted);
    font-size: var(--bodyL);
    font-weight: 600;
    letter-spacing: -0.04em;
    line-height: 1.1;
    color: #ffffff;
}

.con09__stat-value {
    font-family: var(--font-wanted);
    font-size: var(--titleS);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.05;
    color: #ffffff;
}

.con09__stat-desc {
    font-family: var(--font-wanted);
    font-size: var(--bodyL);
    font-weight: 400;
    letter-spacing: -0.04em;
    line-height: 1.41;
    color: #ffffff;
}
/* /FONT:AUTO con09 */

/* 단색 base — 3색 그라디언트는 중앙(#fcf9d0)이 거의 흰색이라 활성 샤이닝 띠가 묻혔다(유저 확정) */
.con09__stat-value {
  color: #ead2a2;
}

.con09__stat-item.is-active .con09__stat-label {
  font-weight: 700;
}

/* FONT:AUTO con10 */
/* spec.json 파생 (tools/spec-font-to-css.js · mode=robust unit=px) — 직접 수정 금지 */
.con10__head {
    text-align: center;
}

.con10__head-eyebrow {
    font-family: var(--font-kopub-batang);
    font-size: var(--headM);
    font-weight: 700;
    letter-spacing: -0.06em;
    line-height: 1;
    color: #513f20;
}

.con10__head-title {
    font-family: var(--font-wanted);
    font-size: var(--titleL);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.09;
    color: #000000;
}

.con10__head-title-em {
    color: #513f20;
}

.con10__head-sub {
    font-family: var(--font-wanted);
    font-size: var(--bodyL);
    font-weight: 600;
    letter-spacing: -0.04em;
    line-height: 3.33;
    color: #000000;
}

.con10__stat-list {
    font-family: var(--font-wanted);
    text-align: center;
}

.con10__stat-label {
    font-size: var(--bodyL);
    font-weight: 600;
    letter-spacing: -0.04em;
    line-height: 1.45;
    color: #ffffff;
}

.con10__stat-value {
    font-size: var(--titleL);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.18;
    color: #fadfb4;
}

.con10__promise {
    font-family: var(--font-wanted);
    color: #000000;
}

.con10__promise-title {
    font-size: var(--headL);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.14;
}

.con10__promise-title-em {
    font-family: var(--font-kopub-batang);
    font-size: calc(var(--px)*45.9);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 1.71;
    color: #513f20;
}

.con10__promise-desc {
    font-size: var(--bodyL);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 1.56;
}

.con10__promise-desc-em {
    font-weight: 900;
}

.con10__footer-text {
    font-family: var(--font-wanted);
    font-size: var(--bodyL);
    font-weight: 600;
    letter-spacing: -0.04em;
    line-height: 1.39;
    text-align: center;
    color: #000000;
}

.con10__footer-text-em {
    font-weight: 800;
}
/* /FONT:AUTO con10 */

/* ===== CON10: 영업권 보호 정책 ===== */
.con10 {
  background-color: #f4ede0;
}

.con10_iner {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-bottom: calc(var(--px)*21);
}

.con10__panel {
  display: flex;
  flex-direction: column;
  width: calc(var(--px)*1811);
  padding: calc(var(--px)*97) 0;
  border-left: 1px solid #cfae74;
  border-right: 1px solid #cfae74;
  background-color: #ffffff;
}

.con10__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(var(--px)*16);
}

.con10__body {
  display: flex;
  align-items: flex-start;
  margin-top: calc(var(--px)*5);
  padding: 0 calc(var(--px)*235) 0 calc(var(--px)*265);
}

.con10__stat-list {
  display: flex;
  flex-direction: column;
  gap: calc(var(--px)*19);
  width: calc(var(--px)*334);
  margin-top: calc(var(--px)*112);
}

.con10__stat {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: calc(var(--px)*14);
  padding: calc(var(--px)*49) calc(var(--px)*50) calc(var(--px)*51);
  border-radius: calc(var(--px)*20);
  background-color: #281b15;
}

.con10__map {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  margin-left: calc(var(--px)*136);
  overflow: visible;
}

.con10__map-zone--near {
  left: calc(var(--px)*10);
  top: calc(var(--px)*67);
}

.con10__map-zone--far {
  left: calc(var(--px)*5);
  top: calc(var(--px)*96);
}

.con10__map-pin:nth-of-type(3) {
  left: calc(var(--px)*132);
  top: calc(var(--px)*230);
}

.con10__map-pin:nth-of-type(4) {
  left: calc(var(--px)*66);
  bottom: calc(var(--px)*217);
}

.con10__map-pin:nth-of-type(5) {
  right: calc(var(--px)*163);
  bottom: calc(var(--px)*212);
}

.con10__map-pin:nth-of-type(6) {
  right: calc(var(--px)*135);
  top: calc(var(--px)*291);
}

.con10__promise {
  display: flex;
  flex-direction: column;
  width: calc(var(--px)*376); /* 정본 폭 — body padding-right 안쪽이 2px 모자라 shrink 되며 desc 첫 줄이 wrap 됐다 */
  flex-shrink: 0;
  gap: calc(var(--px)*50);
  margin-top: calc(var(--px)*263);
  margin-left: calc(var(--px)*-7);
}

.con10_box {
  position: relative;
  display: flex;
  flex-direction: column;
  width: calc(var(--px)*1811);
  overflow: hidden;
  border: 1px solid #cfae74;
  border-radius: 0 0 calc(var(--px)*30) calc(var(--px)*30);
}

.con10_box_iner {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: calc(var(--px)*43) 0 calc(var(--px)*37);
}

.con10__brand {
  display: flex;
  justify-content: space-between;
  align-items: center;
  left: 0;
  right: 0;
  bottom: calc(var(--px)*181);
}

.con10__brand-rule--left {
  width: calc(var(--px)*758);
  height: 1px;
  background-color: #281b15;
}

.con10__brand-rule--right {
  width: calc(var(--px)*791);
  height: 1px;
  background-color: #281b15;
}

/* 래퍼 aspect-ratio 를 img inline baseline gap(7px)이 밀어내는 것 차단 */
.con10 img {
  display: block;
}

/* line-height 는 spec 잉크 bbox → line-box 환산 (FONT:AUTO 값은 PSD leading 직역이라 블록이 부풂) */
.con10__head-title {
  line-height: 1.009;
}

.con10__head-sub {
  line-height: 0.944;
}

.con10__stat-label {
  line-height: 0.944;
}

.con10__stat-value {
  line-height: 0.755;
}

.con10__promise-title {
  line-height: 0.794;
}

.con10__promise-title-em {
  line-height: 0.98;
  position: relative; /* 배포 웹폰트 baseline 이 PSD 원본과 달라 강조 글자만 위로 떠 line box 를 안 건드리고 내린다 */
  top: calc(var(--px)*16);
}

.con10__promise-desc {
  line-height: 1.352;
}

.con10__footer-text {
  line-height: 1.167;
}

/* con11 */
.con11 {
  background-color: #f4ede0;

  & > .bg_img {
    object-position: center bottom;
  }
}

.con11_iner {
  display: flex;
  box-sizing: border-box;
  justify-content: space-between;
  align-items: flex-start;
  padding: calc(var(--px) * 92) 0 calc(var(--px) * 158) calc(var(--px) * 233);
}

.con11__head {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: calc(var(--px) * 44);
  margin-top: calc(var(--px) * 76);
}

.con11__gallery {
  width: calc(var(--px) * 1199);
  margin-inline: 0; /* swiper-bundle 의 .swiper{margin:auto} 가 flex free space 를 먹어 space-between 을 무력화 */
  overflow: hidden;
  -webkit-mask-image: linear-gradient(to right, transparent 0, #000 calc(var(--px) * 60), #000 100%);
  mask-image: linear-gradient(to right, transparent 0, #000 calc(var(--px) * 60), #000 100%);
}

.con11__gallery-track {
  align-items: flex-start;
  gap: calc(var(--px) * 35);
}

/* FONT:AUTO con11 */
/* spec.json 파생 (tools/spec-font-to-css.js · mode=robust unit=px) — 직접 수정 금지 */
.con11__head {
    font-family: var(--font-wanted);
    color: #000000;
}

.con11__head-title {
    font-size: var(--titleL);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.09;
}

.con11__head-title-em {
    color: #513f20;
}

.con11__head-desc {
    font-size: var(--bodyL);
    font-weight: 600;
    letter-spacing: -0.04em;
    line-height: 1.39;
}
/* /FONT:AUTO con11 */

/* FONT:AUTO 의 line-height 는 PSD auto-leading 추정치라 실렌더 line-box 가 정본 잉크 블록보다 크다 — 관리블록 뒤에서 정본 h 로 수렴 */
.con11__head-title {
  line-height: 1.063;
}

/* FONT:AUTO con12 */
/* spec.json 파생 (tools/spec-font-to-css.js · mode=robust unit=px) — 직접 수정 금지 */
.con12__title {
    font-family: var(--font-wanted);
    font-size: var(--titleL);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.09;
    text-align: center;
    color: #000000;
}

.con12__title-em {
    color: #513f20;
}

.con12__node--delivery,
.con12__node--togo {
    font-family: var(--font-wanted);
    font-size: var(--headM);
    font-weight: 600;
    letter-spacing: -0.04em;
    line-height: 1.27;
    text-align: center;
    color: #000000;
}

.con12__node--hall {
    font-family: var(--font-wanted);
    font-size: var(--headM);
    font-weight: 600;
    letter-spacing: -0.04em;
    line-height: 1.27;
    text-align: center;
    color: #ffffff;
}

.con12__stats {
    font-family: var(--font-wanted);
    line-height: 1.09;
    text-align: center;
}

.con12__stat-label {
    font-size: var(--bodyXL);
    font-weight: 700;
    letter-spacing: -0.04em;
    color: #000000;
}

.con12__stat-value {
    font-size: var(--titleXL);
    font-weight: 900;
    letter-spacing: -0.04em;
    color: #3b2316;
}

.con12__band-desc {
    font-family: var(--font-wanted);
    font-size: var(--bodyXL);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.5;
    text-align: center;
    color: #fadfb4;
}

.con12__band-desc-body {
    font-weight: 500;
    color: #ffffff;
}
/* /FONT:AUTO con12 */

/* ===== con14 ===== */
.con14_iner {
  display: flex;
  box-sizing: border-box;
  flex-direction: column;
  align-items: flex-start;
  padding: calc(var(--px)*173) calc(var(--px)*756) calc(var(--px)*292) calc(var(--px)*516);
  overflow: hidden;
}

.con14__review-panel {
  top: 0;
  right: calc(var(--px)*74);
  bottom: 0;
  width: calc(var(--px)*597);
  background-color: #bdad94;
  z-index: 1;
}

.con14__review-marquee {
  left: calc(var(--px)*-662);
  bottom: calc(var(--px)*168);
  z-index: 0;
  white-space: nowrap;
}

.con14__bowl {
  top: 0;
  left: 0;
  z-index: 2;
}

.con14__content,
.con14__headline {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.con14__content {
  gap: calc(var(--px)*46);
}

.con14__intro {
  display: flex;
  align-items: flex-start;
  gap: calc(var(--px)*140);
}

.con14__headline {
  width: calc(var(--px)*374);
  gap: calc(var(--px)*20);
  margin-top: calc(var(--px)*18);
}

.con14__quote {
  display: block;
  margin-top: calc(var(--px)*13);
  margin-left: calc(var(--px)*4);
}

.con14__title-em,
.con14__title-line,
.con14__keywords-rest,
.con14__keywords-line {
  display: block;
}

.con14__title-line,
.con14__keywords-line {
  width: max-content;
}

.con14__keywords-line {
  margin-left: auto;
}

.con14__review-viewport {
  position: absolute; /* swiper-bundle 의 .swiper{position:relative} 가 common.css .absol 을 이겨서 되돌림 */
  top: 0;
  right: calc(var(--px)*113);
  bottom: 0;
  width: calc(var(--px)*518);
  overflow: hidden;
  z-index: 2;
}

.con14__review-track {
  align-items: flex-start;
  margin-top: calc(var(--px)*-22);
}

.con14__review-slide {
  height: auto;
}

.con14__quote img,
.con14__bowl img,
.con14__review-slide img {
  display: block;
}

/* FONT:AUTO con14 */
/* spec.json 파생 (tools/spec-font-to-css.js · mode=robust unit=px) — 직접 수정 금지 */
.con14__review-marquee {
    font-family: var(--font-kopub-batang);
    font-size: var(--headM);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 2;
    color: #8e4e10;
}

.con14__tagline {
    font-family: var(--font-kopub-batang);
    font-size: var(--bodyL);
    font-weight: 700;
    letter-spacing: -0.04em;
    line-height: 1.56;
    color: #513f20;
}

.con14__title {
    font-family: var(--font-wanted);
    font-size: var(--titleL);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.09;
    color: #000000;
}

.con14__title-em {
    color: #513f20;
}

.con14__keywords {
    font-family: var(--font-kopub-batang);
    font-size: var(--bodyL);
    font-weight: 700;
    letter-spacing: -0.04em;
    line-height: 2.78;
    text-align: right;
    color: #513f20;
}

.con14__keywords-rest {
    color: #000000;
}

.con14__description {
    font-family: var(--font-wanted);
    font-size: var(--bodyL);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 1.56;
    color: #000000;
}

.con14__description-em {
    font-weight: 800;
}
/* /FONT:AUTO con14 */

/* con14 FONT:AUTO line-box 보정 — 정본의 3/2/4/3줄 텍스트 박스 높이를 흐름으로 유지 */
.con14__tagline {
  line-height: 1.27778;
}

.con14__title {
  line-height: 1;
}

.con14__keywords {
  line-height: 2.33333;
}

/* 정본 원문이 seg0 끝에 빈 줄을 두어 em 문장을 한 행 떨어뜨린다 — line-height 균등 확장이 아니라 블록 분리로 재현 */
.con14__description-em {
  display: block;
  margin-top: 1.56em;
}

/* GSAP 모션 전용 — 밑줄 신호등 상태 클래스(con01Signal 재사용, JS 는 클래스만 토글) + 마퀴 주기 override */
.con14__keywords-line {
  background-repeat: no-repeat;
  background-position: left 0 bottom 0.6em; /* line-height 2.78 하단 여백을 걷어내 시안 실측 간격(잉크 하단 +3px)에 맞춤 */
  background-size: 0% calc(var(--px)*1);
  background-image: linear-gradient(#a79f8c, #a79f8c);
  color: #000000; /* 시안 실측 — 비액티브 3줄은 순검정, FONT:AUTO 의 #513f20 은 액티브 예시색이었다 */
  transition: background-size .4s ease, color .4s ease;
}

.con14__keywords-line--on {
  background-size: 100% calc(var(--px)*1);
  color: #513f20;
}

.con14__review-marquee {
  animation-duration: 30s;
}

/* FONT:AUTO con15 */
/* spec.json 파생 (tools/spec-font-to-css.js · mode=robust unit=px) — 직접 수정 금지 */
.con15__title {
    font-family: var(--font-wanted);
    font-size: var(--titleL);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.09;
    text-align: center;
    color: #ffffff;
}

.con15__title-em,
.con15__consult-contact {
    color: #fadfb4;
}

.con15__subtitle {
    font-family: var(--font-wanted);
    font-size: var(--bodyXL);
    font-weight: 400;
    letter-spacing: -0.04em;
    line-height: 3;
    text-align: center;
    color: #ffffff;
}

.con15__consult-copy,
.con15__recovery-panel {
    font-family: var(--font-wanted);
    text-align: center;
}

.con15__consult-label {
    font-size: var(--subheadS);
    font-weight: 700;
    letter-spacing: -0.04em;
    line-height: 1.6;
}

.con15__consult-phone {
    font-size: var(--titleXL);
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 1.17;
}

.con15__consult-desc {
    font-size: var(--bodyL);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 1.56;
    color: #916f5c;
}

.con15__recovery-title {
    font-size: var(--headM);
    font-weight: 700;
    letter-spacing: -0.04em;
    line-height: 2;
    color: #fadfb4;
}

.con15__recovery-desc {
    font-size: var(--bodyL);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 1.39;
    color: #ffffff;
}
/* /FONT:AUTO con15 */

/* con15 recovery 텍스트의 PSD bbox 높이를 실제 line-box로 유지한다. */
.con15__recovery-title {
    line-height: .9;
}

.con15__recovery-desc {
    line-height: 1.19444;
}

.con16 {
  background: #f4ede0;
}

.con16 img {
  display: block;
}

.con16_iner {
  gap: calc(var(--px)*61.06);
  padding: calc(var(--px)*100) 0 calc(var(--px)*180);
}

.con16__panel-bg {
  left: calc(var(--px)*157);
  bottom: calc(var(--px)*99);
  z-index: 0;
}

.con16__head {
  gap: calc(var(--px)*11);
  position: relative;
  z-index: 1;
}

.con16__eyebrow {
  gap: calc(var(--px)*18);
}

.con16__eyebrow-text {
  margin-top: calc(var(--px)*-19);
  margin-bottom: calc(var(--px)*19);
}

.con16__title {
  gap: 0;
  margin-top: calc(var(--px)*-41);
  margin-bottom: calc(var(--px)*41);
}

.con16__steps {
  width: calc(var(--px)*1295);
  gap: calc(var(--px)*30);
  z-index: 1;
}

.con16__step-row {
  width: 100%;
  justify-content: space-between;
  gap: calc(var(--px)*15);
}

/* FONT:AUTO con16 */
/* spec.json 파생 (tools/spec-font-to-css.js · mode=robust unit=px) — 직접 수정 금지 */
.con16__eyebrow-text {
    font-family: var(--font-wanted);
    font-size: var(--subheadM);
    font-weight: 700;
    letter-spacing: -0.04em;
    line-height: 2.4;
    text-align: center;
    color: #000000;
}

.con16__title {
    font-family: var(--font-wanted);
    font-size: var(--titleL);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.09;
    text-align: center;
    color: #000000;
}

.con16__title-em {
    color: #513f20;
}
/* /FONT:AUTO con16 */

/* IMG:AUTO con16 */
/* layout-spec.json 파생 (tools/img-size-to-css.js · unit=--px) — 직접 수정 금지 */
.con16__panel-bg {
    width: calc(var(--px)*1591);
    aspect-ratio: 1591 / 548;
}

.con16__head-mark {
    width: calc(var(--px)*80);
    aspect-ratio: 80 / 21;
}

.con16__step-card {
    width: calc(var(--px)*294);
    aspect-ratio: 294 / 180;
}

.con16__step-arrow {
    width: calc(var(--px)*10);
    aspect-ratio: 10 / 18;
}
/* /IMG:AUTO con16 */

.con17 {
  background: #fff;
}

.con17_iner {
  padding: calc(var(--px)*110) 0 calc(var(--px)*155);
  overflow: hidden;
  justify-content: flex-start;
}

.con17__content {
  width: calc(var(--px)*1479);
  gap: calc(var(--px)*32);
  justify-content: flex-start;
}

.con17__head {
  gap: calc(var(--px)*16);
  justify-content: flex-start;
}

.con17__body {
  width: 100%;
  gap: calc(var(--px)*32);
  align-items: stretch;
  justify-content: flex-start;
}

.con17__store-list {
  display: grid;
  grid-template-rows: minmax(0, 1fr);
  box-sizing: border-box;
  contain: size;
  flex: 0 0 calc(var(--px)*454);
  width: calc(var(--px)*454);
  overflow: hidden;
  border: 1px solid #c3ac82;
  border-radius: calc(var(--px)*20);
  background: #f0ece5;
}

.con17__store-items {
  grid-area: 1 / 1;
  box-sizing: border-box;
  min-height: 0;
  padding: calc(var(--px)*77) calc(var(--px)*53) calc(var(--px)*80) calc(var(--px)*60);
  gap: calc(var(--px)*35.5);
  align-items: stretch;
  justify-content: flex-start;
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-width: none;
  background: #f0ece5;
}

.con17__store-items::-webkit-scrollbar {
  display: none;
}

.con17__store-bar {
  grid-area: 1 / 1;
  justify-self: end;
  align-self: stretch;
  width: calc(var(--px)*6);
  margin: calc(var(--px)*10) 0;
  pointer-events: none;
  z-index: 1;
}

.con17__store-thumb {
  position: relative;
  top: 0;
  display: block;
  width: 100%;
  border-radius: calc(var(--px)*6);
  background: #513f20;
}

.con17__store-item {
  gap: calc(var(--px)*10);
  padding-bottom: calc(var(--px)*35);
  border-bottom: 1px solid #c3ac82;
  align-items: stretch;
  justify-content: flex-start;
}

.con17__store-head {
  justify-content: space-between;
}

.con17 .map_plus,
.con17__filter,
.con17 .map_search {
  display: flex;
  align-items: center;
  padding: 0;
  border: 0;
  background: transparent;
}

.con17__store-address {
  font-style: normal;
}

.con17__map-panel {
  position: relative;
  isolation: isolate;
  box-sizing: border-box;
  flex: 0 0 calc(var(--px)*993);
  width: calc(var(--px)*993);
  overflow: hidden;
  border: 1px solid #c3ac82;
  border-radius: calc(var(--px)*20);
  background: #fff;
}

.con17__search {
  position: relative;
  z-index: 2;
  justify-content: space-between;
  box-sizing: border-box;
  padding: calc(var(--px)*27) calc(var(--px)*64) calc(var(--px)*28) calc(var(--px)*72);
}

.con17__search-fields {
  gap: calc(var(--px)*35);
  flex: 1;
  min-width: 0;
}

.con17__filter {
  position: relative;
}

.con17__filter-select {
  display: none;
}

.con17__filter-trigger {
  display: flex;
  align-items: center;
  gap: calc(var(--px)*35);
  padding: calc(var(--px)*15) 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.con17__filter-menu {
  position: absolute;
  top: calc(100% + var(--px)*8);
  left: 0;
  z-index: 3;
  box-sizing: border-box;
  min-width: calc(var(--px)*160);
  padding: calc(var(--px)*6);
  overflow: hidden;
  border: 1px solid #c3ac82;
  border-radius: calc(var(--px)*10);
  background: #fff;
  box-shadow: 0 calc(var(--px)*8) calc(var(--px)*24) rgba(81, 63, 32, .16);
}

.con17__filter-menu[hidden] {
  display: none;
}

.con17__filter-option {
  display: block;
  box-sizing: border-box;
  width: 100%;
  padding: calc(var(--px)*14) calc(var(--px)*16);
  border: 0;
  border-radius: calc(var(--px)*6);
  background: transparent;
  text-align: left;
  white-space: nowrap;
  cursor: pointer;
}

.con17__filter-option:hover,
.con17__filter-option:focus-visible,
.con17__filter-option[aria-selected="true"] {
  outline: 0;
  background: #f0ece5;
}

.con17__filter-option:hover .con17__filter-text,
.con17__filter-option:focus-visible .con17__filter-text,
.con17__filter-option[aria-selected="true"] .con17__filter-text {
  color: #513f20;
}

.con17__filter-text,
.con17__filter-arrow {
  pointer-events: none;
}

.con17__filter-arrow {
  display: block;
}

.con17__filter-arrow img {
  display: block;
}

.con17__search-input {
  flex: 1;
  min-width: 0;
  width: auto;
  padding: calc(var(--px)*12) 0;
  border: 0;
  outline: 0;
  background: transparent;
}

.con17__map {
  z-index: 0;
  width: 100%;
  height: calc(var(--px)*488);
}

.con17__map-canvas {
  width: 100%;
  height: 100%;
}

.con17__footer-band {
  bottom: calc(var(--px)*-3);
  left: 0;
  width: 100%;
  padding: calc(var(--px)*16) 0;
  overflow: hidden;
}

.con17__footer-bg {
  left: calc(var(--px)*-8);
}

.con17__footer-text {
  z-index: 1;
}

.con17__pop-dim {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, .5);
  backdrop-filter: blur(calc(var(--px)*4));
}

.con17__pop {
  position: relative;
  display: flex;
  box-sizing: border-box;
  width: calc(var(--px)*900);
  max-width: 92vw;
  padding: calc(var(--px)*25);
  overflow: hidden;
  border: 1px solid #513f20;
  border-radius: calc(var(--px)*20);
  background: #fff;
  font-family: var(--font-wanted);
}

.con17__pop-close {
  position: absolute;
  top: calc(var(--px)*20);
  right: calc(var(--px)*25);
  z-index: 1;
  padding: 0;
  border: 0;
  background: transparent;
  color: #888;
  font-size: var(--headL);
  line-height: 1;
  cursor: pointer;
}

.con17__pop-photo {
  flex-shrink: 0;
  width: calc(var(--px)*410);
  aspect-ratio: 410 / 343;
  overflow: hidden;
  border-radius: calc(var(--px)*20);
  background: #f2f2f2;
}

.con17__pop-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.con17__pop-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: flex-start;
  padding-right: .7vw;
  padding-left: calc(var(--px)*34);
}

.con17__pop-name {
  margin-top: calc(var(--px)*67);
  color: #131313;
  font-size: var(--bodyXL);
  font-weight: 700;
  letter-spacing: -.05em;
}

.con17__pop-line {
  width: 100%;
  height: 1px;
  margin-top: calc(var(--px)*18);
  background: #b2b2b2;
}

.con17__pop-row {
  display: flex;
  align-items: flex-start;
  margin-top: calc(var(--px)*3);
  color: #555;
  font-size: var(--bodyL);
  letter-spacing: -.03em;
  line-height: 1.4;
  text-decoration: none;
}

.con17__pop-addr {
  margin-top: calc(var(--px)*19);
}

.con17__pop-label {
  flex-shrink: 0;
  width: calc(var(--px)*50);
  color: #131313;
  font-weight: 600;
}

.con17__pop-val {
  flex: 1;
}

.con17__pop-naver {
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: flex-start;
  gap: calc(var(--px)*4);
  margin-top: calc(var(--px)*35);
  padding: calc(var(--px)*7) calc(var(--px)*20);
  border-radius: calc(var(--px)*8);
  background: #513f20;
  color: #fff;
  font-size: var(--bodyL);
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
}

.con17__pop-naver-chev {
  width: calc(var(--px)*20);
}

/* FONT:AUTO con17 */
/* spec.json 파생 (tools/spec-font-to-css.js · mode=robust unit=px) — 직접 수정 금지 */
.con17__head {
    font-family: var(--font-wanted);
    text-align: center;
    color: #000000;
}

.con17__title {
    font-size: var(--titleL);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.09;
}

.con17__title-em {
    color: #513f20;
}

.con17__subtitle {
    font-size: var(--bodyXL);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 3;
}

.con17__store-title {
    font-family: var(--font-wanted);
    font-size: var(--subheadS);
    font-weight: 700;
    letter-spacing: -0.04em;
    line-height: 2.73;
    text-align: center;
    color: #000000;
}

.con17__store-address {
    font-family: var(--font-pretendard);
    font-size: var(--bodyM);
    font-weight: 400;
    letter-spacing: -0.05em;
    line-height: 1.56;
    color: #000000;
}

.con17__filter-text,
.con17__search-placeholder {
    font-family: var(--font-wanted);
    font-size: var(--bodyXL);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 3;
    text-align: center;
    color: #000000;
}

.con17__footer-text {
    font-family: var(--font-wanted);
    font-size: var(--bodyM);
    font-weight: 600;
    letter-spacing: -0.05em;
    line-height: 1.2;
    text-align: center;
    color: #513f20;
}
/* /FONT:AUTO con17 */

/* con17 approved line-box alignment */
.con17 .con17__title {
  line-height: .92727;
}

.con17 .con17__subtitle,
.con17 .con17__store-title,
.con17 .con17__filter-text,
.con17 .con17__search-placeholder {
  line-height: .9;
}

.con17 .con17__store-address {
  line-height: 1.21875;
}

.con17 .con17__footer-text {
  line-height: 1;
}

.con17 .con17__search-input {
  text-align: left;
}

/* ===== con18 ===== */
.con18 {
  background-color: #282524;
}

.con18__frame {
  left: calc(var(--px)*209);
  bottom: calc(var(--px)*36);
}

.con18__dish {
  left: calc(var(--px)*453);
  top: calc(var(--px)*-179);
}

.con18__content {
  padding: calc(var(--px)*492) 0 calc(var(--px)*146);
  gap: 0;
}

.con18__banner {
  gap: calc(var(--px)*100);
}

.con18__banner-mark {
  margin-top: calc(var(--px)*62);
}

.con18 .con18__head-eyebrow {
  background: linear-gradient(90deg, #e7c48a, #fdfacd, #f1e5b3);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.con18__banner-body {
  width: calc(var(--px)*1228);
  padding: calc(var(--px)*54) 0 calc(var(--px)*49);
}

.con18__banner-glow {
  inset: 0;
}

.con18__banner-glow img {
  height: 100%;
}

.con18__banner-viewport {
  width: 100%;
  overflow: hidden;
}

.con18 .con18__head-title-em {
  display: inline-block; /* inline 박스 content-area 가 line-box 를 2.1px 넘어 spill 로 잡힘 */
}

.con18__head {
  margin-top: calc(var(--px)*42);
  gap: calc(var(--px)*12.55);
}

.con18__story {
  margin-top: calc(var(--px)*38.85);
  gap: calc(var(--px)*7);
}

.con18__story-pledge {
  margin-top: calc(var(--px)*17);
}

/* FONT:AUTO con18 */
/* spec.json 파생 (tools/spec-font-to-css.js · mode=robust unit=px) — 직접 수정 금지 */
.con18__banner-track {
    font-family: var(--font-kopub-batang);
    font-size: var(--headM);
    font-weight: 300;
    letter-spacing: -0.04em;
    line-height: 1.49;
    text-align: center;
    color: #ffffff;
}

.con18__head,
.con18__story {
    text-align: center;
}

.con18__head-eyebrow {
    font-family: var(--font-kopub-batang);
    font-size: var(--headM);
    font-weight: 700;
    letter-spacing: -0.06em;
    line-height: 1;
    color: #513f20;
}

.con18__head-title {
    font-family: var(--font-wanted);
    font-size: var(--titleL);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.09;
    color: #ffffff;
}

.con18__head-title-em {
    color: #fadfb4;
}

.con18__story-para {
    font-family: var(--font-wanted);
    font-size: var(--bodyL);
    font-weight: 400;
    letter-spacing: -0.04em;
    line-height: 1.47;
    color: #f9f0e1;
}

.con18__story-quote {
    font-family: var(--font-kopub-batang);
    font-size: var(--bodyXL);
    font-weight: 300;
    letter-spacing: -0.04em;
    line-height: 1.65;
    color: #fadfb4;
}

.con18__story-pledge {
    font-family: var(--font-wanted);
    font-size: var(--bodyXL);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.25;
    color: #f9f0e1;
}
/* /FONT:AUTO con18 */

/* ===== con19 ===== */
.con19 {
  .con19_iner {
    box-sizing: border-box;
    padding: calc(var(--px)*65) calc(var(--px)*232) calc(var(--px)*182) calc(var(--px)*230);
    gap: calc(var(--px)*109);
  }

  .con19__visual {
    width: 100%;
    gap: calc(var(--px)*158);
  }

  .con19__photo-frame {
    width: calc(var(--px)*1194);
    aspect-ratio: 1194 / 430;
    overflow: hidden;
    border-radius: calc(var(--px)*30);
  }

  .con19__photo {
    top: calc(var(--px)*-42);
    right: calc(var(--px)*-33);
  }

  .con19__seal {
    margin-top: calc(var(--px)*50);
  }

  .con19__copy {
    gap: calc(var(--px)*22);
  }

  .con19__form {
    box-sizing: border-box;
    align-items: stretch;
    right: calc(var(--px)*235);
    bottom: calc(var(--px)*67);
    width: calc(var(--px)*763);
    padding: calc(var(--px)*58) calc(var(--px)*118) calc(var(--px)*57) calc(var(--px)*117);
    background-color: #ffffff;
    border: 1px solid #21130e;
    border-radius: calc(var(--px)*30);
  }

  .con19__field,
  .con19__field--type,
  .con19__field--message {
    box-sizing: border-box;
    width: 100%;
    padding: calc(var(--px)*19) 0 calc(var(--px)*19) calc(var(--px)*27);
    border-bottom: 1px solid rgba(0, 0, 0, 0.149);
  }

  .con19__field--type,
  .con19__field--message {
    padding-bottom: calc(var(--px)*16);
  }

  .con19__field-label {
    width: calc(var(--px)*179);
  }

  .con19__field-input,
  .con19__field-textarea {
    width: calc(var(--px)*322);
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
    color: inherit;
    background-color: transparent;
    border: 0;
  }

  .con19__field-textarea {
    padding-bottom: calc(var(--px)*16);
    max-height: calc(var(--px)*120);
    resize: vertical;
  }

  .con19__type-group {
    gap: calc(var(--px)*10);
  }

  .con19__type {
    width: calc(var(--px)*119);
    padding: calc(var(--px)*2) 0;
    background-color: transparent;
    border: 1px solid rgba(0, 0, 0, 0.2);
    border-radius: calc(var(--px)*5);
    color: rgba(0, 0, 0, 0.4);
  }

  .con19__type--selected {
    background-color: #ffffff;
    border-color: #000000;
    color: #000000;
  }

  .con19__agree {
    margin-top: calc(var(--px)*1);
    gap: calc(var(--px)*4);
  }

  .con19__agree-check {
    box-sizing: border-box;
    width: calc(var(--px)*15);
    aspect-ratio: 1 / 1;
    border: 1px solid currentColor;
    border-radius: 50%;
    cursor: pointer;
  }

  .con19__agree-check:checked {
    background-color: #21150f;
    box-shadow: inset 0 0 0 3px #ffffff;
  }

  .con19__submit {
    margin-top: calc(var(--px)*1);
    padding: calc(var(--px)*17) 0 calc(var(--px)*16);
    background-color: #21150f;
    border: 0;
    border-radius: calc(var(--px)*10);
  }
}

/* FONT:AUTO con19 */
/* spec.json 파생 (tools/spec-font-to-css.js · mode=robust unit=px) — 직접 수정 금지 */
.con19__copy {
    font-family: var(--font-wanted);
    color: #ffffff;
}

.con19__copy-title {
    font-size: var(--titleL);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.09;
}

.con19__copy-title-em {
    color: #fadfb4;
}

.con19__copy-desc {
    font-size: var(--bodyXL);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 1.5;
}

.con19__field-label {
    font-family: var(--font-wanted);
    font-size: var(--bodyXL);
    font-weight: 600;
    letter-spacing: -0.04em;
    line-height: 1.75;
    text-align: center;
    color: #000000;
}

.con19__type-group {
    font-family: var(--font-wanted);
    font-size: var(--bodyM);
    font-weight: 600;
    letter-spacing: -0.04em;
    line-height: 2.06;
    text-align: center;
    color: #000000;
}

.con19__agree-text {
    font-family: var(--font-wanted);
    font-size: var(--bodyM);
    font-weight: 600;
    letter-spacing: -0.04em;
    line-height: 2.19;
    text-align: center;
    color: #000000;
}

.con19__submit {
    font-family: var(--font-wanted);
    font-size: var(--bodyXL);
    font-weight: 700;
    letter-spacing: -0.04em;
    line-height: 1.75;
    text-align: center;
    color: #ffffff;
}
/* /FONT:AUTO con19 */
