/* Support pages use their own mobile scale. Hebrew examples and lesson workspaces
   retain the dedicated typography in their respective stylesheets. */
@media (min-width: 1000px) {
  .level-page .level-hero {
    padding: 20px 24px;
    gap: 24px;
  }

  .level-page .level-hero h2 {
    font-size: 32px;
    line-height: 1.25;
  }

  .level-hero-actions {
    margin-top: 16px;
  }

  .curr-content .module-hero {
    padding: 20px;
    gap: 20px;
    margin-bottom: 16px;
  }

  .module-hero h2 {
    font-size: 30px;
    line-height: 1.3;
  }

  .module-hero-card {
    padding: 16px;
  }
}

@media (max-width: 780px) {
  /* Compact catalog cards keep their two columns; labels remain readable. */
  .home-program-heading p,
  .catalog-level-heading p,
  .home-placement p,
  .level-hero p,
  .level-coach p,
  .level-page .ulpan-assessment p,
  .module-details p,
  .module-details li,
  .module-hero p,
  .conversation-cover > p {
    font-size: 16px;
    line-height: 1.65;
  }

  .home-program-count,
  .catalog-progress,
  .catalog-sequence-heading span,
  .catalog-module-order,
  .catalog-module-next,
  .catalog-module-footer small,
  .level-module-heading > span,
  .level-progress-label,
  .level-next-lesson,
  .level-hero-progress > p,
  .level-page .quiet-note,
  .level-page .ulpan-assessment small,
  .module-hero-stats span,
  .module-hero-orli span,
  .module-about-details > summary,
  .module-details .module-format,
  .home-level-tabs small,
  .level-page .ulpan-selector small {
    font-size: 13px;
    line-height: 1.55;
  }

  .home-program-heading .eyebrow,
  .level-hero .screen-label,
  .level-page .ulpan-assessment .screen-label,
  .module-hero .screen-label {
    font-size: 13px;
    line-height: 1.5;
  }

  .catalog-module-copy strong {
    font-size: 16px;
    line-height: 1.4;
  }

  .catalog-module-outcome {
    font-size: 14px;
    line-height: 1.55;
  }

  .home-level-tabs button > .home-level-tab-title,
  .level-page .ulpan-selector strong {
    font-size: 14px;
    line-height: 1.4;
  }

  .home-level-tabs button,
  .catalog-level-link,
  .level-hero-progress > button,
  .module-about-details > summary,
  .module-hero-back {
    min-height: 44px;
  }

  .catalog-level-link,
  .home-placement button,
  .level-hero-actions .primary,
  .level-hero-actions .curr-secondary,
  .course-content .level-page .ulpan-assessment button,
  .level-tools button,
  .module-hero-start,
  .module-hero-card .curr-secondary {
    font-size: 16px;
    line-height: 1.45;
    min-height: 48px;
    white-space: normal;
  }

  .level-tools {
    flex-wrap: wrap;
  }

  .level-tools button {
    min-width: 0;
    flex: 1 1 140px;
  }

  .curr-lesson-list .reading-lesson-row strong,
  .course-list .course-lesson-copy strong {
    font-size: 17px;
    line-height: 1.5;
  }

  .curr-lesson-list .reading-lesson-row small,
  .course-list .course-lesson-copy > span,
  .course-list .course-lesson-copy small {
    font-size: 14px;
    line-height: 1.55;
  }

  .app-content:has(> .choice-list) > .intro {
    font-size: 17px;
    line-height: 1.65;
  }

  .choice-list .choice strong,
  .app-content:has(> .choice-list) > .primary {
    font-size: 16px;
    line-height: 1.5;
  }

  .choice-list .choice small,
  .app-content:has(> .choice-list) > .quiet-note {
    font-size: 14px;
    line-height: 1.55;
  }

  .choice-list .choice {
    min-height: 64px;
  }

  /* The home demo remains immediately usable on a phone. */
  .home-orli-message > p,
  .home-word-explanation p,
  .personal-next-reason,
  .personal-tool p {
    font-size: 16px;
    line-height: 1.65;
  }

  .home-orli-message > strong > span,
  .home-title-row > span,
  .home-demo-links > button,
  .personal-next-meta,
  .personal-fit,
  .personal-fit > button,
  .personal-tool-label {
    font-size: 14px;
    line-height: 1.55;
  }

  .home-demo-actions > button,
  .personal-continue,
  .home-answer-list button,
  .personal-tool button {
    font-size: 16px;
    line-height: 1.45;
    min-height: 48px;
  }

  .home-demo-actions > .home-save-word {
    min-height: 48px !important;
  }

  .home-demo-links > button,
  .personal-fit > button {
    min-height: 44px;
  }

  /* Registration and progress: fonts stay stable when the keyboard opens. */
  .account-content :is(.intro, .account-help, .account-detail, .account-sync, .account-alert p, .account-error) {
    font-size: 16px;
    line-height: 1.65;
  }

  .account-content :is(.account-email, .account-transfer-detail, .account-stats span),
  .account-form .account-transfer {
    font-size: 14px;
    line-height: 1.55;
  }

  .account-form > input {
    font-size: 17px;
    min-height: 48px;
  }

  .account-content :is(.full-button, .curr-secondary, .account-signout) {
    font-size: 16px;
    line-height: 1.45;
    min-height: 48px;
  }

  /* Reading toolbar, translations, and word popovers sit beside the story. */
  .reader-page :is(.intro, .reader-recommendation p, .reader-translation p, .reader-coach-line p) {
    font-size: 16px;
    line-height: 1.7;
  }

  .reader-page :is(.reader-recommendation .screen-label, .reader-library .text-level-list small, .reader-library .text-level-list span, .reader-story-heading span, .reader-audio-note, .reader-word-help, .reader-question-head .screen-label, .reader-question-head strong, .reader-coach-line small) {
    font-size: 13px;
    line-height: 1.6;
  }

  .reader-page .reader-recommendation {
    flex-wrap: wrap;
    padding: 14px;
  }

  .reader-recommendation > div {
    min-width: 0;
    flex: 1 1 220px;
  }

  .reader-recommendation strong,
  .reader-library .text-level-list strong,
  .reader-page .reader-question h3 {
    font-size: 17px;
    line-height: 1.55;
  }

  .reader-page :is(.reader-library > summary, .reader-translation summary) {
    font-size: 16px;
    min-height: 44px;
  }

  .reader-recommendation > button,
  .reader-page .reader-toolbar button,
  .reader-page .reader-question-options button,
  .reader-page .reader-finish .primary,
  .reader-page .reader-finish .curr-secondary,
  .reader-page .course-links button {
    font-size: 16px;
    line-height: 1.45;
    min-height: 48px;
  }

  .reader-page .reader-toolbar {
    flex-wrap: wrap;
  }

  .reader-page .reader-toolbar button {
    flex: 1 1 120px;
    min-width: 0;
    padding-inline: 10px;
  }

  .reader-difficulty button,
  .reader-topic-list button {
    font-size: 14px;
    line-height: 1.45;
    min-height: 44px;
  }

  .reader-page .reader-text {
    font-size: 27px;
    line-height: 1.95;
  }

  .reader-word-popover .reader-word-phon {
    font-size: 14px;
  }

  .reader-word-popover .reader-word-meaning {
    font-size: 16px;
    line-height: 1.65;
  }

  .reader-word-popover .reader-word-actions button {
    font-size: 14px;
    min-height: 48px;
  }

  /* Saved-word controls do not override their Hebrew words or audio icons. */
  .saved-word > span,
  .saved-word small,
  .word-review-panel p,
  .word-review-content :is(.word-review-intro p, .word-review-context-ru, .word-review-feedback p:not([lang=he])) {
    font-size: 16px;
    line-height: 1.65;
  }

  .word-review-content :is(.word-review-note, .word-review-form-note, .word-review-top > span:last-child, .word-review-stats span) {
    font-size: 13px;
    line-height: 1.55;
  }

  .word-review-panel > .word-review-button,
  .word-review-content .word-review-button,
  .word-review-option:not([lang=he]) {
    font-size: 16px;
    min-height: 48px;
    line-height: 1.45;
  }

  .word-review-compose input {
    font-size: 17px;
    min-height: 48px;
  }

  /* Translation tools: explanatory text is larger; Hebrew output is unchanged. */
  .ot-page :is(.ot-heading > p, .ot-result-ru, .ot-context-note, .ot-intro-card p, .ot-empty p, .ot-review-note),
  .ov-page :is(.ov-heading p, .ov-service, .ov-unavailable p, .ov-phone-session > p),
  .call-page :is(.call-heading p, .call-choice-card p, .call-translation, .call-live-notice p) {
    font-size: 16px;
    line-height: 1.7;
  }

  .ot-page :is(.screen-label, .ot-availability, .ot-status, .ot-input-label, .ot-result-phon, .ot-result > small, .ot-audio-note, .ot-photo-picker > p, .ot-photo-picker > small, .ot-dictionary-note, .ot-dictionary-count, .ot-practice-entry > span, .ot-saved-entry > span),
  .ov-page :is(.ov-eyebrow, .ov-small, .ov-phone-note, .ov-consent, .ov-phone-status),
  .call-page :is(.call-eyebrow, .call-small-note, .call-levels small, .call-phon, .call-response-list button small, .call-result-count) {
    font-size: 14px;
    line-height: 1.6;
  }

  .ot-page .ot-privacy,
  .ov-page .ov-privacy {
    font-size: 14px !important;
    line-height: 1.65;
  }

  .ot-page :is(.ot-button:not([lang=he]), .primary),
  .ov-page :is(.ov-button, .ov-primary),
  .call-page :is(.call-button, .call-primary) {
    font-size: 16px;
    line-height: 1.45;
  }

  body:not(.keyboard-open) .ot-page :is(.ot-button:not([lang=he]), .primary),
  body:not(.keyboard-open) .ov-page :is(.ov-button, .ov-primary),
  body:not(.keyboard-open) .call-page :is(.call-button, .call-primary) {
    min-height: 48px;
  }

  .ot-page :is(.ot-nav .ot-button, .ot-direction .ot-button, .ot-examples .ot-button),
  .ov-page .ov-directions button,
  .call-page :is(.call-levels button, .call-phrase-tabs button) {
    font-size: 14px;
  }

  body:not(.keyboard-open) .ot-page :is(.ot-nav .ot-button, .ot-direction .ot-button, .ot-examples .ot-button),
  body:not(.keyboard-open) .ov-page .ov-directions button,
  body:not(.keyboard-open) .call-page :is(.call-levels button, .call-phrase-tabs button) {
    min-height: 44px;
  }

  .ot-page .ot-nav {
    flex-wrap: wrap;
  }

  .ot-page .ot-nav .ot-button {
    flex: 1 1 110px;
    padding-inline: 10px;
  }

  .ot-page .ot-compose-meta {
    flex-wrap: wrap;
  }

  .ot-page .ot-gender,
  .ot-page .ot-compose-meta > span {
    font-size: 13px;
  }

  .ot-page :is(textarea:not([lang=he]), input[type=search], select),
  .ov-page :is(textarea:not([lang=he]), input:not([type=checkbox]):not([type=radio]), select) {
    font-size: 17px;
    line-height: 1.55;
  }

  .ot-page select,
  .ov-page select {
    min-height: 44px;
  }

  .ot-page .ot-gender select {
    max-width: 100%;
  }

  /* Teacher/admin screens: small labels become legible without bigger artwork. */
  .teacher-page :is(.intro, .teacher-profile-section p, .teacher-assignment-main p, .teacher-consent > p, .teacher-cabinet-header p, .teacher-cabinet-empty p, .teacher-cabinet-row p, .teacher-library-detail > p, .teacher-library-lesson p, .studio-card p:not([lang=he]), .studio-homework p, .studio-editor-panel > p, .studio-ai-preview p:not([lang=he])) {
    font-size: 16px;
    line-height: 1.65;
  }

  .teacher-page :is(.screen-label, .teacher-note, .teacher-count, .teacher-field, .teacher-filters label, .teacher-card-meta, .teacher-card-top p, .teacher-contact small, .teacher-result small, .teacher-cabinet-stat > span, .teacher-cabinet-stat > small, .teacher-cabinet-row small, .teacher-library-block span, .teacher-library-block small, .teacher-library-lesson small, .studio-card-top > span:last-child, .studio-homework small, .studio-savebar span, .trial-slot small) {
    font-size: 13px;
    line-height: 1.55;
  }

  .teacher-page :is(.primary, .teacher-button),
  .teacher-page .trial-booking :is(.primary, .teacher-button) {
    font-size: 16px;
    min-height: 48px;
    line-height: 1.45;
    white-space: normal;
  }

  .teacher-page :is(.teacher-cabinet-nav, .teacher-library-levels, .teacher-cabinet-tools) :is(a, button),
  .teacher-page .teacher-tabs button {
    font-size: 14px;
    min-height: 44px;
    line-height: 1.45;
  }

  .teacher-page .teacher-field :is(input:not([type=checkbox]):not([type=radio]):not([lang=he]), textarea:not([lang=he]), select),
  .teacher-page .teacher-filters select,
  .teacher-page .trial-booking :is(input:not([type=checkbox]):not([type=radio]), textarea, select),
  .teacher-page .studio-option-editor input:not([type=radio]):not([lang=he]) {
    font-size: 17px;
    min-height: 48px;
    line-height: 1.55;
  }

  .teacher-library-block :is(strong, h3),
  .teacher-library-lesson :is(strong, h4) {
    font-size: 16px;
    line-height: 1.5;
  }

  .admin-page .admin-heading p,
  .admin-page .admin-panel p,
  .admin-page .admin-seo-steps {
    font-size: 16px;
    line-height: 1.65;
  }

  .admin-page :is(.admin-eyebrow, .admin-period, .admin-stat dt, .admin-stat small, .admin-table th, .admin-trend-day b, .admin-trend-day small) {
    font-size: 13px;
    line-height: 1.55;
  }

  .admin-page .admin-button {
    font-size: 16px;
    line-height: 1.45;
    min-height: 48px;
  }

  .admin-page :is(.admin-tabs button, .admin-range button) {
    font-size: 14px;
    min-height: 44px;
  }

  .admin-page .admin-property-input {
    font-size: 17px;
    min-height: 48px;
    box-sizing: border-box;
  }

  .practical-tool-card :is(strong, h3) {
    font-size: 16px;
    line-height: 1.45;
  }

  .practical-tool-card :is(p, small),
  .practical-tool-card > span:last-child,
  .practical-tools-heading p {
    font-size: 14px;
    line-height: 1.6;
  }

  .tool-seo-heading p,
  .tool-seo-steps li,
  .tool-seo-example .tool-seo-meaning,
  .tool-seo-faq details p {
    font-size: 16px;
    line-height: 1.7;
  }

  .tool-seo-breadcrumb,
  .tool-seo-availability,
  .tool-seo-section-note,
  .tool-seo-example .tool-seo-phon,
  .tool-seo-other a {
    font-size: 14px;
    line-height: 1.6;
  }

  .tool-seo-faq summary,
  .tool-seo-start {
    font-size: 16px;
    line-height: 1.5;
    min-height: 48px;
  }
}
