@charset "UTF-8";

/* merge-build.js 산출물 — 납품 시 css/sections/*.css 전량이 이 아래로 합쳐진다. 손으로 쓰지 않는다(CLAUDE.md 원칙 14). */
/* merge-build:con01 */
/* con01 — 모바일: cards 4열→2열 wrap(또는 1열), 워드마크 폰트 축소 */
.con01 {
  background: #fff;
}

.con01__topline {
  top: 0;
  left: 0;
  right: 0;
  padding-top: calc(var(--px)*11);
  background: linear-gradient(90deg, var(--primary) 0%, #ebff94 50%, var(--primary) 100%);
}

/* 네이비 면 + 세로선 5줄(x=230 기준 주기 360.25) */
.con01__band {
  top: calc(var(--px)*619);
  left: 0;
  right: 0;
  bottom: 0;
  background:
    repeating-linear-gradient(90deg, #0d1d33 0 calc(var(--px)*1), transparent calc(var(--px)*1) calc(var(--px)*360)) calc(var(--px)*232) 0 / calc(var(--px)*1441) 100% no-repeat,
    var(--tertiary);
}

.con01_iner {
  padding-top: calc(var(--px)*116);
  padding-bottom: calc(var(--px)*112);
}

.con01__head {
  gap: calc(var(--px)*26);
}

.con01__wordmark {
  text-transform: uppercase;
  white-space: nowrap;
  margin-bottom: calc(var(--px)*21);
  pointer-events: none; /* 겹친 두 겹 글자가 서로를 가림 판정하지 않게 */
}

.con01__wordmark-shadow {
  mix-blend-mode: multiply;
  -webkit-text-fill-color: transparent;
  background: radial-gradient(circle at calc(var(--px)*1) calc(var(--px)*5), #c4c8c5 calc(var(--px)*1), transparent calc(var(--px)*1.4)) 0 0 / calc(var(--px)*6) calc(var(--px)*6), #f2f6f3;
  -webkit-background-clip: text;
  background-clip: text;
}

.con01__cards {
  width: calc(var(--px)*1439);
  padding-right: calc(var(--px)*1);
  margin-top: calc(var(--px)*60);
}

.con01__card-photo {
  position: relative;
  clip-path: inset(0 round calc(var(--px)*23));
  transition: clip-path .4s ease-out;
}

.con01__card-photo::before,
.con01__card-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--primary);
  opacity: 0;
  transition: opacity .4s ease-out;
  pointer-events: none;
}

.con01__card-photo::before {
  mix-blend-mode: screen;
}

.con01__card:hover .con01__card-photo {
  clip-path: inset(0 0 calc(var(--px)*158) 0 round calc(var(--px)*23));
}

.con01__card:hover .con01__card-photo::before {
  opacity: 1;
}

.con01__card:hover .con01__card-photo::after {
  opacity: 0.2;
}

.con01__card-caption {
  left: calc(var(--px)*55);
  top: calc(var(--px)*276);
  transition: top .4s ease-out, color .4s ease-out;
}

.con01__card:hover .con01__card-caption {
  top: calc(var(--px)*82);
  color: #111;
}

.con01__card-num {
  gap: calc(var(--px)*8);
  margin-left: calc(var(--px)*3);
}

.con01__card-bar {
  width: calc(var(--px)*4);
  padding-top: calc(var(--px)*12);
  background: var(--primary);
  transition: background-color .4s ease-out;
}

.con01__card:hover .con01__card-bar {
  background: #111;
}

.con01__card-title {
  margin-top: calc(var(--px)*20);
}

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

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

.con01__head {
    text-align: center;
}

.con01__wordmark {
    font-size: var(--displayXL);
    font-weight: 700;
    line-height: 1.2;  /* OVR psd:1.47 */
}

.con01__wordmark-text {
    letter-spacing: -0.03em;
    color: var(--primary);
}

.con01__wordmark-shadow {
    letter-spacing: 0.0361em;  /* OVR psd:0.05em */
    color: #f2f6f3;
}

.con01__headline {
    font-size: var(--titleM);
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.22;
    color: #111111;
}

.con01__desc {
    font-size: var(--headS);
    font-weight: 400;
    letter-spacing: -0.03em;
    line-height: 1.33;
    color: #111111;
}

.con01__cards {
    color: #ffffff;
}

.con01__card-num {
    font-size: var(--bodyXS);
    font-weight: 500;
    letter-spacing: -0.03em;
    line-height: 2.74;
}

.con01__card-title {
    font-size: var(--headM);
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.27;
}
/* /FONT:AUTO con01 END */

/* INK:AUTO con01 */
.con01__wordmark-text { margin-top: calc(var(--px) * -44); margin-bottom: calc(var(--px) * -42); } /* base 0,0 */
.con01__card-num { margin-top: calc(var(--px) * -14.18); margin-bottom: calc(var(--px) * -13.18); } /* base 0,0 */
.con01__headline { margin-top: calc(var(--px) * -7.45); margin-bottom: calc(var(--px) * -6.43); } /* base 0,0 */
.con01__card-title { margin-top: calc(var(--px) * 14.99); margin-bottom: calc(var(--px) * -4); } /* base 20,0 */
.con01__desc { margin-top: calc(var(--px) * -4.46); margin-bottom: calc(var(--px) * -4.46); } /* base 0,0 */
/* /INK:AUTO con01 END */

@media (max-width:599px) {
  .con01__topline { padding-top: 1.6vw; }
  .con01__band {
    top: auto;
    height: 102.2277vw; /* HEIGHT: 목업 승인 — 장식 absol 밴드, bottom 앵커+vw 높이(콘텐츠 흐름 아님) */
    background:
      repeating-linear-gradient(90deg, #0d1d33 0 1px, transparent 1px 45.0667vw) 4.8vw 0 / 90.4vw 100% no-repeat,
      var(--tertiary);
  }
  .con01_iner { padding-top: 12.8vw; padding-bottom: 10.6667vw; }
  .con01__head { gap: 4.2667vw; padding: 0 5.3333vw; }
  .con01__wordmark { margin-bottom: 3.2vw; }
  .con01__wordmark-shadow {
    background: radial-gradient(circle at 0.16vw 0.8vw, #c4c8c5 0.16vw, transparent 0.224vw) 0 0 / 0.96vw 0.96vw, #f2f6f3;
    -webkit-background-clip: text;
    background-clip: text;
  }
  .con01__wordmark-text { margin-top: -7.04vw; margin-bottom: -6.72vw; }
  .con01__headline { margin-top: -1.1478vw; margin-bottom: -0.9907vw; }
  .con01__desc { margin-top: -0.9062vw; margin-bottom: -0.9062vw; }
  .con01__card-num { gap: 1.6vw; margin-left: 0.5333vw; margin-top: -3.5113vw; margin-bottom: -3.2637vw; }
  .con01__card-bar { width: 0.5333vw; padding-top: 2.1333vw; }
  .con01__card-title { font-size: var(--headS); margin-top: 1.0667vw; margin-bottom: -0.6564vw; }
  .con01__cards { width: 100%; padding: 0 5.3333vw; flex-wrap: wrap; gap: 3.2vw; margin-top: 8.5333vw; }
  .con01__card-photo { width: 43.0667vw; clip-path: inset(0 round 4.2667vw); }
  .con01__card:hover .con01__card-photo { clip-path: inset(0 0 19.5533vw 0 round 4.2667vw); }
  .con01__card-caption { left: 6.8065vw; top: 31.2vw; }
  .con01__card:hover .con01__card-caption { top: 10.1479vw; }
}

/* /merge-build:con01 */
/* merge-build:con02 */
/* con02 — 핵심기술 슬라이드 */
.con02_iner {
  padding: calc(var(--px)*80) 0 calc(var(--px)*115);
}

.con02__title {
  margin-top: calc(var(--px)*39);
}

.con02__desc {
  margin-top: calc(var(--px)*28);
}

.con02__stage {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  margin-top: calc(var(--px)*62);
}

.con02__swiper,
.con02__ui {
  grid-area: 1 / 1;
}

.con02__stage .con02__swiper {
  margin: 0;
  min-width: 0;
}

.con02__ui {
  justify-self: center;
  width: calc(var(--px)*907);
  pointer-events: none;
  z-index: 2; /* swiper 가 .swiper{z-index:1} 로 스택 컨텍스트를 만듦 */
}

.con02__swiper .con02__slide {
  display: block;
  width: calc(var(--px)*907);
}

.con02__card {
  justify-content: flex-end;
  padding: calc(var(--px)*8) 0 calc(var(--px)*7);
  border-radius: calc(var(--px)*23);
  transition: background-color .4s;
}

.con02__slide.swiper-slide-active .con02__card {
  background-color: #fff;
}

/* 정렬 전환(flex-start↔end)은 순간이동이라 사진 위치를 translate 로 옮겨 슬라이드 속도에 맞춰 흐르게 */
.con02__photo {
  overflow: hidden;
  border-radius: calc(var(--px)*23);
  transition: translate .6s ease;
}

.con02__slide.swiper-slide-active .con02__photo {
  translate: calc(var(--px)*-7) 0;
}

.con02__slide.swiper-slide-next .con02__photo {
  translate: calc(var(--px)*-108) 0;
}

.con02__photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: #194368;
  opacity: .64;
  pointer-events: none;
  transition: opacity .4s;
}

.con02__slide.swiper-slide-active .con02__photo::after {
  opacity: 0;
}

.con02__caption {
  left: calc(var(--px)*83);
  bottom: calc(var(--px)*71);
}

.con02__caption-ko {
  margin-top: calc(var(--px)*16);
}

.con02__more {
  right: calc(var(--px)*51);
  bottom: calc(var(--px)*45);
  padding: calc(var(--px)*40.5) calc(var(--px)*19.5);
  border-radius: calc(var(--px)*26);
  background-color: var(--primary);
  transition: background-color .25s ease-out;
}

.con02__pager {
  top: calc(var(--px)*71);
  left: calc(var(--px)*34);
  gap: calc(var(--px)*28.3);
  pointer-events: auto;
}

.con02__page {
  display: flex;
  align-items: center;
  gap: calc(var(--px)*8);
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
  transition: color .25s ease-out;
}

.con02__page::before {
  content: "";
  width: calc(var(--px)*12);
  height: 4px;
  background-color: transparent;
  transition: background-color .25s ease-out;
}

.con02__page.is-active::before {
  background-color: var(--primary);
}

.con02__page.is-active {
  color: #111111;
}

.con02__arrows {
  bottom: calc(var(--px)*46);
  left: calc(var(--px)*43);
  gap: calc(var(--px)*9);
  pointer-events: auto;
}

.con02__arrow {
  width: calc(var(--px)*25);
  aspect-ratio: 1;
  border: 0;
  border-radius: 50%;
  background-color: var(--tertiary);
  cursor: pointer;
  transition: background-color .3s ease-out;
}

.con02__arrow-icon {
  transition: translate .3s ease-out;
}

.con02__photo > img {
  transition: transform .6s ease-out;
}

.con02__more .con02__more-icon {
  transition: transform .3s ease-out;
}

@media (hover: hover) and (min-width: 600px) {
  .con02__card:hover .con02__photo > img {
    transform: scale(1.05);
  }

  .con02__card:focus-visible .con02__more,
  .con02__card:hover .con02__more {
    background-color: color-mix(in srgb, var(--primary) 75%, white);
  }

  .con02__card:focus-visible .con02__more-icon,
  .con02__card:hover .con02__more-icon {
    transform: translateX(30%);
  }

  .con02__arrow:hover {
    background-color: color-mix(in srgb, var(--tertiary) 65%, var(--primary));
  }

  .con02__arrow:hover .con02__arrow-icon--prev {
    translate: -12% 0;
  }

  .con02__arrow:hover .con02__arrow-icon--next {
    translate: 12% 0;
  }

  .con02__page:not(.is-active):hover {
    color: #111111;
  }

  .con02__page:not(.is-active):hover::before {
    background-color: color-mix(in srgb, var(--primary) 40%, transparent);
  }
}

.con02__arrow:focus-visible {
  background-color: color-mix(in srgb, var(--tertiary) 65%, var(--primary));
}

@media (prefers-reduced-motion: reduce) {
  .con02__photo > img,
  .con02__more,
  .con02__more .con02__more-icon,
  .con02__arrow,
  .con02__page,
  .con02__page::before {
    transition: none;
  }
}

/* IMG:AUTO con02 */
/* 섹션 HTML 파생 (tools/img-size-to-css.js · unit=--px) — 재생성 대상, 직접 수정 금지 */
/* 예외: 값을 고치고 뒤에 OVR 주석을 붙이면 재생성이 보존한다 */
.con02__photo {
    width: calc(var(--px)*799);
    aspect-ratio: 799 / 497;
}

.con02__more-icon,
.con02__arrow-icon.con02__arrow-icon--next {
    width: calc(var(--px)*13);
    aspect-ratio: 13 / 12;
}

.con02__photo.con02__photo--feed {
    width: calc(var(--px)*799);
    aspect-ratio: 799 / 498;
}

.con02__arrow-icon.con02__arrow-icon--prev {
    width: calc(var(--px)*13);
    aspect-ratio: 13 / 13;
}
/* /IMG:AUTO con02 END */

/* FONT:AUTO con02 */
/* spec.json 파생 (tools/spec-font-to-css.js · unit=--px) — 재생성 대상, 직접 수정 금지 */
/* 예외: line-height · letter-spacing 는 값을 고치고 뒤에 OVR 주석을 붙이면 재생성이 보존한다 */
.con02 {
    font-family: var(--font-pretendard);
}

.con02__head {
    text-align: center;
}

.con02__eyebrow {
    font-size: var(--bodyL);
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.5;  /* OVR psd:1.2 */
    color: var(--primary);
}

.con02__title {
    font-size: var(--titleM);
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.22;
    color: #ffffff;
}

.con02__desc {
    font-size: var(--bodyXL);
    font-weight: 400;
    letter-spacing: -0.03em;
    line-height: 1.3;
    color: #ffffff;
}

.con02__swiper {
    color: #ffffff;
}

.con02__caption-en,
.con02__caption-en.con02__caption-en--tail {
    font-size: var(--bodyXL);
    font-weight: 500;
    letter-spacing: -0.03em;
    line-height: 1.4;  /* OVR psd:2.01 */
}

.con02__caption-ko.con02__caption-ko--lead,
.con02__caption-ko {
    font-size: var(--headL);
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.09;
}

.con02__pager {
    font-size: var(--bodyXS);
    font-weight: 500;
    letter-spacing: -0.03em;
    line-height: 2.95;  /* OVR psd:2.74 */
    color: #c9ccc9;
}
/* /FONT:AUTO con02 END */

/* INK:AUTO con02 */
.con02__page.con02__page--04 { margin-top: calc(var(--px) * -15.65); margin-bottom: calc(var(--px) * -15.65); } /* base 0,0 */
.con02__page { margin-top: calc(var(--px) * -15.65); margin-bottom: calc(var(--px) * -15.65); } /* base 0,0 */
.con02__page.con02__page--03 { margin-top: calc(var(--px) * -15.65); margin-bottom: calc(var(--px) * -14.65); } /* base 0,0 */
.con02__title { margin-top: calc(var(--px) * 31.55); margin-bottom: calc(var(--px) * -7.44); } /* base 39,0 */
.con02__eyebrow { margin-top: calc(var(--px) * -7); margin-bottom: calc(var(--px) * -6); } /* base 0,0 */
.con02__caption-en { margin-top: calc(var(--px) * -6); margin-bottom: calc(var(--px) * -6); } /* base 0,0 */
.con02__caption-en.con02__caption-en--tail { margin-top: calc(var(--px) * -6); margin-bottom: calc(var(--px) * -2); } /* base 0,0 */
.con02__desc { margin-top: calc(var(--px) * 24); margin-bottom: calc(var(--px) * -4); } /* base 28,0 */
.con02__caption-ko { margin-top: calc(var(--px) * 12.65); margin-bottom: calc(var(--px) * -2.34); } /* base 16,0 */
.con02__caption-ko.con02__caption-ko--lead { margin-top: calc(var(--px) * 13.65); margin-bottom: calc(var(--px) * -2.34); } /* base 16,0 */
/* /INK:AUTO con02 END */

@media (max-width: 599px) {
  .con02_iner {
    padding: 12.8vw 0 17.0667vw;
  }

  .con02__head {
    padding: 0 5.3333vw;
  }

  .con02__eyebrow {
    margin-top: 0;
    margin-bottom: 0;
  }

  .con02__title {
    margin-top: 5.3333vw;
    margin-bottom: 0;
  }

  .con02__desc {
    margin-top: 4.2667vw;
    margin-bottom: 0;
  }

  .con02__stage {
    margin-top: 10.6667vw;
  }

  .con02__ui {
    grid-area: 2 / 1;
    justify-self: stretch;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: auto;
    margin-top: 4.2667vw;
    padding: 0 8.5333vw;
  }

  .con02__swiper .con02__slide {
    width: 84vw;
  }

  .con02__card {
    padding: 1.0667vw;
    border-radius: 4.2667vw;
  }

  .con02__slide.swiper-slide-active .con02__card {
    padding-right: 1.0667vw;
  }

  .con02__photo,
  .con02__slide.swiper-slide-active .con02__photo,
  .con02__slide.swiper-slide-next .con02__photo {
    translate: none;
  }

  .con02__photo {
    width: 81.8667vw;
    border-radius: 3.2vw;
  }

  .con02__photo.con02__photo--feed {
    width: 81.8667vw;
  }

  .con02__caption {
    left: 4.2667vw;
    bottom: 4.2667vw;
  }

  .con02__caption-en,
  .con02__caption-en.con02__caption-en--tail {
    margin-top: 0;
    margin-bottom: 0;
  }

  .con02__caption-ko,
  .con02__caption-ko.con02__caption-ko--lead {
    margin-top: 1.0667vw;
    margin-bottom: 0;
  }

  .con02__more {
    right: 3.2vw;
    bottom: 3.2vw;
    padding: 5.3333vw 2.1333vw;
    border-radius: 50vw;
  }

  .con02__more-icon,
  .con02__arrow-icon.con02__arrow-icon--next,
  .con02__arrow-icon.con02__arrow-icon--prev {
    width: 4.2667vw;
  }

  .con02__pager {
    position: relative;
    top: auto;
    left: auto;
    flex-direction: row;
    gap: 4.2667vw;
  }

  .con02__page,
  .con02__page.con02__page--03,
  .con02__page.con02__page--04 {
    margin-top: 0;
    margin-bottom: 0;
  }

  .con02__page {
    gap: 1.6vw;
  }

  .con02__page::before {
    width: 2.1333vw;
  }

  .con02__page.is-active {
    color: #ffffff;
  }

  .con02__arrows {
    position: relative;
    bottom: auto;
    left: auto;
    flex-direction: row;
    gap: 2.1333vw;
  }

  .con02__arrow {
    width: 10.6667vw;
  }
}

/* /merge-build:con02 */
/* merge-build:con03 */
/* con03 — 외부 사일로 배너. 모바일: 카드 안 콘텐츠를 카드 하단 column 으로 접는다 */
.con03_iner {
  padding: calc(var(--px)*106) 0 calc(var(--px)*46);
}

.con03__card {
  border-radius: calc(var(--px)*80);
  overflow: hidden;
}

.con03__content {
  top: calc(var(--px)*194);
  left: calc(var(--px)*1002);
}

.con03__label {
  text-transform: uppercase;
}

.con03__title {
  margin-top: calc(var(--px)*44);
}

.con03__lead {
  margin-top: calc(var(--px)*35);
}

.con03__desc {
  margin-top: calc(var(--px)*24);
}

.con03__actions {
  margin-top: calc(var(--px)*49);
  gap: calc(var(--px)*25);
}

.con03__btn {
  gap: calc(var(--px)*11.5);
  min-height: calc(var(--px)*48);
  padding: 0 calc(var(--px)*27) 0 calc(var(--px)*15.5);
  border: 1px solid #fff;
  border-radius: 50vw;
  transition: border-color .3s ease-out, background-color .3s ease-out;
}

.con03__btn-icon {
  width: calc(var(--px)*28);
  aspect-ratio: 1;
  border-radius: 50%;
  background-color: #fff;
  transition: background-color .3s ease-out;
}

.con03__btn .con03__btn-arrow {
  transition: opacity .3s ease-out;
}

.con03__btn-arrow--hover {
  opacity: 0;
}

.con03__btn-label {
  transition: color .3s ease-out;
}

@media (hover: hover) {
  .con03__btn:hover,
  .con03__btn:focus-visible {
    border-color: var(--primary);
    background-color: var(--primary);
  }

  .con03__btn:hover .con03__btn-icon,
  .con03__btn:focus-visible .con03__btn-icon {
    background-color: var(--tertiary);
  }

  .con03__btn:hover .con03__btn-arrow:not(.con03__btn-arrow--hover),
  .con03__btn:focus-visible .con03__btn-arrow:not(.con03__btn-arrow--hover) {
    opacity: 0;
  }

  .con03__btn:hover .con03__btn-label,
  .con03__btn:focus-visible .con03__btn-label {
    color: #111;
  }

  .con03__btn:hover .con03__btn-arrow--hover,
  .con03__btn:focus-visible .con03__btn-arrow--hover {
    opacity: 1;
  }
}

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

.con03__btn-arrow,
.con03__btn-arrow.con03__btn-arrow--hover {
    width: calc(var(--px)*13);
    aspect-ratio: 13 / 12;
}
/* /IMG:AUTO con03 END */

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

.con03__label {
    font-size: var(--bodyL);
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.2;  /* OVR */
    color: var(--primary);
}

.con03__title {
    font-size: var(--titleM);
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.22;
    color: #ffffff;
}

.con03__lead {
    font-size: var(--headS);
    font-weight: 600;
    letter-spacing: -0.03em;
    line-height: 1.33;
    color: #ffffff;
}

.con03__desc {
    font-size: var(--bodyL);
    font-weight: 400;
    letter-spacing: -0.03em;
    line-height: 1.33;
    color: #c9ccc9;
}

.con03__btn-label {
    font-size: var(--subheadS);
    font-weight: 400;
    letter-spacing: -0.03em;
    line-height: 1.67;
    color: #ffffff;
}
/* /FONT:AUTO con03 END */

/* INK:AUTO con03 */
.con03__lead { margin-top: calc(var(--px) * 30.54); margin-bottom: calc(var(--px) * -4.45); } /* base 35,0 */
.con03__title { margin-top: calc(var(--px) * 36.55); margin-bottom: calc(var(--px) * -1.43); } /* base 44,0 */
.con03__label { margin-top: calc(var(--px) * -4.3); margin-bottom: calc(var(--px) * -3.29); } /* base 0,0 */
.con03__desc { margin-top: calc(var(--px) * 20.53); margin-bottom: calc(var(--px) * -3.46); } /* base 24,0 */
/* /INK:AUTO con03 END */

@media (max-width:599px) {
  .con03_iner {
    padding: 12.8vw 4.2667vw 6.4vw;
  }

  .con03__card {
    width: 100%;
    border-radius: 6.4vw;
    background-color: var(--tertiary);
  }

  .con03__photo {
    width: 100%;
  }

  .con03__content {
    position: relative;
    top: auto;
    left: auto;
    align-items: center;
    padding: 6.4vw 5.3333vw 8.5333vw;
  }

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

  .con03__title {
    margin-top: 6.4vw;
    margin-bottom: 0;
  }

  .con03__lead {
    margin-top: 5.3333vw;
    margin-bottom: 0;
  }

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

  .con03__actions {
    margin-top: 8.5333vw;
    gap: 4.2667vw;
  }

  .con03__btn {
    gap: 2.1333vw;
    min-height: 12.8vw;
    padding: 0 4.2667vw 0 2.1333vw;
  }

  .con03__btn-icon {
    width: 6.4vw;
  }

  .con03__btn-arrow,
  .con03__btn-arrow.con03__btn-arrow--hover {
    width: 4vw;
  }
}

/* /merge-build:con03 */
/* merge-build:con04 */
/* con04 — 제품 게시판(최신 3건, 연동 대기). 모바일: 카드 3열→1열 */
.con04 {
  background-color: #fff;
}
.con04_iner {
  padding-top: calc(var(--px)*116);
  padding-bottom: calc(var(--px)*127);
}
.con04__head {
  gap: calc(var(--px)*20);
}
/* 게시판 글 전부를 스와이퍼로 롤링 — 슬라이드 폭·간격은 js/slide.js 가 소유 */
.con04__swiper {
  width: calc(var(--px)*1400);
  margin-top: calc(var(--px)*76);
}
.con04__link {
  display: block;
}
.con04__thumb {
  width: 100%;
  aspect-ratio: 455 / 283;
  border-radius: calc(var(--px)*23);
  background-color: #1c2232;
  overflow: hidden;
  transition: box-shadow .3s ease-out;
}
.con04__thumb img {
  transition: transform .4s ease-out;
}
.con04__name {
  margin-top: calc(var(--px)*18);
}
.con04__title {
  margin-top: calc(var(--px)*19);
}
.con04__desc {
  margin-top: calc(var(--px)*2);
}
.con04__more {
  width: calc(var(--px)*150);
  min-height: calc(var(--px)*48);
  margin-top: calc(var(--px)*75);
  padding-left: calc(var(--px)*17);
  gap: calc(var(--px)*13);
  border: 1px solid var(--primary);
  border-radius: 50vw;
  background-color: #c7f208;
  transition: background-color .25s ease-out;
}
.con04__more .con04__more-icon {
  transition: filter .25s ease-out;
}
.con04__more .con04__more-text {
  transition: color .25s ease-out;
}
.con04__link:focus-visible .con04__thumb {
  box-shadow: 0 calc(var(--px)*12) calc(var(--px)*24) rgb(0 0 0 / .18);
}
.con04__more:focus-visible {
  background-color: var(--tertiary);
}
.con04__more:focus-visible .con04__more-text {
  color: #fff;
}
.con04__more:focus-visible .con04__more-icon {
  filter: invert(1);
}
@media (hover: hover) {
  .con04__link:hover .con04__thumb {
    box-shadow: 0 calc(var(--px)*12) calc(var(--px)*24) rgb(0 0 0 / .18);
  }
  .con04__link:hover .con04__thumb img {
    transform: scale(1.06);
  }
  .con04__more:hover {
    background-color: var(--tertiary);
  }
  .con04__more:hover .con04__more-text {
    color: #fff;
  }
  .con04__more:hover .con04__more-icon {
    filter: invert(1);
  }
}

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

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

.con04__head {
    text-align: center;
}

.con04__eyebrow {
    font-size: var(--bodyL);
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.4;  /* OVR psd:1.2 */
    color: var(--primary);
}

.con04__title {
    font-size: var(--titleM);
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.22;
    color: #111111;
}

.con04__desc {
    font-size: var(--bodyXL);
    font-weight: 400;
    letter-spacing: -0.03em;
    line-height: 1.4;
    color: #111111;
}

.con04__list {
    font-size: var(--bodyXL);
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.64;
    text-align: center;
    color: #111111;
}

.con04__more-text {
    font-size: var(--subheadS);
    font-weight: 400;
    letter-spacing: -0.03em;
    line-height: 1.67;
    color: #111111;
}
/* /FONT:AUTO con04 END */

/* INK:AUTO con04 */
.con04__title { margin-top: calc(var(--px) * 11.55); margin-bottom: calc(var(--px) * -7.44); } /* base 19,0 */
.con04__name { margin-top: calc(var(--px) * 10.6); margin-bottom: calc(var(--px) * -7.4); } /* base 18,0 */
.con04__eyebrow { margin-top: calc(var(--px) * -6.1); margin-bottom: calc(var(--px) * -5.09); } /* base 0,0 */
.con04__desc { margin-top: calc(var(--px) * -3); margin-bottom: calc(var(--px) * -5); } /* base 2,0 */
/* /INK:AUTO con04 END */

@media (max-width:599px) {
  .con04_iner {
    padding: 17.0667vw 5.3333vw;
  }
  .con04__head {
    gap: 3.2vw;
  }
  .con04__swiper {
    width: 100%;
    margin-top: 12.8vw;
  }
  .con04__thumb {
    border-radius: 4.2667vw;
  }
  .con04__name {
    margin-top: 3.2vw;
  }
  .con04__more {
    width: auto;
    min-height: 10.6667vw;
    margin-top: 10.6667vw;
    padding-left: 3.2vw;
    padding-right: 3.2vw;
    gap: 2.1333vw;
  }
  .con04__more-icon {
    width: 5.3333vw;
  }
}

/* /merge-build:con04 */
/* merge-build:con05 */
/* con05 — 시공사례 게시판(최신 3건, 연동 대기). 모바일: 카드 3열→1열 */
.con05 {
  background-color: var(--light-1);
}
.con05_iner {
  padding-top: calc(var(--px)*138);
  padding-bottom: calc(var(--px)*125);
}
.con05__head {
  gap: calc(var(--px)*39);
}
/* 게시판 글 전부를 스와이퍼로 롤링 — 슬라이드 폭·간격은 js/slide.js 가 소유 */
.con05__swiper {
  width: calc(var(--px)*1563);
  margin-top: calc(var(--px)*58);
}
.con05__link {
  min-height: calc(var(--px)*422);
  padding: 0 calc(var(--px)*68) calc(var(--px)*66);
  border-radius: calc(var(--px)*23);
  background-color: #1c2232;
  overflow: hidden;
  transition: box-shadow .35s ease-out;
}
.con05__thumb {
  inset: 0;
  transition: transform .5s ease-out;
}
.con05__thumb::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, transparent 30%, rgba(0, 0, 0, 0.84));
}
.con05__mark {
  display: block;
  width: calc(var(--px)*4);
  min-height: calc(var(--px)*12);
  background-color: var(--primary);
}
.con05__name {
  margin-top: calc(var(--px)*20);
}
.con05__desc {
  margin-top: calc(var(--px)*8);
}
.con05__more {
  margin-top: calc(var(--px)*38);
  min-height: calc(var(--px)*52);
  padding: 0 calc(var(--px)*21) 0 calc(var(--px)*17);
  gap: calc(var(--px)*11);
  border: 1px solid var(--primary);
  border-radius: 50vw;
  background-color: #c7f208;
  transition: background-color .3s ease-out;
}
.con05__more .con05__more-text {
  transition: color .3s ease-out;
}
.con05__more-icon img {
  transition: filter .3s ease-out;
}
@media (hover: hover) {
  .con05__link:hover {
    box-shadow: 0 calc(var(--px)*20) calc(var(--px)*40) rgb(0 0 0 / .16);
  }
  .con05__link:hover .con05__thumb {
    transform: scale(1.05);
  }
  .con05__more:hover {
    background-color: var(--tertiary);
  }
  .con05__more:hover .con05__more-text {
    color: #fff;
  }
  .con05__more:hover .con05__more-icon img {
    filter: invert(1);
  }
}
.con05__more:focus-visible {
  background-color: var(--tertiary);
}
.con05__more:focus-visible .con05__more-text {
  color: #fff;
}
.con05__more:focus-visible .con05__more-icon img {
  filter: invert(1);
}
@media (prefers-reduced-motion: reduce) {
  .con05__link,
  .con05__thumb,
  .con05__more,
  .con05__more .con05__more-text,
  .con05__more-icon img {
    transition: none;
  }
}

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

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

