/* 하단 카피 라이터 표시 */
.site-footer {
    width: 1400px; 
    margin: 0 auto;
    box-sizing: border-box;
    
    background-color: transparent;
    padding: 40px 20px;
    display: flex; 
    align-items: flex-start;
    gap: 30px;

    font-family: 'Malgun Gothic', 'Apple SD Gothic Neo', sans-serif;
    font-size: 12px;
    color: #666;
}

.footer-logo img {
    width: 140px;
    opacity: 0.7;
}

.footer-text-content {
    flex: 1;
}

.footer-top {
    padding-bottom: 12px;
    margin-bottom: 12px;
    border-bottom: 1px solid #dcdcdc; 
}

.footer-bottom p {
    margin: 5px 0;
    line-height: 1.6;
}

.footer-bottom a {
    color: #666;
    text-decoration: underline;
}

.footer-bottom a:hover {
    color: #333;
}

/* 1. 상단 공지 롤링 티커 바 (헤더 바로 밑 1400px 밀착) */
.ticker-bar {
    width: 1400px !important;
    margin: 0 auto !important;
    background-color: #ffffff !important;
    border-bottom: 1px solid #f1f5f9 !important;
    box-sizing: border-box !important;
}

body.dark-mode .ticker-bar {
    background-color: #222222 !important;
    border-bottom-color: #333333 !important;
}

/* 티커바 내부: 헤더 좌우 여백(20px)과 정확히 동일하게 시작 */
.ticker-inner {
    width: 100% !important;
    height: 42px !important;
    padding: 0 20px !important;
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    box-sizing: border-box !important;
}

/* 🚨 공지 뱃지 (레드 포인트) */
.ticker-badge {
    background-color: #fee2e2;
    color: #ef4444;
    font-size: 12px;
    font-weight: 700;
    padding: 3px 8px;
    border-radius: 4px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    flex-shrink: 0;
}

body.dark-mode .ticker-badge {
    background-color: #7f1d1d;
    color: #fca5a5;
}

/* 롤링 영역 컨테이너 */
.ticker-content {
    position: relative;
    height: 26px;
    overflow: hidden;
    flex: 1;
}

/* 공지 한 줄 아이템 */
.ticker-item {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    font-size: 13.5px;
    color: #334155;
    text-decoration: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    
    opacity: 0;
    transform: translateY(100%);
    transition: transform 0.5s cubic-bezier(0.2, 0.9, 0.3, 1), opacity 0.5s ease;
    pointer-events: none;
}

body.dark-mode .ticker-item {
    color: #cbd5e1;
}

.ticker-item.active {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}

.ticker-item.prev {
    opacity: 0;
    transform: translateY(-100%);
    pointer-events: none;
}

.ticker-item:hover {
    color: #2563eb;
    text-decoration: underline;
}

.badge-notice-type {
    text-decoration: none !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 700;
    padding: 2px 7px;
    border-radius: 4px;
    margin-right: 8px;
    flex-shrink: 0;
    line-height: 1.2;
}

/* 1. 정기 공지 (블루) */
.badge-notice-type.정기 {
    background-color: #dbeafe;
    color: #1d4ed8;
    border: 1px solid #bfdbfe;
}

/* 2. 긴급 공지 (레드) */
.badge-notice-type.긴급 {
    background-color: #fee2e2;
    color: #dc2626;
    border: 1px solid #fca5a5;
}

/* 3. 일반 공지 / 안내 (그레이) */
.badge-notice-type.일반,
.badge-notice-type.안내 {
    background-color: #f1f5f9;
    color: #475569;
    border: 1px solid #e2e8f0;
}