:root {
    --echo-ui-font: "Noto Sans TC", "Microsoft JhengHei", "PingFang TC", "Segoe UI", sans-serif;
    --echo-ui-body: 16px;
    --echo-ui-copy: 14px;
    --echo-ui-small: 13px;
    --echo-ui-label: 14px;
}

.echo-academy-type,
.academy-registration-dialog {
    font-family: var(--echo-ui-font);
    font-size: var(--echo-ui-body);
    font-weight: 400;
    line-height: 1.6;
}

.echo-academy-type button,
.echo-academy-type input,
.echo-academy-type select,
.echo-academy-type textarea,
.academy-registration-dialog button,
.academy-registration-dialog input {
    font-family: inherit;
}

.echo-academy-type .member-page-heading h1,
.echo-academy-type .heading h1 {
    font-size: clamp(28px, 3vw, 34px);
    font-weight: 700;
}

.echo-academy-type .member-panel-heading h2,
.echo-academy-type .member-step-heading h2,
.echo-academy-type .panel h2,
.echo-academy-type .toolbar h2,
.echo-academy-type .academy-section-heading h2 {
    font-size: 21px;
    font-weight: 700;
}

.echo-academy-type .member-page-heading p,
.echo-academy-type .member-panel-heading p,
.echo-academy-type .member-step-heading p,
.echo-academy-type .panel-title p,
.echo-academy-type .heading p,
.echo-academy-type .academy-section-heading p {
    font-size: var(--echo-ui-copy);
}

.echo-academy-type .member-form-grid label > span,
.echo-academy-type .member-form-grid legend,
.echo-academy-type .form-label,
.echo-academy-type .academy-fields label > span,
.echo-academy-type .academy-fields legend,
.echo-academy-type .academy-compose-box label > span {
    font-size: var(--echo-ui-label);
    font-weight: 600;
}

.echo-academy-type .member-form-grid input,
.echo-academy-type .member-form-grid select,
.echo-academy-type .member-form-grid textarea,
.echo-academy-type .form-control,
.echo-academy-type .form-select,
.echo-academy-type .academy-fields input,
.echo-academy-type .academy-fields select,
.echo-academy-type .academy-fields textarea,
.echo-academy-type .member-search-input input,
.echo-academy-type .member-payment-toolbar select,
.echo-academy-type .academy-compose-box input,
.echo-academy-type .academy-compose-box textarea,
.echo-academy-type .btn,
.echo-academy-type .btn-academy,
.echo-academy-type .btn-save {
    font-size: 15px;
}

.echo-academy-type .member-stat-card span,
.echo-academy-type .member-course-list-copy p,
.echo-academy-type .member-course-list-meta,
.echo-academy-type .member-course-list-meta small,
.echo-academy-type .course-copy span,
.echo-academy-type .course-meta small,
.echo-academy-type .member-table,
.echo-academy-type .member-list-table {
    font-size: var(--echo-ui-copy);
}

.echo-academy-type .member-stat-card strong {
    font-size: 38px;
    font-weight: 700;
}

.echo-academy-type .academy-registration-row,
.echo-academy-type .academy-registration-row.is-head,
.echo-academy-type .academy-registration-row a,
.echo-academy-type .academy-admin-status,
.echo-academy-type .academy-registration-details summary,
.echo-academy-type .academy-registration-details dl,
.echo-academy-type .academy-reject-form input {
    font-size: var(--echo-ui-copy);
}

.echo-academy-type .academy-registration-row small,
.echo-academy-type .academy-waitlist-flow small,
.echo-academy-type .academy-action-note {
    font-size: var(--echo-ui-small);
}

.echo-academy-type .academy-registration-row > div > strong,
.echo-academy-type .academy-participant-copy strong,
.echo-academy-type .academy-participant-organization,
.echo-academy-type .academy-participant-role,
.echo-academy-type .academy-participant-copy small,
.echo-academy-type .academy-participant-tools > span {
    font-size: var(--echo-ui-copy);
}

.echo-academy-type .academy-options span,
.echo-academy-type .academy-check-grid span,
.echo-academy-type .academy-member-hint,
.echo-academy-type .academy-consent,
.echo-academy-type .academy-bank-card dl,
.echo-academy-type .academy-summary-card dd,
.echo-academy-type .academy-detail-list dd {
    font-size: var(--echo-ui-small);
}