.con05__head {
    font-weight: 700;
    text-align: center;
}

.con05__eyebrow {
    font-size: var(--bodyL);
    letter-spacing: -0.03em;
    line-height: 1.2;  /* OVR */
    color: var(--primary);
}

.con05__title {
    font-size: var(--titleM);
    letter-spacing: -0.03em;
    line-height: 1.22;
    color: #111111;
}

.con05__name {
    font-size: var(--headM);
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.27;
    color: #ffffff;
}

.con05__desc {
    font-size: var(--bodyL);
    font-weight: 500;
    letter-spacing: -0.03em;
    line-height: 2.13;
    color: #c9ccc9;
}

.con05__more-text {
    font-size: var(--subheadS);
    font-weight: 400;
    letter-spacing: -0.03em;
    line-height: 1.67;
    color: #111111;
}
/* /FONT:AUTO con05 END */

/* INK:AUTO con05 */
.con05__desc { margin-top: calc(var(--px) * -2.67); margin-bottom: calc(var(--px) * -10.66); } /* base 8,0 */
.con05__title { margin-top: calc(var(--px) * -7.45); margin-bottom: calc(var(--px) * -6.44); } /* base 0,0 */
.con05__name { margin-top: calc(var(--px) * 14.99); margin-bottom: calc(var(--px) * -4.01); } /* base 20,0 */
.con05__eyebrow { margin-top: calc(var(--px) * -4.3); margin-bottom: calc(var(--px) * -3.29); } /* base 0,0 */
/* /INK:AUTO con05 END */

