/* =============================================
   DAIM Research Landing Page
   .cursorrules / Figma 디자인 시스템 기준
   ============================================= */

/* --- Fonts --- */
@import url('https://fonts.googleapis.com/css2?family=Figtree:wght@300;400;600;700;800&display=swap');
@import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.min.css');

/* --- Design Tokens --- */
:root {
  --primary: #EC6232;
  --secondary: #5C6670;
  --bg: #000000;
  --text: #FFFFFF;
  --gray: #888888;
  --gradient: linear-gradient(90deg, #EC6232, #5C6670);
  --card-bg: rgba(92, 102, 112, 0.2);
  --border: rgba(255, 255, 255, 0.1);
  --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-slow: cubic-bezier(0, 0, 0.58, 1); /* Figma Slow: 끝에서 느리게 */

  /* Figma 141:1854 데브모드 기준 — 섹션·요소 간격 */
  /* 141:1893 Platform "01" y=1380, 히어로 비주얼 하단 1080 → 간격 300px. padding-top 사용 시 300px 정확 유지(마진 접힘 방지) */
  --con-padding-x: clamp(16px, 5.2vw, 100px);
  --con-content-width: 1720px;
  --con-section-gap: clamp(80px, 15.6vw, 300px);
  --con-platform-title-top: clamp(60px, 15.6vw, 300px); /* Figma 141:1893 — 비주얼 하단 1080 ~ Platform 1380 */
  --con-platform-title-bottom: clamp(30px, 3.1vw, 60px);
  --con-platform-diagram-left: 175px;
  --con-platform-diagram-width: 1370px;
  --con-platform-diagram-height: 550px;
  --con-platform-group01-top: 265px;
  --con-platform-group01-size: 300px 95px;
  --con-platform-group02-gap: 70px;
  --con-platform-group03-gap: 20px;
  --con-platform-card-height: 145px;
  --con-platform-card-inner-gap: 15px;
  /* Figma 141:1908 — 카드 내부 텍스트 위치 기준 상하 38px */
  --con-platform-card-padding-v: 38px;
  --con-platform-card-padding-h: 20px;
  --con-platform-testbed-box-padding: 25px;
  --con-platform-testbed-box-gap: 70px;
  --con-platform-testbed-box-height: 475px;
  --con-sol-inner-padding-top: 0;
  --con-sol-title-bottom: clamp(30px, 3.1vw, 60px);
  --con-sol-scroll-padding-x: clamp(20px, 5.2vw, 100px);
  /* Figma 141:1954 scroll — fills SOLID #111111, stroke 1px gradient, cornerRadius 20 */
  --con-sol-scroll-bg: #111111;
  --con-sol-scroll-radius: 20px;
  --con-sol-scroll-stroke-gradient: linear-gradient(180deg, #222222 0%, #EC6232 25%, #222222 50%, #EC6232 75%, #222222 100%);
  --con-sol-card-padding-y: clamp(60px, 7.8vw, 150px);
  /* Figma 141:1956/1965: 섹션 콘텐츠 ↔ 회색 구분선(border) 세로간격 = padding 150px */
  --con-sol-separator-spacing: clamp(40px, 7.8vw, 150px);
  --con-sol-card-gap: clamp(20px, 2.1vw, 40px);
  --con-sol-sticky-gap: clamp(40px, 4.2vw, 80px);
  --con-sol-content-gap: clamp(30px, 3.1vw, 60px);
  --con-ct-t-top: 0;
  --con-ct-t-bottom: 32px;
  --con-contact-subtitle-bottom: clamp(60px, 7.8vw, 150px);
  --con-cf-max-width: min(1080px, 100%);
  --con-cf-grid-gap: clamp(20px, 2.1vw, 40px);
  /* Figma 141:4160 — 입력행 간 60px, 이메일(10070)↔요청(10130) 60px */
  --con-cf-row-gap: clamp(30px, 3.1vw, 60px);
  --con-cf-request-margin-top: clamp(30px, 3.1vw, 60px);
  --con-cf-privacy-margin-top: clamp(60px, 7.8vw, 150px);
  --con-cf-submit-margin-top: clamp(30px, 3.1vw, 60px);
  --contact-ft-gap: clamp(120px, 15.6vw, 300px); /* 문의하기 버튼 하단 ~ 푸터 상단 가로선 (Figma 9061→9361) */
  --ft-line-to-content: 156px; /* 회색 가로선 ~ 푸터 콘텐츠 세로간격 (Figma 디자인 측정 156px) */
  --con-contact-input-underline: rgba(255, 255, 255, 0.2);
  --con-cf-col: clamp(200px, 27.1vw, 520px);
  --con-solution-icon-size: clamp(50px, 4.2vw, 80px);
  --con-solution-benefit-icon-size: 40px;
  --con-solution-media-height: 515px;
  --con-solution-sticky-width: 565px;
  --con-solution-content-width: 915px;
  --con-solution-benefit-padding-v: 30px;
  --con-solution-benefit-padding-h: 28px;
  --con-solution-benefit-border-width: 1px;
  /* Figma node 141-1954 — 점선 박스 동일 가로·세로 (content 915 - gap 15 → 450px × 2) */
  --con-solution-benefit-box-width: clamp(280px, 23.4vw, 450px);
  --con-solution-benefit-box-height: clamp(100px, 8.4vw, 162px);
  /* Benefit 점선 테두리 스펙: specs/benefit-box-border-spec.md */
  --benefit-border-color: #EC6232;
  --benefit-border-dash-size: 2px;
  --benefit-border-dash-gap: 2px;
  --benefit-border-dash-unit: calc(var(--benefit-border-dash-size) + var(--benefit-border-dash-gap));
  --benefit-border-radius: 10px;
  --con-solution-feat-num-width: 40px;
  --con-contact-dot-size: 5px;
  --con-contact-label-width: clamp(60px, 5.2vw, 100px);
  --con-contact-input-padding-v: 20px;
  /* Figma 141:4190 요청사항 — 원형 25×25, 체크 시 내부 원 5×5 / 141:4201 개인정보 — 사각 21×21, cornerRadius 5 */
  --con-contact-check-size: 25px;
  --con-contact-check-dot-size: 5px;
  --con-cp-check-size: 21px;
  --con-cp-check-radius: 5px;
  --con-csub-width: clamp(240px, 16.7vw, 320px);
  --con-csub-height: clamp(56px, 4.2vw, 80px);
  --con-case-tag-width: 150px;
  --con-ccard-padding: 25px 60px;
  --con-ccard-gap: 15px;
  /* Figma 141:1854 — 955×955 원형: opacity 0.2, blur 500(→250). 스펙: 02_platform-title-spec.md */
  --platform-group01-bg-size: 955px;
  --platform-group01-bg-blur: 250px;
  --platform-group01-bg-opacity: 0.2;
  /* Figma API 141:1908 — 솔루션 박스: fills 1겹(SOLID 0.2) + strokes 1겹(그라데이션) */
  --platform-card-fill: rgba(236, 98, 50, 0.2);
  --platform-card-radius: 10px;
  /* Hero — 01_hero-design-spec.md */
  --hero-height: 1080px;
  --hero-logo-left: clamp(20px, 5.2vw, 100px);
  --hero-logo-top: clamp(80px, 20.8vw, 400px);
  --hero-logo-width: clamp(200px, 21.7vw, 416px);
  --hero-logo-height: clamp(87px, 9.4vw, 180px);
  --hero-txt-left: clamp(20px, 5.2vw, 100px);
  --hero-txt-top: calc(var(--hero-logo-top) + var(--hero-logo-height) + clamp(20px, 3.7vw, 71px));
  --hero-txt-width: 1720px;
  --hero-subtitle-font-size: clamp(20px, 2.6vw, 50px);
  --hero-title-font-size: clamp(28px, 4.5vw, 100px);
  --hero-title-block-height: clamp(42px, 6.8vw, 130px);
  /* Figma 141:2188 nav — absoluteBoundingBox x=3871 y=937 w=39 h=937, 메인 1920 기준 우측 31px·상단 937px */
  --sn-offset-right: 31px;
  --sn-top: 937px;
  /* 도식 반응형: 내부 1370×550을 컨테이너에 맞춰 scale (우측 잘림 방지) */
  --platform-diagram-scale: 1;
}

/* --- 반응형 토큰: 1920 이하, 각 구간 하단에서 넘침 없도록 scale/left 조정 --- */
@media (max-width: 1919px) {
  :root {
    --con-platform-diagram-left: 100px;
    --platform-diagram-scale: 0.97;
  }
}
@media (max-width: 1599px) {
  :root {
    --con-platform-diagram-left: 50px;
    --platform-diagram-scale: 0.87;
  }
}
@media (max-width: 1399px) {
  :root {
    --con-platform-diagram-left: 30px;
    --platform-diagram-scale: 0.76;
  }
}
@media (max-width: 1199px) {
  :root {
    --con-platform-diagram-left: 24px;
    --platform-diagram-scale: 0.62;
  }
}
@media (max-width: 999px) {
  :root {
    --con-platform-diagram-left: 20px;
    --platform-diagram-scale: 0.48;
  }
}
@media (max-width: 767px) {
  :root {
    --con-platform-title-bottom: 40px;
    --con-platform-diagram-left: 16px;
    --platform-diagram-scale: 0.48;
  }
}

/* --- Base: 반응형 strip/잘림 방지 --- */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  overflow-x: clip;
  width: 100%;
  max-width: 100%;
}

body {
  margin: 0;
  width: 100%;
  max-width: 100%;
  min-height: 100vh;
  font-family: 'Pretendard', sans-serif;
  font-size: 16px;
  line-height: 1.5;
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}

/* =============================================
   Hero (☆top) — 스펙: 01_hero-design-spec.md, 01_hero-motion-spec.md
   ============================================= */
.h {
  position: relative;
  width: 100%;
  max-width: 100%;
  height: clamp(400px, 56.3vw, 1080px);
  min-height: 400px;
  margin: 0;
  background: var(--bg);
  overflow: hidden;
  isolation: isolate;
}

/* Figma 141:2528 bg01 — 이미지+오버레이 컨테이너, 배경/effects 없음 */
.h-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
}

