@charset "UTF-8";

/* merge-build.js 산출물 — 납품 시 css/sections/*.css 전량이 이 아래로 합쳐진다. 손으로 쓰지 않는다(CLAUDE.md 원칙 14). */
/* merge-build:fcon01 */
/* fcon01 — 모바일: 제목 2줄 가운데 유지, 라벨은 둘째 줄 안에서 줄바꿈 없이 유지 후보 */
.fcon01 {
  background-color: #fff; /* bg_img 상단 라운드 모서리가 투명 — 뒤 흰 판 */
  overflow: hidden; /* bg_img scale 1.08 등장이 섹션 밖으로 넘치는 것 차단 */
}

.fcon01_iner {
  padding-bottom: calc(var(--px)*317);
}

.fcon01__title {
  margin-top: calc(var(--px)*340);
  padding-right: calc(var(--px)*4);
}

.fcon01__title-accent {
  padding: calc(var(--px)*6) calc(var(--px)*18) calc(var(--px)*4);
  border-radius: calc(var(--px)*13);
  /* 등장이 좌→우 grow 라 background-size 를 트윈한다 — background-color 는 방향이 없어 페이드밖에 안 된다 */
  background-image: linear-gradient(#009e5a, #009e5a);
  background-repeat: no-repeat;
  background-position: left center;
  background-size: 100% 100%;
}

/* FONT:AUTO fcon01 */
/* spec.json 파생 (tools/spec-font-to-css.js · unit=--px) — 재생성 대상, 직접 수정 금지 */
/* 예외: line-height · letter-spacing 는 값을 고치고 뒤에 OVR 주석을 붙이면 재생성이 보존한다 */
.fcon01__title {
    font-family: var(--font-nanumsquare-neo);
    font-size: calc(var(--px)*50.51);
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 1.366; /* OVR */
    text-align: center;
    color: #ffffff;
}
/* /FONT:AUTO fcon01 END */

/* INK:AUTO fcon01 */
.fcon01__title { margin-top: calc(var(--px) * 330.5); margin-bottom: calc(var(--px) * -10.5); } /* base 340,0 */
/* /INK:AUTO fcon01 END */

@media (max-width:599px) {
  .fcon01 {
    border-radius: 12.8vw 12.8vw 0 0;
    overflow: hidden;
  }

  .fcon01_iner {
    justify-content: center;
    min-height: 100vw;
    padding: 0 6.4vw;
  }

  .fcon01__title {
    font-size: var(--titleM);
    margin-top: 0;
    margin-bottom: 0;
    padding-right: 0;
  }

  .fcon01__title-accent {
    padding: 1.0667vw 3.2vw 0.5333vw;
    border-radius: 2.1333vw;
  }
}


/* /merge-build:fcon01 */
/* merge-build:fcon02 */
.fcon02 {
    background: #fff;
    & .fcon02__heading {
        padding-block: calc(var(--px)*52) calc(var(--px)*57);
        &::before, &::after { content: ''; position: absolute; top: calc(var(--px)*93); width: calc(var(--px)*605); border-top: 1px solid color-mix(in srgb, #009e5a 20%, transparent); }
        &::before { left: 0; }
        &::after { right: 0; }
    }
    & .fcon02__title { word-spacing: calc(var(--px)*8); }
    & .fcon02__inner { padding-block: calc(var(--px)*66) calc(var(--px)*80); }
    & .fcon02__comparison { width: calc(var(--px)*1218); margin-top: calc(var(--px)*34); }
    & .fcon02__general { width: calc(var(--px)*365); align-self: flex-end; margin-bottom: calc(var(--px)*16.5); padding-bottom: calc(var(--px)*3); border: 1px solid #d5d5d5; border-right: 0; border-radius: calc(var(--px)*30) 0 0 calc(var(--px)*30); background: #fff; overflow: hidden; box-shadow: 0 0 30px #00000017; }
    & .fcon02__general-head { padding-block: calc(var(--px)*32) calc(var(--px)*18.62); padding-left: calc(var(--px)*39); gap: calc(var(--px)*12); border-bottom: 1px solid #d5d5d5; }
    & .fcon02__trend { padding: calc(var(--px)*6) calc(var(--px)*15); border-radius: calc(var(--px)*15); background: #838a87; }
    & .fcon02__general-values { opacity: 0.5; padding-top: calc(var(--px)*7); }
    & .fcon02__criteria { width: calc(var(--px)*144); align-self: flex-end; margin-bottom: calc(var(--px)*16.5); padding-bottom: calc(var(--px)*4); background: #eff5f2; }
    & .fcon02__criteria-values { padding-top: calc(var(--px)*7); }
    & .fcon02__criteria-head { padding-block: calc(var(--px)*22.5); border-bottom: 1px solid #d5d5d5; }
    & .fcon02__brand { width: calc(var(--px)*709); margin-left: calc(var(--px)*-3); border: calc(var(--px)*6) solid #009e5a; border-radius: calc(var(--px)*43); overflow: hidden; background: #fff; box-shadow: 0 12px 4px #00000024; }
    & .fcon02__brand-head { padding-block: calc(var(--px)*19) calc(var(--px)*21.4); gap: calc(var(--px)*11); background: #009e5a; }
    & .fcon02__market { padding: calc(var(--px)*6) calc(var(--px)*16); border-radius: calc(var(--px)*18); background: #175733; }
    & .fcon02__brand-values { padding-block: calc(var(--px)*8) calc(var(--px)*14.4); }
    & .fcon02__row { display: block; height: calc(var(--px)*47.2); /* HEIGHT: 비교표 행 밴드 — 3열 구분선이 한 줄로 이어지려면 행 높이가 열마다 같아야 하는데 열별 폰트·글자수가 달라 콘텐츠로는 안 맞음 (모바일 .fcon02__row 와 같은 축) */ border-bottom: 1px solid #bfbfbf4d; }
    & .fcon02__row:last-child { border-bottom: 0; }
    & .fcon02__closing { margin-top: calc(var(--px)*67); gap: calc(var(--px)*22); padding-bottom: calc(var(--px)*4.48); }
    & .fcon02__keyword-01 { left: calc(var(--px)*111); top: calc(var(--px)*248); animation: fcon02-drop 6s ease-in-out 0s infinite; }
    & .fcon02__keyword-02 { left: calc(var(--px)*13); bottom: calc(var(--px)*436); animation: fcon02-drop 6s ease-in-out 1.2s infinite; }
    & .fcon02__keyword-03 { left: calc(var(--px)*39); bottom: calc(var(--px)*64); animation: fcon02-drop 6s ease-in-out 2.4s infinite; }
    & .fcon02__keyword-04 { left: calc(var(--px)*220); top: calc(var(--px)*413); animation: fcon02-drop 6s ease-in-out 0.6s infinite; }
    & .fcon02__keyword-05 { left: calc(var(--px)*292); bottom: calc(var(--px)*211); animation: fcon02-drop 6s ease-in-out 1.8s infinite; }
    & .fcon02__keyword-06 { right: calc(var(--px)*137); top: calc(var(--px)*248); animation: fcon02-drop 6s ease-in-out 0s infinite; }
    & .fcon02__keyword-07 { right: calc(var(--px)*167); bottom: calc(var(--px)*436); animation: fcon02-drop 6s ease-in-out 1.2s infinite; }
    & .fcon02__keyword-08 { right: calc(var(--px)*270); bottom: calc(var(--px)*64); animation: fcon02-drop 6s ease-in-out 2.4s infinite; }
    & .fcon02__keyword-09 { right: calc(var(--px)*-6); top: calc(var(--px)*413); animation: fcon02-drop 6s ease-in-out 0.6s infinite; }
    & .fcon02__keyword-10 { right: calc(var(--px)*1); bottom: calc(var(--px)*211); animation: fcon02-drop 6s ease-in-out 1.8s infinite; }
}

@keyframes fcon02-drop {
    0% { transform: translateY(-40%); opacity: 0; }
    18% { transform: translateY(0); opacity: 1; }
    68% { transform: translateY(0); opacity: 1; }
    100% { transform: translateY(40%); opacity: 0; }
}

/* IMG:AUTO fcon02 */
/* 섹션 HTML 파생 (tools/img-size-to-css.js · unit=--px) — 재생성 대상, 직접 수정 금지 */
/* 예외: 값을 고치고 뒤에 OVR 주석을 붙이면 재생성이 보존한다 */
.fcon02__keyword-01 {
    width: calc(var(--px)*226);
    aspect-ratio: 226 / 64;
}

.fcon02__keyword-02,
.fcon02__keyword-07 {
    width: calc(var(--px)*294);
    aspect-ratio: 294 / 68;
}

.fcon02__keyword-03 {
    width: calc(var(--px)*164);
    aspect-ratio: 164 / 104;
}

.fcon02__keyword-04 {
    width: calc(var(--px)*259);
    aspect-ratio: 259 / 96;
}

.fcon02__keyword-05 {
    width: calc(var(--px)*180);
    aspect-ratio: 180 / 120;
}

.fcon02__keyword-06 {
    width: calc(var(--px)*225);
    aspect-ratio: 225 / 64;
}

.fcon02__keyword-08 {
    width: calc(var(--px)*165);
    aspect-ratio: 165 / 104;
}

.fcon02__keyword-09 {
    width: calc(var(--px)*260);
    aspect-ratio: 260 / 96;
}

.fcon02__keyword-10 {
    width: calc(var(--px)*181);
    aspect-ratio: 181 / 120;
}
/* /IMG:AUTO fcon02 END */

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

.fcon02__title {
    font-family: var(--font-poppins);
    font-size: calc(var(--px)*50.51);
    letter-spacing: -0.02em;
    color: #101111;
}

.fcon02__subtitle {
    font-family: var(--font-pretendard);
    font-size: var(--headS);
    letter-spacing: -0.0312em; /* OVR */
}

.fcon02__subtitle-start,
.fcon02__subtitle-end,
.fcon02__intro-start,
.fcon02__intro-end {
    color: #101111;
}

.fcon02__subtitle-point,
.fcon02__intro-point {
    color: #009e5a;
}

.fcon02__intro {
    font-family: var(--font-nanumsquare-neo);
    font-size: var(--titleL);
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 1.3;
    text-align: center;
}

.fcon02__comparison {
    text-align: center;
}

.fcon02__general,
.fcon02__brand {
    font-family: var(--font-pretendard);
}

.fcon02__trend {
    font-size: var(--bodyM);
    font-weight: 600;
    letter-spacing: -0.04em;
    line-height: 1.2; /* OVR */
    color: #ffffff;
}

.fcon02__general-title {
    font-size: var(--subheadS);
    font-weight: 700;
    letter-spacing: -0.04em;
    line-height: 1.81;
    color: #101111;
}

.fcon02__general-values {
    font-size: var(--bodyM);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 2.94;
    color: #101111;
}

.fcon02__criteria {
    color: #175833;
}

.fcon02__versus {
    font-family: var(--font-poppins);
    font-size: var(--titleS);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.2; /* OVR */
}

.fcon02__criteria-values {
    font-family: var(--font-pretendard);
    font-size: var(--bodyM);
    font-weight: 600;
    letter-spacing: -0.04em;
    line-height: 2.94;
}

.fcon02__brand-head {
    color: #ffffff;
}

.fcon02__market {
    font-size: var(--bodyXL);
    font-weight: 700;
    letter-spacing: -0.0158em; /* OVR */
    line-height: 1.2; /* OVR */
}

.fcon02__brand-title {
    font-size: var(--titleL);
    font-weight: 800;
    letter-spacing: -0.0706em; /* OVR */
    line-height: 1.26;
}

.fcon02__brand-values {
    font-size: var(--headS);
    letter-spacing: -0.04em;
    line-height: 2.24;
}

.fcon02__value-0,
.fcon02__value-2,
.fcon02__value-5,
.fcon02__value-7,
.fcon02__value-9,
.fcon02__value-11,
.fcon02__value-13 {
    font-weight: 800;
    color: #009e5a;
}

.fcon02__value-1,
.fcon02__value-4,
.fcon02__value-6,
.fcon02__value-8,
.fcon02__value-10,
.fcon02__value-12 {
    font-weight: 700;
    color: #101111;
}

.fcon02__value-3 {
    font-weight: 800;
    color: #101111;
}

.fcon02__closing {
    font-family: var(--font-pretendard);
    color: #101111;
}

.fcon02__summary {
    font-size: var(--headS);
    font-weight: 800;
    letter-spacing: -0.0656em; /* OVR */
    line-height: 1.07;
}

.fcon02__description {
    font-size: var(--bodyL);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 1.47;
    text-align: center;
}
/* /FONT:AUTO fcon02 END */

/* INK:AUTO fcon02 */
.fcon02__value-4 { margin-top: calc(var(--px) * -14.02); margin-bottom: calc(var(--px) * 10.03); } /* base 0,0 */
.fcon02__value-10 { margin-top: calc(var(--px) * -14.02); margin-bottom: calc(var(--px) * 10.03); } /* base 0,0 */
.fcon02__value-6 { margin-top: calc(var(--px) * -14.02); margin-bottom: calc(var(--px) * 10.02); } /* base 0,0 */
.fcon02__value-8 { margin-top: calc(var(--px) * -14.02); margin-bottom: calc(var(--px) * 8.03); } /* base 0,0 */
.fcon02__value-0 { margin-top: calc(var(--px) * -14.02); margin-bottom: calc(var(--px) * 8.02); } /* base 0,0 */
.fcon02__value-1 { margin-top: calc(var(--px) * -14.02); margin-bottom: calc(var(--px) * 8.02); } /* base 0,0 */
.fcon02__value-2 { margin-top: calc(var(--px) * -14.02); margin-bottom: calc(var(--px) * 8.02); } /* base 0,0 */
.fcon02__value-3 { margin-top: calc(var(--px) * -14.02); margin-bottom: calc(var(--px) * 8.02); } /* base 0,0 */
.fcon02__value-5 { margin-top: calc(var(--px) * -14.02); margin-bottom: calc(var(--px) * 8.02); } /* base 0,0 */
.fcon02__value-7 { margin-top: calc(var(--px) * -14.02); margin-bottom: calc(var(--px) * 8.02); } /* base 0,0 */
.fcon02__value-9 { margin-top: calc(var(--px) * -14.02); margin-bottom: calc(var(--px) * 8.02); } /* base 0,0 */
.fcon02__value-11 { margin-top: calc(var(--px) * -14.02); margin-bottom: calc(var(--px) * 8.02); } /* base 0,0 */
.fcon02__value-12 { margin-top: calc(var(--px) * -14.02); margin-bottom: calc(var(--px) * 8.02); } /* base 0,0 */
.fcon02__value-13 { margin-top: calc(var(--px) * -14.02); margin-bottom: calc(var(--px) * 8.02); } /* base 0,0 */
.fcon02__brand-title { margin-top: calc(var(--px) * -6.2); margin-bottom: calc(var(--px) * -7.19); } /* base 0,0 */
.fcon02__intro-start { margin-top: calc(var(--px) * -6); margin-bottom: calc(var(--px) * 5); } /* base 0,0 */
.fcon02__description { margin-top: calc(var(--px) * -4.49); margin-bottom: calc(var(--px) * -4.48); } /* base 0,0 */
.fcon02__intro-point { margin-top: calc(var(--px) * -7); margin-bottom: calc(var(--px) * 1); } /* base 0,0 */
.fcon02__intro-end { margin-top: calc(var(--px) * -7); margin-bottom: calc(var(--px) * 1); } /* base 0,0 */
.fcon02__title { margin-top: calc(var(--px) * -5.81); margin-bottom: calc(var(--px) * 1.2); } /* base 0,0 */
.fcon02__subtitle-point { margin-top: calc(var(--px) * -3.1); margin-bottom: calc(var(--px) * -2.9); } /* base 0,0 */
.fcon02__subtitle-end { margin-top: calc(var(--px) * -3.1); margin-bottom: calc(var(--px) * -2.9); } /* base 0,0 */
.fcon02__subtitle-start { margin-top: calc(var(--px) * -3.1); margin-bottom: calc(var(--px) * -0.9); } /* base 0,0 */
.fcon02__summary { margin-top: calc(var(--px) * -1.73); margin-bottom: calc(var(--px) * -1.73); } /* base 0,0 */
/* /INK:AUTO fcon02 END */

@media (max-width:599px) {
    .fcon02 {
        & .fcon02__heading {
            padding-block: 10.6667vw 8.5333vw; gap: 2.1333vw;
            &::before, &::after { display: none; }
        }
        & .fcon02__title { padding-inline: 4.2667vw; font-size: 5.8667vw; word-spacing: 0.5333vw; } /* 토큰 6.4vw 는 1줄이 327px 폭을 넘김 */
        & .fcon02__inner { padding-block: 10.6667vw 10.6667vw; }
        & .fcon02__comparison { align-items: flex-end; width: 89.3333vw; margin-top: 5.3333vw; }
        & .fcon02__general { width: 25.6vw; margin-bottom: 1.0667vw; padding-bottom: 0; border-radius: 3.2vw 0 0 3.2vw; }
        & .fcon02__general-head { flex-direction: column; justify-content: center; padding-block: 2.1333vw; padding-left: 0; gap: 0.5333vw; }
        & .fcon02__general-title { font-size: 2.9333vw; line-height: 1.3; }
        & .fcon02__trend { padding: 0.5333vw 1.6vw; border-radius: 3.2vw; font-size: 2.6667vw; }
        & .fcon02__criteria { width: 14.9333vw; margin-bottom: 1.0667vw; padding-bottom: 0; }
        & .fcon02__criteria-head { padding-block: 3.8667vw; } /* 2줄인 general-head(49px)와 밑선을 맞춘다 — VS 는 1줄이라 패딩으로 채움 */
        & .fcon02__versus { font-size: 4.2667vw; }
        & .fcon02__brand { flex: 1; width: auto; min-width: 0; margin-left: 0; border-width: 1.0667vw; border-radius: 4.2667vw; }
        & .fcon02__brand-head { padding-block: 2.1333vw; gap: 1.0667vw; }
        & .fcon02__brand-title { font-size: 4.8vw; }
        & .fcon02__market { padding: 0.5333vw 1.6vw; border-radius: 3.2vw; font-size: 2.6667vw; }
        & .fcon02__general-values, & .fcon02__criteria-values, & .fcon02__brand-values { line-height: 1.4; padding: 0 1.6vw; }
        & .fcon02__row { display: flex; align-items: center; justify-content: center; height: 13.3333vw; border-bottom: 1px solid #bfbfbf4d; }
        & .fcon02__row:last-child { border-bottom: 0; }
        & .fcon02__general-values { font-size: 2.6667vw; }
        & .fcon02__criteria-values { font-size: 2.9333vw; }
        & .fcon02__brand-values { font-size: 3.2vw; }
        & .fcon02__closing { margin-top: 10.6667vw; gap: 3.2vw; padding: 0 5.3333vw 0.5333vw; }
        & .fcon02__value-0, & .fcon02__value-1, & .fcon02__value-2, & .fcon02__value-3, & .fcon02__value-4,
        & .fcon02__value-5, & .fcon02__value-6, & .fcon02__value-7, & .fcon02__value-8, & .fcon02__value-9,
        & .fcon02__value-10, & .fcon02__value-11, & .fcon02__value-12, & .fcon02__value-13,
        & .fcon02__title, & .fcon02__subtitle-start, & .fcon02__subtitle-point, & .fcon02__subtitle-end,
        & .fcon02__intro-start, & .fcon02__intro-point, & .fcon02__intro-end,
        & .fcon02__brand-title, & .fcon02__summary, & .fcon02__description { margin-top: 0; margin-bottom: 0; }
    }
}

/* /merge-build:fcon02 */
/* merge-build:fcon03 */
/* fcon03 — 모바일: head 3열 → column(제목·접시·설명원), 카드 3열 → 1열 후보 */
.fcon03 {
  background-color: #fdd355;
}

.fcon03_iner {
  width: calc(var(--px)*1303);
  padding-top: calc(var(--px)*127);
  padding-bottom: calc(var(--px)*45);
}

.fcon03__head {
  padding-left: calc(var(--px)*27);
}

.fcon03__intro {
  width: calc(var(--px)*383);
  padding-top: calc(var(--px)*67);
}

.fcon03__signature {
  padding-inline: calc(var(--px)*16);
  border-radius: 0 calc(var(--px)*16) calc(var(--px)*16) calc(var(--px)*17);
  background-color: #101111;
}

.fcon03__title {
  margin-top: calc(var(--px)*17);
}

.fcon03__visual {
  z-index: 2; /* swiper 가 .swiper{z-index:1} 로 스택 컨텍스트를 만듦 — 접시가 설명 원 위 */
}

.fcon03__kcal {
  left: calc(var(--px)*-77);
  bottom: calc(var(--px)*41);
}

.fcon03__slider.swiper {
  width: calc(var(--px)*440);
  margin: calc(var(--px)*15) 0 0 calc(var(--px)*-36);
  overflow: visible;
}

.fcon03__point.swiper-slide {
  display: flex; /* swiper-bundle 이 .swiper-slide{display:block;height:100%} 를 뒤에서 걸어 단일 클래스로는 짐 */
  height: calc(var(--px)*440); /* HEIGHT: 원형 판 지름 고정 도형 */
  padding-top: calc(var(--px)*68);
  border: 1px solid #e8b92d;
  border-radius: 50%;
  background-color: #fed352;
  box-shadow: 0 calc(var(--px)*14) calc(var(--px)*6) rgba(0, 0, 0, 0.14);

  .swiper-creative & {
    transition-property: transform, opacity, height, background-color, border-color; /* swiper 의 .swiper-creative .swiper-slide 를 이길 특정도 · 시간은 Swiper 가 inline 으로 준다 */
  }

  &::before {
    content: "";
    position: absolute;
    inset: calc(var(--px)*20);
    border: 1px solid #fdd350;
    border-radius: 50%;
    opacity: 0;
    pointer-events: none;
  }

  & > * {
    opacity: 0.349;
  }

  &.swiper-slide-active {
    border-color: transparent;
    background-color: #fff;

    &::before {
      opacity: 0.6314;
    }

    & > * {
      opacity: 1;
    }
  }
}

.fcon03__protein-icon {
  margin-top: calc(var(--px)*13);
}

.fcon03__point-title {
  margin-top: calc(var(--px)*18);
}

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

.fcon03__cards {
  gap: calc(var(--px)*17);
  margin-top: calc(var(--px)*39);
}

.fcon03__card {
  flex: 1 1 0;
  margin-top: calc(var(--px)*50);
  padding: calc(var(--px)*40) 0 calc(var(--px)*54);
  border-radius: calc(var(--px)*40);
  background-color: #fff8dd;
  transition: background-color .45s ease-out, transform .45s ease-out;
}

.fcon03__card--highlight {
  margin-top: 0;
  background-color: #101111;
}

.fcon03__card-label {
  padding-inline: calc(var(--px)*14);
  border: 2px solid #009e5a;
  border-radius: calc(var(--px)*16);
  text-transform: uppercase;
  transition: border-color .45s ease-out, color .45s ease-out;
}

.fcon03__card-label--highlight {
  border-color: #fed453;
}

.fcon03__card-title {
  margin-top: calc(var(--px)*16);
  transition: color .45s ease-out;
}

.fcon03__card-desc {
  margin-top: calc(var(--px)*24);
  transition: color .45s ease-out;
}

.fcon03__more {
  width: fit-content;
  margin-top: calc(var(--px)*52);
  padding: calc(var(--px)*11) calc(var(--px)*26) calc(var(--px)*11) calc(var(--px)*44);
  gap: calc(var(--px)*22);
  border: 1px solid #eaf1ee;
  border-radius: calc(var(--px)*33);
  background-color: #fff;
}

.fcon03__more-arrow {
  width: calc(var(--px)*43);
  height: calc(var(--px)*43); /* HEIGHT: 원형 아이콘 지름 고정 도형 */
  border-radius: 50%;
  background-color: #009e5a;
}

/* 하이라이트 순환 시각은 is-cycling 스코프가 소유 — JS-off·모바일에선 PC 완료 픽셀 그대로 */
.fcon03__cards.is-cycling {
  & .fcon03__card.is-highlight {
    background-color: #101111;
    transform: translateY(calc(var(--px)*-50));

    & .fcon03__card-label {
      border-color: #fed453;
      color: #fed453;
    }

    & .fcon03__card-title,
    & .fcon03__card-desc {
      color: #fff;
    }
  }

  & .fcon03__card--highlight.is-highlight {
    transform: translateY(0);
  }

  & .fcon03__card--highlight:not(.is-highlight) {
    background-color: #fff8dd;
    transform: translateY(calc(var(--px)*50));

    & .fcon03__card-label {
      border-color: #009e5a;
      color: #009e5a;
    }

    & .fcon03__card-title,
    & .fcon03__card-desc {
      color: #101111;
    }
  }
}

/* IMG:AUTO fcon03 */
/* 섹션 HTML 파생 (tools/img-size-to-css.js · unit=--px) — 재생성 대상, 직접 수정 금지 */
/* 예외: 값을 고치고 뒤에 OVR 주석을 붙이면 재생성이 보존한다 */
.fcon03__plate {
    width: calc(var(--px)*483);
    aspect-ratio: 483 / 474;
}

.fcon03__kcal {
    width: calc(var(--px)*117);
    aspect-ratio: 117 / 103;
}

.fcon03__meal-icon {
    width: calc(var(--px)*56);
    aspect-ratio: 56 / 83;
}

.fcon03__protein-icon {
    width: calc(var(--px)*56);
    aspect-ratio: 56 / 70;
}
/* /IMG:AUTO fcon03 END */

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

.fcon03__signature {
    font-family: var(--font-pretendard);
    font-size: var(--bodyXL);
    letter-spacing: -0.04em;
    line-height: 1.8;  /* OVR psd:2.8 */
    color: #fdd254;
}

.fcon03__title {
    font-family: var(--font-poppins);
    font-size: var(--displayXL);
    letter-spacing: -0.02em;
    line-height: 1;
    color: #101111;
}

.fcon03__slider {
    font-family: var(--font-pretendard);
    text-align: center;
    color: #101111;
}

.fcon03__point-title {
    font-size: var(--headL);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.26;  /* OVR psd:2.01 */
}

.fcon03__point-desc {
    font-size: var(--bodyM);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 1.38;
}

.fcon03__point-title.fcon03__point-title--protein {
    font-size: var(--headL);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.26;
}

.fcon03__card-label.fcon03__card-label--highlight {
    font-family: var(--font-poppins);
    font-size: var(--bodyXL);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.6;  /* OVR psd:2.04 */
    text-align: center;
    color: #fed453;
}

.fcon03__card-title.fcon03__card-title--highlight {
    font-family: var(--font-pretendard);
    font-size: var(--titleM);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.44;
    color: #ffffff;
}

.fcon03__card-desc.fcon03__card-desc--highlight {
    font-family: var(--font-pretendard);
    font-size: var(--bodyL);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 1.35;
    text-align: center;
    color: #ffffff;
}

.fcon03__card-label {
    font-family: var(--font-poppins);
    font-size: var(--bodyXL);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.6;  /* OVR psd:2.04 */
    text-align: center;
    color: #009e5a;
}

.fcon03__card-title,
.fcon03__card-title.fcon03__card-title--protein {
    font-family: var(--font-pretendard);
    font-size: var(--titleM);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.44;
    color: #101111;
}

.fcon03__card-desc {
    font-family: var(--font-pretendard);
    font-size: var(--bodyL);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 1.35;
    text-align: center;
    color: #101111;
}

.fcon03__more {
    line-height: 1.2;
}

.fcon03__more-text {
    font-family: var(--font-pretendard);
    font-size: var(--bodyM);
    font-weight: 700;
    letter-spacing: -0.04em;
    text-align: right;
    color: #101111;
}

.fcon03__more-arrow {
    font-family: var(--font-wanted);
    font-size: var(--titleXS);
    font-weight: 800;
    letter-spacing: -0.02em;
    color: #ffffff;
}
/* /FONT:AUTO fcon03 END */

/* INK:AUTO fcon03 */
.fcon03__title { margin-top: calc(var(--px) * 4.5); margin-bottom: calc(var(--px) * 11.5); } /* base 17,0 */
.fcon03__card-title.fcon03__card-title--protein { margin-top: calc(var(--px) * 6.3); margin-bottom: calc(var(--px) * -8.69); } /* base 16,0 */
.fcon03__card-title.fcon03__card-title--highlight { margin-top: calc(var(--px) * 7.3); margin-bottom: calc(var(--px) * -8.69); } /* base 16,0 */
.fcon03__card-title { margin-top: calc(var(--px) * 7.3); margin-bottom: calc(var(--px) * -8.69); } /* base 16,0 */
.fcon03__point-title { margin-top: calc(var(--px) * 13.25); margin-bottom: calc(var(--px) * -3.74); } /* base 18,0 */
.fcon03__point-title.fcon03__point-title--protein { margin-top: calc(var(--px) * 13.25); margin-bottom: calc(var(--px) * -3.71); } /* base 18,0 */
.fcon03__point-desc { margin-top: calc(var(--px) * 19.46); margin-bottom: calc(var(--px) * -3.5); } /* base 23,0 */
.fcon03__card-desc.fcon03__card-desc--highlight { margin-top: calc(var(--px) * 20.53); margin-bottom: calc(var(--px) * -3.45); } /* base 24,0 */
.fcon03__card-desc { margin-top: calc(var(--px) * 20.53); margin-bottom: calc(var(--px) * -3.45); } /* base 24,0 */
/* /INK:AUTO fcon03 END */

@media (max-width: 599px) {
  .fcon03_iner {
    width: 100%;
    padding-inline: 5.3333vw;
    padding-top: 10.6667vw;
    padding-bottom: 8.5333vw;
  }

  .fcon03__head {
    flex-direction: column;
    align-items: center;
    padding-left: 0;
  }

  .fcon03__intro {
    width: auto;
    align-items: center;
    padding-top: 0;
  }

  .fcon03__signature {
    padding-inline: 2.1333vw;
    border-radius: 0 3.2vw 3.2vw 3.2vw;
  }

  .fcon03__title {
    font-size: var(--displayS); /* displayXL·M 은 "Kimbap" 이 375 폭을 거의 다 먹음 */
    margin-top: 3.2vw;
    margin-bottom: 0;
  }

  .fcon03__plate {
    width: 70vw;
  }

  .fcon03__kcal {
    width: 16.9565vw;
    left: -11.1594vw;
    bottom: 5.9420vw;
  }

  .fcon03__slider.swiper {
    width: 100%;
    margin: 2.1333vw 0 0;
  }

  .fcon03__point.swiper-slide {
    height: 89.3333vw; /* HEIGHT: 원형 판 지름 고정 도형 */
    padding-top: 12.8vw;
    padding-inline: 17.0667vw;
    box-shadow: 0 8px 4px rgba(0, 0, 0, 0.14);

    &::before {
      inset: 3.2vw;
    }
  }

  .fcon03__meal-icon,
  .fcon03__protein-icon {
    width: 8.96vw;
  }

  .fcon03__protein-icon {
    margin-top: 2.1333vw;
  }

  .fcon03__point-title,
  .fcon03__point-title.fcon03__point-title--protein {
    margin-top: 3.2vw;
    margin-bottom: 0;
  }

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

  .fcon03__cards {
    flex-direction: column;
    align-items: stretch;
    gap: 3.2vw;
    margin-top: 6.4vw;
  }

  .fcon03__card,
  .fcon03__card.fcon03__card--highlight {
    flex: 0 0 auto;
    margin-top: 0;
    padding: 6.4vw 5.3333vw 8.5333vw;
    border-radius: 6.4vw;
  }

  .fcon03__card-label,
  .fcon03__card-label.fcon03__card-label--highlight {
    padding-inline: 2.1333vw;
    border-radius: 3.2vw;
  }

  .fcon03__card-title,
  .fcon03__card-title.fcon03__card-title--highlight,
  .fcon03__card-title.fcon03__card-title--protein {
    margin-top: 2.1333vw;
    margin-bottom: 0;
  }

  .fcon03__card-desc,
  .fcon03__card-desc.fcon03__card-desc--highlight {
    margin-top: 4.2667vw;
    margin-bottom: 0;
  }

  .fcon03__more {
    margin-top: 8.5333vw;
    padding: 2.1333vw 4.2667vw 2.1333vw 6.4vw;
    gap: 3.2vw;
    border-radius: 5.3333vw;
  }

  .fcon03__more-arrow {
    width: 6.4vw;
    height: 6.4vw; /* HEIGHT: 원형 아이콘 지름 고정 도형 */
  }

  /* 모바일은 카드 1열·margin-top 0 평탄 — 순환 오프셋 무효화 */
  .fcon03__cards.is-cycling .fcon03__card.is-highlight,
  .fcon03__cards.is-cycling .fcon03__card--highlight.is-highlight,
  .fcon03__cards.is-cycling .fcon03__card--highlight:not(.is-highlight) {
    transform: none;
  }
}

/* /merge-build:fcon03 */
/* merge-build:fcon04 */
/* ======== fcon04 start ======== */
.fcon04 {
 overflow: hidden;
 background: linear-gradient(to bottom, #fdd355 0, #fdd355 calc(var(--px)*37), #fff8dd 100%);
 padding-block: calc(var(--px)*56) calc(var(--px)*45);
}
.fcon04__panel { width: calc(var(--px)*1710); background: #fff; border-radius: calc(var(--px)*100); overflow: hidden; }
.fcon04__content { padding-block: calc(var(--px)*84) calc(var(--px)*74); }
.fcon04__heading { gap: calc(var(--px)*34); padding-bottom: calc(var(--px)*4.48); }
.fcon04__title { margin-top: calc(var(--px)*4); }
.fcon04__intro { margin-top: calc(var(--px)*-3); }
.fcon04__cards { gap: calc(var(--px)*26); margin-top: calc(var(--px)*41.5); }
.fcon04__card { width: calc(var(--px)*433); padding: calc(var(--px)*59) calc(var(--px)*27) calc(var(--px)*63.2); isolation: isolate; transition: translate .28s ease-out; } /* GSAP 은 이 카드의 opacity 만 트윈 — hover 는 transform 과 별채널인 translate 로 소유를 나눔 */
@media (hover: hover) { .fcon04__card:hover { translate: 0 -5px; } } /* 정수 px 고정 — 소수 이동(-1.2%=-5.088)이면 plate 배경과 mask 가 서로 다른 기기픽셀로 스냅돼 노치 밑변에 1px 초록선이 남는다 */
/* 카드 바탕 — 하단 노치가 진짜 구멍이라야 그림자가 그 윤곽을 따라간다. filter 는 같은 요소의 mask 보다 먼저 적용돼 잘리므로 plate 가 그림자를, plate::before 가 mask 를 나눠 갖는다 */
.fcon04__plate { inset: 0; z-index: -1; transition: filter .28s ease-out; } /* isolation:isolate 한 카드 안에 갇힘 — 패널 뒤로 안 빠진다 */
.fcon04__plate::before { content: ''; position: absolute; inset: 0; background: #186639; border-radius: calc(var(--px)*26); mask-image: linear-gradient(#000 0 0), url(/images/fcon04_07.png); mask-position: 0 0, center calc(100% + var(--px)*2); /* 시안 실측 — 돔 꼭지가 카드 밑변에서 26 위 */ mask-size: 100% 100%, calc(var(--px)*209) auto; mask-repeat: no-repeat; mask-composite: exclude; }
@media (hover: hover) { .fcon04__card:hover .fcon04__plate { filter: drop-shadow(0 calc(var(--px)*8) calc(var(--px)*12) rgb(0 0 0 / .25)); } }
.fcon04__result { align-self: stretch; margin-top: calc(var(--px)*20); padding: calc(var(--px)*13) 0 calc(var(--px)*13.4); gap: calc(var(--px)*5); background: #fff; border: 1px solid #bfd1c9; border-radius: calc(var(--px)*16); }
.fcon04__branch { padding: calc(var(--px)*0.7) calc(var(--px)*13.5); background: #186639; border-radius: 50vw; }
.fcon04__revenue { white-space: nowrap; }
.fcon04__benefit { margin-top: calc(var(--px)*28.5); }
.fcon04__description { margin-top: calc(var(--px)*21.5); }
.fcon04__coin--right-high { right: calc(var(--px)*257); top: calc(var(--px)*115); }
.fcon04__coin--right-mid { right: calc(var(--px)*85); top: calc(var(--px)*251); }
.fcon04__coin--right-low { right: calc(var(--px)*118); bottom: calc(var(--px)*460); }
.fcon04__coin--left-high { left: calc(var(--px)*202); top: calc(var(--px)*163); }
.fcon04__coin--left-mid { left: calc(var(--px)*17); top: calc(var(--px)*351); }
.fcon04__coin--left-low { left: calc(var(--px)*118); bottom: calc(var(--px)*460); }
.fcon04__sales { margin-top: calc(var(--px)*78); padding-block: calc(var(--px)*46) calc(var(--px)*51.5); padding-inline: calc(var(--px)*2) 0; border-block: 1px solid #b9d1c3; }
.fcon04__sales .fcon04__swiper { width: calc(var(--px)*1627); }
.fcon04__swiper .fcon04__sale { /* TEXT-WIDTH: 게시판 반복 매출 슬라이드 열 */ width: calc(var(--px)*232.43); }
.fcon04__sale-branch { background: #101111; border-radius: 50vw; padding: calc(var(--px)*1.5) calc(var(--px)*16); }
.fcon04__sale-month { margin-top: calc(var(--px)*16); }
.fcon04__sale-amount { margin-top: calc(var(--px)*8); }

/* 모바일 코인 높이가 29~42px 라 유틸의 ±5% 가 ±1.6px 밖에 안 된다 — 폭 기준 고정 진폭으로 바꾼다 */
@keyframes fcon04-float-mo { 0% { transform: translateY(-1.6vw); } 100% { transform: translateY(1.6vw); } }

/* IMG:AUTO fcon04 */
/* 섹션 HTML 파생 (tools/img-size-to-css.js · unit=--px) — 재생성 대상, 직접 수정 금지 */
/* 예외: 값을 고치고 뒤에 OVR 주석을 붙이면 재생성이 보존한다 */
.fcon04__coin.fcon04__coin--right-high {
    width: calc(var(--px)*148);
    aspect-ratio: 148 / 96;
}

.fcon04__coin.fcon04__coin--right-mid,
.fcon04__coin.fcon04__coin--left-high {
    width: calc(var(--px)*154);
    aspect-ratio: 154 / 136;
}

.fcon04__coin.fcon04__coin--right-low,
.fcon04__coin.fcon04__coin--left-low {
    width: calc(var(--px)*139);
    aspect-ratio: 139 / 108;
}

.fcon04__coin.fcon04__coin--left-mid {
    width: calc(var(--px)*98);
    aspect-ratio: 98 / 136;
}
/* /IMG:AUTO fcon04 END */

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

.fcon04__eyebrow {
    font-family: var(--font-pretendard);
    font-size: var(--subheadS);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.32;
    color: #009e5a;
}

.fcon04__title {
    font-family: var(--font-nanumsquare-neo);
    font-size: var(--titleL);
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 1.3;
    color: #101111;
}

.fcon04__intro {
    font-family: var(--font-pretendard);
    font-size: var(--bodyL);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 1.47;
    color: #101111;
}

.fcon04__cards {
    font-family: var(--font-pretendard);
}

.fcon04__district {
    font-size: var(--titleS);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.2;
    color: #fdd252;
}

.fcon04__branch {
    font-size: var(--subheadS);
    font-weight: 700;
    letter-spacing: -0.04em;
    line-height: 1.77;
    color: #ffffff;
}

.fcon04__revenue {
    line-height: 1.2;
}

.fcon04__revenue-label,
.fcon04__revenue-suffix {
    font-size: var(--titleS);
    font-weight: 700;
    letter-spacing: -0.04em;
    color: #101111;
}

.fcon04__revenue-value.fcon04__revenue-value--residential,
.fcon04__revenue-value.fcon04__revenue-value--office,
.fcon04__revenue-value.fcon04__revenue-value--academy {
    font-size: var(--titleL);
    font-weight: 800;
    letter-spacing: -0.04em;
    color: #ff6a39;
}

.fcon04__benefit {
    font-size: var(--subheadM);
    font-weight: 700;
    letter-spacing: -0.04em;
    line-height: 1.2;
    text-align: center;
    color: #ffffff;
}

.fcon04__description {
    font-size: var(--bodyL);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 1.41;
    text-align: center;
    color: #ffffff;
}

.fcon04__sale-branch {
    font-family: var(--font-pretendard);
    font-size: var(--bodyM);
    font-weight: 600;
    letter-spacing: -0.04em;
    line-height: 1.56;
    color: #ffffff;
}

.fcon04__sale-month {
    font-family: var(--font-pretendard);
    font-size: var(--bodyM);
    font-weight: 400;
    letter-spacing: -0.04em;
    line-height: 1.56;
    color: #101111;
}

.fcon04__sale-amount {
    font-family: var(--font-nanumsquare-neo);
    font-size: calc(var(--px)*29.99);
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 1.52;
}

.fcon04__sale-number {
    color: #009e5a;
}

.fcon04__sale-unit {
    color: #000000;
}
/* /FONT:AUTO fcon04 END */

/* INK:AUTO fcon04 */
.fcon04__sale-number { margin-top: calc(var(--px) * -9.29); margin-bottom: calc(var(--px) * 7.29); } /* base 0,0 */
.fcon04__title { margin-top: calc(var(--px) * -2); margin-bottom: calc(var(--px) * -7); } /* base 4,0 */
.fcon04__revenue-value.fcon04__revenue-value--academy { margin-top: calc(var(--px) * -5); margin-bottom: calc(var(--px) * -6); } /* base 0,0 */
.fcon04__sale-unit { margin-top: calc(var(--px) * -7.29); margin-bottom: calc(var(--px) * 3.29); } /* base 0,0 */
.fcon04__sale-month { margin-top: calc(var(--px) * 11.02); margin-bottom: calc(var(--px) * -4.97); } /* base 16,0 */
.fcon04__revenue-label { margin-top: calc(var(--px) * -4.3); margin-bottom: calc(var(--px) * -4.7); } /* base 0,0 */
.fcon04__revenue-suffix { margin-top: calc(var(--px) * -4.3); margin-bottom: calc(var(--px) * -4.7); } /* base 0,0 */
.fcon04__intro { margin-top: calc(var(--px) * -7.49); margin-bottom: calc(var(--px) * -4.48); } /* base -3,0 */
.fcon04__district { margin-top: calc(var(--px) * -4.3); margin-bottom: calc(var(--px) * -4.29); } /* base 0,0 */
.fcon04__description { margin-top: calc(var(--px) * 17.52); margin-bottom: calc(var(--px) * -3.98); } /* base 21.5,0 */
.fcon04__eyebrow { margin-top: calc(var(--px) * -3.04); margin-bottom: calc(var(--px) * -4.04); } /* base 0,0 */
.fcon04__revenue-value.fcon04__revenue-value--residential { margin-top: calc(var(--px) * -6); margin-bottom: calc(var(--px) * -1); } /* base 0,0 */
.fcon04__revenue-value.fcon04__revenue-value--office { margin-top: calc(var(--px) * -6); margin-bottom: calc(var(--px) * -1); } /* base 0,0 */
.fcon04__benefit { margin-top: calc(var(--px) * 25.3); margin-bottom: calc(var(--px) * -3.19); } /* base 28.5,0 */
/* /INK:AUTO fcon04 END */

@media (max-width:599px) {
 .fcon04 { background: linear-gradient(to bottom, #fdd355 0, #fdd355 6.4vw, #fff8dd 100%); padding-block: 0 0; }
 .fcon04__panel { width: 92vw; border-radius: 6.4vw; }
 .fcon04__content { padding-block: 10.6667vw 2.1333vw; padding-inline: 5.3333vw; }
 .fcon04__heading { gap: 5.3333vw; padding-bottom: 0.5333vw; }
 .fcon04__cards { flex-direction: column; gap: 4.2667vw; margin-top: 6.4vw; }
 .fcon04__card { width: 100%; padding: 8.5333vw 4.2667vw 10.6667vw; border-radius: 4.2667vw; }
 .fcon04__result { margin-top: 3.2vw; padding: 2.1333vw 0; gap: 1.0667vw; border-radius: 3.2vw; }
 .fcon04__branch { padding: 0.2667vw 2.1333vw; }
 .fcon04__revenue { white-space: normal; }
 .fcon04__benefit { margin-top: 4.2667vw; }
 .fcon04__description { margin-top: 3.2vw; }
 /* 오프셋 정수 px + 베이스 마스크 102% — 100% 면 밑변이 기기픽셀 경계에서 잘려 1px 이 마스크 밖으로 남는다(PC hover 와 같은 뿌리) */
 .fcon04__plate::before { border-radius: 4.2667vw; mask-position: 0 0, center calc(100% + 2px); mask-size: 100% 102%, 39.2vw auto; }
 .fcon04__coin.fcon04__coin--right-high { width: 12vw; right: 4vw; top: 1.6vw; }
 .fcon04__coin.fcon04__coin--right-mid { width: 10vw; right: 1vw; top: 12vw; }
 .fcon04__coin.fcon04__coin--right-low { width: 11vw; right: 4vw; bottom: 3.2vw; }
 .fcon04__coin.fcon04__coin--left-high { width: 12vw; left: 3vw; top: 2.4vw; }
 .fcon04__coin.fcon04__coin--left-mid { width: 8vw; left: 0.5vw; top: 13vw; }
 .fcon04__coin.fcon04__coin--left-low { width: 11vw; left: 4vw; bottom: 4.2vw; }
 .fcon04__coin > img { animation-name: fcon04-float-mo; }
 .fcon04__sales { margin-top: 12.8vw; padding-block: 8.5333vw; padding-inline: 0; }
 /* .fcon04__content 의 padding-inline 만큼 바깥으로 빼 패널 풀폭으로 흐른다 */
 .fcon04__sales .fcon04__swiper { width: calc(100% + 10.6667vw); margin-inline: -5.3333vw; }
 .fcon04__swiper .fcon04__sale { width: 45vw; }
 .fcon04__sale-branch { padding: 0.2667vw 2.1333vw; }
 .fcon04__sale-month { margin-top: 2.1333vw; }
 .fcon04__sale-amount { margin-top: 1.0667vw; font-size: var(--titleXS); }
}

/* ======== fcon04 end ======== */

/* /merge-build:fcon04 */
/* merge-build:fcon05 */
.fcon05 {
    background: #fff8dd;
}
.fcon05_iner {
    gap: calc(var(--px)*58);
    padding: calc(var(--px)*133) calc(var(--px)*97) calc(var(--px)*131) calc(var(--px)*331);
}
.fcon05__intro {
    flex: 0 0 calc(var(--px)*509);
    padding-top: calc(var(--px)*99);
    padding-bottom: calc(var(--px)*4.48);
}
.fcon05__title {
    margin-top: calc(var(--px)*27);
}
.fcon05__description {
    margin-top: calc(var(--px)*30);
}
.fcon05__rail {
    flex: 0 0 calc(var(--px)*109);
    border: 1px solid rgba(16,17,17,.149);
    border-radius: calc(var(--px)*55);
    padding-block: calc(var(--px)*88) calc(var(--px)*88.53);
}
.fcon05__rail-market-start,
.fcon05__rail-kitchen-start {

    margin-bottom: calc(var(--px)*20);
}
.fcon05__rail-line {
    border-left: 1px solid rgba(16,17,17,.2);
    padding-block: calc(var(--px)*51.5);
    margin-block: calc(var(--px)*27) calc(var(--px)*29);
}
.fcon05__viewport {
    flex: 0 0 calc(var(--px)*743);
    contain: size;
    align-self: stretch;
    min-height: 0;
    overflow: hidden;
    margin-bottom: calc(var(--px)*-131);
    padding-block: calc(var(--px)*5) calc(var(--px)*40); /* 아래 padding = 핀 스크롤 종료 지점의 여백 (ani_fcon05 의 getTravel 이 content 높이로 계산) */
}
.fcon05__cards {
    gap: calc(var(--px)*27);
}
.fcon05__card {
    overflow: hidden;
    border-radius: calc(var(--px)*30);
    box-shadow: calc(var(--px)*5.5) calc(var(--px)*9.526) calc(var(--px)*10) rgba(0,0,0,.09);
    background: #ffffff;
    padding: calc(var(--px)*70) calc(var(--px)*50) calc(var(--px)*70) calc(var(--px)*89);
}
.fcon05__card--operation,
.fcon05__card--marketing {
    background: #009e5a;
}
.fcon05__card--logistics {
    background: #fdfdfb;
}
.fcon05__badge {
    width: calc(var(--px)*55);
    padding: 0;
    /* RADIUS: PSD Rectangle 970 has a square top-left corner and 16.5px other corners. */
    border-radius: 0 calc(var(--px)*17) calc(var(--px)*17) calc(var(--px)*17);
}
.fcon05__badge--light {
    background: #009e5a;
}
.fcon05__badge--green {
    background: #ffffff;
}
.fcon05__card-title {
    margin-top: calc(var(--px)*29);
    margin-left: calc(var(--px)*5);
}
.fcon05__card-title--white {
    margin-top: calc(var(--px)*34);
}
.fcon05__card-description {
    margin-top: calc(var(--px)*22);
    margin-left: calc(var(--px)*5);
}
.fcon05__card-description--white {
    margin-top: calc(var(--px)*26);
}
.fcon05__rail-market-mid,
.fcon05__rail-kitchen-mid {
    margin-bottom: calc(var(--px)*6);
}
.fcon05__rail-kitchen {
    opacity: 0.30196078431372547;
}
/* ABSOL: platter overlaps the section content; card artwork overlaps each card copy. */
.fcon05__platter {
    left: calc(var(--px)*-180);
    bottom: calc(var(--px)*-206);
    filter: drop-shadow(calc(var(--px)*6.432) calc(var(--px)*21.039) calc(var(--px)*11) rgba(141,126,66,.3));
}
.fcon05__plate {
    right: calc(var(--px)*-145);
    top: calc(var(--px)*42);
    filter: drop-shadow(calc(var(--px)*6.432) calc(var(--px)*21.039) calc(var(--px)*11) rgba(141,126,66,.3));
}
.fcon05__cost {
    right: calc(var(--px)*48);
    top: calc(var(--px)*38);
}
.fcon05__logistics {
    right: calc(var(--px)*22);
    top: calc(var(--px)*38);
}
.fcon05__monitor {
    right: calc(var(--px)*56);
    top: calc(var(--px)*26);
}

/* IMG:AUTO fcon05 */
/* 섹션 HTML 파생 (tools/img-size-to-css.js · unit=--px) — 재생성 대상, 직접 수정 금지 */
/* 예외: 값을 고치고 뒤에 OVR 주석을 붙이면 재생성이 보존한다 */
.fcon05__platter {
    width: calc(var(--px)*833);
    aspect-ratio: 833 / 663;
}

.fcon05__plate {
    width: calc(var(--px)*411);
    aspect-ratio: 411 / 257;
}

.fcon05__cost {
    width: calc(var(--px)*215);
    aspect-ratio: 215 / 184;
}

.fcon05__logistics {
    width: calc(var(--px)*252);
    aspect-ratio: 252 / 190;
}

.fcon05__monitor {
    width: calc(var(--px)*196);
    aspect-ratio: 196 / 224;
}
/* /IMG:AUTO fcon05 END */

/* FONT:AUTO fcon05 */
/* spec.json 파생 (tools/spec-font-to-css.js · unit=--px) — 재생성 대상, 직접 수정 금지 */
/* 예외: line-height · letter-spacing 는 값을 고치고 뒤에 OVR 주석을 붙이면 재생성이 보존한다 */
.fcon05__eyebrow {
    font-family: var(--font-pretendard);
    font-size: var(--subheadS);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.32;
    color: #009e5a;
}

.fcon05__title {
    font-family: var(--font-nanumsquare-neo);
    font-size: var(--titleL);
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 1.3;
}

.fcon05__title-base,
.fcon05__card-title-dark {
    color: #101111;
}

.fcon05__title-accent,
.fcon05__card-title-green {
    color: #009e5a;
}

.fcon05__description {
    font-family: var(--font-pretendard);
    font-size: var(--bodyL);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 1.47;
    color: #101111;
}

.fcon05__rail {
    font-family: var(--font-pretendard);
    font-size: var(--subheadM);
    font-weight: 800;
    letter-spacing: -0.04em;
    text-align: center;
    color: #101111;
}

.fcon05__rail-market-start,
.fcon05__rail-market-end,
.fcon05__rail-kitchen-start,
.fcon05__rail-kitchen-end {
    line-height: 1.2;
}

.fcon05__rail-market-mid,
.fcon05__rail-kitchen-mid {
    line-height: 1;
}

.fcon05__cards {
    font-family: var(--font-pretendard);
}

.fcon05__badge.fcon05__badge--light {
    font-size: var(--bodyXL);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.8333333333; /* OVR */
    color: #ffffff;
}

.fcon05__card-title {
    font-size: var(--headL);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.28;
}

.fcon05__card-description.fcon05__card-description--dark {
    font-size: var(--bodyM);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 1.33;
    color: #101111;
}

.fcon05__badge.fcon05__badge--green {
    font-size: var(--bodyXL);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.8333333333; /* OVR */
    color: #009e5a;
}

.fcon05__card-title.fcon05__card-title--white {
    font-size: var(--headL);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.28;
    color: #ffffff;
}

.fcon05__card-description.fcon05__card-description--white,
.fcon05__card-description.fcon05__card-description--white.fcon05__card-description--marketing {
    font-size: var(--bodyM);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 1.33;
    color: #ffffff;
}
/* /FONT:AUTO fcon05 END */

/* INK:AUTO fcon05 */
.fcon05__card-title.fcon05__card-title--white { margin-top: calc(var(--px) * 29); margin-bottom: calc(var(--px) * -4); } /* base 34,0 */
.fcon05__description { margin-top: calc(var(--px) * 25.51); margin-bottom: calc(var(--px) * -4.48); } /* base 30,0 */
.fcon05__title-accent { margin-top: calc(var(--px) * -7); margin-bottom: calc(var(--px) * 1); } /* base 0,0 */
.fcon05__rail-kitchen-start { margin-top: calc(var(--px) * -4.2); margin-bottom: calc(var(--px) * 16.82); } /* base 0,20 */
.fcon05__eyebrow { margin-top: calc(var(--px) * -3.04); margin-bottom: calc(var(--px) * -4.04); } /* base 0,0 */
.fcon05__title-base { margin-top: calc(var(--px) * -6); margin-bottom: calc(var(--px) * 1); } /* base 0,0 */
.fcon05__card-title-dark { margin-top: calc(var(--px) * -5); margin-bottom: calc(var(--px) * -2); } /* base 0,0 */
.fcon05__card-title-green { margin-top: calc(var(--px) * -5); margin-bottom: calc(var(--px) * -2); } /* base 0,0 */
.fcon05__rail-market-start { margin-top: calc(var(--px) * -3.2); margin-bottom: calc(var(--px) * 16.82); } /* base 0,20 */
.fcon05__rail-kitchen-end { margin-top: calc(var(--px) * -3.2); margin-bottom: calc(var(--px) * -3.17); } /* base 0,0 */
.fcon05__card-description.fcon05__card-description--dark { margin-top: calc(var(--px) * 18.86); margin-bottom: calc(var(--px) * -3.1); } /* base 22,0 */
.fcon05__card-description.fcon05__card-description--white { margin-top: calc(var(--px) * 22.86); margin-bottom: calc(var(--px) * -3.1); } /* base 26,0 */
.fcon05__rail-market-end { margin-top: calc(var(--px) * -3.2); margin-bottom: calc(var(--px) * -2.17); } /* base 0,0 */
.fcon05__card-description.fcon05__card-description--white.fcon05__card-description--marketing { margin-top: calc(var(--px) * 22.86); margin-bottom: calc(var(--px) * -1.1); } /* base 26,0 */
.fcon05__rail-market-mid { margin-top: calc(var(--px) * -1); margin-bottom: calc(var(--px) * 5); } /* base 0,6 */
.fcon05__rail-kitchen-mid { margin-top: calc(var(--px) * -1); margin-bottom: calc(var(--px) * 5); } /* base 0,6 */
/* /INK:AUTO fcon05 END */

@media (max-width:599px) {
    .fcon05_iner {
        flex-direction: column;
        align-items: stretch;
        gap: 8.5333vw;
        padding: 10.6667vw 6.4vw 10.6667vw;
    }
    .fcon05__intro {
        flex: none;
        padding-top: 0;
        padding-bottom: 0;
    }
    .fcon05__eyebrow,
    .fcon05__title-base,
    .fcon05__title-accent,
    .fcon05__card-title-dark,
    .fcon05__card-title-green {
        margin-top: 0;
        margin-bottom: 0;
    }
    .fcon05__title {
        margin-top: 4.2667vw;
    }
    .fcon05__description {
        margin-top: 4.2667vw;
        margin-bottom: 0;
    }
    .fcon05__rail {
        flex: none;
        flex-direction: row;
        justify-content: center;
        align-self: center;
        gap: 3.2vw;
        padding: 3.2vw 6.4vw;
        border-radius: 50vw;
    }
    .fcon05__rail-market,
    .fcon05__rail-kitchen {
        flex-direction: row;
        align-items: baseline; /* 세로 배치용 line-height 차(mid 1 · start/end 1.2)가 가로에선 글자 높이차로 드러난다 */
    }
    .fcon05__rail-market-start,
    .fcon05__rail-kitchen-start {
        margin: 0 1.6vw 0 0;
    }
    .fcon05__rail-market-mid,
    .fcon05__rail-kitchen-mid,
    .fcon05__rail-market-end,
    .fcon05__rail-kitchen-end {
        margin-top: 0;
        margin-bottom: 0;
    }
    .fcon05__rail-line {
        width: 8.5333vw;
        border-left: 0;
        border-top: 1px solid rgba(16,17,17,.2);
        padding-block: 0;
        margin-block: 0;
    }
    .fcon05__viewport {
        flex: none;
        width: 100%;
        contain: none;
        overflow: visible;
        margin-bottom: 0;
        padding-top: 0;
    }
    .fcon05__cards {
        gap: 4.2667vw;
    }
    .fcon05__card {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 4.2667vw;
        border-radius: 5.3333vw;
        box-shadow: 3px 6px 10px rgba(0,0,0,.09);
        padding: 10.6667vw 6.4vw;
    }
    .fcon05__plate,
    .fcon05__cost,
    .fcon05__logistics,
    .fcon05__monitor {
        position: relative;
        right: auto;
        top: auto;
    }
    .fcon05__plate {
        width: 64vw;
        filter: drop-shadow(4px 12px 7px rgba(141,126,66,.3));
    }
    .fcon05__cost {
        width: 40vw;
    }
    .fcon05__logistics {
        width: 46vw;
    }
    .fcon05__monitor {
        width: 36vw;
    }
    .fcon05__badge {
        width: 8.5333vw;
        /* RADIUS: PSD Rectangle 970 square top-left, other corners rounded. */
        border-radius: 0 3.2vw 3.2vw 3.2vw;
    }
    .fcon05__card-title,
    .fcon05__card-title.fcon05__card-title--white {
        margin: 4.2667vw 0 0;
    }
    .fcon05__card-description,
    .fcon05__card-description.fcon05__card-description--dark,
    .fcon05__card-description.fcon05__card-description--white,
    .fcon05__card-description.fcon05__card-description--white.fcon05__card-description--marketing {
        margin: 3.2vw 0 0;
    }
    .fcon05__platter {
        left: -9.6vw;
        bottom: -5.3333vw;
        width: 70vw;
        filter: drop-shadow(4px 12px 7px rgba(141,126,66,.3));
    }
}

/* /merge-build:fcon05 */
/* merge-build:fcon06 */
/* fcon06 — 모바일: 카드 폭 vw 환산 · 이웃 카드 peek 유지 여부는 모바일 phase 에서 판정 */
.fcon06 { background: #fff; padding-block: calc(var(--px)*119) calc(var(--px)*51); }
.fcon06__title { margin-top: calc(var(--px)*30); }
.fcon06__intro { margin-top: calc(var(--px)*28); }
.fcon06__slider { align-self: stretch; margin-top: calc(var(--px)*42); }
.fcon06__slider .fcon06__swiper { overflow: visible; }
.fcon06__swiper .fcon06__slide {
 /* TEXT-WIDTH: 슬라이드 피치 — 카드 492 는 음수 margin 으로 이웃 카드와 겹친다 */
 width: calc(var(--px)*449);
}
.fcon06__swiper .fcon06__slide.swiper-slide-active { z-index: 2; /* 다음 슬라이드가 DOM 뒤라 활성 카드를 덮음 — 활성은 런타임 상태라 순서로 못 정함 */ }
.fcon06__card {
 width: calc(var(--px)*492);
 margin-inline: calc(var(--px)*-21.5);
 background: #fff8dd;
 border-radius: calc(var(--px)*26);
 overflow: hidden;
 box-shadow: 0 0 calc(var(--px)*70) rgba(0, 0, 0, .14);
 opacity: 0;
 transition: transform .7s, opacity .7s;
}
.fcon06__card::after { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, .6); pointer-events: none; transition: opacity .7s; }
.fcon06__slide.swiper-slide-active .fcon06__card { opacity: 1; }
.fcon06__slide.swiper-slide-active .fcon06__card::after { opacity: 0; }
.fcon06__slide.swiper-slide-prev .fcon06__card { opacity: 1; transform: translateY(calc(var(--px)*64)) rotate(-7deg) scale(.89); }
.fcon06__slide.swiper-slide-next .fcon06__card { opacity: 1; transform: translateY(calc(var(--px)*64)) rotate(7deg) scale(.89); }
.fcon06__card-head { padding: calc(var(--px)*25) calc(var(--px)*60) calc(var(--px)*13) calc(var(--px)*73); background: #fed351; }
.fcon06__card-title { margin-top: calc(var(--px)*13); }
.fcon06__card-body { padding: calc(var(--px)*30) calc(var(--px)*60) calc(var(--px)*49) calc(var(--px)*73); }
.fcon06__card-desc { margin-top: calc(var(--px)*25); }
.fcon06__nav { left: 0; right: 0; bottom: calc(var(--px)*-22); gap: calc(var(--px)*12); z-index: 2; /* swiper 가 .swiper{z-index:1} 로 스택 컨텍스트를 만듦 */ pointer-events: none; }
.fcon06__arrow { padding: calc(var(--px)*12.5) calc(var(--px)*10.5); background: #fff; border-radius: 50%; box-shadow: 0 0 calc(var(--px)*10) rgba(22, 39, 32, .09); pointer-events: auto; cursor: pointer; transition: background-color .25s ease-out, transform .25s ease-out; }
@media (hover: hover) { .fcon06__arrow:hover { background-color: #fed351; transform: scale(1.08); } }
.fcon06__arrow:active { transform: scale(.95); transition-duration: .12s; }
.fcon06__caption { margin-top: calc(var(--px)*76); }

/* IMG:AUTO fcon06 */
/* 섹션 HTML 파생 (tools/img-size-to-css.js · unit=--px) — 재생성 대상, 직접 수정 금지 */
/* 예외: 값을 고치고 뒤에 OVR 주석을 붙이면 재생성이 보존한다 */
.fcon06__arrow-icon {
    width: calc(var(--px)*22);
    aspect-ratio: 22 / 18;
}
/* /IMG:AUTO fcon06 END */

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

.fcon06__eyebrow {
    font-family: var(--font-pretendard);
    font-size: var(--subheadS);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.32;
    color: #009e5a;
}

.fcon06__title {
    font-family: var(--font-nanumsquare-neo);
    font-size: var(--titleL);
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 1.3;
    color: #101111;
}

.fcon06__title-accent,
.fcon06__card-accent,
.fcon06__caption-accent {
    color: #009e5a;
}

.fcon06__intro {
    font-family: var(--font-pretendard);
    font-size: var(--bodyL);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 1.47;
    color: #101111;
}

.fcon06__card-head {
    font-weight: 800;
}

.fcon06__card-number {
    font-family: var(--font-poppins);
    font-size: var(--subheadS);
    letter-spacing: -0.02em;
    line-height: 1.2; /* OVR */
    text-align: center;
    color: #009e5a;
}

.fcon06__card-title {
    font-family: var(--font-pretendard);
    font-size: var(--headM);
    letter-spacing: -0.04em;
    line-height: 1.26;
    color: #101111;
}

.fcon06__card-body {
    font-family: var(--font-pretendard);
    line-height: 1.38;
    color: #101111;
}

.fcon06__card-lead {
    font-size: var(--headS);
    font-weight: 800;
    letter-spacing: -0.04em;
}

.fcon06__card-desc {
    font-size: var(--bodyM);
    font-weight: 500;
    letter-spacing: -0.04em;
}

.fcon06__caption {
    font-family: var(--font-pretendard);
    font-size: var(--headS);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.43;
    text-align: center;
    color: #101111;
}
/* /FONT:AUTO fcon06 END */

/* INK:AUTO fcon06 */
.fcon06__title { margin-top: calc(var(--px) * 23); margin-bottom: calc(var(--px) * -7); } /* base 30,0 */
.fcon06__caption { margin-top: calc(var(--px) * 70.49); margin-bottom: calc(var(--px) * -5.49); } /* base 76,0 */
.fcon06__card-lead { margin-top: calc(var(--px) * -4.99); margin-bottom: calc(var(--px) * -4.98); } /* base 0,0 */
.fcon06__intro { margin-top: calc(var(--px) * 23.51); margin-bottom: calc(var(--px) * -4.48); } /* base 28,0 */
.fcon06__title-accent { margin-top: calc(var(--px) * -7); margin-bottom: calc(var(--px) * 1); } /* base 0,0 */
.fcon06__card-number { margin-top: calc(var(--px) * -2.9); margin-bottom: calc(var(--px) * -4.9); } /* base 0,0 */
.fcon06__eyebrow { margin-top: calc(var(--px) * -3.04); margin-bottom: calc(var(--px) * -4.04); } /* base 0,0 */
.fcon06__card-desc { margin-top: calc(var(--px) * 21.46); margin-bottom: calc(var(--px) * -3.53); } /* base 25,0 */
.fcon06__card-title { margin-top: calc(var(--px) * 9.51); margin-bottom: calc(var(--px) * -3.48); } /* base 13,0 */
.fcon06__card-number.fcon06__card-number--03 { margin-top: calc(var(--px) * -2.9); margin-bottom: calc(var(--px) * -3.9); } /* base 0,0 */
.fcon06__card-accent { margin-top: calc(var(--px) * -4.99); margin-bottom: calc(var(--px) * -1.01); } /* base 0,0 */
.fcon06__caption-accent { margin-top: calc(var(--px) * -5.51); margin-bottom: calc(var(--px) * -0.48); } /* base 0,0 */
/* /INK:AUTO fcon06 END */

@media (max-width:599px) {
 .fcon06 { padding-block: 10.6667vw 10.6667vw; }
 .fcon06_iner { padding-inline: 5.3333vw; }
 .fcon06__eyebrow, .fcon06__card-number, .fcon06__card-number.fcon06__card-number--03, .fcon06__card-lead, .fcon06__title-accent, .fcon06__card-accent, .fcon06__caption-accent { margin-top: 0; margin-bottom: 0; }
 .fcon06__title { margin-top: 3.2vw; margin-bottom: 0; }
 .fcon06__intro { margin-top: 4.2667vw; margin-bottom: 0; }
 .fcon06__slider { margin-top: 6.4vw; }
 .fcon06__swiper .fcon06__slide { width: 72vw; }
 .fcon06__card { width: 78vw; margin-inline: -3vw; border-radius: 4.2667vw; box-shadow: 0 0 10.6667vw rgba(0, 0, 0, .14); }
 .fcon06__slide.swiper-slide-prev .fcon06__card { transform: translateY(10.6667vw) rotate(-7deg) scale(.89); }
 .fcon06__slide.swiper-slide-next .fcon06__card { transform: translateY(10.6667vw) rotate(7deg) scale(.89); }
 .fcon06__card-head { align-items: center; padding: 4.2667vw 6.4vw 2.1333vw; }
 .fcon06__card-title { margin-top: 2.1333vw; margin-bottom: 0; }
 .fcon06__card-body { padding: 5.3333vw 6.4vw 8.5333vw; }
 .fcon06__card-desc { margin-top: 4.2667vw; margin-bottom: 0; }
 .fcon06__nav { bottom: -3.2vw; gap: 2.1333vw; }
 .fcon06__arrow { width: 10.6667vw; aspect-ratio: 1; padding: 0; box-shadow: 0 0 1.6vw rgba(22, 39, 32, .09); }
 .fcon06__arrow-icon { width: 5.3333vw; }
 .fcon06__caption { margin-top: 12.8vw; margin-bottom: 0; }
}

/* /merge-build:fcon06 */
/* merge-build:fcon07 */
.fcon07 { padding-top: calc(var(--px)*7); background-color: #fff; }
.fcon07__card {
 width: calc(var(--px)*1706);
 overflow: hidden;
 border-radius: calc(var(--px)*40);
 background-color: #009e5a;
 /* 첫 층 = 웨이브 밑 흰 띠 — 둥근 모서리 안티앨리어싱으로 초록 바탕이 선처럼 비치는 것 차단 */
 background-image: linear-gradient(#fff, #fff), linear-gradient(to right, #10ae6a 1px, transparent 1px), linear-gradient(to bottom, #10ae6a 1px, transparent 1px);
 background-repeat: no-repeat, repeat, repeat;
 background-size: 100% calc(var(--px)*40), calc(var(--px)*80) calc(var(--px)*80), calc(var(--px)*80) calc(var(--px)*80);
 background-position: 0 0, calc(var(--px)*21) calc(var(--px)*4), calc(var(--px)*21) calc(var(--px)*4);
}
.fcon07__shade { left: calc(var(--px)*-1); top: calc(var(--px)*-1); }
.fcon07__watermark { left: calc(var(--px)*107); bottom: calc(var(--px)*-4); }
.fcon07__wave { left: calc(var(--px)*-99); top: calc(var(--px)*-7); width: calc(var(--px)*1905); aspect-ratio: 1905 / 135; }
.fcon07__wave-svg { display: block; width: 200%; height: 100%; /* 곡선 2주기 — 반 폭 이동으로 이음새 없이 흐른다 */ }
.fcon07__content { padding: calc(var(--px)*142) calc(var(--px)*192) calc(var(--px)*73) calc(var(--px)*235); }
.fcon07__icon { left: calc(var(--px)*36); top: calc(var(--px)*107); }
.fcon07__title { margin-top: calc(var(--px)*68); }
.fcon07__lead { margin-top: calc(var(--px)*34); }
.fcon07__description { margin-top: calc(var(--px)*25); }
.fcon07__media { gap: calc(var(--px)*19); }
.fcon07__player { width: calc(var(--px)*580); aspect-ratio: 580 / 370; border-radius: calc(var(--px)*40); background: #101111; }
.fcon07__video { padding: 0 calc(var(--px)*21) calc(var(--px)*14) calc(var(--px)*19); }
.fcon07__player .fcon07__video { display: flex; } /* swiper-bundle 의 .swiper-slide{display:block} 이 뒤에 로드돼 .flex 를 덮음 */
.fcon07__video-title { padding-block: calc(var(--px)*9.5); background: #fff; border-radius: 50vw; }
/* 영상 슬롯 = 슬라이드 전면. 파사드(썸네일)를 깔고 클릭하면 js/franchise.js 가 iframe 으로 교체한다 */
.fcon07__video-play,
.fcon07__embed { inset: 0; border-radius: inherit; }
.fcon07__embed { position: absolute; width: 100%; height: 100%; border: 0; }
.fcon07__video-play {
  padding: 0;
  border: 0;
  background: #101111;
  cursor: pointer;
  overflow: hidden;
  & img { width: 100%; height: 100%; object-fit: cover; }
}
.fcon07__thumb img { width: 100%; height: 100%; object-fit: cover; }
.fcon07__gallery { gap: calc(var(--px)*22); }
.fcon07__arrow { flex-shrink: 0; width: calc(var(--px)*44); aspect-ratio: 1; background: #fff; border-radius: 50%; box-shadow: 0 0 calc(var(--px)*12) rgba(22, 39, 32, .09); transition: background-color .25s ease-out, box-shadow .25s ease-out; }
.fcon07__arrow--prev .fcon07__arrow-icon { display: block; transform: rotate(180deg); }
.fcon07__thumbs { width: calc(var(--px)*529); }
.fcon07__thumb { aspect-ratio: 172 / 98; background: #bfd1c9; cursor: pointer; transition: filter .2s ease-out; }
.fcon07__keywords { padding-block: calc(var(--px)*42) calc(var(--px)*37); }
.fcon07__keyword-track { flex-shrink: 0; margin-left: calc(var(--px)*-203); white-space: nowrap; animation-duration: 40s; /* 반 바퀴(translateX -50%)가 화면폭을 덮어야 끊김이 없어 문구를 4벌 두고, 그만큼 늘어난 이동거리를 길이로 상쇄해 속도를 유지한다 */ }
.fcon07__keyword-gap { display: inline-block; width: calc(var(--px)*43); }
.fcon07__arrow-icon { transition: color .25s ease-out; }
@media (hover: hover) {
 .fcon07__arrow:hover { background-color: #009e5a; box-shadow: 0 0 calc(var(--px)*12) rgba(22, 39, 32, .24); }
 .fcon07__arrow:hover .fcon07__arrow-icon { color: #fff; }
 .fcon07__thumb:hover { filter: brightness(1.08); }
}

/* IMG:AUTO fcon07 */
/* 섹션 HTML 파생 (tools/img-size-to-css.js · unit=--px) — 재생성 대상, 직접 수정 금지 */
/* 예외: 값을 고치고 뒤에 OVR 주석을 붙이면 재생성이 보존한다 */
.fcon07__shade {
    width: calc(var(--px)*1709);
    aspect-ratio: 1709 / 706;
}

.fcon07__watermark {
    width: calc(var(--px)*736);
    aspect-ratio: 736 / 77;
}

.fcon07__icon {
    width: calc(var(--px)*175);
    aspect-ratio: 175 / 177;
}
/* /IMG:AUTO fcon07 END */

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

.fcon07__title {
    font-family: var(--font-nanumsquare-neo);
    font-size: var(--titleL);
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 1.3;
}

.fcon07__title-accent {
    color: #fdd353;
}

.fcon07__lead {
    font-family: var(--font-pretendard);
    font-size: var(--headS);
    font-weight: 800;
    letter-spacing: -0.0656em; /* OVR */
    line-height: 1.07;
}

.fcon07__description {
    font-family: var(--font-pretendard);
    font-size: var(--bodyM);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 1.44;
}

.fcon07__player {
    font-family: var(--font-pretendard);
    font-size: var(--bodyM);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 1.63;
    text-align: center;
    color: #101111;
}

.fcon07__gallery {
    font-family: var(--font-wanted);
    font-size: var(--titleXS);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.2;
    color: #009e5a;
}

.fcon07__keyword-track {
    font-family: var(--font-poppins);
    font-size: var(--subheadL);
    font-weight: 800;
    letter-spacing: 0.02em;
    line-height: 1.2;
    text-align: center;
    color: #009e5a;
}
/* /FONT:AUTO fcon07 END */

/* INK:AUTO fcon07 */
.fcon07__title { margin-top: calc(var(--px) * 61); margin-bottom: calc(var(--px) * -7); } /* base 68,0 */
.fcon07__title-accent { margin-top: calc(var(--px) * -7); margin-bottom: calc(var(--px) * 1); } /* base 0,0 */
.fcon07__description { margin-top: calc(var(--px) * 20.98); margin-bottom: calc(var(--px) * -3.98); } /* base 25,0 */
.fcon07__keyword-track { margin-top: calc(var(--px) * -2.9); margin-bottom: calc(var(--px) * 1.1); } /* base 0,0 */
.fcon07__lead { margin-top: calc(var(--px) * 32.27); margin-bottom: calc(var(--px) * -1.73); } /* base 34,0 */
/* /INK:AUTO fcon07 END */

@media (max-width:599px) {
 .fcon07 { padding-top: 0; }
 .fcon07__card { width: 100%; border-radius: 0; background-size: 0 0, 12.8vw 12.8vw, 12.8vw 12.8vw; background-position: 0 0, 3.36vw 0.64vw, 3.36vw 0.64vw; }
 .fcon07__wave { width: 111.6667vw; left: -5.8vw; top: -0.4103vw; }
 .fcon07__shade { width: 100.1757vw; left: -0.0586vw; top: auto; bottom: -0.0536vw; }
 .fcon07__watermark { width: 43.1427vw; left: 6.272vw; bottom: -0.2345vw; }
 .fcon07__icon { width: 26.6667vw; top: 2.1333vw; left: 0; right: 0; margin-inline: auto; }
 .fcon07__content { flex-direction: column; align-items: stretch; gap: 8.5333vw; padding: 36.2667vw 5.3333vw 10.6667vw; }
 .fcon07__title, .fcon07__title-accent { margin-top: 0; margin-bottom: 0; }
 .fcon07__lead { margin-top: 5.3333vw; margin-bottom: 0; }
 .fcon07__description { margin-top: 4.2667vw; margin-bottom: 0; }
 .fcon07__media { gap: 3.2vw; }
 .fcon07__player { width: 100%; border-radius: 6.4vw; }
 .fcon07__video { padding: 0 3.2vw 3.2vw; }
 .fcon07__video-title { padding-block: 2.1333vw; }
 .fcon07__gallery { align-self: stretch; gap: 3.2vw; }
 .fcon07__arrow { width: 8.5333vw; box-shadow: 0 0 8px rgba(22, 39, 32, .09); }
 .fcon07__thumbs { width: auto; flex: 1; min-width: 0; }
 .fcon07__keywords { padding-block: 6.4vw; }
 .fcon07__keyword-track { margin-top: 0; margin-bottom: 0; margin-left: -32.48vw; }
 .fcon07__keyword-gap { width: 6.4vw; }
}

/* /merge-build:fcon07 */
/* merge-build:fcon08 */
.fcon08 {
 background: #fff8dd;
 & .fcon08_iner { padding-block: calc(var(--px)*130) calc(var(--px)*45); }
 & .fcon08__link { margin-top: calc(var(--px)*48); width: calc(var(--px)*273); padding: calc(var(--px)*11) calc(var(--px)*25) calc(var(--px)*11) calc(var(--px)*30); border: 1px solid #eaf1ee; border-radius: calc(var(--px)*33); background: #ffffff; }
 & .fcon08__arrow { flex-shrink: 0; width: calc(var(--px)*43); padding-block: calc(var(--px)*6); background: #009e5a; border-radius: 50%; }
 & .fcon08__gallery { pointer-events: none; /* 중앙 카드 위 빈 영역의 CTA 클릭을 통과시킨다. */ margin-top: calc(var(--px)*-95.2); margin-inline: calc(var(--px)*20); padding-bottom: calc(var(--px)*112); }
 & .fcon08__slide { width: auto; }
 & .fcon08__card { flex-shrink: 0; pointer-events: auto; transition: transform .6s ease; /* swiper speed 600·기본 ease 와 동기 */ }
 & .swiper-slide-active .fcon08__card { transform: translateY(calc(var(--px)*112)); }
 & .fcon08__caption { left: calc(var(--px)*60); bottom: calc(var(--px)*44); word-spacing: calc(var(--px)*-2); }
 & .fcon08__caption--japan { left: calc(var(--px)*47); }
 & .fcon08__caption--america { left: calc(var(--px)*68); }
}

.fcon08__title { margin-top: calc(var(--px)*30); }

.fcon08__description { margin-top: calc(var(--px)*29); }

.fcon08__brand { margin-top: calc(var(--px)*27); text-transform: uppercase; }

/* IMG:AUTO fcon08 */
/* 섹션 HTML 파생 (tools/img-size-to-css.js · unit=--px) — 재생성 대상, 직접 수정 금지 */
/* 예외: 값을 고치고 뒤에 OVR 주석을 붙이면 재생성이 보존한다 */
.fcon08__japan-photo {
    width: calc(var(--px)*593);
    aspect-ratio: 593 / 353;
}

.fcon08__corporation-photo,
.fcon08__america-photo {
    width: calc(var(--px)*592);
    aspect-ratio: 592 / 353;
}
/* /IMG:AUTO fcon08 END */

/* FONT:AUTO fcon08 */
/* spec.json 파생 (tools/spec-font-to-css.js · unit=--px) — 재생성 대상, 직접 수정 금지 */
/* 예외: line-height · letter-spacing 는 값을 고치고 뒤에 OVR 주석을 붙이면 재생성이 보존한다 */
.fcon08__eyebrow {
    font-family: var(--font-pretendard);
    font-size: var(--subheadS);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.32;
    text-align: center;
    color: #009e5a;
}

.fcon08__title {
    font-family: var(--font-nanumsquare-neo);
    font-size: var(--titleL);
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 1.3;
    text-align: center;
    color: #101111;
}

.fcon08__description {
    font-family: var(--font-pretendard);
    font-size: var(--bodyL);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 1.47;
    text-align: center;
    color: #101111;
}

.fcon08__link {
    line-height: 1.2;
}

.fcon08__link-label {
    font-family: var(--font-pretendard);
    font-size: var(--bodyM);
    font-weight: 700;
    letter-spacing: -0.04em;
    text-align: right;
    color: #101111;
}

.fcon08__arrow {
    font-family: var(--font-wanted);
    font-size: var(--titleXS);
    font-weight: 800;
    letter-spacing: -0.02em;
    color: #ffffff;
}

.fcon08__gallery {
    font-family: var(--font-pretendard);
    font-size: var(--headS);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.58;
    color: #ffffff;
}

.fcon08__brand {
    font-family: var(--font-poppins);
    font-size: var(--displayL);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.07;
    color: #f4edd1;
}
/* /FONT:AUTO fcon08 END */

/* INK:AUTO fcon08 */
.fcon08__brand { margin-top: calc(var(--px) * 14.2); margin-bottom: calc(var(--px) * -13.79); } /* base 27,0 */
.fcon08__title { margin-top: calc(var(--px) * 23); margin-bottom: calc(var(--px) * -7); } /* base 30,0 */
.fcon08__description { margin-top: calc(var(--px) * 24.51); margin-bottom: calc(var(--px) * -4.48); } /* base 29,0 */
.fcon08__eyebrow { margin-top: calc(var(--px) * -3.04); margin-bottom: calc(var(--px) * -4.04); } /* base 0,0 */
/* /INK:AUTO fcon08 END */

@media (max-width:599px) {
 .fcon08 {
  & .fcon08_iner { padding-block: 10.6667vw 10.6667vw; }
  & .fcon08__heading { padding-inline: 5.3333vw; }
  & .fcon08__eyebrow { margin-block: 0; }
  & .fcon08__title, & .fcon08__description { margin-top: 3.2vw; margin-bottom: 0; }
  & .fcon08__link { margin-top: 8.5333vw; width: auto; padding: 1.6vw 3.2vw 1.6vw 5.3333vw; column-gap: 3.2vw; border-radius: 50vw; }
  & .fcon08__arrow { width: 8.5333vw; height: 8.5333vw; /* HEIGHT: 원형 도형 지름 고정 */ padding-block: 0; }
  & .fcon08__gallery { margin-top: 10.6667vw; margin-inline: 0; padding-bottom: 6.4vw; }
  & .swiper-slide-active .fcon08__card { transform: translateY(6.4vw); }
  & .fcon08__japan-photo, & .fcon08__corporation-photo, & .fcon08__america-photo { width: 72vw; }
  & .fcon08__caption, & .fcon08__caption--japan, & .fcon08__caption--america { left: 6.4vw; bottom: 6.4vw; word-spacing: -0.32vw; }
  & .fcon08__brand { margin-top: 6.4vw; margin-bottom: 0; }
 }
}

/* /merge-build:fcon08 */
/* merge-build:fcon09 */
.fcon09 {
    padding-block: calc(var(--px)*56) calc(var(--px)*91);
    background: #fff8dd;
    & .fcon09__panel { width: calc(var(--px)*1640); }
    & .fcon09__heading { padding-bottom: calc(var(--px)*4.01); }
    & .fcon09__content { padding-block: calc(var(--px)*69) calc(var(--px)*86); }
    & .fcon09__eyebrow { padding: calc(var(--px)*3) calc(var(--px)*14); background: #186639; border-radius: calc(var(--px)*8); }


    & .fcon09__stage { width: calc(var(--px)*1283); gap: calc(var(--px)*25); margin-top: calc(var(--px)*31.91); }
    & .fcon09__swiper { width: calc(var(--px)*1133); flex-shrink: 0; border-radius: calc(var(--px)*40); }
    & .fcon09__slide.flex { display: flex; /* Swiper stylesheet overrides the shared flex utility. */ background: #ffffff; border-radius: calc(var(--px)*40); overflow: hidden; }
    & .fcon09__media { flex-shrink: 0; border-radius: calc(var(--px)*40); overflow: hidden; }
    & .fcon09__video { border: 0; padding: 0; background: #101111; cursor: pointer; overflow: hidden;
        & img { height: 100%; transition: transform .35s ease-out, filter .35s ease-out; }
        @media (hover: hover) {
            &:hover img { transform: scale(1.06); filter: brightness(.88); }
        }
        &[hidden] { display: block; visibility: hidden; }
    }
    & .fcon09__frame { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
    & .fcon09__body { padding-left: calc(var(--px)*7); padding-bottom: calc(var(--px)*2.97); }
    & .fcon09__copy { flex: 1; padding: calc(var(--px)*40.97) calc(var(--px)*35) calc(var(--px)*66) calc(var(--px)*100); }
    & .fcon09__store { padding: calc(var(--px)*7.04) calc(var(--px)*19); border-radius: 50vw; background: #f26a40; }
    & .fcon09__quote { margin-top: calc(var(--px)*20); }

    & .fcon09__arrow { flex-shrink: 0; width: calc(var(--px)*43); padding: calc(var(--px)*5) 0; border: 0; border-radius: 50vw; background: #ffffff; cursor: pointer;
        transition: transform .22s ease-out, box-shadow .22s ease-out;
        &.fcon09__arrow--prev .fcon09__arrow-icon { rotate: 180deg; }
        &.fcon09__arrow--next { margin-left: calc(var(--px)*14); }
        @media (hover: hover) {
            &:hover { transform: scale(1.1); box-shadow: 0 4px 14px rgb(0 0 0 / .22); }
        }
    }
}

.fcon09__title { margin-top: calc(var(--px)*17); }
.fcon09__description { margin-top: calc(var(--px)*16); }
.fcon09__summary { margin-top: calc(var(--px)*17); }

/* IMG:AUTO fcon09 */
/* 섹션 HTML 파생 (tools/img-size-to-css.js · unit=--px) — 재생성 대상, 직접 수정 금지 */
/* 예외: 값을 고치고 뒤에 OVR 주석을 붙이면 재생성이 보존한다 */
.fcon09__video {
    width: calc(var(--px)*606);
    aspect-ratio: 606 / 354;
}

.fcon09__video.fcon09__video--youtube {
    width: calc(var(--px)*606);
    aspect-ratio: 606 / 354; /* OVR */
}
/* /IMG:AUTO fcon09 END */

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

.fcon09__eyebrow {
    font-family: var(--font-pretendard);
    font-size: var(--subheadS);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.32;
}

.fcon09__title {
    font-family: var(--font-nanumsquare-neo);
    font-size: var(--titleL);
    font-weight: 900;
    letter-spacing: -0.0365em; /* OVR */
    line-height: 1.3;
    text-align: center;
}

.fcon09__description {
    font-family: var(--font-pretendard);
    font-size: var(--bodyM);
    font-weight: 500;
    letter-spacing: -0.0319em; /* OVR */
    line-height: 1.44;
}

.fcon09__arrow-icon {
    font-family: var(--font-wanted);
    font-size: var(--titleXS);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.2;
    color: #009e5a;
}

.fcon09__swiper {
    font-family: var(--font-pretendard);
}

.fcon09__store {
    font-size: var(--bodyXL);
    font-weight: 700;
    letter-spacing: -0.04em;
    line-height: 1.44;
    text-align: center;
    color: #ffffff;
}

.fcon09__quote {
    font-size: var(--subheadM);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.23;
}

.fcon09__quote-lead.fcon09__quote-lead--01,
.fcon09__quote-lead.fcon09__quote-lead--02,
.fcon09__quote-lead.fcon09__quote-lead--03 {
    color: #101111;
}

.fcon09__quote-highlight.fcon09__quote-highlight--01,
.fcon09__quote-highlight.fcon09__quote-highlight--02,
.fcon09__quote-highlight.fcon09__quote-highlight--03 {
    color: #009e5a;
}

.fcon09__summary {
    font-size: var(--bodyM);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 1.31;
    color: #101111;
}
/* /FONT:AUTO fcon09 END */

/* INK:AUTO fcon09 */
.fcon09__title { margin-top: calc(var(--px) * 11); margin-bottom: calc(var(--px) * -7); } /* base 17,0 */
.fcon09__description { margin-top: calc(var(--px) * 11.98); margin-bottom: calc(var(--px) * -4.01); } /* base 16,0 */
.fcon09__quote-lead.fcon09__quote-lead--01 { margin-top: calc(var(--px) * -3.53); margin-bottom: calc(var(--px) * -2.47); } /* base 0,0 */
.fcon09__summary { margin-top: calc(var(--px) * 14.02); margin-bottom: calc(var(--px) * -2.97); } /* base 17,0 */
.fcon09__quote-lead.fcon09__quote-lead--02 { margin-top: calc(var(--px) * -3.53); margin-bottom: calc(var(--px) * -1.47); } /* base 0,0 */
.fcon09__quote-highlight.fcon09__quote-highlight--02 { margin-top: calc(var(--px) * -3.53); margin-bottom: calc(var(--px) * -1.47); } /* base 0,0 */
.fcon09__quote-lead.fcon09__quote-lead--03 { margin-top: calc(var(--px) * -3.53); margin-bottom: calc(var(--px) * -1.47); } /* base 0,0 */
.fcon09__quote-highlight.fcon09__quote-highlight--03 { margin-top: calc(var(--px) * -3.53); margin-bottom: calc(var(--px) * -1.47); } /* base 0,0 */
.fcon09__quote-highlight.fcon09__quote-highlight--01 { margin-top: calc(var(--px) * -3.53); margin-bottom: calc(var(--px) * 0.53); } /* base 0,0 */
/* /INK:AUTO fcon09 END */

@media (max-width:599px) {
    .fcon09__title { margin: 3.2vw 0 0; }
    .fcon09__description, .fcon09__summary { margin: 2.1333vw 0 0; }
    .fcon09__video, .fcon09__video.fcon09__video--youtube { width: 100%; }
    /* PC 중첩 규칙(.fcon09 .x)과 명시도를 맞추려 같은 중첩으로 둠 */
    .fcon09 {
        padding-block: 0 3.2vw; /* panel 의 box-shadow(아래 3.2vw · 스프레드 -1.0667vw)가 섹션 경계에서 잘리지 않을 만큼 */
        /* 구운 판 이미지는 세로 판에서 모서리·그림자가 잘려 CSS 로 그림 */
        & .fcon09__panel { width: 91.4667vw; border-radius: 6.4vw; background-color: #009e5a; background-image: repeating-linear-gradient(to bottom, transparent 0 calc(9.0667vw - 1px), rgb(0,144,76) calc(9.0667vw - 1px) 9.0667vw); box-shadow: 0 3.2vw 0 -1.0667vw #186639; }
        & .fcon09__content { padding: 10.6667vw 4.2667vw 10.6667vw; }
        & .fcon09__heading { padding-bottom: 0; }
        & .fcon09__eyebrow { padding: 0.5333vw 2.1333vw; border-radius: 1.6vw; }
        & .fcon09__stage { width: auto; flex-wrap: wrap; gap: 3.2vw; margin-top: 5.3333vw; }
        & .fcon09__swiper { width: 100%; order: -1; border-radius: 6.4vw; }
        & .fcon09__arrow { width: 10.6667vw; padding: 1.4933vw 0;
            &.fcon09__arrow--prev { margin-left: auto; }
            &.fcon09__arrow--next { margin-left: 0; margin-right: auto; }
        }
        & .fcon09__slide.flex { flex-direction: column; border-radius: 6.4vw; }
        & .fcon09__media { border-radius: 6.4vw; }
        & .fcon09__copy { flex: none; align-items: center; padding: 6.4vw 5.3333vw 8.5333vw; }
        & .fcon09__body { padding: 0; }
        & .fcon09__store { padding: 1.0667vw 3.2vw; }
        & .fcon09__quote { margin-top: 3.2vw; }
    }
}

/* /merge-build:fcon09 */
/* merge-build:fcon10 */
.fcon10 {
  background: #fff;
  overflow: hidden;
  & .fcon10_iner { padding-top: calc(var(--px)*218); padding-bottom: calc(var(--px)*168); }
  & .fcon10__heading { padding-left: calc(var(--px)*334); padding-bottom: calc(var(--px)*4.99); gap: calc(var(--px)*18); }
  & .fcon10__wordmark { left: calc(var(--px)*254); top: calc(var(--px)*129); }
  & .fcon10__bubbles { right: calc(var(--px)*53); top: calc(var(--px)*68); width: calc(var(--px)*898); }
  /* 모바일에서는 후기 말풍선을 세로 흐름으로 전환한다. */
  & .fcon10__bubble-grid { display: grid; grid-template-columns: calc(var(--px)*485) calc(var(--px)*395); column-gap: calc(var(--px)*18); align-items: start; }
  & .fcon10__bubble { background: rgba(150,238,201,0.1274586697); border: 1px solid rgba(150,238,201,0.1274586697); border-radius: calc(var(--px)*26); padding: calc(var(--px)*27) calc(var(--px)*30); }
  & .fcon10__bubble--happy { margin-left: calc(var(--px)*69); padding-left: calc(var(--px)*42); padding-bottom: calc(var(--px)*28.81); }
  & .fcon10__bubble--regular { grid-column: 2; grid-row: 1 / 3; margin-top: calc(var(--px)*101); padding-top: calc(var(--px)*21); padding-left: calc(var(--px)*41); padding-bottom: calc(var(--px)*22.99); }
  & .fcon10__bubble--healthy { grid-column: 1; margin-top: calc(var(--px)*22); margin-right: calc(var(--px)*116); padding-left: calc(var(--px)*28); padding-bottom: calc(var(--px)*25.06); }
  & .fcon10__source-happy,
  & .fcon10__source-regular,
  & .fcon10__source-healthy { font-style: normal; opacity: 0.322; }
  & .fcon10__emoji { top: calc(var(--px)*-36); right: calc(var(--px)*411); }
  & .fcon10__swiper { margin-top: calc(var(--px)*69.01); overflow: visible; }
  & .fcon10__slide { width: auto; height: calc(var(--px)*439); /* HEIGHT: 사용자 요청 — 원본 비율 이미지의 콘텐츠 높이와 별개로 시안 439 높이에서 클리핑하므로 padding이나 자식 흐름으로 대체 불가 */ overflow: hidden; border-radius: calc(var(--px)*26); box-shadow: 0 calc(var(--px)*4) calc(var(--px)*16) rgba(0,0,0,0.10); }
  & .fcon10__review { overflow: hidden; }
  & .fcon10__review img { height: auto; object-position: top; }
  & .fcon10__phone { right: calc(var(--px)*60); bottom: calc(var(--px)*1); pointer-events: none; z-index: 2; /* Swiper .swiper와 .swiper-wrapper가 z-index:1 스택을 만든다. */ }
  & .fcon10__rating { right: calc(var(--px)*54); bottom: calc(var(--px)*69); pointer-events: none; z-index: 2; /* Swiper .swiper와 .swiper-wrapper가 z-index:1 스택을 만든다. */ }
  & .fcon10__screen { position: absolute; /* swiper.css 의 .swiper{position:relative} 가 .absolute 유틸을 덮음 */ right: calc(var(--px)*246); top: calc(var(--px)*18); width: calc(var(--px)*296); aspect-ratio: 296 / 585; border-radius: calc(var(--px)*26); background: #fff; }
  & .fcon10__screen-slide { justify-content: flex-start; /* 공통 div.swiper-slide(column) 의 세로 중앙정렬 해제 — 스크린샷 상태바를 노치 옆에 맞춤 */ }
  & .fcon10__notch { right: calc(var(--px)*295); top: calc(var(--px)*8); z-index: 2; /* swiper 가 .swiper{z-index:1} 로 스택 컨텍스트를 만듦 */ }
}

.fcon10__source-happy { margin-top: calc(var(--px)*19); padding-top: calc(var(--px)*5); }
.fcon10__source-regular { margin-top: calc(var(--px)*19); padding-top: calc(var(--px)*2.24); }
.fcon10__source-healthy { margin-top: calc(var(--px)*19); }

/* IMG:AUTO fcon10 */
/* 섹션 HTML 파생 (tools/img-size-to-css.js · unit=--px) — 재생성 대상, 직접 수정 금지 */
/* 예외: 값을 고치고 뒤에 OVR 주석을 붙이면 재생성이 보존한다 */
.fcon10__wordmark {
    width: calc(var(--px)*569);
    aspect-ratio: 569 / 64;
}

.fcon10__emoji {
    width: calc(var(--px)*90);
    aspect-ratio: 90 / 90;
}

.fcon10__review {
    width: calc(var(--px)*273);
    aspect-ratio: 1179 / 2556;  /* OVR */
}

.fcon10__phone {
    width: calc(var(--px)*791);
    aspect-ratio: 791 / 731;
}

.fcon10__screen-shot {
    width: calc(var(--px)*296);
    aspect-ratio: 1179 / 2556;
}

.fcon10__notch {
    width: calc(var(--px)*186);
    aspect-ratio: 186 / 32;
}

.fcon10__rating {
    width: calc(var(--px)*543);
    aspect-ratio: 543 / 499;
}
/* /IMG:AUTO fcon10 END */

/* FONT:AUTO fcon10 */
/* spec.json 파생 (tools/spec-font-to-css.js · unit=--px) — 재생성 대상, 직접 수정 금지 */
/* 예외: line-height · letter-spacing 는 값을 고치고 뒤에 OVR 주석을 붙이면 재생성이 보존한다 */
.fcon10__title {
    font-family: var(--font-nanumsquare-neo);
    font-size: var(--titleL);
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 1.3;
}

.fcon10__title-start,
.fcon10__title-end {
    color: #101111;
}

.fcon10__title-brand {
    color: #009e5a;
}

.fcon10__description {
    font-family: var(--font-pretendard);
    font-size: var(--bodyL);
    font-weight: 500;
    letter-spacing: -0.0335em; /* OVR */
    line-height: 1.53;
    color: #101111;
}

.fcon10__bubble-grid {
    font-family: var(--font-pretendard);
    font-weight: 500;
    color: #101111;
}

.fcon10__quote-happy {
    font-size: var(--bodyM);
    letter-spacing: -0.04em;
    line-height: 1.38;
}

.fcon10__source-happy,
.fcon10__source-regular,
.fcon10__source-healthy {
    font-size: var(--bodyS);
    letter-spacing: -0.0296em; /* OVR */
    line-height: 1.73;
}

.fcon10__quote-regular,
.fcon10__quote-healthy {
    font-size: var(--bodyM);
    letter-spacing: -0.04em;
    line-height: 1.37;
}
/* /FONT:AUTO fcon10 END */

/* INK:AUTO fcon10 */
.fcon10__source-happy { margin-top: calc(var(--px) * 13.02); margin-bottom: calc(var(--px) * -9.96); } /* base 19,0 */
.fcon10__source-regular { margin-top: calc(var(--px) * 13.02); margin-bottom: calc(var(--px) * -7.2); } /* base 19,0 */
.fcon10__source-healthy { margin-top: calc(var(--px) * 13.02); margin-bottom: calc(var(--px) * -4.96); } /* base 19,0 */
.fcon10__description { margin-top: calc(var(--px) * -5.01); margin-bottom: calc(var(--px) * -4.99); } /* base 0,0 */
.fcon10__title-end { margin-top: calc(var(--px) * -7); margin-bottom: calc(var(--px) * 1); } /* base 0,0 */
.fcon10__quote-happy { margin-top: calc(var(--px) * -3.54); margin-bottom: calc(var(--px) * -3.53); } /* base 0,0 */
.fcon10__title-start { margin-top: calc(var(--px) * -6); margin-bottom: calc(var(--px) * 1); } /* base 0,0 */
.fcon10__title-brand { margin-top: calc(var(--px) * -6); margin-bottom: calc(var(--px) * 1); } /* base 0,0 */
.fcon10__quote-healthy { margin-top: calc(var(--px) * -3.46); margin-bottom: calc(var(--px) * -3.43); } /* base 0,0 */
.fcon10__quote-regular { margin-top: calc(var(--px) * -3.46); margin-bottom: calc(var(--px) * -3.41); } /* base 0,0 */
/* /INK:AUTO fcon10 END */

@media (max-width:599px) {
  .fcon10 {
    & .fcon10_iner { padding-top: 10.6667vw; padding-bottom: 10.6667vw; }
    & .fcon10__wordmark { left: 0; right: 0; top: 163.2vw; margin-inline: auto; width: 80vw; } /* 후기 슬라이더(top 632px) 상단에 살짝 걸치는 자리 */
    & .fcon10__heading { align-items: center; padding-left: 0; padding-inline: 5.3333vw; padding-bottom: 0; gap: 3.2vw; }
    & .fcon10__bubbles { position: relative; right: auto; top: auto; width: 89.3333vw; margin: 10.6667vw auto 0; }
    & .fcon10__bubble-grid { grid-template-columns: 1fr; gap: 3.2vw; }
    & .fcon10__bubble,
    & .fcon10__bubble--happy,
    & .fcon10__bubble--regular,
    & .fcon10__bubble--healthy { padding: 4.2667vw 5.3333vw; border-radius: 4.2667vw; }
    & .fcon10__bubble--happy { margin-left: 0; }
    & .fcon10__bubble--regular { grid-column: auto; grid-row: auto; margin-top: 0; }
    & .fcon10__bubble--healthy { grid-column: auto; margin-top: 0; margin-right: 0; }
    & .fcon10__source-happy,
    & .fcon10__source-regular,
    & .fcon10__source-healthy { margin-top: 2.1333vw; margin-bottom: 0; padding-top: 0; }
    & .fcon10__emoji { top: -5.3333vw; right: 4.2667vw; width: 14vw; }
    & .fcon10__swiper { margin-top: 10.6667vw; }
    & .fcon10__slide { height: 64.3223vw; /* HEIGHT: 사용자 요청 — PC 와 같은 439/273 클리핑 높이 */ border-radius: 4.2667vw; box-shadow: 0 0.5333vw 2.1333vw rgba(0,0,0,0.10); }
    & .fcon10__review { width: 40vw; }
    & .fcon10__rating { left: auto; right: -11.7333vw; bottom: -24.2vw; margin-inline: 0; width: 68.6473vw; }
  }
}

/* /merge-build:fcon10 */
/* merge-build:fcon11 */
.fcon11 {
  background: #fff;
  & .fcon11_iner { padding: 0 calc(var(--px)*26) calc(var(--px)*24) calc(var(--px)*30); }
  & .fcon11__photos { margin-top: calc(var(--px)*-1); }
  & .fcon11__photo-left { flex-shrink: 0; margin-right: calc(var(--px)*-3); }
  & .fcon11__photo-right { flex-shrink: 0; }
  /* PSD 암막(Rectangle 1 copy 39 · #000 72%) — 기본은 우측만 어둡고, 호버한 쪽이 밝아지며 반대쪽이 어두워진다 */
  & .fcon11__photo-left::after,
  & .fcon11__photo-right::after { content: ""; position: absolute; inset: 0; background: #000; opacity: 0; pointer-events: none; transition: opacity .3s ease-out; }
  & .fcon11__photo-left::after { border-radius: 4.329% 0 0 4.329% / 4.790% 0 0 4.790%; /* RADIUS: 자산 모서리 40px 을 924x835 비율로 — 전 뷰포트에서 사진과 같이 스케일 */ }
  & .fcon11__photo-right::after { opacity: 0.7216; border-radius: 0 4.310% 4.310% 0 / 0 4.785% 4.785% 0; /* RADIUS: 자산 모서리 40px 을 928x836 비율로 */ }
  @media (hover: hover) {
    & .fcon11__photos:has(.fcon11__photo-right:hover) .fcon11__photo-left::after { opacity: 0.7216; }
    & .fcon11__photo-right:hover::after { opacity: 0; }
  }
  & .fcon11__symbol { left: calc(var(--px)*880); top: calc(var(--px)*346); }
}

/* IMG:AUTO fcon11 */
/* 섹션 HTML 파생 (tools/img-size-to-css.js · unit=--px) — 재생성 대상, 직접 수정 금지 */
/* 예외: 값을 고치고 뒤에 OVR 주석을 붙이면 재생성이 보존한다 */
.fcon11__photo-left {
    width: calc(var(--px)*924);
    aspect-ratio: 924 / 835;
}

.fcon11__photo-right {
    width: calc(var(--px)*928);
    aspect-ratio: 928 / 836;
}

.fcon11__symbol {
    width: calc(var(--px)*143);
    aspect-ratio: 143 / 143;
}
/* /IMG:AUTO fcon11 END */

@media (max-width:599px) {
  .fcon11 {
    & .fcon11_iner { padding: 0 4.2667vw 4.2667vw; }
    & .fcon11__photos { margin-top: 0; }
    & .fcon11__photo-left { width: 45.7086vw; margin-right: -0.1484vw; }
    & .fcon11__photo-right { width: 45.9064vw; }
    & .fcon11__symbol { left: 44.4935vw; top: 15.3196vw; width: 10.6667vw; }
  }
}

/* /merge-build:fcon11 */
/* merge-build:fcon12 */
.fcon12 {
  background: #fff;
  & .fcon12__eyebrow { text-transform: uppercase; }
  & .fcon12__header {
    padding: calc(var(--px)*232) 0 calc(var(--px)*52.99);
    background: linear-gradient(to bottom, #fff 0 calc(var(--px)*69), #009e5a calc(var(--px)*69)); /* 웨이브 이미지의 평평한 백색대 밑변(top 61 + 7.75)과 같은 줄 */
  }
  & .fcon12__wave { top: calc(var(--px)*61); }
  & .fcon12__symbol { top: calc(var(--px)*12); }

  & .fcon12__heading { padding-top: calc(var(--px)*93); padding-bottom: calc(var(--px)*6.06); }

  & .fcon12__stage { margin-top: calc(var(--px)*28.78); padding-right: calc(var(--px)*24); }
  & .fcon12__swiper { overflow: visible; padding-bottom: calc(var(--px)*93); }
  /* 창은 활성 카드 ±1 = 3장 — 그 밖의 카드는 음수 gap 만큼 옆 카드 모서리를 덮으므로 내보낸다 */
  & .swiper-slide-next ~ .fcon12__slide,
  & .fcon12__slide:has(~ .swiper-slide-prev) { opacity: 0; }
  & .fcon12__slide {
    width: calc(var(--px)*489);
    height: auto;
    margin-top: calc(var(--px)*29);
    transition: margin-top .7s ease-out, opacity .7s ease-out; /* Swiper speed 700 동조 — 활성 카드가 올라오는 것도 같이 */
    &.swiper-slide-active {
      margin-top: 0;
      z-index: 2; /* Swiper 슬라이드 읽기 순서를 유지하면서 활성 카드가 다음 카드를 덮는다. */
      & .fcon12__card { background: #fff; box-shadow: 0 0 24px #0000002b; }
      & .fcon12__tick { opacity: 1; }
    }
  }
  & .fcon12__card {
    background: #fff8dd;
    transition: background-color .7s ease-out, box-shadow .7s ease-out;
    border-radius: calc(var(--px)*30);
    padding: calc(var(--px)*32) calc(var(--px)*38) calc(var(--px)*37) calc(var(--px)*72);
    gap: calc(var(--px)*49);
  }
  & .fcon12__card--contract { padding-left: calc(var(--px)*56.5); gap: calc(var(--px)*51); }
  & .fcon12__card--supervisor { padding-left: calc(var(--px)*73.5); padding-bottom: calc(var(--px)*63); gap: calc(var(--px)*51); }
  & .fcon12__card--marketing { padding-left: calc(var(--px)*69.5); gap: calc(var(--px)*47); }

  & .fcon12__icon { flex-shrink: 0; margin-top: calc(var(--px)*45); }
  & .fcon12__icon--education { margin-top: calc(var(--px)*44); }
  & .fcon12__card-title { margin-top: calc(var(--px)*19); }
  & .fcon12__details { margin-top: calc(var(--px)*26); gap: calc(var(--px)*18); padding-left: calc(var(--px)*3); }
  & .fcon12__checks { gap: calc(var(--px)*7); }
  & .fcon12__check { border: 1px solid #f26a40; border-radius: calc(var(--px)*3); padding: 0 calc(var(--px)*1.5) calc(var(--px)*3); }
  & .fcon12__tick { opacity: 0; transition: opacity .35s ease-out; }
  & .fcon12__check--01 .fcon12__tick { transition-delay: .25s; } /* 카드가 자리잡은(.7s) 뒤 체크가 순서대로 켜진다 */
  & .fcon12__check--02 .fcon12__tick { transition-delay: .37s; }
  & .fcon12__check--03 .fcon12__tick { transition-delay: .49s; }
  /* 등장 타임라인이 끝날 때까지만 GSAP 가 걸어두는 무장 상태 — JS 미실행 시 체크는 그대로 보인다 */
  & .fcon12__stage.is-arming .fcon12__tick { opacity: 0; transition: none; }
}

.fcon12__title { margin-top: calc(var(--px)*18); }
.fcon12__heading-title { margin-top: calc(var(--px)*33); }
/* IMG:AUTO fcon12 */
/* 섹션 HTML 파생 (tools/img-size-to-css.js · unit=--px) — 재생성 대상, 직접 수정 금지 */
/* 예외: 값을 고치고 뒤에 OVR 주석을 붙이면 재생성이 보존한다 */
.fcon12__wave {
    width: calc(var(--px)*652);
    aspect-ratio: 652 / 88;
}

.fcon12__symbol {
    width: calc(var(--px)*125);
    aspect-ratio: 125 / 125;
}

.fcon12__icon.fcon12__icon--contract {
    width: calc(var(--px)*32);
    aspect-ratio: 32 / 34;
}

.fcon12__tick {
    width: calc(var(--px)*14);
    aspect-ratio: 14 / 14;
}

.fcon12__icon.fcon12__icon--education {
    width: calc(var(--px)*36);
    aspect-ratio: 36 / 36;
}

.fcon12__icon.fcon12__icon--supervisor {
    width: calc(var(--px)*32);
    aspect-ratio: 32 / 32;
}

.fcon12__icon.fcon12__icon--marketing {
    width: calc(var(--px)*40);
    aspect-ratio: 40 / 40;
}
/* /IMG:AUTO fcon12 END */

/* FONT:AUTO fcon12 */
/* spec.json 파생 (tools/spec-font-to-css.js · unit=--px) — 재생성 대상, 직접 수정 금지 */
/* 예외: line-height · letter-spacing 는 값을 고치고 뒤에 OVR 주석을 붙이면 재생성이 보존한다 */
.fcon12__eyebrow {
    font-family: var(--font-pretendard);
    font-size: var(--bodyXL);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.39;
    text-align: center;
    color: #fdd253;
}

.fcon12__title {
    font-family: var(--font-nanumsquare-neo);
    font-size: var(--titleL);
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 1.26;
    color: #ffffff;
}

.fcon12__heading {
    text-align: center;
}

.fcon12__label {
    font-family: var(--font-pretendard);
    font-size: var(--subheadS);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.32;
    color: #fff8dd;
}

.fcon12__heading-title {
    font-family: var(--font-nanumsquare-neo);
    font-size: var(--titleM);
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 1.29;
    color: #ffffff;
}

.fcon12__swiper {
    font-family: var(--font-pretendard);
}

.fcon12__number.fcon12__number--contract,
.fcon12__number.fcon12__number--education,
.fcon12__number.fcon12__number--supervisor,
.fcon12__number.fcon12__number--marketing {
    font-size: var(--bodyM);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.3;  /* OVR psd:3.15 */
    color: #ff6a39;
}

.fcon12__card-title.fcon12__card-title--contract,
.fcon12__card-title.fcon12__card-title--education,
.fcon12__card-title.fcon12__card-title--supervisor,
.fcon12__card-title.fcon12__card-title--marketing {
    font-size: var(--headM);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.22;
    color: #101111;
}

.fcon12__description.fcon12__description--contract,
.fcon12__description.fcon12__description--education,
.fcon12__description.fcon12__description--supervisor,
.fcon12__description.fcon12__description--marketing {
    font-size: var(--bodyM);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 1.63;
    color: #101111;
}
/* /FONT:AUTO fcon12 END */

/* INK:AUTO fcon12 */
.fcon12__title { margin-top: calc(var(--px) * 12.8); margin-bottom: calc(var(--px) * -6.19); } /* base 18,0 */
.fcon12__heading-title { margin-top: calc(var(--px) * 27.92); margin-bottom: calc(var(--px) * -6.06); } /* base 33,0 */
.fcon12__description.fcon12__description--supervisor { margin-top: calc(var(--px) * -5.54); margin-bottom: calc(var(--px) * -5.54); } /* base 0,0 */
.fcon12__description.fcon12__description--contract { margin-top: calc(var(--px) * -5.54); margin-bottom: calc(var(--px) * -5.53); } /* base 0,0 */
.fcon12__description.fcon12__description--education { margin-top: calc(var(--px) * -5.54); margin-bottom: calc(var(--px) * -5.53); } /* base 0,0 */
.fcon12__description.fcon12__description--marketing { margin-top: calc(var(--px) * -5.54); margin-bottom: calc(var(--px) * -5.53); } /* base 0,0 */
.fcon12__eyebrow { margin-top: calc(var(--px) * -6.01); margin-bottom: calc(var(--px) * -5.01); } /* base 0,0 */
.fcon12__number.fcon12__number--contract { margin-top: calc(var(--px) * -3.9); margin-bottom: calc(var(--px) * -3.9); } /* base 0,0 */
.fcon12__number.fcon12__number--education { margin-top: calc(var(--px) * -3.9); margin-bottom: calc(var(--px) * -3.9); } /* base 0,0 */
.fcon12__number.fcon12__number--supervisor { margin-top: calc(var(--px) * -3.9); margin-bottom: calc(var(--px) * -3.9); } /* base 0,0 */
.fcon12__number.fcon12__number--marketing { margin-top: calc(var(--px) * -3.9); margin-bottom: calc(var(--px) * -3.9); } /* base 0,0 */
.fcon12__label { margin-top: calc(var(--px) * -3.04); margin-bottom: calc(var(--px) * -4.04); } /* base 0,0 */
.fcon12__card-title.fcon12__card-title--contract { margin-top: calc(var(--px) * 15.97); margin-bottom: calc(var(--px) * -3); } /* base 19,0 */
.fcon12__card-title.fcon12__card-title--education { margin-top: calc(var(--px) * 15.97); margin-bottom: calc(var(--px) * -3); } /* base 19,0 */
.fcon12__card-title.fcon12__card-title--supervisor { margin-top: calc(var(--px) * 15.97); margin-bottom: calc(var(--px) * -3); } /* base 19,0 */
.fcon12__card-title.fcon12__card-title--marketing { margin-top: calc(var(--px) * 15.97); margin-bottom: calc(var(--px) * -3); } /* base 19,0 */
/* /INK:AUTO fcon12 END */

@media (max-width:599px) {
  .fcon12 {
    & .fcon12__header {
      padding: 24.6667vw 0 10.6667vw;
      /* wave top 에서 파생 — 백색대(원본 652×88 중 상단 7px)가 경계를 살짝 덮게 3px. vw 독립값이면 반올림 차로 1px 틈이 난다 */
      background: linear-gradient(to bottom, #fff 0 calc(8.3285vw + 3px), #009e5a calc(8.3285vw + 3px));
    }
    & .fcon12__wave { width: 89.0197vw; top: 8.3285vw; }
    & .fcon12__symbol { width: 17.0667vw; top: 1.6384vw; }
    & .fcon12__eyebrow { margin-top: -0.8vw; margin-bottom: -0.8vw; }
    & .fcon12__title { margin-top: 2.1333vw; margin-bottom: -0.9vw; }

    & .fcon12__heading { padding-top: 12.8vw; padding-bottom: 0; }
    & .fcon12__label { margin-top: -0.6vw; margin-bottom: -0.6vw; }
    & .fcon12__heading-title { margin-top: 2.1333vw; margin-bottom: -1vw; }

    & .fcon12__stage { margin-top: 6.4vw; padding-right: 0; }
    & .fcon12__swiper { padding-bottom: 10.6667vw; }
    & .fcon12__slide {
      width: 80vw;
      margin-top: 4.2667vw;
      &.swiper-slide-active { margin-top: 0; }
    }
    & .fcon12__card,
    & .fcon12__card--contract,
    & .fcon12__card--supervisor,
    & .fcon12__card--marketing {
      flex-direction: column;
      padding: 6.4vw;
      gap: 4.2667vw;
      border-radius: 5.3333vw;
    }
    & .fcon12__icon,
    & .fcon12__icon--education { margin-top: 0; }
    & .fcon12__icon.fcon12__icon--contract,
    & .fcon12__icon.fcon12__icon--supervisor { width: 6.8267vw; }
    & .fcon12__icon.fcon12__icon--education { width: 7.68vw; }
    & .fcon12__icon.fcon12__icon--marketing { width: 8.5333vw; }
    & .fcon12__number.fcon12__number--contract,
    & .fcon12__number.fcon12__number--education,
    & .fcon12__number.fcon12__number--supervisor,
    & .fcon12__number.fcon12__number--marketing { margin-top: -0.56vw; margin-bottom: -0.56vw; }
    & .fcon12__card-title.fcon12__card-title--contract,
    & .fcon12__card-title.fcon12__card-title--education,
    & .fcon12__card-title.fcon12__card-title--supervisor,
    & .fcon12__card-title.fcon12__card-title--marketing { margin-top: 2.1333vw; margin-bottom: -0.5vw; }
    & .fcon12__details { margin-top: 4.2667vw; gap: 2.1333vw; padding-left: 0; }
    & .fcon12__description.fcon12__description--contract,
    & .fcon12__description.fcon12__description--education,
    & .fcon12__description.fcon12__description--supervisor,
    & .fcon12__description.fcon12__description--marketing { margin-top: 0; margin-bottom: 0; }
    & .fcon12__checks { gap: calc(2.352vw - 2px); padding-top: calc(1.176vw - 1px); }
    & .fcon12__check { border-radius: 0.5333vw; padding: 0 0.4vw 0.5333vw; }
    & .fcon12__tick { width: 3.2vw; }
  }
}

/* /merge-build:fcon12 */
/* merge-build:fcon13 */
.fcon13 {
    padding-block: calc(var(--px)*117) calc(var(--px)*33);
    background: #fff;

    & .fcon13__state--regular { padding-top: calc(var(--px)*3); }
    & .fcon13__state + .fcon13__state { margin-top: calc(var(--px)*64.62); }
    & .fcon13__tabs { padding-left: calc(var(--px)*4); gap: calc(var(--px)*8); margin-bottom: calc(var(--px)*31); }
    & .fcon13__state--delivery .fcon13__note { padding-bottom: calc(var(--px)*25.6); }
    & .fcon13__tab {
        word-spacing: calc(var(--px)*-3);
        padding: calc(var(--px)*12) 0 calc(var(--px)*16);
        border: 1px solid #bfd1c9;
        border-radius: 50vw;
        background: #fff;
        transition: background-color .25s ease-out, border-color .25s ease-out;
        &.is-active { background: #009e5a; border-color: #009e5a; }
        &:focus-visible { outline: 2px solid #009e5a; outline-offset: 2px; }
        @media (hover: hover) {
            &:not(.is-active):hover { background-color: #eaf1ee; border-color: #9ec0b1; }
        }
    }
    & .fcon13__tab--regular, & .fcon13__tab--delivery { width: calc(var(--px)*182); }
    & .fcon13__tab--conversion { width: calc(var(--px)*106); }
    & .fcon13__tab--shop-in-shop { width: calc(var(--px)*88); }
    & .fcon13__panel-layout { padding-inline: calc(var(--px)*502) calc(var(--px)*549); }
    & .fcon13__panel { width: calc(var(--px)*854); flex-shrink: 0; }
    & .fcon13__frame { border: 1px solid #a5bdb3; border-radius: calc(var(--px)*26); overflow: hidden; }
    & .fcon13__table { width: 100%; border-collapse: collapse; table-layout: fixed; }
    & .fcon13__col-item { width: calc(var(--px)*224); }
    & .fcon13__col-description { width: calc(var(--px)*415); }
    & .fcon13__heading { padding-top: calc(var(--px)*17); padding-bottom: calc(var(--px)*19); background: #eaf1ee; }
    & .fcon13__heading + .fcon13__heading, & .fcon13__description, & .fcon13__price { border-left: 1px solid #e4ebe8; }
    & .fcon13__item, & .fcon13__description, & .fcon13__price { padding-top: calc(var(--px)*7); padding-bottom: calc(var(--px)*11); border-top: 1px solid #e4ebe8; }
    & .fcon13__description { padding-left: calc(var(--px)*17.5); padding-right: calc(var(--px)*14.5); }
    & .fcon13__description--delivery { padding-left: calc(var(--px)*69.5); }
    & .fcon13__price { text-align: center; }
    & .fcon13__discount { gap: calc(var(--px)*29); }
    /* 할인 표기 OFF(g5_site_text 토글) — 정가만 남는다 */
    & .fcon13__discount--plain {
        & .fcon13__arrow, & .fcon13__arrow-head, & .fcon13__new-price { display: none; }
    }
    & .fcon13__old-price { white-space: nowrap; }
    /* ABSOL: 할인 선과 머리는 기존 가격 위에 겹치며 같은 가격 요소를 앵커로 쓴다. */
    & .fcon13__arrow { left: calc(var(--px)*-16); top: calc(var(--px)*9); width: calc(var(--px)*98); border-top: 1px solid #f33c1d; transform-origin: left center; }
    & .fcon13__arrow-head { right: calc(100% - var(--px)*83); top: calc(var(--px)*1); }
    & .fcon13__note { padding: calc(var(--px)*21) calc(var(--px)*43) calc(var(--px)*23); border-top: 1px solid #e4ebe8; }
    /* ABSOL: 프로모션 말풍선은 표 우측 경계를 넘어 겹친다. */
    & .fcon13__promotion { right: calc(var(--px)*-145); top: calc(var(--px)*65); }
    & .fcon13__promotion-inner { width: calc(var(--px)*159); border-radius: calc(var(--px)*12); background: #ed6000; padding-block: calc(var(--px)*10.775); }
    /* ABSOL: 말풍선 꼬리는 본체 좌측 경계를 넘어 연결된다. */
    & .fcon13__pointer { left: calc(var(--px)*-12); top: calc(var(--px)*24); }
}

.fcon13__title { margin-bottom: calc(var(--px)*44); }

/* IMG:AUTO fcon13 */
/* 섹션 HTML 파생 (tools/img-size-to-css.js · unit=--px) — 재생성 대상, 직접 수정 금지 */
/* 예외: 값을 고치고 뒤에 OVR 주석을 붙이면 재생성이 보존한다 */
.fcon13__arrow-head {
    width: calc(var(--px)*14);
    aspect-ratio: 14 / 9;
}

.fcon13__pointer {
    width: calc(var(--px)*50);
    aspect-ratio: 50 / 12;
}
/* /IMG:AUTO fcon13 END */

/* FONT:AUTO fcon13 */
/* spec.json 파생 (tools/spec-font-to-css.js · unit=--px) — 재생성 대상, 직접 수정 금지 */
/* 예외: line-height · letter-spacing 는 값을 고치고 뒤에 OVR 주석을 붙이면 재생성이 보존한다 */
.fcon13__title {
    font-family: var(--font-nanumsquare-neo);
    font-size: var(--titleL);
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 1.13;
    text-align: center;
    color: #101111;
}

.fcon13__tabs {
    font-family: var(--font-pretendard);
    font-size: var(--bodyL);
    font-weight: 700;
    letter-spacing: -0.04em;
    line-height: 1.2;
    text-align: center;
}

.fcon13__tab.fcon13__tab--regular.fcon13__tab--regular-selected,
.fcon13__tab.fcon13__tab--delivery.fcon13__tab--delivery-selected {
    color: #ffffff;
}

.fcon13__tab.fcon13__tab--delivery.fcon13__tab--delivery-unselected,
.fcon13__tab.fcon13__tab--conversion,
.fcon13__tab.fcon13__tab--shop-in-shop,
.fcon13__tab.fcon13__tab--regular.fcon13__tab--regular-unselected {
    color: #101111;
}

.fcon13__frame {
    font-family: var(--font-pretendard);
}

.fcon13__heading {
    font-size: var(--bodyXL);
    font-weight: 700;
    letter-spacing: -0.04em;
    line-height: 1.2;  /* OVR psd:2.6 */
    text-align: center;
    color: #101111;
}

.fcon13__item,
.fcon13__payment {
    font-size: var(--bodyM);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 1.2;  /* OVR psd:2.38 */
    text-align: center;
    color: #101111;
}

.fcon13__description.fcon13__description--regular,
.fcon13__description.fcon13__description--delivery {
    font-size: var(--bodyM);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 1.2;  /* OVR psd:2.38 */
    color: #101111;
}

.fcon13__discount,
.fcon13__price {
    font-size: var(--bodyM);
    letter-spacing: -0.04em;
    line-height: 1.2;  /* OVR psd:2.38 */
    text-align: center;
}

.fcon13__old-price,
.fcon13__unit {
    font-weight: 500;
    color: #101111;
}

.fcon13__waiver,
.fcon13__discount-amount {
    font-weight: 700;
    color: #f33c1d;
}

.fcon13__amount.fcon13__amount--01,
.fcon13__amount.fcon13__amount--02,
.fcon13__amount.fcon13__amount--03,
.fcon13__amount.fcon13__amount--04,
.fcon13__amount.fcon13__amount--05,
.fcon13__amount.fcon13__amount--06,
.fcon13__amount.fcon13__amount--07 {
    font-weight: 600;
    color: #f33c1d;
}

.fcon13__note {
    font-size: var(--bodyM);
    font-weight: 300;
    letter-spacing: -0.04em;
    line-height: 1.21;
    color: #838a87;
}

.fcon13__promotion-copy {
    font-family: var(--font-nanumsquare-neo);
    font-size: var(--bodyM);
    font-weight: 900;
    letter-spacing: -0.08em;
    line-height: 1.34;
    text-align: center;
    color: #ffffff;
}
/* /FONT:AUTO fcon13 END */

/* INK:AUTO fcon13 */
.fcon13__title { margin-top: calc(var(--px) * -2.6); margin-bottom: calc(var(--px) * 40.41); } /* base 0,44 */
.fcon13__amount.fcon13__amount--02 { margin-top: calc(var(--px) * -3.1); margin-bottom: calc(var(--px) * -2.9); } /* base 0,0 */
.fcon13__amount.fcon13__amount--04 { margin-top: calc(var(--px) * -3.1); margin-bottom: calc(var(--px) * -2.9); } /* base 0,0 */
.fcon13__amount.fcon13__amount--06 { margin-top: calc(var(--px) * -3.1); margin-bottom: calc(var(--px) * -2.9); } /* base 0,0 */
.fcon13__discount-amount { margin-top: calc(var(--px) * -3.1); margin-bottom: calc(var(--px) * -2.9); } /* base 0,0 */
.fcon13__promotion-copy { margin-top: calc(var(--px) * -2.72); margin-bottom: calc(var(--px) * -2.71); } /* base 0,0 */
.fcon13__old-price { margin-top: calc(var(--px) * -2.1); margin-bottom: calc(var(--px) * -3.09); } /* base 0,0 */
.fcon13__unit { margin-top: calc(var(--px) * -2.1); margin-bottom: calc(var(--px) * -2.9); } /* base 0,0 */
.fcon13__waiver { margin-top: calc(var(--px) * -2.1); margin-bottom: calc(var(--px) * -1.9); } /* base 0,0 */
.fcon13__payment { margin-top: calc(var(--px) * -2.1); margin-bottom: calc(var(--px) * -1.9); } /* base 0,0 */
.fcon13__amount.fcon13__amount--01 { margin-top: calc(var(--px) * -3.1); margin-bottom: calc(var(--px) * 0.1); } /* base 0,0 */
.fcon13__amount.fcon13__amount--03 { margin-top: calc(var(--px) * -3.1); margin-bottom: calc(var(--px) * 0.1); } /* base 0,0 */
.fcon13__amount.fcon13__amount--05 { margin-top: calc(var(--px) * -3.1); margin-bottom: calc(var(--px) * 0.1); } /* base 0,0 */
.fcon13__amount.fcon13__amount--07 { margin-top: calc(var(--px) * -3.1); margin-bottom: calc(var(--px) * 0.1); } /* base 0,0 */
/* /INK:AUTO fcon13 END */

@media (max-width:599px) {
  .fcon13 {
    padding-block: 10.6667vw 5.3333vw; /* 하단은 .franchise-cost 가 fcon13 padding-bottom 을 0 으로 강제(fcon14 와 시각적으로 이어지는 탭 블록) — 손대지 않음 */
    & .fcon13__title { margin-top: 0; margin-bottom: 6.4vw; }
    & .fcon13__state--regular { padding-top: 0; }
    & .fcon13__state + .fcon13__state { margin-top: 10.6667vw; }
    & .fcon13__tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding-inline: 4.2667vw; gap: 2.1333vw; margin-bottom: 5.3333vw; }
    & .fcon13__tab { word-spacing: normal; padding: 2.1333vw 0; }
    & .fcon13__tab--regular, & .fcon13__tab--delivery, & .fcon13__tab--conversion, & .fcon13__tab--shop-in-shop { width: auto; }
    & .fcon13__panel-layout { padding-inline: 4.2667vw; }
    & .fcon13__panel { width: 100%; display: flex; flex-direction: column; align-items: center; }
    & .fcon13__frame { width: 100%; border-radius: 4.2667vw; }
    & .fcon13__col-item { width: 20vw; }
    & .fcon13__col-description { width: 38.6667vw; }
    & .fcon13__heading { padding-top: 3.2vw; padding-bottom: 3.2vw; }
    & .fcon13__item, & .fcon13__description, & .fcon13__price { padding-top: 2.1333vw; padding-bottom: 2.1333vw; }
    & .fcon13__item, & .fcon13__description.fcon13__description--regular, & .fcon13__description.fcon13__description--delivery, & .fcon13__discount, & .fcon13__price, & .fcon13__payment { line-height: 1.4; /* OVR */ }
    & .fcon13__description, & .fcon13__description--delivery { padding-left: 2.1333vw; padding-right: 2.1333vw; }
    & .fcon13__discount { flex-direction: column; gap: 1.0667vw; }
    & .fcon13__amount, & .fcon13__discount-amount, & .fcon13__old-price, & .fcon13__unit, & .fcon13__waiver, & .fcon13__payment, & .fcon13__promotion-copy { margin-top: 0; margin-bottom: 0; }
    & .fcon13__arrow { left: -3.7333vw; top: 2.1vw; width: 22.8667vw; }
    & .fcon13__arrow-head { right: calc(100% - 19.3667vw); top: 0.4667vw; width: 3.2667vw; } /* 대각선 끝이 취소선(top 2.1vw)에 닿아야 화살촉이 된다 — 아래로 처지면 ----\ 로 보임 */
    & .fcon13__note, & .fcon13__state--delivery .fcon13__note { padding: 3.2vw 4.2667vw; }
    & .fcon13__promotion { position: relative; right: auto; top: auto; margin-top: 4.2667vw; }
    & .fcon13__promotion-inner { width: auto; border-radius: 2.1333vw; padding: 2.1333vw 5.3333vw; }
  }
}

/* /merge-build:fcon13 */
/* merge-build:fcon14 */
@keyframes fcon14-panel-in { from { opacity: 0; transform: translateY(2%); } to { opacity: 1; transform: translateY(0); } }

.fcon14 {
    padding-block: calc(var(--px)*31) calc(var(--px)*131);
    background: #fff;

    & .fcon14__state + .fcon14__state { margin-top: calc(var(--px)*73); }
    & .fcon14__state:not([hidden]) { animation: fcon14-panel-in .45s ease-out both; }
    & .fcon14__tabs { padding-left: calc(var(--px)*4); gap: calc(var(--px)*8); margin-bottom: calc(var(--px)*31); }
    & .fcon14__tab {
        word-spacing: calc(var(--px)*-3);
        padding: calc(var(--px)*12) 0 calc(var(--px)*16);
        border: 1px solid #bfd1c9;
        border-radius: 50vw;
        background: #fff;
        transition: background-color .25s ease-out, border-color .25s ease-out;
        &.is-active { background: #009e5a; border-color: #009e5a; }
    }
    @media (hover: hover) {
        & .fcon14__tab:not(.is-active):hover { background-color: #eaf1ee; border-color: #a5bdb3; }
    }
    & .fcon14__tab--regular, & .fcon14__tab--delivery { width: calc(var(--px)*182); }
    & .fcon14__tab--conversion { width: calc(var(--px)*106); }
    & .fcon14__tab--shop-in-shop { width: calc(var(--px)*88); }
    & .fcon14__panel-layout { padding-inline: calc(var(--px)*502) calc(var(--px)*549); }
    & .fcon14__panel { width: calc(var(--px)*854); flex-shrink: 0; }
    & .fcon14__frame { border: 1px solid #a5bdb3; border-radius: calc(var(--px)*26); overflow: hidden; }
    & .fcon14__table { width: 100%; border-collapse: collapse; table-layout: fixed; }
    & .fcon14__col-item { width: calc(var(--px)*224); }
    & .fcon14__col-description { width: calc(var(--px)*415); }
    & .fcon14__heading { padding-top: calc(var(--px)*17); padding-bottom: calc(var(--px)*19); background: #eaf1ee; }
    & .fcon14__heading + .fcon14__heading, & .fcon14__description, & .fcon14__price { border-left: 1px solid #e4ebe8; }
    & .fcon14__item, & .fcon14__description, & .fcon14__price { padding-top: calc(var(--px)*7); padding-bottom: calc(var(--px)*11); border-top: 1px solid #e4ebe8; }
    & .fcon14__description { padding-left: calc(var(--px)*69.5); padding-right: calc(var(--px)*10); }
    & .fcon14__description--delivery { padding-left: calc(var(--px)*73.5); }
    & .fcon14__price { font-size: var(--bodyM); line-height: 1.2; text-align: center; }
    & .fcon14__discount { gap: calc(var(--px)*29); }
    /* 할인 표기 OFF(g5_site_text 토글) — 정가만 남는다 */
    & .fcon14__discount--plain {
        & .fcon14__arrow, & .fcon14__arrow-head, & .fcon14__new-price { display: none; }
    }
    & .fcon14__old-price { white-space: nowrap; }
    /* ABSOL: 할인 선과 머리는 기존 가격 위에 겹치며 같은 가격 요소를 앵커로 쓴다. */
    & .fcon14__arrow { left: calc(var(--px)*-16); top: calc(var(--px)*9); width: calc(var(--px)*98); border-top: 1px solid #f33c1d; transform-origin: left center; }
    & .fcon14__arrow-head { right: calc(100% - var(--px)*83); top: calc(var(--px)*2); }
    & .fcon14__note { padding: calc(var(--px)*21) calc(var(--px)*43) calc(var(--px)*23); border-top: 1px solid #e4ebe8; }
    /* ABSOL: 프로모션 말풍선은 표 우측 경계를 넘어 겹친다. */
    & .fcon14__promotion { right: calc(var(--px)*-145); top: calc(var(--px)*65); }
    & .fcon14__promotion-inner { width: calc(var(--px)*159); border-radius: calc(var(--px)*12); background: #ed6000; padding-block: calc(var(--px)*10.775); }
    /* ABSOL: 말풍선 꼬리는 본체 좌측 경계를 넘어 연결된다. */
    & .fcon14__pointer { left: calc(var(--px)*-12); top: calc(var(--px)*24); }
}

/* IMG:AUTO fcon14 */
/* 섹션 HTML 파생 (tools/img-size-to-css.js · unit=--px) — 재생성 대상, 직접 수정 금지 */
/* 예외: 값을 고치고 뒤에 OVR 주석을 붙이면 재생성이 보존한다 */
.fcon14__arrow-head {
    width: calc(var(--px)*14);
    aspect-ratio: 14 / 9;
}

.fcon14__pointer {
    width: calc(var(--px)*50);
    aspect-ratio: 50 / 12;
}
/* /IMG:AUTO fcon14 END */

/* FONT:AUTO fcon14 */
/* spec.json 파생 (tools/spec-font-to-css.js · unit=--px) — 재생성 대상, 직접 수정 금지 */
/* 예외: line-height · letter-spacing 는 값을 고치고 뒤에 OVR 주석을 붙이면 재생성이 보존한다 */
.fcon14__tabs {
    font-family: var(--font-pretendard);
    font-size: var(--bodyL);
    font-weight: 700;
    letter-spacing: -0.04em;
    line-height: 1.2;
    text-align: center;
}

.fcon14__tab.fcon14__tab--regular,
.fcon14__tab.fcon14__tab--delivery,
.fcon14__tab.fcon14__tab--shop-in-shop.fcon14__tab--shop-in-shop-unselected,
.fcon14__tab.fcon14__tab--conversion.fcon14__tab--conversion-unselected {
    color: #101111;
}

.fcon14__tab.fcon14__tab--conversion.fcon14__tab--conversion-selected,
.fcon14__tab.fcon14__tab--shop-in-shop.fcon14__tab--shop-in-shop-selected {
    color: #ffffff;
}

.fcon14__frame,
.fcon14__table {
    font-family: var(--font-pretendard);
}

.fcon14__heading {
    font-size: var(--bodyXL);
    font-weight: 700;
    letter-spacing: -0.04em;
    line-height: 1.2;  /* OVR psd:2.6 */
    text-align: center;
    color: #101111;
}

.fcon14__item,
.fcon14__payment {
    font-size: var(--bodyM);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 1.2;  /* OVR psd:2.38 */
    text-align: center;
    color: #101111;
}

.fcon14__description.fcon14__description--regular,
.fcon14__description.fcon14__description--delivery {
    font-size: var(--bodyM);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 1.2;  /* OVR psd:2.38 */
    color: #101111;
}

.fcon14__discount {
    font-size: var(--bodyM);
    letter-spacing: -0.04em;
    line-height: 1.2;  /* OVR psd:2.38 */
    text-align: center;
}

.fcon14__old-price,
.fcon14__unit {
    font-weight: 500;
    color: #101111;
}

.fcon14__waiver,
.fcon14__discount-amount {
    font-weight: 700;
    color: #f33c1d;
}

.fcon14__note {
    font-size: var(--bodyM);
    font-weight: 300;
    letter-spacing: -0.04em;
    line-height: 1.21;
    color: #838a87;
}

.fcon14__promotion-copy {
    font-family: var(--font-nanumsquare-neo);
    font-size: var(--bodyM);
    font-weight: 900;
    letter-spacing: -0.08em;
    line-height: 1.34;
    text-align: center;
    color: #ffffff;
}
/* /FONT:AUTO fcon14 END */

/* INK:AUTO fcon14 */
.fcon14__discount-amount { margin-top: calc(var(--px) * -3.1); margin-bottom: calc(var(--px) * -2.9); } /* base 0,0 */
.fcon14__promotion-copy { margin-top: calc(var(--px) * -2.72); margin-bottom: calc(var(--px) * -2.71); } /* base 0,0 */
.fcon14__old-price { margin-top: calc(var(--px) * -2.1); margin-bottom: calc(var(--px) * -3.09); } /* base 0,0 */
.fcon14__unit { margin-top: calc(var(--px) * -2.1); margin-bottom: calc(var(--px) * -2.9); } /* base 0,0 */
.fcon14__waiver { margin-top: calc(var(--px) * -2.1); margin-bottom: calc(var(--px) * -1.9); } /* base 0,0 */
.fcon14__payment { margin-top: calc(var(--px) * -2.1); margin-bottom: calc(var(--px) * -1.9); } /* base 0,0 */
/* /INK:AUTO fcon14 END */

@media (max-width:599px) {
    .fcon14 {
        padding-block: 5.3333vw 21.3333vw;

        & .fcon14__state + .fcon14__state { margin-top: 10.6667vw; }
        & .fcon14__tabs { flex-wrap: wrap; padding-left: 0; gap: 2.1333vw; margin-bottom: 5.3333vw; }
        & .fcon14__tab { word-spacing: -0.5333vw; padding: 2.1333vw 0 3.2vw; }
        & .fcon14__tab--regular, & .fcon14__tab--delivery, & .fcon14__tab--conversion, & .fcon14__tab--shop-in-shop { width: 44.6667vw; }
        & .fcon14__panel-layout { padding-inline: 4.2667vw; }
        & .fcon14__panel { width: 100%; display: flex; flex-direction: column; }
        & .fcon14__frame { border-radius: 4.2667vw; }
        & .fcon14__col-item { width: 20.2667vw; }
        & .fcon14__col-description { width: 37.0667vw; }
        & .fcon14__heading { padding-top: 3.2vw; padding-bottom: 3.2vw; }
        & .fcon14__item, & .fcon14__description, & .fcon14__price { padding-top: 2.1333vw; padding-bottom: 2.1333vw; }
        & .fcon14__description, & .fcon14__description--delivery { padding-left: 2.1333vw; padding-right: 2.1333vw; }
        & .fcon14__discount { gap: 2.1333vw; }
        & .fcon14__arrow { left: -1.0667vw; top: 2.1333vw; width: 15.4667vw; }
        & .fcon14__arrow-head { right: calc(100% - 14.4vw); top: 1.44vw; width: 2.1333vw; }
        & .fcon14__note { padding: 3.2vw 6.4vw; }
        & .fcon14__promotion { position: relative; right: auto; top: auto; order: -1; align-self: center; margin-bottom: 3.2vw; }
        /* RADIUS: 모바일 한 줄 알약 */
        & .fcon14__promotion-inner { width: auto; border-radius: 50vw; padding: 1.6vw 4.2667vw; }
        & .fcon14__discount-amount { margin-top: -0.496vw; margin-bottom: -0.464vw; }
        & .fcon14__promotion-copy { margin-top: -0.4352vw; margin-bottom: -0.4336vw; }
        & .fcon14__old-price { margin-top: -0.336vw; margin-bottom: -0.4944vw; }
        & .fcon14__unit { margin-top: -0.336vw; margin-bottom: -0.464vw; }
        & .fcon14__waiver, & .fcon14__payment { margin-top: -0.336vw; margin-bottom: -0.304vw; }
    }
}

/* /merge-build:fcon14 */
/* merge-build:fcon15 */
:where(.fcon15) {
    background: #fff;
    padding-block: calc(var(--px)*141) calc(var(--px)*109);

    & .fcon15__steps {
        display: grid;
        width: calc(var(--px)*1143);
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: calc(var(--px)*4) calc(var(--px)*4.5);
        margin-top: calc(var(--px)*37);
        list-style: none;
    }

    & .fcon15__step {
        padding: calc(var(--px)*27) calc(var(--px)*39) calc(var(--px)*29);
        border: 1px solid #bfd1c9;
        border-radius: calc(var(--px)*13);
        background: transparent;
        transition: background-color .45s ease-out, border-color .45s ease-out;
    }

    & .fcon15__number,
    & .fcon15__name,
    & .fcon15__description { transition: color .45s ease-out; }

    & .fcon15__name {
        margin-top: calc(var(--px)*18);
    }
}

/* 신호등 — 시안의 녹색 카드는 01 고유색이 아니라 '활성' 상태다. 상태가 스텝을 옮겨다니므로
   FONT:AUTO 가 01 에 박아둔 활성색을 평상색으로 되돌리고, 활성 스텝에서만 다시 켠다 */
.fcon15 .fcon15__step .fcon15__number.fcon15__number { color: #009e5a; }
.fcon15 .fcon15__step .fcon15__name.fcon15__name { color: #101111; }
.fcon15 .fcon15__step .fcon15__description.fcon15__description { color: #101111; }
.fcon15 .fcon15__step.is-active { background: #009e5a; border-color: #009e5a; }
.fcon15 .fcon15__step.is-active .fcon15__number.fcon15__number { color: #fdd352; }
.fcon15 .fcon15__step.is-active .fcon15__name.fcon15__name { color: #fff; }
.fcon15 .fcon15__step.is-active .fcon15__description.fcon15__description { color: #fff; }

:where(.fcon15) .fcon15__description { margin-top: calc(var(--px)*10); }
:where(.fcon15) .fcon15__step:nth-child(n+9) { padding-bottom: calc(var(--px)*29); }

:where(.fcon15) .fcon15__number--03, :where(.fcon15) .fcon15__number--08 { margin-bottom: calc(var(--px)*-1); }

/* FONT:AUTO fcon15 */
/* spec.json 파생 (tools/spec-font-to-css.js · unit=--px) — 재생성 대상, 직접 수정 금지 */
/* 예외: line-height · letter-spacing 는 값을 고치고 뒤에 OVR 주석을 붙이면 재생성이 보존한다 */
.fcon15__title {
    font-family: var(--font-nanumsquare-neo);
    font-size: var(--titleL);
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 1.13;
    text-align: center;
    color: #101111;
}

.fcon15__number.fcon15__number--01.fcon15__number--start {
    font-family: var(--font-poppins);
    font-size: var(--bodyXL);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1;
    text-align: right;
    color: #fdd352;
}

.fcon15__name.fcon15__name--start {
    font-family: var(--font-pretendard);
    font-size: var(--headS);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.67;
    color: #ffffff;
}

.fcon15__description.fcon15__description--start {
    font-family: var(--font-pretendard);
    font-size: var(--bodyM);
    font-weight: 500;
    letter-spacing: -0.032em; /* OVR */
    line-height: 1.25;
    color: #ffffff;
}

.fcon15__number.fcon15__number--02,
.fcon15__number.fcon15__number--03,
.fcon15__number.fcon15__number--04,
.fcon15__number.fcon15__number--05,
.fcon15__number.fcon15__number--06,
.fcon15__number.fcon15__number--07,
.fcon15__number.fcon15__number--08,
.fcon15__number.fcon15__number--09,
.fcon15__number.fcon15__number--10,
.fcon15__number.fcon15__number--11,
.fcon15__number.fcon15__number--12 {
    font-family: var(--font-poppins);
    font-size: var(--bodyXL);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1;
    text-align: right;
    color: #009e5a;
}

.fcon15__name {
    font-family: var(--font-pretendard);
    font-size: var(--headS);
    font-weight: 800;
    letter-spacing: -0.032em; /* OVR */
    line-height: 1.67;
    color: #101111;
}

.fcon15__description {
    font-family: var(--font-pretendard);
    font-size: var(--bodyM);
    font-weight: 500;
    letter-spacing: -0.032em; /* OVR */
    line-height: 1.25;
    color: #101111;
}
/* /FONT:AUTO fcon15 END */

/* INK:AUTO fcon15 */
.fcon15__name.fcon15__name--start { margin-top: calc(var(--px) * 9.97); margin-bottom: calc(var(--px) * -8.03); } /* base 18,0 */
.fcon15__name { margin-top: calc(var(--px) * 9.97); margin-bottom: calc(var(--px) * -8.03); } /* base 18,0 */
.fcon15__title { margin-top: calc(var(--px) * -3.6); margin-bottom: calc(var(--px) * -3.59); } /* base 0,0 */
.fcon15__description.fcon15__description--start { margin-top: calc(var(--px) * 7.5); margin-bottom: calc(var(--px) * -2.5); } /* base 10,0 */
.fcon15__description { margin-top: calc(var(--px) * 7.5); margin-bottom: calc(var(--px) * -2.5); } /* base 10,0 */
.fcon15__number.fcon15__number--01.fcon15__number--start { margin-top: calc(var(--px) * -1.5); margin-bottom: calc(var(--px) * -2.5); } /* base 0,0 */
.fcon15__number.fcon15__number--02 { margin-top: calc(var(--px) * -1.5); margin-bottom: calc(var(--px) * -2.5); } /* base 0,0 */
.fcon15__number.fcon15__number--04 { margin-top: calc(var(--px) * -1.5); margin-bottom: calc(var(--px) * -2.5); } /* base 0,0 */
.fcon15__number.fcon15__number--05 { margin-top: calc(var(--px) * -1.5); margin-bottom: calc(var(--px) * -2.5); } /* base 0,0 */
.fcon15__number.fcon15__number--06 { margin-top: calc(var(--px) * -1.5); margin-bottom: calc(var(--px) * -2.5); } /* base 0,0 */
.fcon15__number.fcon15__number--07 { margin-top: calc(var(--px) * -1.5); margin-bottom: calc(var(--px) * -2.5); } /* base 0,0 */
.fcon15__number.fcon15__number--09 { margin-top: calc(var(--px) * -1.5); margin-bottom: calc(var(--px) * -2.5); } /* base 0,0 */
.fcon15__number.fcon15__number--10 { margin-top: calc(var(--px) * -1.5); margin-bottom: calc(var(--px) * -2.5); } /* base 0,0 */
.fcon15__number.fcon15__number--11 { margin-top: calc(var(--px) * -1.5); margin-bottom: calc(var(--px) * -2.5); } /* base 0,0 */
.fcon15__number.fcon15__number--12 { margin-top: calc(var(--px) * -1.5); margin-bottom: calc(var(--px) * -2.5); } /* base 0,0 */
.fcon15__number.fcon15__number--03 { margin-top: calc(var(--px) * -1.5); margin-bottom: calc(var(--px) * -2.5); } /* base 0,-1 */
.fcon15__number.fcon15__number--08 { margin-top: calc(var(--px) * -1.5); margin-bottom: calc(var(--px) * -2.5); } /* base 0,-1 */
/* /INK:AUTO fcon15 END */

@media (max-width:599px) {
    .fcon15 {
        padding-block: 10.6667vw 10.6667vw;

        & .fcon15__steps { width: 91.4667vw; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.0667vw; margin-top: 6.4vw; }
        & .fcon15__step { padding: 4.2667vw; border-radius: 2.1333vw; }
        & .fcon15__title { margin-top: -0.672vw; margin-bottom: -0.6701vw; }
        & .fcon15__name { margin-top: 1.5685vw; margin-bottom: -1.6315vw; }
        & .fcon15__description { margin-top: 1.0167vw; margin-bottom: -0.5833vw; }
        & .fcon15__number.fcon15__number { margin-top: -0.3556vw; margin-bottom: -0.5926vw; }
    }
}

/* /merge-build:fcon15 */
/* merge-build:fcon16 */
.fcon16 {
    padding-top: calc(var(--px)*117);
    padding-bottom: calc(var(--px)*115);
    & .fcon16__wordmark { opacity: 0.25882352941176473; }
    & .fcon16__heading { gap: calc(var(--px)*20); padding-bottom: calc(var(--px)*5); }
    :where(&) .fcon16__title { margin-top: calc(var(--px)*22); }
    & .fcon16__panel { width: calc(var(--px)*1240); margin-top: calc(var(--px)*42); padding: calc(var(--px)*50) calc(var(--px)*120) calc(var(--px)*63); background: #fff; border-radius: calc(var(--px)*40); }
    & .fcon16__form-heading { gap: calc(var(--px)*14); padding-bottom: calc(var(--px)*8.4); }
    & .fcon16__form { margin-top: calc(var(--px)*44.6); }
}

/* IMG:AUTO fcon16 */
/* 섹션 HTML 파생 (tools/img-size-to-css.js · unit=--px) — 재생성 대상, 직접 수정 금지 */
/* 예외: 값을 고치고 뒤에 OVR 주석을 붙이면 재생성이 보존한다 */
.fcon16__arrow {
    width: calc(var(--px)*21);
    aspect-ratio: 21 / 18;
}
/* /IMG:AUTO fcon16 END */

/* FONT:AUTO fcon16 */
/* spec.json 파생 (tools/spec-font-to-css.js · unit=--px) — 재생성 대상, 직접 수정 금지 */
/* 예외: line-height · letter-spacing 는 값을 고치고 뒤에 OVR 주석을 붙이면 재생성이 보존한다 */
.fcon16__wordmark {
    font-family: var(--font-poppins);
    font-size: calc(var(--px)*101.06);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1;
    text-align: center;
    color: #fed452;
}

.fcon16__title {
    font-family: var(--font-pretendard);
    font-size: var(--titleL);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.3;
    text-align: center;
    color: #101111;
}

.fcon16__intro {
    font-family: var(--font-pretendard);
    font-size: var(--bodyL);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 1.53;
    color: #101111;
}

.fcon16__form-heading {
    text-align: center;
}

.fcon16__eyebrow {
    font-family: var(--font-poppins);
    font-size: var(--bodyXL);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 4.96;
    color: #009e5a;
}

.fcon16__form-title {
    font-family: var(--font-nanumsquare-neo);
    font-size: var(--titleL);
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 1.37;
    color: #101111;
}

.fcon16__group {
    font-family: var(--font-pretendard);
}

.fcon16__legend {
    font-family: var(--font-pretendard);
    font-size: var(--subheadM);
    font-weight: 700;
    letter-spacing: -0.04em;
    line-height: 2.19;
    color: #101111;
}

.fcon16__fields {
    font-size: var(--bodyL);
    font-weight: 500;
    letter-spacing: -0.03em;
    line-height: 1.9;
    color: #020202;
}

.fcon16__label {
    font-family: var(--font-pretendard);
    font-size: var(--bodyL);
    font-weight: 500;
    letter-spacing: -0.03em;
    line-height: 1.9;
    color: #020202;
}

.fcon16__region-arrow {
    font-family: var(--font-wanted);
    font-size: var(--headM);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.2;
    color: #ffffff;
}

.fcon16__field {
    font-family: var(--font-pretendard);
    font-size: var(--bodyL);
    font-weight: 500;
    letter-spacing: -0.03em;
    line-height: 1.9;
}

.fcon16__unit {
    color: #838a87;
}

.fcon16__consent-text {
    font-family: var(--font-pretendard);
    font-size: var(--bodyM);
    font-weight: 400;
    letter-spacing: -0.03em;
    line-height: 2;
    color: #020202;
}

.fcon16__submit {
    line-height: 1.2;
}

.fcon16__submit-text {
    font-family: var(--font-pretendard);
    font-size: var(--headS);
    font-weight: 700;
    letter-spacing: -0.04em;
    text-align: center;
    color: #ffffff;
}

.fcon16__arrow {
    font-family: var(--font-wanted);
    font-size: var(--titleXS);
    font-weight: 800;
    letter-spacing: -0.02em;
    color: #009e5a;
}
/* /FONT:AUTO fcon16 END */

/* INK:AUTO fcon16 */
.fcon16__eyebrow { margin-top: calc(var(--px) * -36.14); margin-bottom: calc(var(--px) * -33.13); } /* base 0,0 */
.fcon16__legend { margin-top: calc(var(--px) * -14.09); margin-bottom: calc(var(--px) * 5.92); } /* base 0,20 */
.fcon16__wordmark { margin-top: calc(var(--px) * -11.03); margin-bottom: calc(var(--px) * 12.97); } /* base 0,0 */
.fcon16__consent-text { margin-top: calc(var(--px) * -8.5); margin-bottom: calc(var(--px) * -8.5); } /* base 0,0 */
.fcon16__form-title { margin-top: calc(var(--px) * -7.4); margin-bottom: calc(var(--px) * -8.4); } /* base 0,0 */
.fcon16__title { margin-top: calc(var(--px) * 15); margin-bottom: calc(var(--px) * -8); } /* base 22,0 */
.fcon16__intro { margin-top: calc(var(--px) * -5.01); margin-bottom: calc(var(--px) * -4.99); } /* base 0,0 */
/* /INK:AUTO fcon16 END */

@media (max-width:599px) {
    .fcon16 {
        padding-top: 10.6667vw;
        padding-bottom: 10.6667vw;
        & .fcon16__heading { gap: 3.2vw; padding: 0 4.2667vw 1.0667vw; }
        & .fcon16__wordmark { font-size: 7.4667vw; margin-top: -0.8149vw; margin-bottom: 0.9583vw; } /* 토큰 아닌 raw 폰트 — 렌더폭 343px 이내로 28px */
        & .fcon16__title { margin-top: 1.8933vw; margin-bottom: -1.4933vw; }
        & .fcon16__intro { margin-top: -1.1002vw; margin-bottom: -1.0958vw; }
        & .fcon16__panel { width: 91.4667vw; margin-top: 6.4vw; padding: 8.5333vw 5.3333vw 16vw; border-radius: 6.4vw; }
        & .fcon16__form-heading { gap: 2.1333vw; padding-bottom: 1.0667vw; }
        & .fcon16__eyebrow { margin-top: -8.5665vw; margin-bottom: -7.853vw; }
        & .fcon16__form-title { margin-top: -1.3813vw; margin-bottom: -1.568vw; }
        & .fcon16__form { margin-top: 6.4vw; }
        & .fcon16__legend { margin-top: -2.5618vw; margin-bottom: 0.64vw; }
        & .fcon16__consent-text { margin-top: -1.9833vw; margin-bottom: -1.9833vw; }
    }
}


/* /merge-build:fcon16 */
/* merge-build:sub-hero */
/* sub-hero — 모바일: head 는 column 그대로 가운데 정렬, 엠블럼은 하단 중앙 유지 */
.sub-hero {
  z-index: 2; /* 빼면 visual-verify 렌더가 백지로 나옴(실측) — 걷지 말 것 */
  overflow: visible;
  padding-bottom: calc(var(--px)*63); /* 그린 면 아래로 내려오는 엠블럼 범프를 섹션 안에 포함 */
}

.sub-hero_iner {
  background-color: #009e5a;
}

.sub-hero__head {
  width: calc(var(--px)*1241);
  padding-top: calc(var(--px)*223);
  padding-bottom: calc(var(--px)*114);
  gap: calc(var(--px)*2);
}

.sub-hero__emblem {
  inset-inline: 0;
  bottom: calc(var(--px)*-8); /* 자산 날개 흰띠 7.75px — 섹션 하단과 맞물림 */
}

.sub-hero__logo {
  bottom: calc(var(--px)*-51);
}

/* IMG:AUTO sub-hero */
/* 섹션 HTML 파생 (tools/img-size-to-css.js · unit=--px) — 재생성 대상, 직접 수정 금지 */
/* 예외: 값을 고치고 뒤에 OVR 주석을 붙이면 재생성이 보존한다 */
.sub-hero__bump {
    width: calc(var(--px)*652);
    aspect-ratio: 652 / 88;
}

.sub-hero__logo {
    width: calc(var(--px)*125);
    aspect-ratio: 125 / 125;
}
/* /IMG:AUTO sub-hero END */

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

.sub-hero__title {
    font-family: var(--font-poppins);
    font-size: var(--displayL);
    letter-spacing: -0.0249em; /* OVR */
}

.sub-hero__desc {
    font-family: var(--font-pretendard);
    font-size: var(--subheadL);
    letter-spacing: -0.04em;
    font-weight: 700;
}
/* /FONT:AUTO sub-hero END */

@media (max-width:599px) {
  .sub-hero {
    padding-bottom: 6.4vw;
  }

  .sub-hero__head {
    width: 89.3333vw;
    padding-top: 21.3333vw;
    padding-bottom: 12.8vw;
    gap: 0.5333vw;
    align-items: center;
  }

  .sub-hero__title {
    font-size: 13.8667vw; /* 52px — 토큰 --displayL(63px)이면 최장 COMMUNITY 395.7px 로 head 335px 을 넘친다 */
  }

  .sub-hero__bump {
    width: 70vw;
  }

  .sub-hero__logo {
    width: 13.3333vw;
    bottom: -5.3333vw;
  }

  .sub-hero__emblem {
    bottom: -0.8533vw;
  }
}

/* /merge-build:sub-hero */
/* merge-build:tab-nav */
/* tab-nav — 모바일: 탭 7개를 가로 스크롤 한 줄로 접는 후보 */
.tab-nav {
  --tab-nav-lift: 0px; /* 페이지가 .tab-nav 에 padding-top 을 주면 같은 값을 넣어 sticky 를 그만큼 끌어올린다 */
  position: sticky; /* PSD 주석: 서브탭 상단 고정 */
  top: calc(var(--px)*12 - var(--tab-nav-lift)); /* 고정 시 헤더와 12 간격 */
  z-index: 11; /* 뒤 섹션의 .front{z-index:10} 이 root 스택에서 경쟁 — 고정 중 탭바가 그 위여야 함 */
}

.tab-nav__bar {
  width: calc(var(--px)*1598);
  border: 2px solid #eaf1ee;
  border-radius: calc(var(--px)*40);
  background-color: rgb(255 255 255 / 0.72);
  -webkit-backdrop-filter: blur(calc(var(--px)*20));
  backdrop-filter: blur(calc(var(--px)*20));
}

.tab-nav__link {
  display: block;
  padding: calc(var(--px)*28) calc(var(--px)*39);
  transition: color .25s ease-out;
}

@media (hover: hover) {
  .tab-nav__link:hover {
    color: var(--primary);
  }
}

/* FONT:AUTO tab-nav */
/* spec.json 파생 (tools/spec-font-to-css.js · unit=--px) — 재생성 대상, 직접 수정 금지 */
/* 예외: line-height · letter-spacing 는 값을 고치고 뒤에 OVR 주석을 붙이면 재생성이 보존한다 */
.tab-nav {
    font-family: var(--font-pretendard);
    font-size: var(--bodyXL);
    font-weight: 600;
    letter-spacing: -0.04em;
    line-height: 1.2;
}

.tab-nav__link.tab-nav__link--active {
    color: #009e5a;
}

.tab-nav__link {
    color: #101111;
}
/* /FONT:AUTO tab-nav END */

/* INK:AUTO tab-nav */
.tab-nav__link.tab-nav__link--active { margin-top: calc(var(--px) * -2.3); /* margin-bottom: calc(var(--px) * 6.51); */ } /* base 0,0 */
.tab-nav__link { margin-top: calc(var(--px) * -2.3); /* margin-bottom: calc(var(--px) * 6.51); */ } /* base 0,0 */
/* /INK:AUTO tab-nav END */

@media (max-width:599px) {
  .tab-nav {
    top: calc(3.2vw - var(--tab-nav-lift));
  }

  .tab-nav__bar {
    position: relative;
    width: 91.4667vw;
    border-radius: 50vw;
    overflow: hidden;
    -webkit-backdrop-filter: blur(3.2vw);
    backdrop-filter: blur(3.2vw);
  }

  .tab-nav__bar::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    width: 8.5333vw;
    background: linear-gradient(to left, #ffffff, transparent);
    pointer-events: none;
    opacity: 0;
    transition: opacity .2s;
  }

  .tab-nav__bar.is-scrollable:not(.is-scroll-end)::after {
    opacity: 1;
  }

  .tab-nav__list {
    flex-wrap: nowrap;
    overflow-x: auto;
    justify-content: center;
    justify-content: safe center;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  .tab-nav__list::-webkit-scrollbar {
    width: 0;
    height: 0;
  }

  .tab-nav__item {
    flex-shrink: 0;
  }

  .tab-nav__link {
    padding: 4.2667vw 3.2vw;
    white-space: nowrap;
  }
}

/* /merge-build:tab-nav */