@media (max-width:599px) {
  .con05_iner { padding-top: 17.0667vw; padding-bottom: 17.0667vw; }
  .con05__head { gap: 4.2667vw; }
  .con05__swiper { width: 89.3333vw; margin-top: 8.5333vw; }
  .con05__link { min-height: 64vw; padding: 0 6.4vw 6.4vw; border-radius: 4.2667vw; }
  .con05__mark { width: 1.0667vw; min-height: 3.2vw; }
  .con05__eyebrow, .con05__title { margin-top: 0; margin-bottom: 0; }
  .con05__name { margin-top: 3.2vw; margin-bottom: 0; }
  .con05__desc { margin-top: 1.0667vw; margin-bottom: 0; }
  .con05__more { margin-top: 6.4vw; min-height: 12.8vw; padding: 0 5.3333vw 0 4.2667vw; gap: 2.1333vw; }
  .con05__more-icon { width: 6.4vw; }
}

/* /merge-build:con05 */
/* merge-build:con06 */
/* con06 — R&D CENTER 소개 + 4분할 카드 (PC 전용) */
.con06 {
  background-color: #fff;
}
.con06_iner {
  padding: calc(var(--px)*217) calc(var(--px)*174) calc(var(--px)*245) calc(var(--px)*232);
}
.con06__intro {
  padding-top: calc(var(--px)*15);
}
.con06__title {
  margin-top: calc(var(--px)*44);
}
.con06__desc {
  margin-top: calc(var(--px)*34);
}
.con06__more {
  width: calc(var(--px)*150);
  min-height: calc(var(--px)*48);
  margin-top: calc(var(--px)*59);
  margin-left: calc(var(--px)*2);
  padding-left: calc(var(--px)*17);
  gap: calc(var(--px)*13);
  border: 1px solid var(--primary);
  border-radius: 50vw;
  background-color: #c7f208;
  transition: background-color .3s ease-out;
}
.con06__more .con06__more-text {
  transition: color .3s ease-out;
}
.con06__more .con06__more-icon {
  transition: filter .3s ease-out;
}
@media (hover: hover) {
  .con06__more:hover,
  .con06__more:focus-visible {
    background-color: var(--tertiary);
  }
  .con06__more:hover .con06__more-text,
  .con06__more:focus-visible .con06__more-text {
    color: #fff;
  }
  .con06__more:hover .con06__more-icon,
  .con06__more:focus-visible .con06__more-icon {
    filter: invert(1);
  }
}
.con06__more-icon {
  width: calc(var(--px)*25);
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  background-color: var(--tertiary);
}
/* 활성 카드가 안쪽 모서리를 축으로 시안 확장 크기(432×232)까지 커진다 — 아래로 커지는 줄 몫 32 를 미리 비워 섹션 높이 유지 */
.con06__cards {
  display: grid;
  grid-template-columns: calc(var(--px)*432) calc(var(--px)*373);
  align-items: start;
  gap: calc(var(--px)*2);
  padding-bottom: calc(var(--px)*32);
}
.con06__card.is-active {
  z-index: 2; /* 커진 카드가 같은 그리드의 이웃 카드 위로 올라와야 함 — DOM 순서로는 앞 카드가 깔림 */
}
.con06__card--biosecurity,
.con06__card--engineering {
  justify-self: end;
}
.con06__card-media {
  position: relative;
  overflow: hidden;
  transition: transform .35s ease-out;
}
.con06__card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* 기본 = 검정 61% · 활성 = 라임 screen 으로 전환 */
.con06__card-media::before,
.con06__card-media::after {
  content: "";
  position: absolute;
  inset: 0;
  transition: opacity .35s ease-out;
}
.con06__card-media::before {
  background-color: rgb(0 0 0 / .61);
}
.con06__card-media::after {
  background-color: #b6df00;
  mix-blend-mode: screen;
  opacity: 0;
}
.con06__card.is-active .con06__card-media {
  transform: scale(1.1582);
}
.con06__card.is-active .con06__card-media::after {
  opacity: 1;
}
.con06__card--biosecurity .con06__card-media {
  border-radius: calc(var(--px)*23) calc(var(--px)*23) 0 calc(var(--px)*23);
  clip-path: inset(0 round calc(var(--px)*23) calc(var(--px)*23) 0 calc(var(--px)*23)); /* overflow+radius 는 확대 중 모서리에 어두운 테두리가 낌 */
  transform-origin: 100% 100%;
}
.con06__card--smart .con06__card-media {
  border-radius: calc(var(--px)*23) calc(var(--px)*23) calc(var(--px)*23) 0;
  clip-path: inset(0 round calc(var(--px)*23) calc(var(--px)*23) calc(var(--px)*23) 0); /* overflow+radius 는 확대 중 모서리에 어두운 테두리가 낌 */
  transform-origin: 0 100%;
}
.con06__card--engineering .con06__card-media {
  border-radius: calc(var(--px)*23) 0 calc(var(--px)*23) calc(var(--px)*23);
  clip-path: inset(0 round calc(var(--px)*23) 0 calc(var(--px)*23) calc(var(--px)*23)); /* overflow+radius 는 확대 중 모서리에 어두운 테두리가 낌 */
  transform-origin: 100% 0;
}
.con06__card--innovation .con06__card-media {
  border-radius: 0 calc(var(--px)*23) calc(var(--px)*23) calc(var(--px)*23);
  clip-path: inset(0 round 0 calc(var(--px)*23) calc(var(--px)*23) calc(var(--px)*23)); /* overflow+radius 는 확대 중 모서리에 어두운 테두리가 낌 */
  transform-origin: 0 0;
}
.con06__card-text {
  left: calc(var(--px)*49);
  bottom: calc(var(--px)*34);
  gap: calc(var(--px)*8);
  transition: translate .35s ease-out;
}
/* 왼쪽 열은 왼쪽으로 커지므로 문구도 커진 왼변을 따라간다(시안 확장 카드 실측) */
.con06__card--biosecurity.is-active .con06__card-text,
.con06__card--engineering.is-active .con06__card-text {
  translate: calc(var(--px)*-55) 0;
}
/* FONT:AUTO 의 --lime 색(시안 활성 상태)을 이기려고 .con06 로 명시도를 올림 */
.con06 .con06__card .con06__card-label,
.con06 .con06__card .con06__card-title {
  color: #fff;
  transition: color .35s ease-out;
}
.con06 .con06__card.is-active .con06__card-label,
.con06 .con06__card.is-active .con06__card-title {
  color: #111;
}

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

