/* 커스텀 애니메이션과 추가 스타일 */

/* 언어 선택 드롭다운 */
.language-selector:hover .language-dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
 
.language-dropdown {
    transform: translateY(-10px);
}

/* 모바일 메뉴 활성화 */
.nav-menu.active {
    display: flex;
    flex-direction: column;
    position: fixed; 
    left: 0;
    top: 72px;
    width: 100%;
    background: white;
    padding: 2rem 0;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
    z-index: 40;
}

/* 햄버거 아이콘 애니메이션 */
.hamburger.active span:nth-child(1) {
    transform: rotate(-45deg) translate(-5px, 6px);
}

.hamburger.active span:nth-child(2) {
    opacity: 0;
}

.hamburger.active span:nth-child(3) {
    transform: rotate(45deg) translate(-5px, -6px);
}

/* 스크롤 진행 바 */
#scroll-progress {
    position: fixed;
    top: 0;
    left: 0;
    height: 3px;
    background: linear-gradient(90deg, #0ea5e9, #3b82f6, #6366f1);
    z-index: 10000;
    transition: width 0.1s ease-out;
    width: 0%;
}

/* 알림 메시지 애니메이션 */
@keyframes slideInRight {
    from {
        transform: translateX(400px);
        opacity: 0;
    }
    to {
        transform: translateX(0);
        opacity: 1;
    }
}

@keyframes slideOutRight {
    from {
        transform: translateX(0);
        opacity: 1;
    }
    to {
        transform: translateX(400px);
        opacity: 0;
    }
}

.notification {
    animation: slideInRight 0.3s ease-out;
}

/* 스크롤 시 요소 페이드 인 */
.fade-in-on-scroll {
    opacity: 0;
    transform: translateY(50px);
    transition: all 0.6s ease-out;
}

.fade-in-on-scroll.visible {
    opacity: 1;
    transform: translateY(0);
}

/* 부드러운 페이지 로드 */
body {
    opacity: 0;
    transition: opacity 0.5s ease-in;
}

body.loaded {
    opacity: 1;
}

/* 포커스 시 입력 필드 스타일 개선 */
input:focus,
textarea:focus {
    transform: translateY(-2px);
}

/* 서비스 카드 호버 시 그림자 색상 */
.service-card:hover {
    box-shadow: 0 20px 60px rgba(14, 165, 233, 0.25);
}

/* 통계 카운터 애니메이션 */
@keyframes countUp {
    from {
        opacity: 0;
        transform: scale(0.5);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

.stat-number.counting {
    animation: countUp 0.5s ease-out;
}

/* 히어로 버튼 그라데이션 효과 */
.hero a.group:hover span {
    color: white;
}

/* 반응형 모바일 메뉴 */
@media (max-width: 768px) {
    .nav-menu {
        display: none;
    }
    
    .nav-menu.active {
        display: flex;
    }
}

/* 다크 모드 대응 (선택사항) */
@media (prefers-color-scheme: dark) {
    /* 다크 모드 스타일을 원하시면 여기에 추가 */
}

/* 프린트 최적화 */
@media print {
    nav, footer, .scroll-indicator {
        display: none;
    }
    
    section {
        page-break-inside: avoid;
    }
}

/* 접근성 개선 - 포커스 표시 */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible {
    outline: 3px solid #0ea5e9;
    outline-offset: 2px;
}

/* 부드러운 스크롤 */
@supports (scroll-behavior: smooth) {
    html {
        scroll-behavior: smooth;
    }
}

/* 성능 최적화 */
.service-card,
.contact-item,
.stat-item {
    will-change: transform;
}

/* 로딩 애니메이션 */
@keyframes pulse {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: 0.5;
    }
}

.loading {
    animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
