div a:hover {
  text-decoration: none;
}
		
		/* 기본 슬라이더 컨테이너 */
        .slider {
            position: relative;
            width: 100%;
            height: 1250px;
            overflow: hidden;
            cursor: grab;
            -webkit-user-select: none;
            -moz-user-select: none;
            -ms-user-select: none;
            user-select: none;
            -webkit-touch-callout: none;
            touch-action: pan-y;
        }

        .slider.dragging {
            cursor: grabbing;
        }
        
        /* 모든 슬라이드를 감싸는 단일 트랙 */
        .slides-track {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
        }

        /* 개별 슬라이드 요소 */
        .slide {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-size: cover;
            background-position: center;
            opacity: 0;
            z-index: 1;
        }
        
        /* 활성화된 슬라이드만 보이게 함 */
        .slide.active {
            opacity: 1;
            z-index: 2;
        }

        /* 오버레이 추가 */
        .overlay {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0, 0, 0, 0.3);
            z-index: 3;
            pointer-events: none;
        }

        /* 텍스트 영역 */
        .content {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            width: 100%;
            max-width: 1200px;
            color: white;
            padding: 0 20px;
            z-index: 4;
            text-align: left;
            text-shadow: 1px 1px 5px rgba(0, 0, 0, 0.8);
            pointer-events: none;
        }

        .title {
            font-size: 50px;
            color: #fff;
            font-weight: bold;
            margin-bottom: 20px;
            font-family: 'NanumSquareNeoExtraBold', sans-serif;
        }

        .subtitle {
            font-size: 25px;
            color: #fff;
            line-height: 1.5;
            margin-bottom: 30px;
            font-family: 'NanumSquareNeo', sans-serif;
        }

        .btn1 {
            display: inline-block;
            padding: 18px 30px 15px 30px;
            background-color: #f66f0d;
            color: #fff;
            font-size: 30px;
            font-weight: 500;
            text-decoration: none;
            border-radius: 40px;
            transition: all 0.3s ease;
            text-shadow: none;
            font-family: 'NanumSquareNeoBold', sans-serif;
            pointer-events: auto;
        }

        .btn1:hover {
            background-color: #fff;
            color: #111;
            text-decoration: none;
        }

        .arrow {
            position: absolute;
            top: 50%;
            color: #fff;
            transform: translateY(-50%);
            background-color: rgba(255, 255, 255, 0);
            border: none;
            font-size: 40px;
            padding: 8px 12px;
            cursor: pointer;
            z-index: 5;
            transition: background-color 0.3s;
            pointer-events: auto;
        }

        .arrow:hover {
            background-color: rgba(255, 255, 255, 0);
            color: #f3f3f3;
        }

        .arrow.left { left: 10px; }
        .arrow.right { right: 10px; }

        /* Navigation Dots */
        .navigation-dots {
            position: absolute;
            bottom: 30px;
            left: 50%;
            transform: translateX(-50%);
            z-index: 5;
            display: flex;
            gap: 10px;
            pointer-events: auto;
        }

        .dot {
            height: 15px;
            width: 15px;
            background-color: #ffffff;
            border-radius: 50%;
            opacity: 0.5;
            transition: opacity 0.3s ease;
            cursor: pointer;
        }

        .dot.active {
            opacity: 1;
            background-color: #f66f0d;
        }

        @media (max-width: 1200px) {
            .slider { height: 700px; }
            .title { font-size: 40px; }
            .subtitle { font-size: 25px; }
            .btn1 { font-size: 25px; padding: 10px 24px; }
            .content {
                left: 80px;
                transform: translateY(-50%);
                padding-right: 80px;
            }
        }

        @media (max-width: 768px) {
            .slider { height: 550px; }
            .title { font-size: 35px; }
            .subtitle { font-size: 16px; }
            .btn1 { font-size: 20px; padding: 10px 24px; }
            .content {
                left: 30px;
                padding-right: 50px;
            }
            .arrow { font-size: 24px; }
        }




/* 메인하단 4개이미지 */

