.text-naver {
  color: #03CA5B !important
}

.text-primary {
  color: #333D48;
}


.custom-shadow {
  box-shadow: -30px 30px 80px rgba(0, 0, 0, 0.3);

}

.wrapper {
  display: flex;
  gap: 30px;
  align-items: flex-start;
  flex-direction: row;
}

.left-tabs {
  display: flex;
  flex-direction: column;
  gap: 15px;
  position: sticky;
  top: 20px;
}

.tab-btn {
  font-family: 'Pretendard';
  background: #F0F5FA;
  color: #C1C8D0;
  padding: 8px 20px;
  border-radius: 9999px;
  border: 1px solid #C1C8D0;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.4;
  white-space: nowrap;
  text-align: center;
  cursor: pointer;
  transition: background-color 0.3s, color 0.3s;
  box-sizing: border-box;
  min-width: auto;
  font-weight: 300;

}

.tab-btn:hover,
.tab-btn.active {
  background-color: #03CA5B;
  color: white;
  border: 1px solid #03CA5B;
  font-weight: 600;

}

.right-content {
  flex: 1;
  min-height: 250px;

}

.tab-content {
  display: none;
  animation: fadeIn 0.3s ease-in-out;
}

.tab-content.show {
  display: block;
}

.tab-content h3 {
  font-family: 'Pretendard';
  font-size: 30px;
  font-weight: 700;
  color: #202124;
  margin-bottom: 16px;
  width: 400px;
}

.tab-content p {
  font-family: 'Pretendard';
  font-size: 16px;
  color: #202124;
  line-height: 1.6;
  margin-bottom: 24px;
  font-weight: 400;
  width: 350px;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(10px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}


.nav-button>div {
  border-bottom: 2px solid transparent;
  transition: all 0.3s;
}

.nav-button.hovering>div {
  border-color: white;
}

.nav-button.active:not(.hovering-global)>div {
  border-color: white;
}

.icon-bg {
  width: 90px;
  height: 90px;
  flex-shrink: 0;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

@media (-webkit-min-device-pixel-ratio: 2),
(min-resolution: 192dpi) {
  .icon {
    background-image: url('icon@2x.png');
  }
}


.nav-button.active {
  border-bottom: 2px solid white;
  font-weight: 600;
  color: white;
}

.nav-button {
  color: white;
  font-size: 1rem;
  transition: all 0.3s;
}

@media (min-width: 768px) {
  .nav-button {
    font-size: 1.25rem;
    font-weight: 500;
  }
}

.nav-button:hover {
  color: white;
}

.no-scrollbar {
  -ms-overflow-style: none;
  scrollbar-width: none;
}

.no-scrollbar::-webkit-scrollbar {
  display: none;
}


.scrollbar-hide::-webkit-scrollbar {
  display: none;
}

/* 기본 스타일 */
html,
body {
  margin: 0;
  padding: 0;
  scroll-behavior: smooth;
  /* 전체 페이지에 부드러운 스크롤 적용 */
  overflow-x: hidden;
  /* 가로 스크롤 방지 */
}
.animated-element {
    will-change: transform;
}
body {
  overflow-x: hidden;
  position: relative;
}

/* 애니메이션 요소가 있는 페이지의 오버플로우 방지 */
main {
  overflow-x: hidden;
  overflow-y: visible;
  width: 100%;
  position: relative;
}

/* PC에서 애니메이션 중 스크롤바 방지 */
.loco-wrap {
  overflow: hidden;
  width: 100%;
}

/* 애니메이션이 진행되는 동안 스크롤바 방지 */
.is-animating {
  overflow: hidden !important;
}

/* 모바일에서 오버플로우 방지 */
@media (max-width: 1023px) {
  /* * {
    max-width: 100vw;
  } */

  html,
  body {
    width: 100%;
  }

  .loco-wrap {
    overflow-x: hidden;
    width: 100%;
  }

  main {
    overflow-x: hidden;
    width: 100%;
  }

  section {
    overflow-x: hidden;
    width: 100%;
  }
}

.loco-wrap {
  overflow-x: hidden;
  width: 100%;
}

main {
  overflow-x: hidden;
  width: 100%;
}

section {
  overflow-x: hidden;
  width: 100%;
}

/* 페이지 전환 애니메이션 */

/* 제목 텍스트 타이핑 애니메이션 - 완전히 새로운 방식 */
.typing-wrapper {
  position: relative;
  width: 100%;
  text-align: right;
}

.typing-text {
  color: white;
  font-size: 2.5rem;
  line-height: 1.5;
  text-align: right;
}

.line {
  display: block;
  position: relative;
  white-space: nowrap;
}

.cursor {
  display: inline-block;
  width: 24px;
  height: 5px;
  background-color: #FBC503;
  margin-left: 2px;
  animation: blink 1s infinite;
  vertical-align: bottom;
}

@keyframes blink {

  0%,
  100% {
    opacity: 1;
  }

  50% {
    opacity: 0;
  }
}

.bold {
  font-weight: bold;
}

/* 와글와글 애니메이션 */
.wiggle {
  animation: wiggle 1s ease-in-out infinite;
  transform-origin: center;
  display: inline-block;
}

@keyframes wiggle {

  0%,
  100% {
    transform: translateY(0);
  }

  25% {
    transform: translateY(-5px);
  }

  75% {
    transform: translateY(5px);
  }
}

.video-section {
  position: relative;
  z-index: 10;
}

/* 리뷰 슬라이더 */
#review-slider {
  transition: transform 0.3s ease-in-out;
  width: max-content;
  overflow-y: visible;
}


/* 모바일 환경에서는 슬라이더 처리 */
@media (max-width: 768px) {
  #review-slider {
    width: max-content;
  }

  .scroll-section {
    height: 100vh;
    /* 모바일에서도 섹션 높이 유지 */
    min-height: 100vh;
    width: 100%;
    overflow: hidden;
  }

  .video-section video {
    object-fit: cover;
    height: 100%;
    width: 100%;
  }
}

