/*
 * Readable typography layer for learner-facing pages.
 *
 * Several legacy templates still declare component type inline in the body.
 * These narrowly scoped important rules provide one accessibility floor until
 * those styles can be moved into shared components.
 */

:root {
    --wm-type-caption: .8125rem;
    --wm-type-small: .9rem;
    --wm-type-supporting: .95rem;
    --wm-type-body: 1rem;
    --wm-type-reader: 1.0625rem;
    --wm-type-reader-wide: 1.125rem;
}

body {
    font-size: var(--wm-type-body);
    line-height: 1.6;
}

button,
input,
select,
textarea {
    font-size: var(--wm-type-body);
}

/* Dashboard */
.dashboard-page .dashboard-intro {
    font-size: 1.05rem !important;
    line-height: 1.7;
}

.dashboard-page :is(.class-kicker, .action-eyebrow) {
    font-size: var(--wm-type-caption) !important;
}

.dashboard-page :is(
    .membership-line,
    .dashboard-resource-link,
    .summary-label,
    .class-state,
    .class-dates,
    .progress-copy,
    .certificate-copy,
    .class-detail-link,
    .primary-action,
    .course-progress span,
    .course-cta,
    .certificate-meta,
    .certificate-link,
    .empty-state a
) {
    font-size: var(--wm-type-small) !important;
}

.dashboard-page :is(
    .section-heading p,
    .action-description,
    .course-note,
    .empty-state p,
    .dashboard-alert
) {
    font-size: var(--wm-type-supporting) !important;
    line-height: 1.65;
}

.dashboard-page .section-heading h2 {
    font-size: 1.4rem !important;
}

.dashboard-page :is(.action-title, .course-title, .certificate-title, .empty-state h2) {
    font-size: 1.0625rem !important;
}

/* Profile */
.profile-page :is(.profile-back-link, .profile-email, .membership-meta, .membership-upgrade, .details-heading p) {
    font-size: var(--wm-type-small) !important;
}

.profile-page :is(.membership-label, .profile-field dt) {
    font-size: var(--wm-type-caption) !important;
}

.profile-page :is(.profile-heading p, .membership-plan, .profile-field dd) {
    font-size: var(--wm-type-body) !important;
    line-height: 1.65;
}

.profile-page .profile-name {
    font-size: 1.25rem !important;
}

.profile-page .details-heading h2 {
    font-size: 1.25rem !important;
}

/* Course catalog */
.courses-page .catalog-intro {
    font-size: var(--wm-type-body) !important;
    line-height: 1.75;
}

.courses-page :is(.catalog-dashboard-link, .catalog-filter, .catalog-result-count, .catalog-price, .catalog-card-action) {
    font-size: var(--wm-type-small) !important;
}

.courses-page :is(.catalog-access-label, .catalog-status) {
    font-size: var(--wm-type-caption) !important;
}

.courses-page .catalog-card-title {
    font-size: 1.125rem !important;
}

.courses-page .catalog-description {
    font-size: var(--wm-type-body) !important;
    line-height: 1.7;
}

.courses-page .catalog-meta {
    font-size: .875rem !important;
}

.courses-page .catalog-empty p {
    font-size: var(--wm-type-body) !important;
}

/* Course detail */
.course-detail-page :is(.breadcrumb, .meta-item, .preview-highlight, .module-meta .lesson-count) {
    font-size: var(--wm-type-small) !important;
}

.course-detail-page :is(
    .module-description,
    .lesson-meta,
    .lesson-meta .badge,
    .lesson-duration,
    .lesson-button,
    .lesson-locked-info .btn,
    .toggle-lessons-btn,
    .course-stats li,
    .certificate-description,
    .exam-description,
    .progress-text,
    .exam-list-meta,
    .certificate-button,
    .exam-button,
    .detail-mobile-title
) {
    font-size: var(--wm-type-small) !important;
}

.course-detail-page :is(
    .content-header > p,
    .lesson-body,
    .audience-list li,
    .exam-list-title,
    .course-faq-heading p,
    .course-faq-answer
) {
    font-size: var(--wm-type-body) !important;
    line-height: 1.7;
}

.course-detail-page :is(.module-title, .lesson-details h5, .pricing-section h5, .enroll-button, .audience-section h6, .certificate-section h6, .exam-section h6, .course-faq-question) {
    font-size: var(--wm-type-body) !important;
}

