/**
 * Transform Menu Widget - Additional Styles
 *
 * 기본 스타일은 menu_widget.php의 인라인 CSS로 처리됩니다.
 * 이 파일은 추가적인 테마/확장 스타일을 위한 것입니다.
 */

/* 기본 리셋 */
.tf-menu-widget * {
    box-sizing: border-box;
}

.tf-menu-widget ul,
.tf-menu-widget li {
    list-style: none;
    margin: 0;
    padding: 0;
}

/* 애니메이션 효과 */
@keyframes tf-fadeIn {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes tf-slideDown {
    from {
        opacity: 0;
        max-height: 0;
    }
    to {
        opacity: 1;
        max-height: 500px;
    }
}

@keyframes tf-pulse {
    0% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.05);
    }
    100% {
        transform: scale(1);
    }
}

/* 호버 효과 변형 */
.tf-menu-widget .tf-menu-link {
    position: relative;
    overflow: hidden;
}

/* .tf-menu-widget .tf-menu-link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 0;
    height: 2px;
    background: currentColor;
    transition: width 0.3s ease, left 0.3s ease;
}

.tf-menu-widget .tf-menu-link:hover::after {
    width: 100%;
    left: 0;
} */

/* 아이콘 애니메이션 */
.tf-menu-widget .tf-menu-icon i {
    transition: transform 0.3s ease;
}

.tf-menu-widget .tf-menu-link:hover .tf-menu-icon i {
    transform: scale(1.15);
}

/* 서브메뉴 화살표 회전 */
.tf-menu-widget .tf-submenu-indicator {
    transition: transform 0.3s ease;
}

.tf-menu-widget .has-submenu.open .tf-submenu-indicator,
.tf-menu-widget .has-submenu:hover .tf-submenu-indicator {
    transform: rotate(180deg);
}

/* 포커스 스타일 (접근성) */
.tf-menu-widget .tf-menu-link:focus {
    outline: 2px solid var(--primary-color, #007bff);
    outline-offset: 2px;
}

.tf-menu-widget .tf-menu-link:focus:not(:focus-visible) {
    outline: none;
}

/* 드래그 핸들 스타일 개선 */
.tf-menu-widget .tf-drag-handle {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

.tf-menu-widget .tf-drag-handle::before {
    content: '⋮⋮ ';
    letter-spacing: -2px;
}

/* 리사이즈 핸들 스타일 */
.tf-menu-widget .tf-resize-handle::before {
    content: '';
    position: absolute;
    right: 2px;
    bottom: 2px;
    width: 6px;
    height: 6px;
    border-right: 2px solid #fff;
    border-bottom: 2px solid #fff;
}

/* 모바일 터치 피드백 */
@media (hover: none) {
    .tf-menu-widget .tf-menu-link:active {
        background-color: rgba(0, 0, 0, 0.1);
    }

    .tf-menu-widget .tf-menu-link::after {
        display: none;
    }
}

/* 다크모드 대응 */
@media (prefers-color-scheme: dark) {
    .tf-menu-widget .tf-submenu {
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
    }
}

/* 고대비 모드 */
@media (prefers-contrast: high) {
    .tf-menu-widget .tf-menu-link {
        border: 1px solid transparent;
    }

    .tf-menu-widget .tf-menu-link:hover,
    .tf-menu-widget .tf-menu-link:focus {
        border-color: currentColor;
    }
}

/* 모션 감소 설정 */
@media (prefers-reduced-motion: reduce) {
    .tf-menu-widget *,
    .tf-menu-widget *::before,
    .tf-menu-widget *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

/* 프린트 스타일 */
@media print {
    .tf-menu-widget {
        position: static !important;
        box-shadow: none !important;
    }

    .tf-menu-widget .tf-drag-handle,
    .tf-menu-widget .tf-resize-handle {
        display: none !important;
    }

    .tf-menu-widget .tf-submenu {
        position: static !important;
        max-height: none !important;
        opacity: 1 !important;
        visibility: visible !important;
    }
}