/* ========== 변수 ========== */
:root{
  --wrap-bg: #fff;
  --accent: #f66f0d;
  --btn-radius: 28px;
  --container-max: 1600px;
  --gap: 30px;
  --text-dark: #111;
}

/* ------------------------------------------- */
/* AOS 애니메이션 정의 */
/* 아래에서 위로 올라오며 투명도가 사라지는 애니메이션 */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(40px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* 애니메이션 기본 클래스 (초기 상태 숨김) */
.animate-item {
  opacity: 0;
  transform: translateY(40px);
}

/* 애니메이션 적용 클래스 */
.fade-in-up {
  animation: fadeInUp 0.7s ease-out forwards;
}

/* ------------------------------------------- */


/* ========== 전체 wrapper (full width) ========== */
.wrapper5{
  width:100%;
  background:var(--wrap-bg);
  padding: 60px 0;
}

/* 가운데 정렬된 container, 최대 1600px */
.container5 {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0px var(--gap) 0px var(--gap); /* 데스크탑 좌우 여백을 --gap으로 통일 */
}

/* 카드 레이아웃 (데스크탑: 왼쪽 소개 + 오른쪽 3개 컬럼) */
.section-row{
  display:flex;
  align-items:flex-start;
  gap: var(--gap);
}

/* 왼쪽 소개 영역 */
.intro {
  flex: 0 0 42%;  
  gap:22px;
}
.intro .intro-image {
  width:100%;
  border-radius:18px;
  overflow:hidden;
  display:block;
  box-shadow: 0 8px 30px rgba(0,0,0,0.08);
}
.intro .intro-image img{
  display:block;
  width:100%;
  height: auto;
  -o-object-fit:cover;
  object-fit:cover;
  transition: transform 400ms cubic-bezier(.2,.8,.2,1);
  -webkit-transition: -webkit-transform 400ms cubic-bezier(.2,.8,.2,1);
}
/* 이미지 안에서 조금 확대 (hover) */
.intro .intro-image:hover img{
  transform: scale(1.04);
  -webkit-transform:scale(1.04);
}

.intro h3{
  font-size:22px;
  margin:22px 0 6px;
  color: #333;
  font-weight:500;   
font-family:'NanumSquareNeoBold', sans-serif;
}
.intro .brand {
  font-size:44px;
  color:var(--accent);
  font-weight:700;
  margin-bottom:12px;
  line-height:1;
}
.intro p{
  color:#333;
  font-size:16px;
  margin-bottom:22px;
font-family:'NanumSquareNeo', sans-serif;
}

.cta {
  display:inline-block;
  border-radius: var(--btn-radius);
  padding: 12px 22px;
  background: var(--accent);
  color: #fff;
  border: 2px solid var(--accent);
  text-decoration:none;
  font-weight:600;
  transition: all 180ms ease;
  -webkit-transition: all 180ms ease;
  box-shadow: 0 6px 16px rgba(246,111,13,0.12);
}
.cta:hover, .cta:focus{
  background:#fff;
  color:var(--text-dark);
  outline:none;
  box-shadow: 0 6px 18px rgba(0,0,0,0.06);
}

/* 오른쪽 카드 그룹 */
.cards {
  flex: 0 0 58%;
  display:flex;
  gap:22px;
  align-items:stretch;
}

.card {
  flex:1 1 0;
  position:relative;
  border-radius:18px;
  overflow:hidden;
  min-height: 820px; /* 세로로 긴 카드 */
  display:flex;
  align-items:flex-end; /* 텍스트/버튼은 하단 우측에 위치 */
  justify-content:flex-end;
  box-shadow: 0 10px 30px rgba(18,18,18,0.06);
  transition: transform 320ms ease;
  -webkit-transition: -webkit-transform 320ms ease;
  background: linear-gradient(180deg, rgba(0,0,0,0.12), rgba(0,0,0,0.18));
}

.card:hover{
  transform: translateY(-6px);
  -webkit-transform: translateY(-6px);
}

.card .card-media{
  position:absolute;
  inset:0;
  overflow:hidden;
}
.card .card-media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transform: scale(1);
  transition: transform 480ms cubic-bezier(.2,.8,.2,1);
  -webkit-transition: -webkit-transform 480ms cubic-bezier(.2,.8,.2,1);
  -webkit-transform-origin:center center;
  transform-origin:center center;
  will-change:transform;
}

