/* 공통 텍스트 css */
.forth-bottom-title .main-tit-small-txt,
.forth-bottom-title .main_tit .third-txt{
  color: #fff;
}
.main-tit-small-txt{
  font-family: "Pretendard Variable";
  color: var(--color-logo-skyBlue);
  font-size: 20px;
  font-weight: 300;
  letter-spacing: 0.2em;
  line-height: normal;
}
.main-tit-small-txt i {
  font-weight: 600;
}

/* main_tit: 글자 단위 마스크 (flex 미사용 — 줄바꿈·정렬 유지) */
/* 글자마다 span이 생기면 부모 letter-spacing(0.2em)이 과해 보임 → 분리 시만 자간 축소 */
.main_tit.main-tit-word-split
  .main-tit-small-txt:not(.main-tit-no-char-anim):not([data-no-char-anim]) {
  letter-spacing: 0.08em;
}
.forth-bottom-title
  .main_tit.main-tit-word-split
  .main-tit-small-txt:not(.main-tit-no-char-anim):not([data-no-char-anim]) {
  letter-spacing: 0.06em;
}
.main_tit.main-tit-word-split .main-tit-txt-box .first-txt,
.main_tit.main-tit-word-split .main-tit-txt-box .second-txt,
.main_tit.main-tit-word-split .main-tit-txt-box .third-txt,
.main_tit.main-tit-word-split .main-tit-txt-box .forth-txt {
  word-break: keep-all;
  letter-spacing: -0.03em;
}
.main_tit.main-tit-word-split .main-tit-char {
  display: inline-block;
  overflow: hidden;
  vertical-align: baseline;
  max-width: 100%;
  /* first-txt와 동일하게 — 미지정 시 행간이 커져 글자 마스크 높이가 텍스트보다 커짐 */
  line-height: 1;
}
/* 슬래시(/)만 좌우로 클립 여유 — 상하 패딩 없음(베이스라인 유지), margin으로 가로 폭 상쇄 */
.main_tit.main-tit-word-split .main-tit-char--slash {
  box-sizing: content-box;
  padding: 0 0.12em;
  margin: 0 -0.12em;
  vertical-align: baseline;
}
/* 일반 공백만 넣은 inline-block은 폭이 0으로 붕괴되는 경우가 있어 NBSP + 최소 폭 */
.main_tit.main-tit-word-split .main-tit-char--space {
  min-width: 0.28em;
}
.main_tit.main-tit-word-split .main-tit-char-in {
  display: inline-block;
  will-change: transform;
  line-height: 1;
}
.sec1 .main_tit {
  position: relative;
}
.sec1 .main_tit .main-tit-small-txt,
.sec1 .main_tit .main-tit-txt-box {
  will-change: transform;
}
.main-tit-small-txt .point{
  font-size: 20px;
}

/* 기본 상태 (공통 트랜지션) */
.fade-up,
.fade-left,
.fade-right {
  opacity: 0;
  transition: opacity 0.5s ease-in-out, transform 0.8s ease-in-out;
}

/* 위에서 fade-up */
.fade-up {
  transform: translateY(60px);
}
.fade-up.show {
  opacity: 1;
  transform: translateY(0);
}

/* 왼쪽에서 fade-left */
.fade-left {
  transform: translateX(-60px);
}
.fade-left.show {
  opacity: 1;
  transform: translateX(0);
}

/* 오른쪽에서 fade-right */
.fade-right {
  transform: translateX(60px);
}
.fade-right.show {
  opacity: 1;
  transform: translateX(0);
}

.main_tit.main-tit-word-split .sec3-main-bot-txt {
  word-break: keep-all;
  letter-spacing: -0.02em;
}

/* text-clip: ani.js GSAP y — 마스크 */
.text-clip {
  overflow: hidden;
}
.text-clip-inner {
  display: inline-block;
}

/* menu1_1 인사말 본문: 문단 스태거 (ani.js initSubFirstGreetingReveal) */
.sub-greeting-reveal {
  display: flex;
  flex-direction: column;
  width: 100%;
}

/* menu1_4 보유장비: GSAP stagger (ani.js initEquWrapReveal) */
.equ-wrap > .equ {
  backface-visibility: hidden;
}

@media (max-width: 600px) {
  .main_tit.main-tit-word-split
    .main-tit-small-txt:not(.main-tit-no-char-anim):not([data-no-char-anim]) {
    letter-spacing: 0.05em;
  }
}
.main_tit .first-txt{
  color: var(--color-desc-black);
  font-size: 46px;
  font-weight: 500;
  line-height: 1;
}
.main_tit .second-txt{
  color: var(--color-logo-navy);
  font-size: 46px;
  font-weight: 700;
  line-height: 1;
}
.main_tit .third-txt{
  color: #0F3768;
  font-size: 46px;
  font-weight: 700;
  line-height: 1;
}
.main_tit .forth-txt{
  color: var(--color-logo-navy);
  font-size: 46px;
  font-weight: 700;
  line-height: 1;
}
/* hover round ripple effect */
.ripple {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  border-radius: 50%;
  background: #fff;
  transform: translate(-50%, -50%);
  z-index: 1;
  transition: width 0.45s ease, height 0.45s ease;
}

/* view-more component */
.view-more {
  width: fit-content;
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 15px 25px;
  border-radius: 200px;
  color: #fff;
  font-family: "Pretendard Variable";
  background: transparent;
  z-index: 1;
  transition: 
  background 0.4s ease,
  border-color 0.4s ease;
  cursor: pointer;
  backdrop-filter: blur(3px);
}

.view-more a{
  display: flex;
  gap: 10px;
  align-items: center;
}

.view-more::before {
  pointer-events: none;
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 200px;
  padding: 1px;
  background: linear-gradient(
    90deg,
    #1D509A,
    #2f66b3,
    #4f86cc,
    #7aa6df,
    #c8d9f2,
    #1D509A
  );
  background-size: 300% 100%;
  animation: gradientMove 5s linear infinite;
  -webkit-mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
}
@keyframes gradientMove {
  0% { background-position: 0% 0; }
  100% { background-position: 300% 0; }
}
 .health__slider .swiper-slide .swiper__title .view-more span:first-child{
  line-height: 1;
  color: var(--color-logo-deepBlue);
}

.health__slider .swiper-slide .swiper__title .view-more:hover a > span:first-child {
  color: #fff;
}

.view-more .hover-plus{
  width: 10px;
  height: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transform: rotate(0deg);
  transition: transform 0.55s cubic-bezier(0.4, 0, 0.2, 1);
}
.view-more .hover-plus img {
  display: block;
  transition: filter 0.35s ease;
}
.view-more:hover {
  background: #1D509A;
}
.view-more:hover a {
  color: #fff;
}
.health__slider .swiper-slide .view-more:hover p {
  color: #fff;
}
.view-more:hover .hover-plus img {
  filter: brightness(0) invert(1);
}
/* hover 시 회전 (inline 요소는 transform 미적용 → inline-flex + transition 필요) */
.view-more:hover .hover-plus {
  transform: rotate(360deg);
}
.sub2-bottom-wrap .bot-card-wrap.swiper{
  overflow: visible;
}
