﻿/* =========================================================
   /css/news_font_clean.css
   사용자 뉴스 사이트 폰트/가독성 최종 보정
   궁서/명조 제거 + 세련된 고딕 뉴스 UI
   반드시 style.css, news.css, display.css, kmib_theme.css 뒤에 로드
   ========================================================= */

:root {
    --font-news-clean: "Pretendard Variable", "Pretendard", "SUIT", "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;

    --clean-text: #202632;
    --clean-title: #111827;
    --clean-sub: #5f6b7a;
    --clean-light: #8b95a1;
    --clean-line: #e3e7ed;
    --clean-line-dark: #202632;
    --clean-bg-soft: #f7f8fa;
    --clean-point: #1f5fae;
}

/* =========================================================
   전체 폰트: 궁서/명조 계열 완전 제거
   ========================================================= */

html,
body,
button,
input,
select,
textarea {
    font-family: var(--font-news-clean) !important;
}

body {
    color: var(--clean-text);
    font-size: 16px;
    font-weight: 400;
    line-height: 1.68;
    letter-spacing: -0.028em;
    word-break: keep-all;
    overflow-wrap: break-word;
}

/* 기존 kmib_theme의 serif/명조 적용 제거 */
.site-logo-text,
.headline-title,
.article-title,
.article-content,
.footer-logo-text {
    font-family: var(--font-news-clean) !important;
}

/* =========================================================
   로고 / 상단
   ========================================================= */

.site-logo-text {
    font-size: 32px;
    font-weight: 750;
    letter-spacing: -0.07em;
    color: #111827;
}

.site-topbar {
    font-size: 12px;
}

.site-topbar a {
    font-weight: 400 !important;
}

.site-today {
    font-weight: 400;
}

/* =========================================================
   GNB 메뉴
   ========================================================= */

.site-gnb {
    border-top: 1px solid #edf0f4;
    border-bottom: 2px solid var(--clean-line-dark);
}

.site-gnb-list a {
    font-size: 16px;
    font-weight: 550 !important;
    letter-spacing: -0.035em;
    color: #1f2937;
}

.site-gnb-list a:hover {
    color: var(--clean-point);
}

/* 모바일 메뉴 */
.mobile-nav-grid a {
    font-size: 15px;
    font-weight: 500 !important;
}

/* =========================================================
   메인 헤드라인
   ========================================================= */

.headline-title {
    font-size: 34px;
    line-height: 1.28;
    font-weight: 700 !important;
    letter-spacing: -0.065em;
    color: var(--clean-title);
}

.headline-summary {
    color: var(--clean-sub);
    font-size: 15.5px;
    line-height: 1.76;
    font-weight: 400;
}

.news-meta,
.news-row-meta,
.news-card-meta {
    color: var(--clean-light);
    font-size: 12.5px;
    font-weight: 400;
}

/* =========================================================
   카테고리 라벨
   ========================================================= */

.news-category,
.news-row-category,
.article-category {
    background: transparent !important;
    color: var(--clean-point) !important;
    border-left: 3px solid var(--clean-point);
    border-radius: 0 !important;
    font-size: 12px;
    font-weight: 600 !important;
    letter-spacing: -0.02em;
}

/* =========================================================
   뉴스 리스트 / 카드
   ========================================================= */

.news-list-title,
.news-card-title,
.news-row-title,
.text-news-list a,
.rank-title,
.notice-list a,
.news-side-list a {
    font-family: var(--font-news-clean) !important;
    color: var(--clean-title);
    letter-spacing: -0.045em;
}

.news-list-title {
    font-size: 16.8px;
    line-height: 1.5;
    font-weight: 600 !important;
}

.news-card-title {
    font-size: 16.5px;
    line-height: 1.52;
    font-weight: 600 !important;
}

.news-row-title {
    font-size: 22px;
    line-height: 1.42;
    font-weight: 650 !important;
}

.text-news-list a {
    font-size: 15.5px;
    line-height: 1.52;
    font-weight: 500 !important;
}

.news-list-summary,
.news-row-summary {
    color: var(--clean-sub);
    font-weight: 400;
}

.rank-title,
.notice-list a,
.news-side-list a {
    font-weight: 500 !important;
}

/* =========================================================
   섹션 제목 / 사이드바 제목
   ========================================================= */