/* Figma 141:2529: scaleMode FILL. API에 opacity/effects 없음. 웹·내보내기 차이로 어두워 보일 때만 brightness 사용 */
.h-bi {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  transform: scale(1);
  transform-origin: 50% 50%;
  opacity: 0;
  transition: opacity 0.8s ease-in;
  filter: brightness(1.14);
}
.h-bi[data-slide="0"],
.h-bi[data-slide="1"] {
  transform-origin: 50% 50%;
}
.h-bi.is-active {
  opacity: 1;
  z-index: 1;
}
.h-bi-f {
  animation: heroBgEnter 1.2s ease-out forwards;
}
.h-bi.is-active.h-bi-z {
  animation: heroBgZoom 6s ease-in forwards;
}

/* Figma 141:2530: 상단 투명 → 하단 완전 검정(#000)으로 .con과 이음새 없이 이어지게 */
.h-ov {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  opacity: 1;
  background: linear-gradient(180deg,
    rgba(0,0,0,0) 40%,
    rgba(0,0,0,0.4) 75%,
    rgba(0,0,0,1) 100%);
}
/* overlay 하단이 완전 #000이므로 별도 경계선 불필요 */
.h::after {
  display: none;
}

.h-logo {
  position: absolute;
  left: var(--hero-logo-left);
  top: var(--hero-logo-top);
  z-index: 2;
  width: var(--hero-logo-width);
  height: var(--hero-logo-height);
  opacity: 0;
  animation: fadeInUp 0.8s var(--ease-out-expo) 0.3s forwards;
}
.h-logo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.h-txt {
  position: absolute;
  left: var(--hero-txt-left);
  top: var(--hero-txt-top);
  width: var(--hero-txt-width);
  max-width: calc(100% - var(--con-padding-x) * 2);
  min-height: 200px;
  z-index: 2;
  display: flex;
  flex-direction: column;
  overflow-wrap: break-word;
  word-break: break-word;
}

.h-sub {
  margin: 0;
  font-family: 'Pretendard', sans-serif;
  font-weight: 600;
  font-size: var(--hero-subtitle-font-size);
  line-height: 1.3em;
  letter-spacing: -0.02em;
  color: #FFF;
  opacity: 0;
  animation: fadeInUp 0.8s var(--ease-out-expo) 0.6s forwards;
}

.h-tm {
  height: var(--hero-title-block-height);
  overflow: hidden;
  position: relative;
}
.h-ts {
  position: relative;
  width: 100%;
  height: var(--hero-title-block-height);
}
.h-tslide {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  display: flex;
  flex-direction: column;
  transform: translateY(100%);
  pointer-events: none;
}
.h-tslide.is-active {
  transform: translateY(0);
  z-index: 1;
  pointer-events: auto;
}
.h-tslide-out { z-index: 2; pointer-events: none; }
.h-tslide-in { z-index: 3; pointer-events: none; }
.h-tslide[data-slide="0"],
.h-tslide[data-slide="1"] {
  height: var(--hero-title-block-height);
}
.h-tt {
  display: block;
  min-height: var(--hero-title-block-height);
  line-height: 1.2em;
  margin: 0;
  font-weight: 800;
  font-size: var(--hero-title-font-size);
  letter-spacing: -0.02em;
  color: var(--primary);
  overflow-wrap: break-word;
  word-break: break-word;
}
.h-tt-e { font-family: 'Figtree', sans-serif; }
.h-tt-k { font-family: 'Pretendard', sans-serif; }
.h-tslide[data-slide="0"] .h-tt {
  transform: translateY(100%);
  animation: slideRevealUp 0.8s var(--ease-out-expo) 0.9s forwards;
}

@keyframes heroBgEnter {
  from { opacity: 0; transform: scale(1); }
  to   { opacity: 1; transform: scale(1); }
}
@keyframes heroBgZoom {
  from { transform: scale(1); }
  to   { transform: scale(1.06); }
}
@keyframes slideRevealUp {
  from { transform: translateY(100%); }
  to   { transform: translateY(0); }
}
@keyframes heroSlideOut {
  from { transform: translateY(0); }
  to   { transform: translateY(-100%); }
}
@keyframes heroSlideIn {
  from { transform: translateY(100%); }
  to   { transform: translateY(0); }
}