/* hover 시 이미지 확대 (카드 내부에서만) */
.card:hover .card-media img{
  transform: scale(1.06);
  -webkit-transform:scale(1.06);
}

/* 콘텐츠 오버레이 (우측 하단 정렬) */
.card .overlay1{
  position:relative;
  z-index:2;
  width:100%;
  padding:28px 28px 36px 28px;
  display:flex;
  flex-direction:column;
  align-items:center; 
  gap:10px;
text-align:center; 
  color:#fff;
  background: linear-gradient(180deg, rgba(0,0,0,0.0) 10%, rgba(0,0,0,0.55) 70%);
}

/* 1. 비지니스 (.title) 아래 간격 제거 */
.card .title{
  font-size:24px;
  font-weight:700;
  letter-spacing:0.2px;
  font-family:'NanumSquareNeoBold', sans-serif;
  margin-bottom: 0;
}

/* 2. BUSINESS (.subtitle) 위 간격 제거 */
.card .subtitle{
  font-size:13px;
  margin-top: 0;
  margin-bottom:8px; /* 아래 버튼과의 간격은 8px로 유지 */
  font-family:'NanumSquareNeoBold', sans-serif;
}

.card .card-cta{
  display:inline-block;
  border-radius: 22px;
  padding:10px 18px;
  background: var(--accent);
  color: #fff;
  border:2px solid var(--accent);
  text-decoration:none;
  font-weight:700;
  transition: all 160ms ease;
  -webkit-transition: all 160ms ease;
}
.card .card-cta:hover, .card .card-cta:focus{
  background:#fff;
  color:var(--text-dark);
  outline:none;
}


/* PC 환경 (1200px 초과)의 레이아웃 조정 */
@media (min-width: 1201px) {
  
  .section-row {
    display: flex;
    align-items: flex-start;
    /* 두 요소 사이에 100px 간격을 적용합니다. */
    gap: 100px; 
  }

  /* .intro와 .cards는 간격(100px)을 뺀 나머지 공간(1600px - 100px = 1500px)을
     약 48:52 비율로 나누어 가집니다. */
  
  .intro {
    /* 1500px 중 약 48% 비율을 할당받습니다. */
    flex: 1 1 48%; 
    /* flex-basis를 48%로 설정하고 flex-shrink를 1로 두어 넘칠 경우 줄어들게 합니다. */
    min-width: 0; /* flex 버그 방지 */
  }

  .cards {
    /* 1500px 중 약 52% 비율을 할당받습니다. */
    flex: 1 1 52%;
    min-width: 0; /* flex 버그 방지 */
  }
}

/* ========== 반응형: 태블릿 / 모바일 ========== */
/* 태블릿 기준: max-width 1200px (기존 유지) */
@media (max-width:1200px){
  .container5 { padding:0 10px; } /* 요청한 좌우 10px 여백 (태블릿/모바일) */
  .section-row{
    flex-direction:column;
    gap:20px;
  }
  .intro { order:0; width:100%; flex: 0 0 auto; padding-bottom:30px;}
  .cards { order:1; width:100%; flex-direction:row; gap:16px; overflow-x:auto; padding-bottom:8px; }
  /* 오른쪽 카드들을 가로 스크롤로 보여주기 (태블릿에서 자연스럽게 보임) */
  .card {
    min-width: 230px;
    min-height: 440px; /* 조금 작게 */
  }
  /* 버튼/텍스트 크기 조정 */
  .intro .brand { font-size:36px }
  .intro h3 { font-size:18px }
  .intro p { font-size:14px }
}