.fade-in-up {
  animation: fadeInUp 0.8s ease forwards;
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translate3d(0, 30px, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

/* 인터랙션 애니메이션 효과 */
.fade-in {
  opacity: 0;
  animation: fadeIn 1s ease forwards;
}

.fade-in-up {
  opacity: 0;
  animation: fadeInUp 0.8s ease forwards;
}

.fade-in-right {
  opacity: 0;
  animation: fadeInRight 0.8s ease forwards;
}

.fade-in-left {
  opacity: 0;
  animation: fadeInLeft 0.8s ease forwards;
}

.delayed-300 {
  animation-delay: 300ms;
}

.delayed-500 {
  animation-delay: 500ms;
}

.delayed-700 {
  animation-delay: 700ms;
}

.delayed-900 {
  animation-delay: 900ms;
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translate3d(0, 30px, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes fadeInRight {
  from {
    opacity: 0;
    transform: translate3d(-30px, 0, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes fadeInLeft {
  from {
    opacity: 0;
    transform: translate3d(30px, 0, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes scaleIn {
  from {
    opacity: 0;
    transform: scale(0.9);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}

.loco-wrap>.pin-spacer:nth-child(1) {
  height: auto !important;
  padding: 0 !important;
}

#section1 {
  position: relative;
}

.count-up {
  display: inline-block;
  min-width: 130px;
  text-align: left;
  /* 또는 원하는 정렬 */
}

@media (min-width: 1920px) {
  #section1-text-wrap {
    font-size: 4.5rem;
  }
}

#section1-video-wrap {
  width: calc(46.6667% + 0rem);
  height: calc(100vh - calc(var(--spacing) * 20) - 2rem);
}



@media (min-width:1040px) and (max-width:1400px) {
  #section1-text-wrap p {
    font-size: 70px;
  }
}


@media (min-width:1401px) and (max-width:1920px) {
  #section1-text-wrap p {
    font-size: 96px;
  }
}



@media (min-width: 768px) {
  .card-logo {
    height: 130px;
  }
  .card-text {
    height: 250px;
  }


  



}

@media (max-width: 767px) {
  .card-logo {
    height: 100px;
  }
  .card-text {
    height: 270px;
  }
}

div.grid_box{display: grid; grid-template-columns: 1fr 1fr; width: 100%; gap: 20px; row-gap: 100px;}
.flex .grid{gap:20px;}
/* #section2.caption_banner{background-color: #000; overflow: hidden; padding: 300px 0 320px 0;} */
.full-height {
    background-color: #000;
    /* color: white; */
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    font-size: 2rem;
    /* 초기 height 설정 */
    height: 100vh;
    min-height: 100%;
}
#section2.caption_banner02{padding: 120px 0;}
#section2.caption_banner02 .fz60{font-size: 60px;}
.recommend{padding: 120px 0px;}
.recommend .button{margin-bottom: 70px;}
.advertere{padding: 120px 0;}
.advertere_text{margin-bottom: 70px;}
.w100{width: 100%; max-width: 100%;}
.fz16{font-size: 16px;}
.fz18{font-size: 18px;}
.system{padding-top: 120px; padding-bottom: 120px;}
div.flex.flex_box{justify-content: center; margin-bottom: 70px;}
#section1-text-wrap p{font-size: 90px;}
#section1-text-wrap .count-up{font-size: 40px;}
.mo{display:none;}
.pc{display: block;}
/* 모바일 (최대 767px) */
@media (max-width: 767px) {
  
.count-up{width: 100%; min-width: auto;}
.flex_box_banner{justify-content: space-around; margin-bottom: 20px;}
.flex_box_banner .grid div p {text-align: center;}
.flex_box_banner .grid{margin-bottom: 20px;}
/* #section2.caption_banner{padding: 150px 0 160px 0;} */
#section2.caption_banner02{padding: 60px 0;}
#section2.caption_banner02 .fz60{font-size: 1.8rem;}
#section2.caption_banner02 .grid_img{margin-top: 40px; display: grid; grid-template-columns: 1fr 1fr 1fr;}
.recommend{padding: 60px 0px;}
.recommend .button{margin-bottom: 40px;}
.fz16{font-size: 16px;}
.max_width{width: 100%;}
/* .recommend .h40{height: 40px;} */
.testimonial-card{height: 450px;}
.advertere{padding: 60px 0;}
div.grid_box{display: grid; grid-template-columns: 1fr; width: 100%; gap: 20px; max-width: 100%;}
.w100{width: 100%; max-width: 100%;}
div.line{font-size: 2rem;}
div.text_caption{font-size: 1.5rem;}
div.flex.flex_box{justify-content: center; text-align: center; margin-bottom: 40px;}
.system{padding-top: 60px; padding-bottom: 60px;}
/* div.text_caption{justify-content: normal;}  */
 .mo{display:block;}
  .pc{display: none;}
   .full-height {
        height: auto;
    }
}

@media (max-width: 1500px){
  #section1-text-wrap p{font-size: 60px;}
  #section1-text-wrap .count-up{font-size: 24px;}
} 


/* 태블릿 (768px ~ 1023px) */
@media (min-width: 768px) and (max-width: 1023px) {
  .flex_box_banner{justify-content: space-around; margin-bottom: 20px;}
  .flex_box_banner .grid{text-align: center;}
  .flex_box_banner .grid .count-up{margin-top: 0;}
  .flex_box_banner .grid div p{margin-bottom: 20px; text-align: center;}
  .count-up{width: 100%; min-width:auto;}
  /* #section2.caption_banner{padding: 150px 0 160px 0;} */
  #section2.caption_banner02{padding: 60px 0;}
  #section2.caption_banner02 .fz60{font-size: 2rem;}
  #section2.caption_banner02 .grid_img{margin-top: 60px; display: grid; grid-template-columns: 1fr 1fr 1fr; }
  .recommend{padding: 60px 0px;}
  .recommend .button{margin-bottom: 40px;}
  .fz18{font-size: 18px;}
  .testimonial-card{height: 450px;}
  .advertere{padding: 60px 0;}
  .advertere_text{margin-bottom: 40px;}
  div.grid_box{display: grid; grid-template-columns: 1fr 1fr; width: 100%; gap: 20px; max-width: 100%; }
  .w100{width: 100%; max-width: 100%;}
  div.line{font-size: 2rem;}
  div.text_caption{font-size: 1.5rem;}
  div.flex.flex_box{justify-content: center; margin-bottom: 40px;}
  /* div.text_caption{justify-content: normal;}  */
  .system{padding-top: 60px; padding-bottom: 60px;}
  .mo{display:block;}
  .pc{display: none;}
   .full-height {
        height: auto;
    }
}