.echo-academy-type .academy-summary-card dt,
.echo-academy-type .academy-detail-list dt,
.echo-academy-type .academy-selected-course-list small,
.echo-academy-type .academy-registration-course-context summary small,
.echo-academy-type .academy-registration-course-context p {
    font-size: 12px;
}

.academy-registration-dialog .academy-dialog-title strong,
.academy-registration-dialog .academy-dialog-content-heading h2 {
    font-size: 20px;
}

.academy-registration-dialog .academy-dialog-intro p,
.academy-registration-dialog .academy-dialog-mode span,
.academy-registration-dialog .academy-dialog-course strong,
.academy-registration-dialog .academy-dialog-course small,
.academy-registration-dialog .academy-dialog-course-detail,
.academy-registration-dialog .academy-dialog-footer {
    font-size: 13px;
}

/* Public Academy detail and catalog */
.echo-academy-type .academy-detail-topline,
.echo-academy-type .academy-detail-badge,
.echo-academy-type .academy-detail-facts span,
.echo-academy-type .academy-detail-facts small,
.echo-academy-type .academy-detail-section-heading small,
.echo-academy-type .academy-detail-schedule-time,
.echo-academy-type .academy-detail-schedule-copy span,
.echo-academy-type .academy-detail-sidebar small,
.echo-academy-type .academy-course-meta,
.echo-academy-type .academy-course-status {
    font-size: var(--echo-ui-small);
}

.echo-academy-type .academy-detail-facts strong,
.echo-academy-type .academy-detail-schedule-copy h3,
.echo-academy-type .academy-detail-info-card h3,
.echo-academy-type .academy-course-card h3,
.echo-academy-type .academy-course-card p,
.echo-academy-type .academy-detail-sidebar p {
    font-size: var(--echo-ui-copy);
}

.echo-academy-type .academy-detail-rich,
.echo-academy-type .academy-detail-rich p,
.echo-academy-type .academy-detail-info-card p {
    font-size: 15px;
    line-height: 1.8;
}

.echo-academy-type .academy-detail-section-heading h2 {
    font-size: 22px;
}

/* Member portal and registration history */
.echo-academy-type .member-login-card-heading p,
.echo-academy-type .member-login-field label,
.echo-academy-type .member-login-help,
.echo-academy-type .member-benefit span,
.echo-academy-type .member-course-card p,
.echo-academy-type .member-registration-card p,
.echo-academy-type .member-registration-card small,
.echo-academy-type .member-registration-fact span,
.echo-academy-type .member-registration-timeline,
.echo-academy-type .member-registration-details {
    font-size: var(--echo-ui-copy);
}

.echo-academy-type .member-login-field input,
.echo-academy-type .member-login-submit,
.echo-academy-type .member-portal-nav,
.echo-academy-type .member-registration-action {
    font-size: 15px;
}

/* Keep standalone Academy administration aligned with member management. */
.echo-academy-type .course-copy strong,
.echo-academy-type .course-meta strong,
.echo-academy-type .history-table,
.echo-academy-type .history-table th,
.echo-academy-type .history-table td {
    font-size: var(--echo-ui-copy);
}

.echo-academy-type .member-admin-main p,
.echo-academy-type .member-admin-main td,
.echo-academy-type .member-admin-main dd,
.echo-academy-type .member-portal-main p,
.echo-academy-type .member-portal-main dd,
.echo-academy-type .academy-main p,
.echo-academy-type .academy-main dd {
    font-weight: 400;
}

.echo-academy-type .member-admin-main h1,
.echo-academy-type .member-admin-main h2,
.echo-academy-type .member-admin-main h3,
.echo-academy-type .member-portal-main h1,
.echo-academy-type .member-portal-main h2,
.echo-academy-type .member-portal-main h3,
.echo-academy-type .academy-main h1,
.echo-academy-type .academy-main h2,
.echo-academy-type .academy-main h3 {
    font-weight: 700;
}

@media (max-width: 700px) {
    .echo-academy-type { font-size: 15px; }
    .echo-academy-type .member-page-heading h1,
    .echo-academy-type .heading h1 { font-size: 28px; }
}