/* 모바일: max-width 768px (기존 유지) */
@media (max-width:768px){
  .container5 { padding:0 10px; }
  .cards {
    flex-direction:column;
    gap:14px;
  }

  .intro { padding-bottom:30px;}

  /* 모바일에서는 "세로로 긴 카드" -> "가로 긴 사각형" 으로 변경 */
  .card {
    min-height: 160px;
    height: 160px;
    display:flex;
    align-items:center; /* 중앙 정렬 */
    padding: 0;
    border-radius:14px;
  }
  .card .overlay1{
    align-items:flex-end;
    padding:28px 50px 36px 28px;
    width:56%;
    text-align:right;
    background: linear-gradient(90deg, rgba(0,0,0,0.0) 10%, rgba(0,0,0,0.55) 60%);
    height:100%;
    justify-content:center;
  }
  /* 카드 내부 텍스트 크기 조정 */
  .card .title{ font-size:20px; }
  .card .subtitle{ font-size:12px; }
  .card .card-media img{ object-position:center left; } /* 이미지 보여지는 위치 */
  /* 버튼 작게 */
  .card .card-cta{ padding:8px 12px; border-radius:18px; font-size:13px; }

  /* 소개영역 텍스트 조정 */
  .intro .brand { font-size:30px }
  .intro .intro-image { border-radius:14px; }
  .intro p { font-size:13px }
  .cta { padding:10px 18px; font-size:15px; border-radius:24px; }
}

/* 스크롤바 미세정리 (오른쪽 카드 가로 스크롤시 보기 좋게) */
.cards::-webkit-scrollbar{height:10px}
.cards::-webkit-scrollbar-thumb{background:rgba(0,0,0,0.12);border-radius:6px}



/* 메인중간 제작문의 */

.wrapper3 {
  width: 100%;
  background-image: url('../images/mbg.jpg'); /* 배경 이미지 경로 */
  background-size: cover;
  background-position: center;
  background-attachment: fixed; /* 고정 배경 */
  position: relative;
  color: #fff;
  padding: 110px 20px;
}

.wrapper3::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background-color: rgba(0, 0, 0, 0.2); /* 어두운 오버레이 */
  z-index: 1;
}

.container3 {
  max-width: 1600px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
  text-align: center;
}

.small-text {
  font-size: 24px;
  color: #fff;
  margin-bottom: 10px;
  font-family: 'NanumSquareNeoBold', sans-serif;
}

.big-phone {
  font-size: 80px;
  font-weight: bold;
  color: #f66f0d;
  margin-bottom: 15px;
  font-family: 'NanumSquareNeoBold', sans-serif;
}

.mid-text {
  font-size: 25px;
  color: #fff;
  font-family: 'NanumSquareNeoBold', sans-serif;
}

.quote-btn2 {
  display: inline-block;
  background-color: #f66f0d;
  color: #fff;
  border: 2px solid #f66f0d;
  padding: 12px 30px;
  border-radius: 50px;
  font-size: 18px;
  cursor: pointer;
  transition: all 0.3s ease;
  text-decoration: none;
  width: auto;
  font-weight: bold;
  font-family: 'NanumSquareNeoBold', sans-serif;
  margin-top: 20px; /* height:20px; 대신 마진 사용 */
}

.quote-btn2:hover {
  background-color: #fff;
  color: #111;
  text-decoration: none;
}

@media (max-width: 768px) {
  .big-phone {
    font-size: 40px;
  }

  .mid-text {
    font-size: 16px;
  }

  .small-text {
    font-size: 20px;
  }
}

/* 1. 모든 대상 요소의 초기 상태 (숨김 + 아래로 이동) 정의 */
.small-text,
.big-phone,
.mid-text,
.quote-btn2 {
  /* 애니메이션 효과를 담당하는 transition 속성 */
  transition-property: opacity, transform;
  transition-duration: 0.8s; /* 애니메이션 재생 시간 */
  transition-timing-function: ease; /* 속도 곡선 */
  
  /* 초기 상태: 투명하고 20px 아래에 위치 */
  opacity: 0;
  transform: translate3d(0, 20px, 0);
}

