/* Shared Pro component scale. Metadata 14px; reading text and form controls 16px.
   Deliberately scoped: preserve large headings, approved navigation and compact sticky CTAs. */
:root {
    --pro-text-meta: 14px;
    --pro-text-body: 16px;
    --pro-focus: #8bc7ff;
}

/* Public course discovery and social proof. */
.catalog-search-hint, label.balance-sort, .catalog-result-line,
.catalog-result-line p, .catalog-result-line span,
.proof-source, .proof-context, .proof-original, .proof-position, .proof-card time,
.proof-review time, #proof-position, .proof-play-label, .proof-rating > span,
.hero-facts > span, .path-hero-teacher-label, .module-heading > span,
.curriculum-course > p, .purchase-label, .purchase-duration > span,
.purchase-duration > label, .purchase-footnote, #subscription-total,
.plan-renewal, .plan-access, .plan-total > span, .vat,
.plans-caption > span, .single-note, .home-access-card .home-total, .teacher-proof-line > span {
    font-size: var(--pro-text-meta);
    font-weight: 500;
    line-height: 1.55;
}
.plan-renewal, .purchase-footnote { overflow-wrap: anywhere; }
.balance-card .card-author, .card-teacher, .proof-context { font-weight: 500; }
.proof-card blockquote, .proof-card > p { line-height: 1.65; }
.footer-bottom, .footer-bottom > p { font-size: 14px; font-weight: 500; line-height: 1.6; }

/* Compact labels shared by catalogue, paths, paywall and profile. */
.topic-count, .topic-hero-label, .card-teacher strong,
.balance-catalog-footer > p, .path-meta > span, .direction-more,
.teacher-grid article > p, .registration-copy > p.eyebrow,
.paywall-back, .paywall-access-link, .paywall-billing-note,
body.ss-member-page .ss-photo-row > div > p {
    font-size: 14px; font-weight: 500; line-height: 1.6;
}
.balance-catalog-footer > .program-link { font-size: 16px; font-weight: 500; }

/* Public home: make secondary information useful without competing with headlines. */
.position-home .hero-trust-proof, .position-home .hero-trust-proof > span,
.position-home .path-meta, .position-home .path-meta > span, .position-home .local-label,
.position-home .teacher-role, .position-home .studio-sample-top small {
    font-size: var(--pro-text-meta);
    font-weight: 500;
    line-height: 1.5;
}
.position-home .studio-tabs button { font-size: 14px; font-weight: 500; }
.position-home .studio-sample-body > p { line-height: 1.7; }
.position-home .meeting-questions > p { font-size: 16px; line-height: 1.65; }
.position-home .home-paths-bottom > span, .position-home .home-price > span,
.position-home .home-team-line > p, .position-home .home-team-line > a { font-size: 14px; font-weight: 500; }

/* The public Team demo is deliberately compact, but its surrounding copy is not. */
.team-public .teams-hero-note, .team-public #demo-view-copy,
.team-public .dashboard-browser-bar > a, .team-public .dashboard-browser-foot,
.team-public .demo-controls button, .team-public .proposal-signature > span,
.team-public #form-seats-label, .team-public .form-name-grid > label,
.team-public #sib-form > label, .team-public .public-team-consent > span {
    font-size: 14px; font-weight: 500; line-height: 1.6;
}
.team-public .demo-controls button { min-height: 44px; }
.team-public .public-path-copy > strong { font-size: 16px; line-height: 1.5; }

