/* ===== VISION_3IMG_v1 (제목 마스크 채움 + 마우스 팔로워 MORE + 항목 링크) ===== */

/* 헤더 (타이틀 + MORE) */
.VISION_3IMG_v1 .v3img_header {
  width: 100%;
  float: left;
  position: relative;
}
.VISION_3IMG_v1 .v3img_titles {
  width: 100%;
  float: left;
}

/* ── 제목 마스크 채움 효과 (스크롤시 연한 글씨가 좌→우로 채워짐, JS가 backgroundSize 애니메이션) ── */
.VISION_3IMG_v1 .v3img_mask,
.VISION_3IMG_v1 .v3img_mask * {
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: var(--v3-mask-faint, rgba(17, 17, 17, 0.1));
}
.VISION_3IMG_v1 .v3img_mask {
  background-image: linear-gradient(var(--v3-mask-color, #111), var(--v3-mask-color, #111));
  background-size: 0 100%;
  background-repeat: no-repeat;
}
/* 관리자 모드: 편집힌트 ::before/hover 배경이 background-clip:text를 깨뜨림 → 보호 */
.VISION_3IMG_v1 .v3img_mask.wg_edit_title::before {
  content: none !important;
}
.VISION_3IMG_v1 .v3img_mask.wg_edit_title:hover {
  background-color: transparent !important;
}

/* ── 제목 마스크 등장 효과 (자기 영역 아래에서 올라옴, step123_v1 desc 방식)
   래퍼가 overflow:hidden 마스크 역할, 제목이 통째로 이동 → background-clip:text 채움 마스크와 공존
   초기 숨김은 JS(gsap.set)가 아닌 CSS로 처리, JS가 yPercent 110→0 애니메이션 ── */
.VISION_3IMG_v1 .v3img_rise {
  overflow: hidden;
  position: relative; /* JS가 offsetTop으로 글자 위치 실측 (마스크를 글자 높이에 맞춤) */
}
.VISION_3IMG_v1 .v3img_rise > .sub_stit {
  transform: translateY(110%);
}

/* MORE 기본 버튼 */
.VISION_3IMG_v1 .v3img_more {
  position: absolute;
  right: 0;
  bottom: 0;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  color: #333;
  font-size: 14px;
  font-weight: 500;
  transition: color 0.3s;
}
.VISION_3IMG_v1 .v3img_more:hover { color: #000; }
.VISION_3IMG_v1 .v3img_more_icon {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1px solid #ccc;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  transition: all 0.3s;
}
.VISION_3IMG_v1 .v3img_more:hover .v3img_more_icon {
  background: #333;
  border-color: #333;
  color: #fff;
}

/* 카드 영역 - INNER 안 100% */
.VISION_3IMG_v1 .v3img_area {
  width: 100%;
  float: left;
  position: relative;
  margin-top: clamp(30px, calc(2.34vw + 22.5px), 60px);
}

/* 카드 컨테이너 */
.VISION_3IMG_v1 .v3img_cards {
  display: flex;
  align-items: stretch;
  position: relative;
  z-index: 2;
  min-height: var(--v3-h-pc, 54rem);
}

/* 개별 카드 */
.VISION_3IMG_v1 .v3img_card {
  flex: 1;
  display: flex;
  align-items: flex-end;
  cursor: pointer;
  position: relative;
}
.VISION_3IMG_v1 .v3img_card:not(:first-child) {
  border-left: 1px solid rgba(255, 255, 255, 0.36);
}

/* 카드 바디 */
.VISION_3IMG_v1 .v3img_card_body {
  padding: clamp(24px, calc(1.25vw + 20px), 40px);
  width: 100%;
}

/* 카드 제목 */
.VISION_3IMG_v1 .v3img_txt1 {
  display: block;
  font-weight: 700;
  font-size: clamp(18px, calc(0.63vw + 16px), 26px);
  color: rgba(255, 255, 255, 0.6);
  transition: color 0.8s cubic-bezier(0.4, 0, 0.2, 1);
  letter-spacing: -0.5px;
}
.VISION_3IMG_v1 .v3img_card.active .v3img_txt1 {
  color: #fff;
}

/* 카드 설명 — 평상시 높이 0으로 접힘 → active 시 실제 높이만큼 펼쳐지며 txt1을 위로 밀어올림
   (max-height 실측값은 JS(v3imgActivate)가 인라인으로 설정) */
.VISION_3IMG_v1 .v3img_txt2 {
  margin-top: 0;
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  translate: 0 12px;
  color: #fff;
  font-size: clamp(13px, calc(0.31vw + 12px), 16px);
  line-height: 1.6;
  transition:
    max-height 0.8s cubic-bezier(0.22, 1, 0.36, 1),
    margin-top 0.8s cubic-bezier(0.22, 1, 0.36, 1),
    opacity 0.5s ease 0.15s,
    translate 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.05s;
}
.VISION_3IMG_v1 .v3img_card.active .v3img_txt2 {
  max-height: 260px; /* JS 미동작 시 fallback — 평소엔 인라인 실측값이 우선 */
  margin-top: 10px;
  opacity: 1;
  translate: 0 0;
}

/* ── 마우스 팔로워 MORE 버튼 (JS 주입, 메인컬러 + 유리 느낌) ── */
.VISION_3IMG_v1 .v3img_card.v3img_card_haslink {
  cursor: pointer;
}
.VISION_3IMG_v1 .v3img_cursor {
  position: absolute;
  top: 0;
  left: 0;
  width: clamp(64px, calc(1.56vw + 59px), 84px);
  height: clamp(64px, calc(1.56vw + 59px), 84px);
  border-radius: 50%;
  background: var(--v3-cursor-bg, var(--primary, #FF6E00));
  background: var(--v3-cursor-bg, color-mix(in srgb, var(--primary, #FF6E00) 55%, transparent));
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.15);
  color: var(--v3-cursor-color, #fff);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: clamp(12px, calc(0.16vw + 11.5px), 14px);
  font-weight: 700;
  letter-spacing: 0.08em;
  pointer-events: none;
  z-index: 10;
  will-change: transform;
  transform: translate(-50%, -50%) scale(0);
  transition: width 0.25s ease, height 0.25s ease;
}
.VISION_3IMG_v1 .v3img_cursor span {
  transition: opacity 0.15s ease;
}
/* 카드 텍스트 위에서는 5px 점으로 축소 (MORE 글자 숨김) */
.VISION_3IMG_v1 .v3img_cursor.v3img_cursor_dot {
  width: 5px;
  height: 5px;
}
.VISION_3IMG_v1 .v3img_cursor.v3img_cursor_dot span {
  opacity: 0;
}

/* 배경 이미지 영역 - INNER 안 100% (모서리 라운드는 톱니 설정 --v3-radius) */
.VISION_3IMG_v1 .v3img_bgs {
  overflow: hidden;
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: var(--v3-radius, 0);
}

/* 개별 배경 */
.VISION_3IMG_v1 .v3img_bg {
  position: absolute;
  inset: 0;
  opacity: 0;
  scale: 1.08;
  filter: blur(8px);
  transition:
    scale 1.2s cubic-bezier(0.16, 1, 0.3, 1),
    opacity 1s cubic-bezier(0.4, 0, 0.2, 1) 0.05s,
    filter 1.2s cubic-bezier(0.16, 1, 0.3, 1);
}
.VISION_3IMG_v1 .v3img_bg.active {
  opacity: 1;
  scale: 1;
  filter: blur(0);
}

/* 오버레이 */
.VISION_3IMG_v1 .v3img_bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, var(--v3-overlay, 0.24));
  pointer-events: none;
  z-index: 1;
}

/* 배경 이미지 - v3img_bg 안 모든 img */
.VISION_3IMG_v1 .v3img_bg img {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center center !important;
}

/* ===== 모바일 ===== */
@media screen and (max-width: 992px) {
  .VISION_3IMG_v1 .v3img_cards {
    flex-direction: column;
    min-height: 0;
  }
  .VISION_3IMG_v1 .v3img_card {
    flex: none;
    width: 100%;
    min-height: var(--v3-h-mo, 26rem);
  }
  .VISION_3IMG_v1 .v3img_card:not(:first-child) {
    border-left: none;
    border-top: 1px solid rgba(255, 255, 255, 0.36);
  }
  .VISION_3IMG_v1 .v3img_card_body {
    padding: 24px;
  }
  .VISION_3IMG_v1 .v3img_cursor {
    display: none;
  }
}

@media screen and (max-width: 640px) {
  .VISION_3IMG_v1 .v3img_card {
    min-height: 22rem;
  }
  .VISION_3IMG_v1 .v3img_more {
    position: relative;
    margin-top: 10px;
    float: right;
  }
}