.con06__card-media {
    width: calc(var(--px)*373);
    aspect-ratio: 373 / 200;
}
/* /IMG:AUTO con06 END */

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

.con06__eyebrow {
    font-size: var(--bodyL);
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.4;  /* OVR psd:1.2 */
    color: var(--primary);
}

.con06__title {
    font-size: var(--titleM);
    font-weight: 700;
    letter-spacing: -0.0335em;  /* OVR psd:-0.03em */
    line-height: 1.22;
    color: #111111;
}

.con06__desc {
    font-size: var(--bodyXL);
    font-weight: 400;
    letter-spacing: -0.03em;
    line-height: 1.3;
    color: #111111;
}

.con06__more-text {
    font-size: var(--subheadS);
    font-weight: 400;
    letter-spacing: -0.03em;
    line-height: 1.67;
    color: #111111;
}

.con06__card-label.con06__card-label--bio,
.con06__card-label.con06__card-label--smart,
.con06__card-label.con06__card-label--innov {
    font-size: var(--bodyS);
    font-weight: 500;
    letter-spacing: -0.03em;
    line-height: 2.39;
    color: #ffffff;
}

.con06__card-title {
    font-size: var(--subheadM);
    font-weight: 700;
    letter-spacing: -0.037em;  /* OVR psd:-0.03em */
    line-height: 1.38;
    color: #ffffff;
}