/* Members' course workspace: lesson names are primary content, not captions. */
body.course-member .course-kicker, body.course-member .course-facts,
body.course-member .course-actions button, body.course-member .resume-eyebrow,
body.course-member .resume-label, body.course-member #course-count,
body.course-member .resume-program-link, body.course-member .small-kicker,
body.course-member .member-teacher-role, body.course-member .program-hint,
body.course-member .course-lesson-copy small, body.course-member .course-lesson-duration,
body.course-member .lesson-state, body.course-member .course-path-link,
body.course-member .course-bottom, body.course-member .course-materials small,
body.course-member .course-note small, body.course-member .course-resource-card small {
    font-size: var(--pro-text-meta);
    font-weight: 500;
    line-height: 1.5;
}
body.course-member .course-tabs button { font-size: 16px; font-weight: 500; min-height: 46px; }
body.course-member .course-lesson-copy { min-width: 0; }
body.course-member .course-lesson-copy strong {
    font-size: 17px; font-weight: 500; line-height: 1.5; overflow-wrap: anywhere;
}
body.course-member .course-lesson { min-height: 76px; }
body.course-member .course-path > p:not(.small-kicker), body.course-member .study-tip,
body.course-member .panel-description, body.course-member .course-callout,
body.course-member .course-note p, body.course-member .course-empty {
    font-size: var(--pro-text-body); font-weight: 500; line-height: 1.7;
}
body.course-member .program-search input { font-size: 16px; min-width: 0; line-height: 1.5; }
body.course-member .program-search { min-height: 48px; }
body.course-member .program-search:focus-within {
    border-color: var(--pro-focus);
    box-shadow: 0 0 0 2px #8bc7ff66;
}
body.course-member .program-search input:focus-visible { outline: none !important; }
body.course-member .course-materials strong { font-size: 16px; font-weight: 500; }
body.course-member #resume-link > span { font-size: 16px; font-weight: 500; }

/* The approved +2px home scale stays intact; lift only remaining small helpers. */
body.member-home .stat-card > p, body.member-home .chart-footnote,
body.member-home #goal-encouragement, body.member-home #plan-next,
body.member-home .shortcut p, body.member-home .course-progress-label,
body.member-home .step-description {
    font-size: 14px; font-weight: 500; line-height: 1.55;
}
body.member-home #chart-description, body.member-home .help-card p {
    font-size: 16px; line-height: 1.65;
}

/* Account forms: helper copy and interests remain compact, but readable. */
body.ss-member-page .ss-field-grid > label,
body.ss-member-page .ss-form-divider > p,
body.ss-member-page .ss-member-small-note > p,
body.ss-member-page .ss-form-actions > span,
body.ss-member-page .ss-native-avatar p,
body.ss-member-page .ss-native-avatar label {
    font-size: 14px; font-weight: 500; line-height: 1.6;
}
body.ss-member-page .ss-interests label { font-size: 14px; font-weight: 500; }

/* Registration and login use the same scale, including the small social proof. */
.registration-header .wrap > p, .registration-header .wrap > p a,
.registration-divider > span, .free-label,
.registration-trust, .registration-trust > span, .registration-trust a,
.registration-footer, .registration-footer > p, .registration-footer a,
.registration-people > p, .registration-card .field > label,
.login-options, .login-options > a, .remember-check > span, .free-note {
    font-size: 14px; font-weight: 500; line-height: 1.55;
}

/* Shared keyboard affordance. Keep focus outside controls rather than relying on color alone. */
body :is(a, button, input, select, textarea, summary, [contenteditable="true"]):focus-visible {
    outline: 2px solid var(--pro-focus) !important;
    outline-offset: 4px !important;
}
body :is(input, textarea, select):focus-visible { outline-offset: 2px !important; }
body :is(main, section, article, details)[id] { scroll-margin-top: 100px; }

@media (max-width: 819px) {
    /* 16px native inputs also prevent Safari's automatic focus zoom. */
    body :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]):not([type="button"]), select, textarea) {
        font-size: 16px !important;
    }
    body.course-member .course-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
    body.course-member .course-tabs button { font-size: 14px; min-height: 54px; white-space: normal; line-height: 1.45; }
    body.course-member .course-lesson-duration { white-space: normal; text-align: right; }
    body.course-member .course-actions button { min-height: 44px; }
    body.ss-pro-study .ss-lesson-mobile-panes button { min-height: 44px !important; }
    body.ss-pro-study #coai-notebook .ss-lesson-chat-intro p { font-size: 16px; line-height: 1.65; }
    body.ss-pro-study #coai-notebook .ss-lesson-chat-suggestions button { font-size: 14px !important; min-height: 44px; }
    body.ss-pro-study .ss-lesson-ai-note { font-size: 14px; font-weight: 500; line-height: 1.6; }
    .proof-controls button { min-width: 44px; min-height: 44px; }
}
