@font-face {
    font-family: "Ownglyph PDH";
    src: url("/fonts/Ownglyph-PDH.woff2") format("woff2");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

:root {
    --danmi-font: "Ownglyph PDH", "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
}

html,
body,
button,
input,
select,
textarea {
    font-family: var(--danmi-font);
}

button,
input,
select,
textarea {
    letter-spacing: 0;
}

/* 온글잎 박다현체 가독성 최적화 */
html {
    font-size: 17px;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

body {
    font-size: 1rem;
    line-height: 1.58;
    letter-spacing: 0.01em;
}

p,
li,
label,
input,
select,
textarea,
button {
    line-height: 1.48;
}

/* 본문과 카드 설명 */
.profile-text,
.status-description,
.member-benefit-card p,
.member-security-note,
.member-sync-note,
.admin-help-text,
.admin-calendar-help,
.admin-login-warning,
.backup-warning,
.policy-content,
.schedule-detail-note,
.schedule-detail-content,
.notice-bar,
.site-footer {
    font-size: 0.94rem !important;
    line-height: 1.62 !important;
}

/* 메뉴·버튼·입력창 */
.menu-button,
.mobile-nav-button,
.member-login-button,
.primary-button,
.secondary-button,
.route-home-button,
.route-view-toggle,
.route-view-toggle-mobile,
.admin-tab-button,
.admin-form-actions button,
.admin-item-actions button,
input,
select,
textarea {
    font-size: 0.91rem !important;
}

/* 표와 목록의 핵심 텍스트 */
.song-list,
.song-table-header,
.schedule-list,
.schedule-item,
.homework-list,
.admin-song-list,
.admin-homework-list,
.admin-notice-list,
.admin-member-table {
    font-size: 0.91rem;
}

.song-list strong,
.schedule-item strong,
.homework-list strong,
.admin-song-list strong,
.admin-homework-list strong,
.admin-notice-list strong {
    font-size: 0.96rem;
}

/* 작은 보조 문구는 너무 작아지지 않도록 최소 크기 확보 */
.small-title,
.full-view-kicker,
.route-page-kicker,
.settings-kicker,
.schedule-type,
.live-badge,
.member-server-status,
.admin-server-badge,
.admin-device-badge,
.admin-inline-message,
.signup-field-message,
.signup-quiz-message,
.songbook-count-summary,
.admin-list-header span,
.admin-panel-header span,
.songbook-card-header span,
.card-header span {
    font-size: 0.78rem !important;
    line-height: 1.45 !important;
}

/* 제목 위계 */
h1,
.profile-summary h1,
.route-title-line h1,
.full-view-header h2 {
    font-size: clamp(1.65rem, 2.4vw, 2.2rem) !important;
    line-height: 1.22 !important;
}

h2,
.card-header h2,
.songbook-heading-group h2,
.member-panel-header h2,
.admin-panel-header h2,
.settings-page-heading h2 {
    font-size: clamp(1.28rem, 1.8vw, 1.58rem) !important;
    line-height: 1.28 !important;
}

h3,
.admin-list-header h3,
.settings-group-title,
.admin-dashboard-card-head strong {
    font-size: 1.06rem !important;
    line-height: 1.35 !important;
}

/* 회원가입 퀴즈 */
.signup-quiz-head strong,
.signup-profile-quiz legend {
    font-size: 0.98rem !important;
}

.quiz-choice-text {
    font-size: 0.92rem !important;
}

.quiz-choice-badge {
    font-size: 0.78rem !important;
}

@media (max-width: 760px) {
    html {
        font-size: 16.5px;
    }

    body {
        line-height: 1.55;
    }

    .menu-button,
    .mobile-nav-button,
    .member-login-button,
    .primary-button,
    .secondary-button,
    .route-home-button,
    .route-view-toggle,
    .route-view-toggle-mobile,
    .admin-tab-button,
    input,
    select,
    textarea {
        font-size: 0.88rem !important;
    }

    .song-list,
    .song-table-header,
    .schedule-list,
    .schedule-item,
    .homework-list,
    .admin-song-list,
    .admin-homework-list,
    .admin-notice-list {
        font-size: 0.88rem;
    }

    .small-title,
    .full-view-kicker,
    .route-page-kicker,
    .settings-kicker,
    .schedule-type,
    .live-badge,
    .member-server-status,
    .admin-server-badge,
    .admin-device-badge,
    .signup-field-message,
    .signup-quiz-message,
    .songbook-count-summary {
        font-size: 0.76rem !important;
    }

    h1,
    .profile-summary h1,
    .route-title-line h1,
    .full-view-header h2 {
        font-size: clamp(1.45rem, 6vw, 1.8rem) !important;
    }

    h2,
    .card-header h2,
    .songbook-heading-group h2,
    .member-panel-header h2,
    .admin-panel-header h2,
    .settings-page-heading h2 {
        font-size: clamp(1.18rem, 5vw, 1.42rem) !important;
    }
}