.con06__card-label.con06__card-label--lime {
    font-size: var(--bodyS);
    font-weight: 500;
    letter-spacing: -0.045em;  /* OVR psd:-0.03em */
    line-height: 1.4;  /* OVR psd:2.39 */
    color: #111111;
}

.con06__card-title.con06__card-title--lime {
    font-size: var(--subheadM);
    font-weight: 700;
    letter-spacing: -0.037em;  /* OVR psd:-0.03em */
    line-height: 1.38;
    color: #111111;
}

.con06__card-label {
    letter-spacing: -0.045em;  /* OVR */
    line-height: 1.4;  /* OVR */
}
/* /FONT:AUTO con06 END */

/* INK:AUTO con06 */
.con06__title { margin-top: calc(var(--px) * 36.55); margin-bottom: calc(var(--px) * -6.43); } /* base 44,0 */
.con06__eyebrow { margin-top: calc(var(--px) * -6.1); margin-bottom: calc(var(--px) * -5.09); } /* base 0,0 */
.con06__card-title.con06__card-title--lime { margin-top: calc(var(--px) * -5.06); margin-bottom: calc(var(--px) * -5.05); } /* base 0,0 */
.con06__card-title { margin-top: calc(var(--px) * -5.06); margin-bottom: calc(var(--px) * -5.05); } /* base 0,0 */
.con06__card-label.con06__card-label--innov { margin-top: calc(var(--px) * -4.55); margin-bottom: calc(var(--px) * -4.54); } /* base 0,0 */
.con06__desc { margin-top: calc(var(--px) * 30); margin-bottom: calc(var(--px) * -4); } /* base 34,0 */
.con06__card-label.con06__card-label--smart { margin-top: calc(var(--px) * -5.55); margin-bottom: calc(var(--px) * -1.54); } /* base 0,0 */
.con06__card-label.con06__card-label--bio { margin-top: calc(var(--px) * -4.55); margin-bottom: calc(var(--px) * -1.54); } /* base 0,0 */
.con06__card-label.con06__card-label--lime { margin-top: calc(var(--px) * -4.55); margin-bottom: calc(var(--px) * -1.54); } /* base 0,0 */
/* /INK:AUTO con06 END */

