/* BASIC css start */
@charset "UTF-8";

* 
{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* 상품 테이블 스타일 */
#bike1_product .product-table 
{
    width: 100%;
    max-width: 1440px;
    margin: 0 auto;
    border-collapse: separate;
    border-spacing: 0;
}
        
#bike1_product .product-cell 
{
    
}
        
/* 상품 카드 */
#bike1_product .product-card {
    position: relative;
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    transition: box-shadow 0.3s ease;
}

#bike1_product .product-card:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

/* 이미지 컨테이너 */
#bike1_product .product-image-wrapper 
{
    position: relative;
    width: 100%;
    overflow: hidden;
    border-radius: 8px;
}

#bike1_product .product-image-wrapper a img
{
    border-radius: 8px;
}

#bike1_product .product-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.25s ease;
}

#bike1_product .product-card:hover .product-image {
    transform: scale(1.1);
}

/* 품절 오버레이 */
#bike1_product .soldout-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
}

#bike1_product .soldout-text {
    color: #fff;
    font-size: 18px;
    font-weight: 700;
    text-transform: uppercase;
}

/* 상품 정보 */
#bike1_product .product-info {
    padding: 16px;
}

#bike1_product .product-name 
{
    font-size: 14px;
    color: #111;
    line-height: 1.5;
    margin-bottom: 8px;
    min-height: 42px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
        
#bike1_product .product-name a 
{
    font-size: 1.125rem;
    line-height: 1.75rem;
    font-weight: 600;
    color: #222 !important;
    line-height: 1.5 !important;
    text-decoration: none;
}
        
#bike1_product .product-name a:hover 
{
    color: #666;
}

/* 구분선 - 호버 시 색상 변경 */
#bike1_product .product-divider {
    display: block;
    content: "";
    height: 1px;
    background: #eaeaea;
    margin-top: 9px;
    margin-bottom: 12px;
    transition: all 0.55s ease;
}

#bike1_product .product-card:hover .product-divider 
{
    background: #a8a8a9;
}

/* 가격 */
#bike1_product .product-price 
{
    font-size: 16px;
    font-weight: 700;
    color: #111;
    margin-bottom: 16px;
}

#bike1_product .price-consumer {
    font-size: 13px;
    color: #999;
    text-decoration: line-through;
    margin-right: 6px;
}

#bike1_product .price-sell 
{
    color: #d73434;
}

/* 액션 버튼 - 호버 시 표시 */
#bike1_product .product-actions {
    display: flex;
    align-items: center;
    justify-content: end;
    opacity: 0;
    transform: translateY(10px);
    transition: all 0.3s ease;
}

#bike1_product .product-card:hover .product-actions {
    opacity: 1;
    transform: translateY(0);
}

#bike1_product .action-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    margin: 0 4px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 50%;
    cursor: pointer;
    transition: all 0.2s ease;
}

#bike1_product .action-btn:hover 
{
    background: #404040;
    border-color: #404040;
}

#bike1_product .action-btn:hover svg 
{
    stroke: #fff;
}

#bike1_product .action-btn svg 
{
    width: 18px;
    height: 18px;
    stroke: #111;
    transition: stroke 0.2s ease;
}
        
/* Swiper 제어 */
/* 반응형 이미지 비율 유지 (1920:600 = 16:5) */
.main-visual-wrapper 
{
    position: relative;
    width: 100%;
    overflow: visible;
    background: #f0f0f0;
}