/* 2. 순차적인 등장을 위한 지연 시간(Delay) 설정 */
.container3 .small-text {
  transition-delay: 0s;
}

.container3 .big-phone {
  transition-delay: 0.4s; /* 0.2초 뒤에 시작 */
}

.container3 .mid-text {
  transition-delay: 0.8s; /* 0.4초 뒤에 시작 */
}

.container3 .quote-btn2 {
  transition-delay: 1.2s; /* 0.6초 뒤에 시작 */
}

/* 3. JavaScript로 .wrapper3에 .is-visible이 추가되었을 때 적용되는 최종 상태 */
/* .is-visible이 부모에 적용되면 자식 요소들이 최종 상태로 전환됩니다. */
.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0); /* 원래 위치 */
}




     /* 하단 포트폴리오 */	
        .wrapper6 {
            width: 100%;
            background-color: #f9f9f9;
            padding: 10px 10px;
            text-align: center;
        }

        .titles {
            color: #111;
            font-size: 32px;
            margin-bottom: 0px;
            font-weight: bold;
            /* font-family:'NanumSquareNeoBold', sans-serif; */
        }
        .subtitle1 {
            color: #999;
            font-size: 15px;
            margin-bottom: 30px;
            font-weight: bold;
            /* font-family:'NanumSquareNeoBold', sans-serif; */
        }

        .container6 {
            max-width: 1600px;
            margin: 0 auto;
            background-color: #ffffff;
            border-radius: 20px;
            padding: 40px 40px;
            text-align: left;
            border: 1px solid #dbdbdb;
            min-height: 250px; /* 포트폴리오 내용 영역 확보 */
            display: flex;
            align-items: center;
            justify-content: center;
            color: #555;
            font-size: 1rem;
        }

        /* PHP 내용에 대한 플레이스홀더 스타일 */
        .portfolio-placeholder {
            width: 100%;
            text-align: center;
            padding: 20px;
            background-color: #f4f4f4;
            border-radius: 10px;
            border: 1px dashed #ccc;
        }

        .quote-btn1 {
            display: inline-block;
            background-color: #f66f0d;
            color: #fff;
            border: 2px solid #f66f0d;
            padding: 12px 30px;
            border-radius: 50px;
            font-size: 18px;
            cursor: pointer;
            transition: all 0.3s ease;
            text-decoration: none;
            width: auto;
            font-weight:bold;
            /* font-family:'NanumSquareNeoBold', sans-serif; */
            align-self: flex-start;
        }

        .quote-btn1:hover {
            background-color: #fff;
            color: #111;
            text-decoration:none;
        }

        /* 애니메이션 대상 요소의 초기 상태 (투명하고 아래로 30px 이동) */
        .fade-up-item {
            opacity: 0;
            transform: translateY(30px);
            /* 기본적으로 애니메이션 속성을 설정합니다. */
            transition: opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94), 
                        transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
            will-change: opacity, transform; /* 성능 최적화 */
        }

        /* 'is-visible' 클래스가 부모에 추가되면 최종 상태 (불투명하고 원래 위치) */
        .wrapper6.is-visible .fade-up-item {
            opacity: 1;
            transform: translateY(0);
        }

        /* 순차적인 딜레이 적용 (JavaScript 대신 CSS를 활용) */
        /* 1. 포트폴리오 제목 */
        .wrapper6 .titles { transition-delay: 0s; }
        /* 2. 서브 제목 */
        .wrapper6 .subtitle1 { transition-delay: 0.5s; }
        /* 3. 내용 컨테이너 */
        .wrapper6 .container6 { transition-delay: 1.0s; }
        /* 4. 더보기 버튼 */
        .wrapper6 .quote-btn1 { transition-delay: 1.5s; }


        /* ==================================
           반응형
           ================================== */
        @media (max-width: 768px) {
            .titles {
                font-size: 25px;
            }

            .subtitle1 {
                font-size: 15px;
            }

            .container6 {
                padding: 20px 15px;
                border-radius: 12px;
            }
        }