@media (max-width:599px) {
  .con06_iner {
    flex-direction: column;
    align-items: center;
    gap: 10.6667vw;
    padding: 17.0667vw 5.3333vw 17.0667vw 5.3333vw;
  }
  .con06__intro {
    align-items: center;
    padding-top: 0;
  }
  .con06__title {
    margin-top: 3.2vw;
    margin-bottom: 0;
  }
  .con06__desc {
    margin-top: 4.2667vw;
    margin-bottom: 0;
  }
  .con06__more {
    width: 40vw;
    min-height: 12.8vw;
    margin-top: 6.4vw;
    margin-left: 0;
    padding-left: 3.2vw;
    gap: 2.1333vw;
  }
  .con06__more-icon {
    width: 4.2667vw;
  }
  .con06__more-arrow {
    width: 2.1333vw;
  }
  .con06__cards {
    grid-template-columns: 89.3333vw;
    gap: 3.2vw;
  }
  .con06__cards {
    padding-bottom: 0;
  }
  .con06__card .con06__card-media {
    width: 89.3333vw;
    border-radius: 4.2667vw;
    clip-path: inset(0 round 4.2667vw);
  }
  .con06__card-text {
    left: 6.4vw;
    bottom: 5.3333vw;
    gap: 1.0667vw;
  }
}