.main-visual-wrapper .swiper {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.swiper-slide {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}

.swiper-slide img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

@media (min-width: 1920px) 
{
    /* swiper-slide 내부의 모든 이미지에 object-fit: none 적용 */
    .swiper-slide img 
    {
        object-fit: none !important; /* !important를 사용하여 다른 스타일보다 우선 적용 */
        object-position: center center; /* none 적용 시 이미지 중앙 정렬 (선택 사항) */
    }
}

/* Prev/Next 버튼 - SVG 화살표 아이콘, 회색 배경, 왼쪽 10% 오른쪽 9% 위치 */
.swiper-button-prev, .swiper-button-next 
{
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%);
    z-index: 20 !important;
    width: 40px !important;
    height: 50px !important;
    background: rgba(150, 150, 150, 0.3);
    border: none;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

.swiper-button-prev 
{
    left: 2% !important;
}

.swiper-button-next {
    right: 1.75% !important;
}

.swiper-button-prev:hover, .swiper-button-next:hover 
{
    background: rgba(0, 0, 0, 0.35) !important;
}

/* SVG 아이콘 스타일 */
.swiper-button-prev svg, .swiper-button-next svg 
{
    width: 24px !important;
    height: 24px !important;
    stroke: white !important;
    fill: none !important;
    stroke-width: 2 !important;
}

/* Swiper 기본 아이콘 제거 */
.swiper-button-prev::after, .swiper-button-next::after 
{
    content: '' !important;
}

/* 페이지네이션 컨테이너 - 중앙 정렬 */
.swiper-pagination 
{
    position: absolute;
    bottom: 20px !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    width: auto !important;
    display: flex;
    gap: 6px;
    justify-content: center;
}

/* 페이지네이션 버튼 - 회색 계열로 변경 */
.swiper-pagination-bullet 
{
    background: rgba(120, 120, 120, 0.4) !important;
    opacity: 1 !important;
    width: 24px !important;
    height: 5px !important;
    margin: 0 !important;
    padding: 0 !important;
    transition: all 0.3s ease !important;
    border: none !important;
    border-radius: 0 !important;
    cursor: pointer !important;
    flex-shrink: 0 !important;
}

.swiper-pagination-bullet-active 
{
    background: rgba(0, 0, 0, 0.7) !important;
    width: 40px !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15) !important;
}

/* 프로그래스 바 - 회색 배경, 진한 회색 진행도 */
.progress-bar-wrapper 
{
    position: absolute;
    bottom: 45px;
    left: 50%;
    transform: translateX(-50%);
    width: auto;
    min-width: 220px;
    z-index: 10;
}

.progress-bar-container 
{
    height: 3px;
    background: rgba(120, 120, 120, 0.3);
    overflow: hidden;
    width: 100%;
}

.progress-bar-fill 
{
    height: 100%;
    background: rgba(0, 0, 0, 0.45);
    width: 0%;
    transition: width 0.1s linear;
}

/* 숨겨진 슬라이드 */
.swiper-slide-hidden 
{
    display: none !important;
}

/* 모바일 반응형 조정 */
@media (max-width: 1023px)
{
    .swiper-pagination 
    {
        /* 페이지네이션을 더 아래로 내림 (기존 PC: 20px, 모바일: 14px -> 20px 정도로 다시 조정) */
        bottom: 14px !important; /* 기존 768px 스타일 유지 */
    }
}
@media (max-width: 768px) 
{
    .swiper-button-prev, .swiper-button-next 
    {
        width: 40px;
        height: 40px;
    }

    .swiper-button-prev svg, .swiper-button-next svg 
    {
        width: 20px;
        height: 20px;
    }

    .swiper-button-prev 
    {
        left: 10%;
    }

    .swiper-button-next 
    {
        right: 9%;
    }

    .swiper-pagination 
    {
        bottom: 14px !important;
    }

    .swiper-pagination-bullet 
    {
        width: 20px;
        height: 4px;
    }

    .swiper-pagination-bullet-active 
    {
        width: 28px;
    }

    .progress-bar-wrapper 
    {
        bottom: 16px;
        min-width: 150px;
    }
}
        
/* 이벤트 배너 제어 
.small-banner-container 
{
  width: 100vw;
  max-width: 1440px;
  margin: 0 auto;
}

.small-banner-container ul 
{
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  padding: 0;
  margin: 0;
  list-style: none;
}

.small-banner-container li 
{
    width: 50%;
    flex: 0 0 50%;
}

.small-banner-container li a 
{
    display: block;
    overflow: hidden;
}

.small-banner-container li a img 
{
    transition: transform 0.3s ease;
}*/