.section-title,
.sidebar-head,
.news-side-head,
.article-section-title,
.comment-title {
    font-family: var(--font-news-clean) !important;
    color: var(--clean-title);
    font-weight: 650 !important;
    letter-spacing: -0.055em;
}

.section-title {
    font-size: 22px;
}

.sidebar-head,
.news-side-head {
    background: #ffffff !important;
    color: var(--clean-title) !important;
    font-size: 18px;
    font-weight: 650 !important;
    border-bottom: 1px solid var(--clean-line);
}

.section-more {
    font-weight: 500 !important;
}

/* =========================================================
   랭킹 번호
   ========================================================= */

.rank-num,
.news-rank-num,
.ranking-big-num {
    color: var(--clean-point);
    font-weight: 700 !important;
}

/* =========================================================
   기사 상세
   ========================================================= */

.article-title {
    font-size: 40px;
    line-height: 1.27;
    font-weight: 750 !important;
    letter-spacing: -0.075em;
    color: var(--clean-title);
}

.article-subtitle {
    color: #4b5563;
    font-size: 18px;
    line-height: 1.72;
    font-weight: 400 !important;
    letter-spacing: -0.035em;
}

.article-meta {
    color: var(--clean-light);
    font-size: 13px;
    font-weight: 400;
}

.article-content {
    color: #252b36;
    font-size: 18.5px;
    line-height: 1.95;
    font-weight: 400;
    letter-spacing: -0.035em;
    word-break: keep-all;
}

.article-content p {
    margin: 0 0 1.22em;
}

.article-content h2,
.article-content h3 {
    font-family: var(--font-news-clean) !important;
    color: var(--clean-title);
    font-weight: 700 !important;
    letter-spacing: -0.06em;
}

/* =========================================================
   버튼 / 댓글 / 태그
   ========================================================= */

.article-tool-btn,
.article-tags a,
.comment-submit,
.public-btn,
.notice-badge {
    font-family: var(--font-news-clean) !important;
    font-weight: 500 !important;
}

.comment-author {
    font-weight: 600 !important;
}

.comment-content {
    font-size: 15.5px;
    line-height: 1.72;
    font-weight: 400;
}

/* =========================================================
   공지 / 제보 폼
   ========================================================= */

.notice-table th {
    font-weight: 600 !important;
}

.notice-title-cell a {
    font-weight: 500 !important;
}

.public-form-group label {
    font-weight: 600 !important;
}

.public-form-group input,
.public-form-group select,
.public-form-group textarea {
    font-family: var(--font-news-clean) !important;
    font-weight: 400;
}

/* =========================================================
   푸터
   ========================================================= */

.footer-logo-text {
    font-weight: 750 !important;
    letter-spacing: -0.065em;
}

.footer-links a {
    font-weight: 500 !important;
}

.footer-info,
.footer-copy {
    font-weight: 400;
}

/* =========================================================
   모바일 가독성
   ========================================================= */

@media (max-width: 860px) {
    body {
        font-size: 15px;
        line-height: 1.66;
    }

    .site-logo-text {
        font-size: 27px;
    }

    .headline-title {
        font-size: 29px;
        line-height: 1.32;
        font-weight: 700 !important;
    }

    .news-row-title {
        font-size: 17px;
        line-height: 1.46;
        font-weight: 600 !important;
    }

    .article-title {
        font-size: 32px;
        line-height: 1.34;
        font-weight: 750 !important;
    }

    .article-content {
        font-size: 17.5px;
        line-height: 1.9;
    }
}

@media (max-width: 560px) {
    body {
        font-size: 14.5px;
    }

    .site-logo-text {
        font-size: 24px;
    }

    .headline-title {
        font-size: 24.5px;
        line-height: 1.36;
        letter-spacing: -0.065em;
    }

    .headline-summary {
        font-size: 14px;
        line-height: 1.65;
    }

    .news-list-title {
        font-size: 15.5px;
        line-height: 1.48;
    }

    .news-card-title {
        font-size: 15.8px;
    }

    .news-row-title {
        font-size: 16.2px;
        line-height: 1.46;
    }

    .section-title {
        font-size: 20px;
    }

    .article-title {
        font-size: 28px;
        line-height: 1.36;
        letter-spacing: -0.07em;
    }

    .article-subtitle {
        font-size: 16px;
        line-height: 1.68;
    }

    .article-content {
        font-size: 16.8px;
        line-height: 1.88;
    }

    .site-gnb-list a {
        font-size: 15px;
        font-weight: 550 !important;
    }
}