/* /merge-build:con06 */
/* merge-build:con07 */
/* con07 — CONTACT US 배너 (PC 전용) */
.con07 {
  background-color: #111;
}
.con07_iner {
  padding: calc(var(--px)*207) 0 calc(var(--px)*159);
}
.con07__eyebrow {
  margin-top: calc(var(--px)*6);
}
.con07__title {
  margin-top: calc(var(--px)*42);
}
.con07__desc {
  margin-top: calc(var(--px)*30);
}
.con07__more {
  width: calc(var(--px)*150);
  min-height: calc(var(--px)*48);
  margin-top: calc(var(--px)*66);
  padding-left: calc(var(--px)*15);
  gap: calc(var(--px)*12);
  border: 1px solid var(--primary);
  border-radius: calc(var(--px)*24);
  background-color: var(--primary);
  transition: background-color .3s ease-out, border-color .3s ease-out;
}
@media (hover: hover) {
  .con07__more:hover {
    background-color: #fff;
    border-color: #fff;
  }
}
.con07__more:focus-visible {
  background-color: #fff;
  border-color: #fff;
}

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

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

.con07__eyebrow {
    font-size: var(--bodyL);
    font-weight: 700;
    letter-spacing: -0.0136em;  /* OVR psd:-0.03em */
    line-height: 1.4;  /* OVR psd:1.2 */
    text-align: center;
    color: var(--primary);
}