/* 1200px 이상: 50% / 50% 가로 배치   
@media (min-width: 1200px) 
{
    .small-banner-container li 
    {
        width: 50%;
        flex: 0 0 50%;
    }
    .small-banner-container li a:hover img 
    {
      transform: scale(1.0125);
    }
}
@media (max-width: 1440px) 
{
    .small-banner-container 
    {
        margin: 0;
    }
}*/

/* 1200px 미만일 때 기기 실제 폭에 맞추기 */
/*@media (max-width: 1200px) 
{
    .small-banner-container 
    {
        width: 100vw; 
        max-width: none;
        margin: 0;
    }
    
    .small-banner-container li 
    {
        width: 100%;   
        display: block;   
    }
    
    .small-banner-container li a img 
    {
        width: 100%;          
        height: auto;
        display: block;
    }
}*/
/* 이벤트 배너 제어 */

/*  서비스 섹션(푸터 위)  */
/* 소셜 아이콘 */
.social-icon {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #d9d9d9;
  color: #4a4a4a;
  transition: all 0.3s ease;
  cursor: pointer;
  text-decoration: none;
  filter: grayscale(100%);
}

/* YouTube - 사각형 배경 */
.social-icon[data-icon="youtube"] 
{
  border-radius: 8px;
}

/* Hover Effects */

/* Facebook - 파란색 */
.social-icon[data-icon="facebook"]:hover 
{
  background-color: #1877f2;
  color: white;
  filter: grayscale(0%);
  transform: scale(1.05);
}

/* 네이버 */
.social-icon[data-icon="naver"]:hover 
{
  background-color: #00c73c;
  color: white;
  transform: scale(1.05);
  filter: grayscale(0%);
}

/* YouTube - 빨간색 */
.social-icon[data-icon="youtube"]:hover 
{
  background-color: #ff0000;
  color: white;
  filter: grayscale(0%);
  transform: scale(1.05);
}

/* Instagram - 그라데이션 */
.social-icon[data-icon="instagram"]:hover 
{
  background: linear-gradient(45deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%);
  color: white;
  filter: grayscale(0%);
  transform: scale(1.05);
}

.more-link 
{
    font-size: 14px;
    color: #444444;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
    display: inline-flex;
    align-items: center;
    /*gap: 4px;*/
}

.more-link-arrow 
{
    display: inline-block;
    margin-left: -13px;
    transition: margin-left 0.35s ease;
    opacity: 0;
}

.more-link:hover .more-link-arrow 
{
    margin-left: 4px;
    opacity: 1;
}
/*  서비스 섹션(푸터 위)  */

/* 납품실적 섹션 */
#performance .carousel-container 
{
  position: relative;
  overflow: hidden;
}

#performance .carousel-swiper 
{
    margin: 0;
    padding: 0;
}

/* 오른쪽만 다음 슬라이드가 보이도록 padding-right 추가 */
#performance .carousel-swiper .swiper-wrapper {
  display: flex !important;
  gap: 0px !important;
  padding-right: 0px !important;
}

/* 이미지 크기 축소: calc((100% - 40px) / 3.2)로 변경 */
#performance .carousel-swiper .swiper-slide 
{
  width: calc((100% - 30px * 2) / 3) !important;
  overflow: hidden !important;
  border-radius: 0px;
  aspect-ratio: 16 / 9 !important;
  transition: all 0.35s ease-out
}

#performance .carousel-swiper .swiper-slide:hover
{
    border-radius: 0 60px 0 60px;
}

#performance .carousel-swiper .swiper-slide a {
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

#performance .carousel-swiper .swiper-slide img {
  width: 100%;
  height: 100%;
  object-fit: fill;
  transition: all 0.65s ease-out;
}

#performance .carousel-swiper .swiper-slide:hover img 
{
    transform: scale(1.015);
    filter: brightness(0.675);
}


/* 프로그래스바 */
#performance .progress-bar-carousel 
{
  height: 2px;
  background-color: #e0e0e0;
  margin-top: 32px;
  position: relative;
  width: 100%;
}