/* Learning Path */
.learning-path-page :is(
    .path-breadcrumb,
    .path-summary span,
    .path-section-link,
    .path-course-action,
    .path-live-button,
    .path-resource-total,
    .path-empty a
) {
    font-size: var(--wm-type-small) !important;
}

.learning-path-page :is(.path-kicker, .path-access-label, .path-course-price, .path-lesson-count, .path-live-label, .path-countdown-item span, .path-resource-meta) {
    font-size: var(--wm-type-caption) !important;
}

.learning-path-page .path-intro {
    font-size: var(--wm-type-reader) !important;
}

.learning-path-page :is(
    .path-section-heading p,
    .path-course-description,
    .path-live-copy > p:last-child,
    .path-resource-heading p,
    .path-resource-copy p,
    .path-empty p
) {
    font-size: var(--wm-type-supporting) !important;
    line-height: 1.7;
}

.learning-path-page :is(.path-course-body h3, .path-live h3, .path-resource-copy h3) {
    font-size: 1.0625rem !important;
}

/* Learn curriculum index */
.learn-curriculum-page :is(.learn-breadcrumb, .learn-progress-summary, .learn-progress-value, .learn-primary-action, .learn-account-link, .learn-section-count, .learn-lesson-number) {
    font-size: var(--wm-type-small) !important;
}

.learn-curriculum-page :is(.learn-kicker, .learn-lesson-type) {
    font-size: var(--wm-type-caption) !important;
}

.learn-curriculum-page .learn-description {
    font-size: var(--wm-type-reader) !important;
}

.learn-curriculum-page :is(.learn-account p, .learn-section-heading p, .learn-lesson-copy p, .learn-empty p) {
    font-size: var(--wm-type-supporting) !important;
    line-height: 1.7;
}

.learn-curriculum-page :is(.learn-account h2, .learn-lesson-copy h3) {
    font-size: 1.0625rem !important;
}

/* Learn lesson reader */
.lesson-reader-page :is(.reader-course-back, .reader-progress-label, .reader-breadcrumb, .lesson-meta, .reader-lesson-index, .reader-lesson-check, .author-badge, .nav-btn-label, .toc-title) {
    font-size: var(--wm-type-caption) !important;
}

.lesson-reader-page :is(.lesson-nav-link, .social-share-title, .social-share-button, .author-name, .author-description, .nav-btn-title, .toc-link) {
    font-size: var(--wm-type-small) !important;
}

.lesson-reader-page .reader-course-title {
    font-size: 1.0625rem !important;
}

.lesson-reader-page .tutorial-content-body,
.lesson-reader-page .tutorial-content-body.markdown-content,
.lesson-reader-page .tutorial-content-body .markdown-content {
    font-size: var(--wm-type-reader-wide) !important;
    line-height: 1.85 !important;
}

/* Video-course lesson */
#video-lesson-main :is(.lesson-meta, .lesson-access-badge, .nav-btn, .transcript-toggle, .completion-toggle, .toc-title, .toc-list li a, .course-progress, .sidebar-nav a, .module-title-sidebar, .lesson-duration, .play-icon) {
    font-size: var(--wm-type-small) !important;
}

#video-lesson-main :is(.lesson-description, .transcript-section, .course-info h3, .lesson-content h5) {
    font-size: var(--wm-type-body) !important;
    line-height: 1.7;
}

#video-lesson-main .tutorial-content {
    font-size: var(--wm-type-reader) !important;
    line-height: 1.85 !important;
}

/* Live-class session lesson */
.bootcamp-session-page :is(.lesson-meta, .lesson-meta .badge, .lesson-access-badge, .badge-preview, .session-completion-status, .session-completion-note, .assignment-badge, .course-progress, .sidebar-nav a, .lesson-number, .lesson-duration, .play-icon) {
    font-size: var(--wm-type-caption) !important;
}

.bootcamp-session-page :is(.back-link, .session-completion-header, .session-completion-button, .live-cta, .quiz-action, .session-nav-link, .assignment-row .btn, .session-tab, .quiz-meta, .assignment-copy, .sidebar-card p) {
    font-size: var(--wm-type-small) !important;
}

.bootcamp-session-page :is(.text-lesson-banner p, .lesson-description, .session-requirement-callout p, .quiz-title, .assignment-title, .course-info h3, .lesson-content h5, .sidebar-card h4) {
    font-size: var(--wm-type-body) !important;
    line-height: 1.7;
}

.bootcamp-session-page .session-requirement-callout h2 {
    font-size: 1.0625rem !important;
}

.bootcamp-session-page .markdown-content {
    font-size: var(--wm-type-reader) !important;
}

