/* 共通モバイル補正: 全ページの固定UIと日本語本文の横切れを防ぐ最終上書き */

@media (max-width: 599px) {
  :root {
    --learning-header-height: 120px;
  }

  html,
  body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden !important;
  }

  .card-inner,
  .card-inner *,
  .container,
  .container *,
  main,
  main * {
    min-width: 0;
    word-break: break-all !important;
    line-break: strict;
  }

  .header {
    height: auto !important;
    min-height: var(--learning-header-height);
    padding: 12px 16px !important;
  }

  .header-info {
    min-width: 0;
  }

  .header-title {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .header-chapter {
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
    font-size: 16px !important;
    line-height: 1.35;
  }

  .progress-wrap {
    top: var(--learning-header-height) !important;
  }

  .progress-text {
    top: calc(var(--learning-header-height) + 10px) !important;
    right: 16px !important;
    line-height: 1.2;
  }

  .card-container {
    top: calc(var(--learning-header-height) + 32px) !important;
  }

  .card {
    padding-bottom: calc(120px + env(safe-area-inset-bottom)) !important;
  }

  .nav-area {
    padding: 12px 16px max(12px, env(safe-area-inset-bottom)) !important;
  }

  .nav-btn {
    min-height: 52px;
    padding: 14px 16px !important;
  }

  .choice-grid > span {
    display: block;
    max-width: 100%;
    margin-top: 6px;
    line-height: 1.7;
  }
}