@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(30px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* 1920px 이상: 피그마 원본 고정값 */
@media (min-width: 1920px) and (min-height: 1080px) {
  .h { height: 1080px; max-height: 1080px; }
}
@media (min-width: 1920px) {
  .h-logo { left: 100px; top: 400px; width: 416px; height: 180px; }
  .h-txt { left: 100px; top: 650px; width: 1720px; }
  .h-sub { font-size: 50px; }
  .h-tm,
  .h-ts { height: 130px; }
  .h-tslide[data-slide="0"],
  .h-tslide[data-slide="1"] { height: 130px; }
  .h-tt { height: 130px; line-height: 130px; font-size: 100px; }
}

/* 1199px 이하: 크기·위치는 clamp()가 처리, title-mask만 폭 보장 */
@media (max-width: 1199px) {
  .h-tm { width: 100%; }
}

/* 767px 이하: 최소 높이 + 여백 축소 + 타이틀 줄바꿈 대응 */
@media (max-width: 767px) {
  .h { min-height: 400px; }
  .h-txt { max-width: calc(100% - 40px); }
  .h-tm,
  .h-ts {
    height: calc(var(--hero-title-block-height) * 2);
  }
  .h-tslide[data-slide="0"],
  .h-tslide[data-slide="1"] {
    height: calc(var(--hero-title-block-height) * 2);
  }
  .h-tt {
    min-height: calc(var(--hero-title-block-height) * 2);
    line-height: 1.3em;
  }
}

/* =============================================
   ☆con — Platform + Solutions + Contact
   min-height 제거: 문의하기 버튼~푸터 회색선 300px 유지 (con이 9974 고정이면 하단 빈 공간으로 간격 틀어짐)
   ============================================= */
.con {
  position: relative;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
  padding-top: var(--con-platform-title-top);
  background: var(--bg);
  overflow-x: clip;
  border: none;
  border-top: none;
  box-shadow: none;
  box-sizing: border-box;
}

/* [배경] 주황 원형 글로우 — .con 기준 배치로 platform overflow:hidden에 잘리지 않음 */
/* Figma 141:1854: left -355px, top = con padding-top + 40px */
.p-glow {
  position: absolute;
  left: -355px;
  top: calc(var(--con-platform-title-top) + 40px);
  width: 955px;
  height: 955px;
  border-radius: 50%;
  opacity: var(--platform-group01-bg-opacity);
  background: var(--primary, #EC6232);
  filter: blur(var(--platform-group01-bg-blur));
  pointer-events: none;
  z-index: 0;
}

/* [01] Platform — 02_platform-title-spec.md. Figma 141:1893 height=798px. 경계선 없음 */
/* background 투명: .con이 #000 배경 담당, 글로우가 비치도록 */
.p {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 100%;
  min-height: 0;
  margin: 0;
  padding: 0;
  padding-bottom: var(--con-section-gap);
  box-sizing: border-box;
  background: transparent;
  overflow: hidden;
  border: none;
  border-top: none;
  border-bottom: none;
  box-shadow: none;
}

.p-in {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: min(1920px, 100%);
  margin: 0 auto;
  padding: 0 var(--con-padding-x);
  box-sizing: border-box;
  min-width: 0;
}

.p-hd {
  position: relative;
  z-index: 2;
  margin: 0 0 var(--con-platform-title-bottom);
  width: 100%;
  text-align: center;
}

.p-tl {
  display: block;
  font-family: 'Figtree', sans-serif;
  font-weight: 700;
  font-size: clamp(32px, 3.75vw, 72px);
  line-height: 1.3em;
  letter-spacing: -0.02em;
  color: #FFFFFF;
  overflow-wrap: break-word;
  word-break: break-word;
}

.p-tm {
  display: block;
  height: clamp(42px, 4.9vw, 94px);
  overflow: hidden;
}

.p-ts {
  display: block;
  height: clamp(42px, 4.9vw, 94px);
}

.p-tr {
  display: block;
  font-family: 'Figtree', sans-serif;
  font-weight: 700;
  font-size: clamp(32px, 3.75vw, 72px);
  line-height: 1.2em;
  letter-spacing: -0.02em;
  color: #EC6232;
  transform: translateY(clamp(42px, 4.9vw, 94px));
  transition: transform 0.8s var(--ease-out-expo);
  overflow-wrap: break-word;
  word-break: break-word;
}

.p-tm.is-visible .p-tr {
  transform: translateY(0);
}

/* 도식: 고정 1370×550 레이아웃을 scale로 맞춰 우측 잘림 방지 */
.p-dia {
  position: relative;
  z-index: 0;
  left: var(--con-platform-diagram-left);
  width: 100%;
  max-width: min(var(--con-platform-diagram-width), calc(100% - var(--con-platform-diagram-left)));
  height: calc(var(--con-platform-diagram-height) * var(--platform-diagram-scale));
  min-height: 200px;
  background: transparent;
  overflow: hidden;
}

.p-di {
  position: absolute;
  left: 0;
  top: 0;
  width: 1370px;
  height: 550px;
  transform-origin: 0 0;
  transform: scale(var(--platform-diagram-scale));
}

/* Figma 955×955 원형 — blur 250px, 자동화 전단계 박스 뒤(도식 내부는 비표시) */
/* 도식 좌표: 그룹01 (0, 265) 300×95 → 중심 (150, 312.5). 원 left: 150 - 477.5 = -327.5, top: -165 */
.p-g1b {
  position: absolute;
  width: var(--platform-group01-bg-size);
  height: var(--platform-group01-bg-size);
  left: -327.5px;
  top: -165px;
  border-radius: 50%;
  background: var(--primary);
  opacity: 0;
  filter: blur(var(--platform-group01-bg-blur));
  pointer-events: none;
  z-index: 0;
  transition: opacity 0.6s var(--ease-out-expo);
}
/* 도식 내부 글로우 비활성화 — 피그마대로 오렌지는 상위 글로우만, 도식 영역은 어두움 */
.p-g1b.is-visible {
  opacity: 0;
}

/* Figma node 141:1935 line — (310, 148) 75×329, 그룹02↔03 연결선, Step 3 scaleY 등장 */
.p-line {
  position: absolute;
  left: 310px;
  top: 148px;
  width: 75px;
  height: 329px;
  z-index: 1;
  pointer-events: none;
  opacity: 0;
  transform: scaleY(0);
  transform-origin: top center;
  transition:
    opacity 0.4s ease-out,
    transform 0.8s var(--ease-out-expo);
}
.p-line.is-visible {
  opacity: 1;
  transform: scaleY(1);
}
.p-lsvg {
  display: block;
  width: 100%;
  height: 100%;
}

.p-g {
  position: absolute;
  z-index: 1;
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s var(--ease-out-expo), transform 0.6s var(--ease-out-expo);
}

.p-g.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* 그룹01 — 자동화 전단계 (Figma layout_YZWREZ: 300×95, top 265) */
.p-g1 {
  left: 0;
  top: var(--con-platform-group01-top);
  width: 300px;
  height: 95px;
  background: linear-gradient(135deg, #EC6232 0%, #5C6670 100%);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

/* Figma style_XQ7KFK: Pretendard 600 20px lineHeight 1.5em -2% CENTER, 2줄 줄바꿈 */
.p-lbl {
  font-family: 'Pretendard', sans-serif;
  font-weight: 600;
  font-size: 20px;
  line-height: 1.5em;
  letter-spacing: -0.02em;
  color: #FFFFFF;
  margin: 0;
  text-align: center;
}

/* 그룹02 — Figma 141:1898 layout_7PZ9N6: column gap 70px width 300 */
.p-g2 {
  left: 395px;
  top: 100px;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 70px;
  width: 300px;
}

/* Figma API 141:1899 — 설계/구축/운영: fills opacity 0.01, strokes 그라데이션, strokeWeight 1, strokeDashes [2,2], cornerRadius 10, shadow 20px */
.p-st {
  position: relative;
  width: 100%;
  height: 95px;
  min-height: 95px;
  padding: 0 15px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  background-color: rgba(236, 98, 50, 0.01);
  border: none;
  border-radius: 10px;
  box-shadow: 0 0 20px 0 rgba(236, 98, 50, 0.2);
  font-family: 'Pretendard', sans-serif;
  font-weight: 600;
  font-size: 20px;
  line-height: 1.3em;
  letter-spacing: -0.02em;
  color: #FFF;
}
/* Figma strokeDashes [2, 2], strokeWeight 1, gradient 135deg #EC6232→#5C6670 */
.p-st::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 10px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0%25' y1='0%25' x2='100%25' y2='100%25'%3E%3Cstop offset='0%25' stop-color='%23EC6232'/%3E%3Cstop offset='100%25' stop-color='%235C6670'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect width='100%25' height='100%25' fill='none' rx='10' ry='10' stroke='url(%23g)' stroke-width='1' stroke-dasharray='2%2C2'/%3E%3C/svg%3E");
  background-size: 100% 100%;
  pointer-events: none;
}

/* Figma layout_PRLX51 (145,120) layout_VCSG5L (145,285) 10×20, fill_9HYVU9 gradient — 다운로드 SVG 사용 */
.p-g2 .p-arr {
  position: absolute;
  left: 145px;
  width: 10px;
  height: 20px;
  margin: 0;
  object-fit: contain;
}
.p-g2 .p-arr1 { top: 120px; }
.p-g2 .p-arr2 { top: 285px; }

/* 그룹03 — xSIM/xMS/xDT (Figma 141:1907: left 725, top 75, gap 20px) */
.p-g3 {
  left: 725px;
  top: 75px;
  display: flex;
  flex-direction: column;
  gap: var(--con-platform-group03-gap);
  width: 300px;
}

/* Figma 141:1908 — 배경: fills만. 테두리: strokes만 ::before 1px(카드 border 제거해 중복 방지) */
.p-card {
  position: relative;
  width: 300px;
  height: var(--con-platform-card-height);
  padding: var(--con-platform-card-padding-v) var(--con-platform-card-padding-h);
  border: none;
  border-radius: var(--platform-card-radius);
  background-image: linear-gradient(var(--platform-card-fill), var(--platform-card-fill));
  background-origin: padding-box;
  background-clip: padding-box;
  background-size: calc(100% - 2px) calc(100% - 2px);
  background-position: 1px 1px;
  background-repeat: no-repeat;
  display: flex;
  flex-direction: column;
  gap: var(--con-platform-card-inner-gap);
  justify-content: center;
  align-items: center;
  text-align: center;
  box-sizing: border-box;
}
/* Figma strokes: 그라데이션 1px만. SVG 링 = 바깥(300×145 rx10) − 안(298×143 rx9, 1px inset) */
.p-card::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: var(--platform-card-radius);
  z-index: -1;
  background: linear-gradient(135deg, #EC6232, #5C6670);
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='145' viewBox='0 0 300 145'%3E%3Cpath fill='%23fff' fill-rule='evenodd' d='M10 0h280a10 10 0 0 1 10 10v125a10 10 0 0 1-10 10H10a10 10 0 0 1-10-10V10A10 10 0 0 1 10 0zM10 1h280a9 9 0 0 1 9 9v125a9 9 0 0 1-9 9H10a9 9 0 0 1-9-9V10a9 9 0 0 1 9-9z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='145' viewBox='0 0 300 145'%3E%3Cpath fill='%23fff' fill-rule='evenodd' d='M10 0h280a10 10 0 0 1 10 10v125a10 10 0 0 1-10 10H10a10 10 0 0 1-10-10V10A10 10 0 0 1 10 0zM10 1h280a9 9 0 0 1 9 9v125a9 9 0 0 1-9 9H10a9 9 0 0 1-9-9V10a9 9 0 0 1 9-9z'/%3E%3C/svg%3E");
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
}

/* 그룹03 카드 3개 순차 fadeInUp (0 / 0.15s / 0.3s) */
.p-g3 .p-card {
  opacity: 0;
  transform: translateY(20px);
  transition:
    opacity 0.5s ease-out,
    transform 0.5s var(--ease-out-expo);
}
.p-g3.is-visible .p-card {
  opacity: 1;
  transform: translateY(0);
}
.p-g3.is-visible .p-card:nth-child(1) { transition-delay: 0s; }
.p-g3.is-visible .p-card:nth-child(2) { transition-delay: 0.15s; }
.p-g3.is-visible .p-card:nth-child(3) { transition-delay: 0.3s; }

.p-cn {
  font-family: 'Figtree', sans-serif;
  font-weight: 600;
  font-size: 24px;
  line-height: 1.3em;
  letter-spacing: -0.02em;
  color: #EC6232;
  text-align: center;
}

.p-cd {
  font-family: 'Pretendard', sans-serif;
  font-weight: 500;
  font-size: 18px;
  line-height: 1.3em;
  letter-spacing: -0.02em;
  color: #FFF;
  text-align: center;
}

/* 그룹04 — Figma 141:1917 layout_0DUWVY: column gap 10px width 300 */
.p-g4 {
  left: 1070px;
  top: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 300px;
}

/* 그룹04 Test Bed 라벨·카드 순차 scaleIn */
.p-g4 .p-tbl,
.p-g4 .p-ti {
  opacity: 0;
  transform: scale(0.9);
  transition:
    opacity 0.5s ease-out,
    transform 0.5s var(--ease-out-expo);
}
.p-g4.is-visible .p-tbl {
  opacity: 1;
  transform: scale(1);
  transition-delay: 0s;
}
.p-g4.is-visible .p-tbox .p-ti:nth-child(1) {
  opacity: 1;
  transform: scale(1);
  transition-delay: 0s;
}
.p-g4.is-visible .p-tbox .p-ti:nth-child(2) {
  opacity: 1;
  transform: scale(1);
  transition-delay: 0.15s;
}
.p-g4.is-visible .p-tbox .p-ti:nth-child(3) {
  opacity: 1;
  transform: scale(1);
  transition-delay: 0.3s;
}

/* Figma 141:1918 — 300×65, fill #EC6232, cornerRadius 10 */
.p-tbl {
  background: #EC6232;
  border-radius: 10px;
  min-height: 65px;
  padding: 20px 12px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-family: 'Figtree', sans-serif;
  font-weight: 600;
  font-size: 20px;
  line-height: 1.3em;
  letter-spacing: -0.02em;
  color: #FFF;
}

/* Figma 141:1920 layout_2ELV2W: column center center gap 70px padding 25px height 475 */
.p-tbox {
  position: relative;
  background: linear-gradient(135deg, #EC6232 0%, #5C6670 100%);
  border-radius: 10px;
  padding: 25px;
  height: 475px;
  display: flex;
  flex-direction: column;
  gap: 70px;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
}

/* Figma 141:1921/1923/1925 layout_LFZX81: row center, fill #FFF, 높이 (475-50-140)/3=95 */
.p-ti {
  width: 100%;
  height: 95px;
  min-height: 95px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #FFFFFF;
  border-radius: 10px;
  padding: 20px;
  text-align: center;
  font-family: 'Pretendard', sans-serif;
  font-weight: 600;
  font-size: 18px;
  line-height: 1.3em;
  letter-spacing: -0.02em;
  color: #EC6232;
  box-sizing: border-box;
}

/* Figma 141:1927/1931 layout_VA60YQ (135,140) layout_7XY95P (135,305) 30×30 — 다운로드 SVG */
.p-tplus {
  position: absolute;
  left: 135px;
  width: 30px;
  height: 30px;
  object-fit: contain;
  pointer-events: none;
}
.p-tplus1 { top: 140px; }
.p-tplus2 { top: 305px; }

/* Step 6: 화살표 3개 래퍼 — 좌→우 순차 slideRight */
.p-arrs {
  position: absolute;
  left: 1035px;
  top: 0;
  width: 25px;
  height: 100%;
  min-height: 466px;
  z-index: 2;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.4s ease-out;
}
.p-arrs.is-visible {
  opacity: 1;
}
.p-arrs .p-carr {
  opacity: 0;
  transform: translateX(-15px);
  transition:
    opacity 0.4s ease-out,
    transform 0.4s var(--ease-out-expo);
}
.p-arrs.is-visible .p-carr {
  opacity: 1;
  transform: translateX(0);
}
.p-arrs.is-visible .p-carr:nth-child(1) { transition-delay: 0s; }
.p-arrs.is-visible .p-carr:nth-child(2) { transition-delay: 0.1s; }
.p-arrs.is-visible .p-carr:nth-child(3) { transition-delay: 0.2s; }

/* Figma 141-1940: 솔루션 카드 → 테스트베드 그라데이션 연결 화살표 (25×7), 두 박스 사이 가운데 배치 */
.p-carr {
  position: absolute;
  left: 0;
  width: 25px;
  height: 7px;
  pointer-events: none;
  display: block;
  line-height: 0;
}
.p-carr svg {
  display: block;
  width: 100%;
  height: 100%;
}
/* 왼쪽 세 카드(xSIM, xMS, xDT) 세로 중앙에 맞춤 — 그룹03 top 75, 카드 145, gap 20, 화살표 높이 7 */
.p-carr1 { top: 144px; }   /* 카드1 중심 75+72.5-3.5 */
.p-carr2 { top: 309px; }   /* 카드2 중심 75+145+20+72.5-3.5 */
.p-carr3 { top: 474px; }   /* 카드3 중심 75+290+40+72.5-3.5 */

/* =============================================
   Figma 208-983 모바일 레이아웃 — 기본 스타일 뒤에 배치해 캐스케이드 우선 적용
   ============================================= */
@media (max-width: 1399px) {
  .p-hd {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 6px;
    margin: 0 auto var(--con-platform-title-bottom);
    max-width: min(100%, 560px);
  }
  .p-tl {
    line-height: 1.2em;
    text-align: center;
  }
  .p-tm,
  .p-ts {
    display: flex;
    justify-content: center;
  }
  .p-tr {
    text-align: center;
  }
}

/* 모바일: Figma 208:983 이미지로 대체, 기존 반응형 도식은 숨김 */
@media (max-width: 767px) {
  .p {
    background-image: url('../images/hero-mobile-208-983.png');
    background-size: 100% auto;
    background-position: center top;
    background-repeat: no-repeat;
    background-color: var(--bg);
    min-height: 0;
    padding-bottom: 0;
    aspect-ratio: 1500 / 2270;
  }
  .p-in {
    display: none !important;
  }
}

/* --- [02] Solutions 스크롤 영역 --- */
/* Platform↔Solutions 경계선 없음: 배경 #000, border 없음 — 02_platform-title-spec.md */
.sol {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 100%;
  padding-top: var(--con-sol-inner-padding-top);
  padding-bottom: var(--con-section-gap);
  background: transparent;
  border: none;
  box-shadow: none;
  box-sizing: border-box;
}

.sol-in {
  width: 100%;
  max-width: min(1920px, 100%);
  margin: 0 auto;
  padding: 0 var(--con-padding-x);
  box-sizing: border-box;
  min-width: 0;
}

.sol-hd {
  margin: 0 0 var(--con-sol-title-bottom);
  font: 0/0 a;
  text-align: left;
}

.sol-tl {
  display: block;
  font-family: 'Figtree', sans-serif;
  font-weight: 700;
  font-size: clamp(32px, 3.75vw, 72px);
  line-height: 1.3;
  letter-spacing: -0.02em;
  color: #FFFFFF;
}

.sol-tm {
  display: block;
  height: clamp(42px, 4.9vw, 94px);
  overflow: hidden;
}

.sol-ts {
  display: block;
  height: clamp(42px, 4.9vw, 94px);
}

.sol-tr {
  display: block;
  font-family: 'Figtree', sans-serif;
  font-weight: 700;
  font-size: clamp(32px, 3.75vw, 72px);
  line-height: clamp(42px, 4.9vw, 94px);
  letter-spacing: -0.02em;
  color: #EC6232;
  transform: translateY(clamp(42px, 4.9vw, 94px));
}

.sol-tm.is-visible .sol-tr {
  animation: slideRevealUp 0.8s var(--ease-out-expo) forwards;
}


/* Physical AI Core Solutions 하단 컨테이너 — Figma 141:1954: 배경 #111, 1px 그라데이션 테두리만 */
.sol-scr {
  position: relative;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  background: var(--con-sol-scroll-bg);
  border-radius: var(--con-sol-scroll-radius);
  padding: 0 var(--con-sol-scroll-padding-x) var(--con-sol-scroll-radius);
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  overflow: visible;
}

/* 테두리만 그라데이션: 1px 링을 mask로 잘라서 표시 */
.sol-scr::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: var(--con-sol-scroll-radius);
  padding: 1px;
  box-sizing: border-box;
  background: var(--con-sol-scroll-stroke-gradient);
  background-size: 100% 1800px;
  background-repeat: repeat-y;
  -webkit-mask: linear-gradient(#fff, #fff) content-box, linear-gradient(#fff, #fff);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#fff, #fff) content-box, linear-gradient(#fff, #fff);
  mask-composite: exclude;
  pointer-events: none;
  z-index: 0;
}

.sol-scr > * {
  position: relative;
  z-index: 1;
}

/* Figma 141:1955 카드: 회색 구분선(border) 위·아래 세로간격 각 150px → sticky/content padding으로 적용 */
.sc {
  display: flex;
  gap: var(--con-sol-card-gap);
  padding: 0;
  border-bottom: 1px solid #333333;
  align-items: flex-start;
  min-width: 0;
  max-width: 100%;
}

.sc:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

/* 마지막 카드의 마지막 ccard(성과) 하단 모서리를 스크롤 박스 radius에 맞춤 → 튀어나온 느낌 제거 */
.sc:last-child .ccard:last-child {
  border-bottom-left-radius: var(--con-sol-scroll-radius);
  border-bottom-right-radius: var(--con-sol-scroll-radius);
}

/* Figma 141:1956 sticky: 상단 150px, 하단 150px(구분선까지), itemSpacing 80 (아이콘↔txt) */
.sc-sticky {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  width: var(--con-solution-sticky-width);
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: var(--con-sol-sticky-gap);
  padding: var(--con-sol-separator-spacing) 0;
}

/* Figma 141:1959 txt: title/subtitle/desc 간 itemSpacing 30 */
.sc-txt {
  display: flex;
  flex-direction: column;
  gap: 30px;
  min-width: 0;
}

/* Figma: 솔루션 카드 아이콘 — 배경 없음, 고정 크기만 적용 */
.sc-ico {
  width: var(--con-solution-icon-size);
  height: var(--con-solution-icon-size);
  min-width: var(--con-solution-icon-size);
  min-height: var(--con-solution-icon-size);
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sc-ico img {
  display: block;
  width: 100%;
  height: 100%;
  min-width: 0;
  object-fit: contain;
  vertical-align: middle;
}

.sc-tr {
  display: flex;
  align-items: baseline;
  gap: 12px;
  flex-wrap: nowrap;
}

.sc-num {
  margin: 0;
  font-family: 'Figtree', sans-serif;
  font-weight: 700;
  font-size: clamp(16px, 1.25vw, 24px);
  line-height: 1.3;
  letter-spacing: -0.02em;
  color: #5C6670;
  flex-shrink: 0;
}

.sc-name {
  margin: 0;
  font-family: 'Figtree', sans-serif;
  font-weight: 700;
  font-size: clamp(24px, 2.19vw, 42px);
  color: #FFF;
  line-height: 1.3;
  letter-spacing: -0.02em;
  overflow-wrap: break-word;
  word-break: break-word;
}

.sc-sub {
  margin: 0;
  font-family: 'Pretendard', sans-serif;
  font-weight: 600;
  font-size: clamp(18px, 1.67vw, 32px);
  color: #FFF;
  line-height: 1.5;
  letter-spacing: -0.02em;
}

.sc-desc {
  margin: 0;
  font-family: 'Pretendard', sans-serif;
  font-weight: 500;
  font-size: clamp(14px, 1.04vw, 20px);
  color: #FFF;
  opacity: 0.6;
  line-height: 1.6;
  letter-spacing: -0.02em;
}

/* Figma 141:1965 right: 상단 150px, 하단 150px(구분선까지), itemSpacing 60 */
.sc-ct {
  width: var(--con-solution-content-width);
  min-width: 0;
  min-height: min-content;
  flex: 1;
  flex-shrink: 1;
  max-width: 100%;
  display: flex;
  flex-direction: column;
  gap: var(--con-sol-content-gap);
  padding: var(--con-sol-separator-spacing) 0;
}

/* Figma 141:1967 video: 915×515, cornerRadius 10 */
.sc-media {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: #222;
  border-radius: clamp(6px, 0.52vw, 10px);
  overflow: hidden;
}

.sc-media iframe {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  border: none;
  border-radius: clamp(6px, 0.52vw, 10px);
  object-fit: cover;
}

.sc-feat {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.sc-feat li {
  display: flex;
  align-items: center;
  gap: 20px;
  font-family: 'Pretendard', sans-serif;
  font-weight: 500;
  font-size: clamp(14px, 0.94vw, 18px);
  color: #FFF;
}

.sc-fn {
  flex-shrink: 0;
  width: var(--con-solution-feat-num-width);
  font-family: 'Figtree', sans-serif;
  font-weight: 700;
  font-size: clamp(14px, 0.94vw, 18px);
  color: #EC6232;
}

/* =========================================
   성과 박스 — 점선 그라데이션 테두리 (피그마 정밀 스펙)
   ========================================= */

/* 부모 컨테이너: 2개 박스를 가로 나열, 부모(915px) 너비 꽉 채움 */
.bc-list {
  display: flex;
  flex-direction: row;
  justify-content: stretch;
  align-items: stretch;
  gap: 15px;
  width: 100%;
  align-self: stretch;
}

/* 각 박스: column, center, gap 20px, padding 30px 0, flex 1, border-radius 10px */
.bc {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 20px;
  padding: 30px 0;
  flex: 1;
  min-width: 0;
  border-radius: 10px;
  background: transparent;
}

/* 점선 그라데이션 테두리 (::before) — stroke 135deg #EC6232→#5C6670, strokeDashes [2,2] */
.bc::before {
  content: '';
  position: absolute;
  inset: -1px;
  border-radius: 10px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0%25' y1='0%25' x2='100%25' y2='100%25'%3E%3Cstop offset='0%25' stop-color='%23EC6232'/%3E%3Cstop offset='100%25' stop-color='%235C6670'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect width='100%25' height='100%25' fill='none' rx='10' ry='10' stroke='url(%23g)' stroke-width='1' stroke-dasharray='4%2C1'/%3E%3C/svg%3E");
  background-size: 100% 100%;
  pointer-events: none;
}

.bc-ico {
  display: block;
  flex-shrink: 0;
}

.bc-txt {
  margin: 0;
  font-family: 'Pretendard', sans-serif;
  font-weight: 500;
  font-size: clamp(14px, 0.94vw, 18px);
  line-height: 1.3em;
  letter-spacing: -0.02em;
  color: #FFFFFF;
  text-align: center;
  padding: 0 20px;
  word-break: keep-all;
  overflow-wrap: break-word;
}

/* Customer Case — 목표/접근/성과 하이라이트 순환 */
.sc-case {
  display: flex;
  flex-direction: column;
  gap: 30px;
}

.sc-cl,
.cc-hd {
  margin: 0;
  font-family: 'Figtree', sans-serif;
  font-weight: 700;
  font-size: clamp(16px, 1.04vw, 20px);
  color: #FFF;
}

.cc-cards {
  display: flex;
  flex-direction: column;
  gap: 5px;
  width: 100%;
}

/* Customer Case 카드 — 피그마 잔상(trailing) 전환 효과, 반응형으로 우측 잘림·세로 과잉 방지 */
.ccard {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  align-self: stretch;
  gap: clamp(10px, 0.78vw, 15px);
  padding: clamp(16px, 1.3vw, 25px) clamp(20px, 3.1vw, 60px);
  border-radius: clamp(6px, 0.52vw, 10px);
  position: relative;
  overflow: hidden;
  min-width: 0;
  background: rgba(92, 102, 112, 0.2);
  border: 1px solid transparent;
  transition: background-color 0.3s ease-out, border-color 0.3s ease-out;
}

.ccard.is-active {
  background: rgba(236, 98, 50, 0.9);
  border-color: #EC6232;
  transition: background-color 0.4s ease-out, border-color 0.4s ease-out;
}

.ccard.is-leaving {
  background: rgba(236, 98, 50, 0.35);
  border-color: rgba(236, 98, 50, 0.3);
  transition: background-color 0.8s ease-in-out, border-color 0.8s ease-in-out;
}

.ccard-lbl,
.ccard-ttl,
.ccard-desc {
  position: relative;
  z-index: 1;
}

.ccard-lbl {
  font-family: 'Pretendard', sans-serif;
  font-weight: 600;
  font-size: clamp(13px, 0.89vw, 17px);
  line-height: 1.3em;
  letter-spacing: -0.02em;
  color: #FFFFFF;
  width: clamp(80px, 7.8vw, 150px);
  min-width: 60px;
  flex-shrink: 0;
}

.ccard-body {
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 1;
  min-width: 0;
  overflow-wrap: break-word;
  word-break: break-word;
}

.ccard-ttl {
  font-family: 'Pretendard', sans-serif;
  font-weight: 600;
  font-size: clamp(13px, 0.89vw, 17px);
  line-height: 1.4em;
  letter-spacing: -0.02em;
  color: #FFFFFF;
  overflow-wrap: break-word;
  word-break: break-word;
}

.ccard-desc {
  font-family: 'Pretendard', sans-serif;
  font-weight: 300;
  font-size: clamp(13px, 0.89vw, 17px);
  line-height: 1.4em;
  letter-spacing: -0.02em;
  color: #FFFFFF;
  margin: 0;
  overflow-wrap: break-word;
  word-break: break-word;
}

.ccard-body p {
  margin: 0;
}

/* CUSTOMER CASE 반응형: 모바일에서 세로 스택 */
@media (max-width: 767px) {
  .ccard {
    flex-direction: column;
    align-items: flex-start;
  }
  .ccard-lbl {
    width: auto;
    min-width: 0;
  }
}

/* --- [03] Contact Us 섹션. 문의하기 CTA ~ 회색 가로선 385px. 배경은 __bg가 담당 --- */
.ct,
.ct {
  position: relative;
  width: 100%;
  max-width: 100%;
  height: auto;
  flex-shrink: 0;
  overflow: visible;
  box-sizing: border-box;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  background: transparent;
}

/* 배경: Figma 141:1891 — 정확히 1920×1152, scaleMode FILL(=cover) */
/* 그라데이션: #000 0% → transparent 50% → #000 100% (하단이 #000이므로 아래 영역과 자연스럽게 이어짐) */
.ct-bg {
  position: absolute;
  top: -300px;
  left: 0;
  width: 100%;
  height: 1152px;
  z-index: 0;
  pointer-events: none;
  background:
    linear-gradient(180deg, #000 0%, rgba(0, 0, 0, 0.00) 50%, #000 100%),
    url('../images/shutterstock_2677868641.jpg') center center / cover no-repeat;
}

.ct-glow {
  position: absolute;
  left: -255px;
  top: 40px;
  width: 955px;
  height: 955px;
  border-radius: 50%;
  background: #EC6232;
  opacity: 0.2;
  filter: blur(500px);
  z-index: 1;
  pointer-events: none;
}

/* 문의하기 CTA 버튼 하단 ~ 회색 가로선 = 300px (Figma 9061→9361) */
.ct .ct-in {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: min(1720px, 100%);
  margin: 0 auto;
  padding: var(--con-ct-t-top) var(--con-padding-x) var(--contact-ft-gap);
  box-sizing: border-box;
  min-width: 0;
}

.ct-t {
  text-align: center;
  margin-bottom: var(--con-contact-subtitle-bottom);
}

.ct-l1 {
  font-family: 'Pretendard', sans-serif;
  font-weight: 400;
  font-size: clamp(14px, 1.67vw, 32px);
  line-height: 1.3em;
  letter-spacing: -0.02em;
  color: #FFFFFF;
  margin: 0 0 clamp(10px, 1.04vw, 20px);
}

.ct-l2 {
  font-family: 'Pretendard', sans-serif;
  font-weight: 700;
  font-size: clamp(22px, 3.75vw, 72px);
  line-height: 1.3em;
  letter-spacing: -0.02em;
  color: #FFFFFF;
  text-align: center;
  margin: 0;
}

.ct-tm {
  display: inline-block;
  height: clamp(30px, 4.9vw, 94px);
  overflow: hidden;
  vertical-align: bottom;
}

.ct-hl {
  display: block;
  color: #EC6232;
  transform: translateY(clamp(30px, 4.9vw, 94px));
  transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.ct-hl.is-visible {
  transform: translateY(0);
}


.cf {
  max-width: min(1080px, 100%);
  margin: 0 auto 0;
  width: 100%;
}

.cf-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: var(--con-cf-grid-gap);
  row-gap: var(--con-cf-row-gap);
  max-width: 100%;
}

.cf-msg {
  font-family: 'Pretendard', sans-serif;
  font-weight: 600;
  font-size: clamp(14px, 0.94vw, 16px);
  padding: 14px 20px;
  border-radius: 8px;
  margin-bottom: 20px;
  opacity: 0;
  animation: cfMsgFade 0.4s ease forwards;
}
.cf-msg--ok {
  background: rgba(76, 175, 80, 0.2);
  color: #a5d6a7;
  border: 1px solid rgba(76, 175, 80, 0.4);
}
.cf-msg--err {
  background: rgba(244, 67, 54, 0.2);
  color: #ef9a9a;
  border: 1px solid rgba(244, 67, 54, 0.4);
}
@keyframes cfMsgFade {
  to { opacity: 1; }
}

.cf-f {
  display: flex;
  align-items: center;
  gap: 10px;
  opacity: 0;
  transform: translateY(15px);
  transition: opacity 0.5s ease, transform 0.5s ease;
}

.cf-f.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.cf-f-f {
  grid-column: 1 / -1;
}

.cf-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #EC6232;
  flex-shrink: 0;
}

.cf-label {
  font-family: 'Pretendard', sans-serif;
  font-weight: 700;
  font-size: clamp(14px, 0.94vw, 18px);
  line-height: 1.3em;
  letter-spacing: -0.02em;
  color: #FFFFFF;
  width: clamp(60px, 5.2vw, 100px);
  flex-shrink: 0;
}

/* Figma 141:4164 input: 하단만 stroke 1px, opacity 0.2 — 밑줄 1px만(border만 사용) */
.cf-in {
  position: relative;
  flex: 1;
  padding: 20px 0;
  border: none;
  border-bottom: 1px solid var(--con-contact-input-underline);
  box-sizing: border-box;
}

.cf-f-f .cf-in {
  max-width: 955px;
}

.cf-input {
  width: 100%;
  background: transparent;
  border: none;
  outline: none;
  font-family: 'Pretendard', sans-serif;
  font-weight: 600;
  font-size: clamp(14px, 0.94vw, 18px);
  line-height: 1.3em;
  letter-spacing: -0.02em;
  color: #FFFFFF;
}

.cf-input::placeholder {
  color: rgba(255, 255, 255, 0.4);
}

.cf-input:focus {
  background: transparent;
  outline: none;
}

.cf-input:-webkit-autofill,
.cf-input:-webkit-autofill:hover,
.cf-input:-webkit-autofill:focus,
.cf-input:-webkit-autofill:active {
  -webkit-box-shadow: 0 0 0 1000px transparent inset !important;
  box-shadow: 0 0 0 1000px transparent inset !important;
  -webkit-text-fill-color: #FFFFFF !important;
  background-color: transparent !important;
  transition: background-color 5000s ease-in-out 0s;
}

/* Figma: 밑줄 1px만 — ::after 사용 시 겹쳐 굵게 보이므로 제거, border만 사용 */

/* 그리드 내부이므로 row-gap만 적용 — margin-top 제거(이메일↔요청사항 간격 60px로 통일) */
.cf-req {
  grid-column: 1 / -1;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-top: 0;
  opacity: 0;
  transform: translateY(15px);
  transition: opacity 0.5s ease, transform 0.5s ease;
}

.cf-req.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.cf-rl {
  font-family: 'Pretendard', sans-serif;
  font-weight: 700;
  font-size: clamp(14px, 0.94vw, 18px);
  line-height: 1.3em;
  letter-spacing: -0.02em;
  color: #FFFFFF;
  width: clamp(60px, 6vw, 115px);
  flex-shrink: 0;
}

.cf-chk {
  display: flex;
  align-items: flex-start;
  gap: clamp(15px, 2.1vw, 40px);
  flex-wrap: wrap;
}

.cf-ci {
  display: flex;
  align-items: flex-start;
  gap: clamp(8px, 1.04vw, 20px);
  cursor: pointer;
}

/* 요청사항 체크박스: 미체크 시에도 원형 가운데 점 표시, 테두리 회색 / 체크 시 테두리·점 흰색 */
.cf-cb {
  position: relative;
  width: var(--con-contact-check-size);
  height: var(--con-contact-check-size);
  min-width: var(--con-contact-check-size);
  min-height: var(--con-contact-check-size);
  border: 2px solid rgba(255, 255, 255, 0.35);
  border-radius: 50%;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: border-color 0.2s, background 0.2s;
  box-sizing: border-box;
}

/* 미체크: 가운데 점 회색, 체크: 테두리·점 흰색 */
.cf-cb::after {
  content: '';
  display: block;
  width: var(--con-contact-check-dot-size);
  height: var(--con-contact-check-dot-size);
  min-width: var(--con-contact-check-dot-size);
  min-height: var(--con-contact-check-dot-size);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.35);
  flex-shrink: 0;
  transition: background 0.2s;
}

.cf-cb.is-checked {
  border-color: var(--primary);
  background: transparent;
}

.cf-cb.is-checked::after {
  background: var(--primary);
}

.cf-ct {
  font-family: 'Pretendard', sans-serif;
  font-weight: 400;
  font-size: clamp(14px, 0.94vw, 18px);
  line-height: 1.6em;
  letter-spacing: -0.02em;
  color: #FFFFFF;
}

.cf-ct small {
  display: block;
  margin-top: 4px;
  font-size: clamp(11px, 0.73vw, 14px);
  color: rgba(255, 255, 255, 0.8);
}

.cp {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: clamp(8px, 0.78vw, 15px);
  flex-wrap: wrap;
  margin-top: var(--con-cf-privacy-margin-top);
  opacity: 0;
  transition: opacity 0.5s ease;
}

.cp.is-visible {
  opacity: 1;
}

/* 개인정보 체크박스: 미체크 시 테두리·배경 회색, 체크 시 주황 + 체크표시 */
.cp-cb {
  position: relative;
  width: var(--con-cp-check-size);
  height: var(--con-cp-check-size);
  min-width: var(--con-cp-check-size);
  min-height: var(--con-cp-check-size);
  border: 2px solid rgba(255, 255, 255, 0.35);
  border-radius: var(--con-cp-check-radius);
  background: rgba(255, 255, 255, 0.12);
  flex-shrink: 0;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s, border-color 0.2s;
  box-sizing: border-box;
}

/* 체크마크: 미체크 시에도 표시 — 미체크 회색, 체크 시 흰색 */
.cp-cb::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 11px;
  height: 9px;
  min-width: 11px;
  min-height: 9px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 9' fill='none'%3E%3Cpath d='M1 4.5L4 7.5L10 1.5' stroke='%23888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center;
  background-size: 11px 9px;
  pointer-events: none;
}

.cp-cb.is-checked {
  background: #EC6232;
  border-color: #EC6232;
}

.cp-cb.is-checked::after {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 9' fill='none'%3E%3Cpath d='M1 4.5L4 7.5L10 1.5' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.cp-txt {
  font-family: 'Pretendard', sans-serif;
  font-weight: 500;
  font-size: clamp(13px, 0.94vw, 18px);
  line-height: 1.3em;
  letter-spacing: -0.02em;
  color: #FFFFFF;
  white-space: nowrap;
}

/* "+ 더보기" 밑줄: 회색 2px, 텍스트보다 조금 더 길게 */
.cp-more {
  font-family: 'Pretendard', sans-serif;
  font-weight: 300;
  font-size: clamp(12px, 0.83vw, 16px);
  line-height: 1.3em;
  letter-spacing: -0.02em;
  color: #FFFFFF;
  white-space: nowrap;
  cursor: pointer;
  text-decoration: none;
  border-bottom: 2px solid rgba(255, 255, 255, 0.4);
  padding: 0 4px;
  margin: 0 -4px;
  transition: opacity 0.2s ease;
}

.cp-more:hover {
  opacity: 0.9;
}

.csub {
  display: flex;
  justify-content: center;
  align-items: center;
  width: var(--con-csub-width);
  max-width: 100%;
  height: var(--con-csub-height);
  margin: var(--con-cf-submit-margin-top) auto 0;
  background: #EC6232;
  border: none;
  border-radius: 100px;
  cursor: pointer;
  opacity: 0;
  transform: scale(0.9);
  transition: opacity 0.5s ease, transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.csub.is-visible {
  opacity: 1;
  transform: scale(1);
}

.csub-txt {
  font-family: 'Pretendard', sans-serif;
  font-weight: 600;
  font-size: clamp(14px, 1.04vw, 20px);
  line-height: 1.3em;
  letter-spacing: -0.02em;
  color: #FFFFFF;
}

.csub:hover {
  background: #d9552a;
}

.csub.is-visible:hover {
  transform: scale(1.02);
}

/* 개인정보처리방침 모달 */
.pm {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 9999;
}

.pm.is-open {
  display: flex;
  justify-content: center;
  align-items: center;
}

.pm-ov {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.7);
  cursor: pointer;
}

.pm-ct {
  position: relative;
  width: min(800px, 92vw);
  max-height: 80vh;
  background: #1a1a1a;
  border: 1px solid #333;
  border-radius: clamp(12px, 1.04vw, 20px);
  overflow: hidden;
  z-index: 1;
  display: flex;
  flex-direction: column;
}

.pm-hd {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: clamp(16px, 1.6vw, 30px) clamp(16px, 2.1vw, 40px);
  border-bottom: 1px solid #333;
  flex-shrink: 0;
}

.pm-hd h3 {
  font-family: 'Pretendard', sans-serif;
  font-weight: 700;
  font-size: clamp(18px, 1.25vw, 24px);
  color: #FFFFFF;
  margin: 0;
}

.pm-close {
  background: none;
  border: none;
  color: #FFFFFF;
  font-size: 32px;
  cursor: pointer;
  padding: 0;
  line-height: 1;
}

.pm-body {
  padding: clamp(16px, 1.6vw, 30px) clamp(16px, 2.1vw, 40px);
  font-family: 'Pretendard', sans-serif;
  font-weight: 400;
  font-size: clamp(13px, 0.83vw, 16px);
  line-height: 1.8em;
  color: rgba(255, 255, 255, 0.8);
  overflow-y: auto;
  flex: 1;
  min-height: 0;
}

.pm-body h4 {
  font-weight: 700;
  font-size: clamp(14px, 0.94vw, 18px);
  color: #FFFFFF;
  margin-top: clamp(16px, 1.6vw, 30px);
  margin-bottom: 10px;
}

.pm-body p {
  margin: 0 0 1em;
}

/* =============================================
   ☆ft — Figma Dev Mode 간격
   가로선 ~ 콘텐츠: 80px | 콘텐츠 하단 ~ 페이지 끝: 80px (상하 대칭)
   ============================================= */
footer.ft,
.ft {
  position: relative;
  width: 100%;
  max-width: min(1920px, 100%);
  margin: 0;
  padding: clamp(40px, 4.2vw, 80px) clamp(20px, 4.1vw, 78px) clamp(40px, 4.2vw, 80px) clamp(20px, 4.2vw, 80px);
  border-top: 1px solid rgba(255, 255, 255, 0.15);
  background: #000;
  box-sizing: border-box;
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: clamp(20px, 2.1vw, 40px);
}

.ft-logo {
  flex-shrink: 0;
}

.ft-logo img {
  width: clamp(120px, 9.6vw, 185px);
  height: clamp(52px, 4.2vw, 80px);
  object-fit: contain;
}

/* Figma txt 프레임: 주소·상세·저작권 간 itemSpacing 15 */
.ft-info {
  display: flex;
  flex-direction: column;
  gap: 15px;
  margin-left: clamp(0px, 6.25vw, 120px);
  flex: 1;
  min-width: 0;
}

.ft-addr {
  margin: 0;
  font-family: 'Pretendard', sans-serif;
  font-weight: 700;
  font-size: clamp(13px, 0.94vw, 18px);
  line-height: 1.3em;
  letter-spacing: -0.02em;
  color: #FFFFFF;
  overflow-wrap: break-word;
  word-break: break-word;
}

.ft-dt {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 30px;
  flex-wrap: wrap;
}

.ft-d {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 10px;
}

.ft-lbl {
  font-family: 'Pretendard', sans-serif;
  font-weight: 500;
  font-size: clamp(13px, 0.94vw, 18px);
  line-height: 1.3em;
  letter-spacing: -0.02em;
  color: #888;
  white-space: nowrap;
}

.ft-val {
  font-family: 'Figtree', sans-serif;
  font-weight: 300;
  font-size: clamp(13px, 0.94vw, 18px);
  line-height: 1.3em;
  letter-spacing: -0.02em;
  color: #888;
  white-space: nowrap;
}

.ft-val-k {
  font-family: 'Pretendard', sans-serif;
}

.ft-cp {
  margin: 0;
  font-family: 'Figtree', sans-serif;
  font-weight: 600;
  font-size: clamp(13px, 0.94vw, 18px);
  line-height: 1.3em;
  letter-spacing: -0.02em;
  color: #888;
  overflow-wrap: break-word;
  word-break: break-word;
}

/* Figma TOP 버튼: padding 영역 기준 right 0, top 4px */
.ft-top {
  position: absolute;
  right: clamp(20px, 4.1vw, 78px);
  top: clamp(40px, 4.2vw, 80px);
  background: none;
  border: none;
  font-family: 'Figtree', sans-serif;
  font-weight: 700;
  font-size: clamp(40px, 3.65vw, 70px);
  line-height: 1.3em;
  letter-spacing: -0.02em;
  color: #EC6232;
  cursor: pointer;
  transition: opacity 0.3s ease;
  padding: 0;
}

.ft-top:hover {
  opacity: 0.7;
}

/* --- 우측 고정 네비: 시계방향 90° 회전 → 우측 세로. 히어로 하단 스크롤 이후에만 표시, 세로 중앙 --- */
/* top은 JS에서 getBoundingClientRect()로 세로 중앙 계산 후 설정 (translateY와 충돌 방지) */
/* right: 컨테이너(1720px) 오른쪽 실선 ~ 뷰포트 오른쪽(스크롤바) 사이의 중간 */
.sn {
  position: fixed;
  right: max(30px, calc((100vw - min(1720px, 100vw)) / 4));
  left: auto;
  transform: rotate(90deg);
  transform-origin: right center;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 25px;
  z-index: 100;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
  box-sizing: border-box;
  overflow: visible;
}

.sn.visible {
  opacity: 1;
  pointer-events: auto;
}

.sn.visible > * {
  pointer-events: auto;
}

/* Figma 01~05: 가로 한 줄 — 블릿(왼쪽) + 10px 간격 + 메뉴명(오른쪽) */
.sn-item {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  opacity: 0.5;
  transition: opacity 0.3s ease, color 0.3s ease;
  flex-shrink: 0;
  box-sizing: border-box;
}

/* 문의폼 영역 원형 블릿(5px)과 동일 사이즈 — Figma cf-dot */
.sn-dot {
  display: block;
  width: var(--con-contact-dot-size);
  height: var(--con-contact-dot-size);
  min-width: var(--con-contact-dot-size);
  min-height: var(--con-contact-dot-size);
  flex-shrink: 0;
  border-radius: 50%;
  background: #6B7280;
  transition: background-color 0.3s ease;
}

.sn-item:hover {
  opacity: 0.8;
}

.sn-item:hover .sn-dot {
  background: #EC6232;
}

.sn-item:hover .sn-lbl {
  color: #EC6232;
}

.sn-item.is-active {
  opacity: 1;
}

.sn-item.is-active .sn-dot {
  background: #EC6232;
}

.sn-lbl {
  font-family: 'Figtree', sans-serif;
  font-weight: 700;
  font-size: 15px;
  line-height: 1.3em;
  letter-spacing: -0.02em;
  color: #9CA3AF;
  transition: color 0.3s ease;
  flex-shrink: 0;
}

.sn-item.is-active .sn-lbl {
  color: #EC6232;
}

/* Figma 06: Contact Us, padding 10,15,10,15 (네비 전체 회전에 포함) */
.sn-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 15px;
  background: #EC6232;
  border-radius: 100px;
  text-decoration: none;
  transition: opacity 0.3s ease;
  flex-shrink: 0;
}

.sn-cta:hover {
  opacity: 0.8;
}

.sn-cta .sn-lbl {
  color: #FFFFFF;
}

/* Footer + 네비 + Contact 폼 반응형 (태블릿 이하에서 하단 고정 바로 전환) */
@media (max-width: 1199px) {
  .sn {
    display: flex !important;
    position: fixed !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    top: auto !important;
    width: 100% !important;
    height: auto !important;
    flex-direction: row !important;
    justify-content: center;
    align-items: center;
    gap: 0;
    padding: 12px 16px;
    background: rgba(0, 0, 0, 0.92);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-top: 1px solid rgba(255,255,255,0.1);
    transform: none !important;
    transform-origin: initial !important;
    z-index: 100;
  }
  .sn-item {
    flex: 1;
    justify-content: center;
    padding: 8px 4px;
  }
  .sn-dot {
    display: none;
  }
  .sn-lbl {
    font-size: 12px;
    text-align: center;
    white-space: nowrap;
  }
  .sn-cta {
    padding: 8px 16px;
    border-radius: 20px;
    flex: none;
  }
  .sn-cta .sn-lbl {
    font-size: 12px;
  }
  .sc {
    flex-direction: column;
    align-items: stretch;
  }
  .sc-sticky {
    position: relative;
    width: 100%;
    max-width: 100%;
    padding: clamp(40px, 4.2vw, 80px) 0 0 0;
  }
  .sc-ct {
    width: 100%;
    max-width: 100%;
  }
  .cf-grid {
    grid-template-columns: 1fr;
    max-width: 100%;
  }
  .cf-f-f .cf-in {
    max-width: 100%;
  }
  .ft {
    min-height: 0;
    flex-direction: column;
    padding-bottom: 136px;
  }
  .ft-logo,
  .ft-info,
  .ft-top {
    position: static;
  }
  .ft-logo {
    margin-bottom: 24px;
  }
  .ft-info {
    margin-left: 0;
    margin-bottom: 24px;
  }
  .ft-dt {
    gap: 15px 30px;
  }
  .ft-top {
    margin-top: 24px;
  }
}

@media (max-width: 767px) {
  .sn {
    padding: 8px 8px;
  }
  .sn-lbl {
    font-size: 10px;
    letter-spacing: -0.03em;
  }
  .sn-item {
    padding: 6px 2px;
  }
  .sn-cta {
    padding: 6px 12px;
  }
  .sn-cta .sn-lbl {
    font-size: 10px;
  }
  .bc-list {
    flex-direction: column;
  }
  .bc {
    width: 100%;
    min-height: auto;
  }
  .sc-feat {
    gap: clamp(12px, 1.6vw, 20px);
  }
  .sc-txt {
    gap: 20px;
  }
  .ft {
    text-align: left;
  }
  .ft-info {
    align-items: flex-start;
  }
  .ft-dt {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
  .ft-d {
    gap: 6px;
  }
  .ft-top {
    display: none;
  }
}

/* --- 소형 모바일 (375px 이하): 잘림·넘침 방지, 레이아웃 세로 스택 --- */
@media (max-width: 375px) {
  .h-txt {
    width: calc(100% - 32px);
  }
  .cf-f {
    flex-wrap: wrap;
  }
  .cf-label {
    width: 100%;
    min-width: 0;
  }
  .cf-dot {
    display: none;
  }
  .cf-in {
    width: 100%;
  }
  .cf-req {
    flex-direction: column;
    gap: 12px;
  }
  .cf-rl {
    width: auto;
  }
  .cf-chk {
    flex-direction: column;
    gap: 16px;
    width: 100%;
  }
  .cf-ci {
    gap: 8px;
  }
  .ct-l1 {
    font-size: 16px;
  }
  .sol-scr {
    border-radius: 12px;
  }
  .sol-scr::before {
    border-radius: 12px;
  }
  .sn {
    padding: 6px 4px !important;
  }
  .sn-lbl {
    font-size: 9px !important;
  }
  .sn-cta {
    padding: 5px 10px !important;
  }
}