/* Live-class overview and assignment */
.bootcamp-page :is(p, li, .bootcamp-status-badge, .bootcamp-meta, .bootcamp-row-meta, .bootcamp-row-state, .bootcamp-session-time, .bootcamp-deadline, .bootcamp-certificate-meta) {
    font-size: var(--wm-type-supporting) !important;
    line-height: 1.65;
}

.bootcamp-page :is(.bootcamp-primary-action, .bootcamp-row-title, .bootcamp-checklist-label) {
    font-size: var(--wm-type-body) !important;
}

.assignment-page :is(.assignment-breadcrumb, .assignment-kicker, .assignment-meta-item, .assignment-help, .assignment-secondary-link, .assignment-aside-link) {
    font-size: var(--wm-type-small) !important;
}

.assignment-page :is(p, li, label, input, textarea, .assignment-submit-button) {
    font-size: var(--wm-type-body) !important;
    line-height: 1.7;
}

/* Homepage */
.home-page :is(.home-service-link, .home-header-link, .home-card-button, .home-testimonial-person strong) {
    font-size: var(--wm-type-small) !important;
}

.home-page .home-testimonial-person span {
    font-size: var(--wm-type-caption) !important;
}

/* Blog index */
.blog-index-page :is(.blog-breadcrumb, .article-meta, .blog-pagination-link, .blog-pagination-current, .blog-pagination-summary) {
    font-size: var(--wm-type-small) !important;
}

.blog-index-page :is(.blog-hero p, .article-excerpt, .blog-empty p) {
    font-size: var(--wm-type-body) !important;
    line-height: 1.7;
}

/* Account pages */
.auth-container :is(.auth-back, .auth-form-label, .auth-alert, .auth-form-error, .auth-help-text, .auth-error, .auth-checkbox-label, .auth-footer, .auth-button-secondary),
.login-page :is(.login-back, .login-label, .login-forgot, .login-error, .login-form-error, .login-message, .login-footer, .login-divider) {
    font-size: var(--wm-type-small) !important;
}

.auth-container .auth-eyebrow {
    font-size: var(--wm-type-caption) !important;
}

.auth-container :is(.auth-header p, .auth-form-control, .auth-button, .auth-button-secondary),
.login-page :is(.login-header p, .login-control, .login-submit, .login-google) {
    font-size: var(--wm-type-body) !important;
    line-height: 1.65;
}

/* Services, About and Contact */
.marketing-page :is(p, li, label, input, select, textarea) {
    font-size: var(--wm-type-body) !important;
    line-height: 1.7;
}

.marketing-page :is(.marketing-kicker, .marketing-breadcrumb, .service-card-number, .service-fit-label, .service-process-step > span, .about-principle > span, .team-member-role, .contact-field-error, .contact-privacy-note) {
    font-size: var(--wm-type-caption) !important;
}

.marketing-page :is(.marketing-button, .team-member-card h3, .service-process-step h3, .about-principle h3, .contact-channel-copy strong, .contact-channel-copy > span, .contact-aside-card h2, .contact-direct-links a) {
    font-size: var(--wm-type-small) !important;
}

/* SEO consultant service */
.seo-service-page :is(
    .service-description,
    .service-features li,
    .step-description,
    .plan-features li,
    .comparison-section .text-muted,
    .why-choose-description,
    .testimonial-text,
    .cta-subtitle,
    .form-control,
    .seo-form-errors
) {
    font-size: var(--wm-type-body) !important;
    line-height: 1.7;
}

.seo-service-page :is(.stat-label, .hero-review-text, .plan-period, .vision-author, .testimonial-rating-summary, .author-name, .author-position, .author-company, .seo-field-error) {
    font-size: var(--wm-type-small) !important;
}

.seo-service-page :is(.service-title, .step-title, .plan-name, .comparison-section h4, .why-choose-title) {
    font-size: 1.0625rem !important;
}

/* Shared FAQ and article reading surfaces */
.wm-faq-question {
    font-size: 1.0625rem !important;
}

.wm-faq-answer {
    font-size: var(--wm-type-body) !important;
    line-height: 1.75 !important;
}

@media (max-width: 640px) {
    .lesson-reader-page .tutorial-content-body,
    .lesson-reader-page .tutorial-content-body.markdown-content,
    .lesson-reader-page .tutorial-content-body .markdown-content,
    #video-lesson-main .tutorial-content,
    .bootcamp-session-page .markdown-content {
        font-size: var(--wm-type-reader) !important;
    }
}