.con07__title {
    font-size: var(--titleM);
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.22;
    text-align: center;
    color: #ffffff;
}

.con07__desc {
    font-size: var(--bodyXL);
    font-weight: 400;
    letter-spacing: -0.03em;
    line-height: 1.3;
    text-align: center;
    color: #ffffff;
}

.con07__more-text {
    font-size: var(--subheadS);
    font-weight: 400;
    letter-spacing: -0.03em;
    line-height: 1.67;
    color: #111111;
}
/* /FONT:AUTO con07 END */

/* INK:AUTO con07 */
.con07__title { margin-top: calc(var(--px) * 34.55); margin-bottom: calc(var(--px) * -7.43); } /* base 42,0 */
.con07__eyebrow { margin-top: calc(var(--px) * -0.1); margin-bottom: calc(var(--px) * -5.09); } /* base 6,0 */
.con07__desc { margin-top: calc(var(--px) * 26); margin-bottom: calc(var(--px) * -4); } /* base 30,0 */
/* /INK:AUTO con07 END */

@media (max-width:599px) {
  .con07_iner {
    padding: 21.3333vw 4.2667vw 17.0667vw;
  }
  .con07__eyebrow {
    margin-top: 0;
    margin-bottom: 0;
  }
  .con07__title {
    margin-top: 4.2667vw;
    margin-bottom: 0;
  }
  .con07__desc {
    margin-top: 4.2667vw;
    margin-bottom: 0;
  }
  .con07__more {
    width: 40vw;
    min-height: 12.8vw;
    margin-top: 8.5333vw;
    padding-left: 3.2vw;
    gap: 2.1333vw;
    border-radius: 6.4vw;
  }
  .con07__more-icon {
    width: 6.4vw;
  }
}

/* /merge-build:con07 */
/* merge-build:hero */
/* hero — 배경 정지컷(오버레이 구워짐) + 하단 SCROLL 큐. 모바일: 큐 유지, 높이는 콘텐츠 min-height 로 */
.hero_iner {
  min-height: calc(var(--px)*838); /* bg_img 가 absolute 라 흐름 높이가 없어 시안 높이를 min-height 로 확보. 영상 교체 시 100vh 류로 재판정 */
  padding-bottom: calc(var(--px)*47);
}

.hero__scroll {
  gap: calc(var(--px)*19);
}

.hero__scroll-chevron {
  display: block;
  width: calc(var(--px)*24);
  aspect-ratio: 2/1;
  background: #fff;
  clip-path: polygon(0 0, 6% 0, 50% 82%, 94% 0, 100% 0, 50% 100%);
  animation: hero-scroll-bounce 1.6s ease-in-out infinite;
}

@keyframes hero-scroll-bounce {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(60%); }
}

@media (prefers-reduced-motion: reduce) {
  .hero__scroll-chevron { animation: none; }
}

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

/* INK:AUTO hero */
.hero__scroll-label { margin-top: calc(var(--px) * -6.95); margin-bottom: calc(var(--px) * -5.94); } /* base 0,0 */
/* /INK:AUTO hero END */


@media (max-width:599px) {
  .hero_iner {
    min-height: 133.3333vw;
    padding-bottom: 6.4vw;
  }

  .hero__scroll {
    gap: 3.2vw;
  }

  .hero__scroll-chevron {
    width: 4.2667vw;
  }
}

/* /merge-build:hero */