/* 프로그래스바 초기값 0%에서 시작 */
#performance .progress-fill-carousel 
{
  height: 100%;
  background-color: #3c3c3c;
  transition: width 0.6s ease-out;
  width: 0%;
}

#performance .nav-button {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid #3c3c3c;
  background: transparent;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #3c3c3c;
  font-size: 18px;
  transition: all 0.45s ease;
}

#performance .nav-button:hover 
{
    color: white;
    background-color: #4b4b4b;
    border: none;
}

#performance .desc-text {
  line-height: 1.6;
}

/* 반응형 설정 */
/* 1024px 미만 (모바일/태블릿) 스타일 통합: 1023px 이하 */
@media (max-width: 1023px) 
{ 
    /* 모바일/태블릿에서 좌우 여백을 무시하고 전체 너비로 확장 */
    #performance .carousel-swiper 
    {
        margin: 0 -24px !important; 
        padding: 0 24px !important; 
    }
    
    /* 769px ~ 1023px (태블릿)에서 3개 노출 CSS 계산 */
    #performance .carousel-swiper .swiper-slide 
    {
        width: calc((100% - 20px * 2) / 3) !important; // 3개 노출, 간격 20px
    }
}


/* 1024px 이상 (PC) 스타일 */
@media (min-width: 1024px)
{
    /* PC 환경 (HTML 컨테이너: lg:px-0) */
    #performance .carousel-swiper
    {
        /* 마진 제거 */
        margin: 0 !important; 
        /* 컨테이너 패딩이 0이 되었으므로 Swiper 자체에 좌우 24px 패딩 부여 */
        padding-left: 0 !important; 
        padding-right: 0 !important;
    }

    /* PC 환경 (1024px 이상)에서 3개 노출 CSS 계산 */
    #performance .carousel-swiper .swiper-slide 
    {
        /* JS의 spaceBetween: 30에 맞춤.*/
        width: calc((100% - 30px * 2) / 3) !important; // 3개 노출, 간격 30px
    }
}
@media (max-width: 768px) 
{
  #performance .carousel-swiper .swiper-slide 
  {
    width: calc((100% - 10px) / 2) !important;
  }

  #performance .carousel-swiper .swiper-wrapper 
  {
    /* 다음 슬라이드 프리뷰 패딩 제거 */
    padding-right: 0px !important; 
  }

  #performance .nav-button 
  {
    width: 36px;
    height: 36px;
    font-size: 14px;
  }

  #performance .carousel-section 
  {
    padding: 0 16px;
    padding-top: 48px;
    padding-bottom: 48px;
  }
  
     /* 모바일에서는 hover radius 절반이하 */
    #performance .carousel-swiper .swiper-slide:hover
    {
        border-radius: 0 25px 0 25px;
    }
}
/*  납품실적  */

div.guide_line
{
    width: 100vw;
    margin-left: calc(-50vw + 50%);
    height: 1px;
    background-color: rgb(229 231 235 / var(--tw-border-opacity, 1))
}

h2.highlighter1, h2.highlighter2
{
    font-family: "Poppins", sans-serif;
}
h2.highlighter1::after, h2.highlighter2::after
{
    content: '';
    position: absolute;
    display: block;
    bottom: 2px;
    left: 0;
    height: 18px;
    /*background: linear-gradient(to top, #dee4f9 40%, transparent 40%);*/
    width: 0; 
    z-index: -1;
    /* 트랜지션 설정: AOS 클래스 추가 시 1.5초 동안 부드럽게 너비 변화 */
    transition: width 1s linear; 
    transform-origin: left; /* 왼쪽에서 시작 */
}
/* CSS 수정: 화면에 보일 때 적용될 클래스 정의 */
h2.highlighter1.aos-animate::after , h2.highlighter2.aos-animate::after
{
    width: 100%; /* AOS가 클래스를 추가하면 너비가 100%로 애니메이션 */
}

/*h2.highlighter1[data-aos].aos-animate 
{
    opacity: 1 !important;
    transform: none !important;
}*/

h2.highlighter1::after
{
    background: #dee4f9;
}
h2.highlighter2::after
{
    background: #f5d8d8;
}
/* BASIC css end */

