/* styles-mobile.css — スマホ縦長 (Flutter WebView) 向け最適化 */

/* ヘッダーをコンパクトに */
@media (max-width: 640px) {
  .app-header {
    padding: 14px 18px;
  }
  .logo-text {
    font-size: 9.5px;
  }
  .header-stage {
    font-size: 9px;
    padding: 5px 10px;
  }

  .app-main {
    padding: 12px;
  }

  /* === Intro === */
  .intro {
    gap: 18px;
    padding: 0 8px;
  }
  .intro-orb {
    width: 160px;
    height: 160px;
    margin-bottom: 0;
  }
  .intro-title {
    font-size: 32px;
    line-height: 1.25;
  }
  .intro-sub {
    font-size: 13px;
    line-height: 1.7;
  }
  .intro-eyebrow {
    font-size: 9.5px;
    letter-spacing: 0.18em;
  }
  .intro-cta {
    padding: 16px 30px;
    font-size: 13px;
  }
  .intro-meta {
    gap: 22px;
    margin-top: 4px;
  }
  .intro-meta span {
    font-size: 20px;
  }
  .intro-meta {
    font-size: 9.5px;
  }

  /* === Quiz === */
  .sc-stage {
    gap: 22px;
  }
  .sc-progress {
    width: 220px;
  }
  .sc-question {
    font-size: 22px;
    padding: 0 10px;
  }
  .sc-card {
    width: calc(100vw - 32px);
    height: 380px;
    grid-template-columns: 1fr;
    grid-template-rows: 1fr auto 1fr;
    border-radius: 20px;
  }
  .sc-half {
    padding: 22px;
  }
  .sc-half-a { text-align: center; align-items: center; }
  .sc-half-b { text-align: center; align-items: center; }
  .sc-half-text {
    font-size: 19px;
    text-align: center;
  }
  .sc-half-tag {
    align-self: center;
  }
  .sc-half-b .sc-half-tag { margin-left: auto; margin-right: auto; }
  .sc-divider {
    flex-direction: row;
    padding: 0 22px;
    gap: 14px;
  }
  .sc-divider-line {
    width: auto;
    height: 1px;
    flex: 1;
    background: linear-gradient(90deg, transparent, var(--line), transparent);
  }
  .sc-overlay-a {
    background: linear-gradient(180deg, color-mix(in oklch, var(--accent-a) 32%, transparent), transparent 55%);
    align-items: flex-start;
    padding: 28px 0 0 0;
    justify-content: center;
  }
  .sc-overlay-b {
    background: linear-gradient(0deg, color-mix(in oklch, var(--accent-b) 32%, transparent), transparent 55%);
    align-items: flex-end;
    padding: 0 0 28px 0;
    justify-content: center;
  }

  .sc-controls {
    gap: 22px;
  }
  .sc-btn {
    width: 48px;
    height: 48px;
  }
  .sc-hint {
    font-size: 9px;
  }

  /* === Reveal === */
  .rv-stage {
    padding: 28px 16px 24px;
  }
  .rv-title {
    margin-bottom: 22px;
  }
  .rv-title-eyebrow {
    font-size: 9.5px;
  }
  .rv-title-h1 {
    font-size: 36px;
  }
  .rv-products {
    grid-template-columns: 1fr;
    gap: 14px;
    margin-bottom: 22px;
  }
  .rv-card {
    padding: 18px;
    gap: 12px;
    border-radius: 16px;
  }
  .rv-card-visual {
    height: 150px;
  }
  .rv-card-name {
    font-size: 16px;
  }
  .rv-card-blurb {
    font-size: 12.5px;
  }
  .rv-card-price {
    font-size: 13px;
  }
  .rv-more-chip {
    padding: 9px 14px;
    font-size: 11.5px;
  }
  .rv-reset {
    padding: 13px 24px;
    font-size: 11.5px;
  }
  .rv-calc-text {
    font-size: 10px;
  }
}

/* === Demographics スクロール対応 === */
@media (max-width: 640px) {
  .app[data-screen-label="stage:demo"] {
    overflow-y: auto;
    overflow-x: hidden;
  }
  .app[data-screen-label="stage:demo"] .app-main {
    overflow-y: visible;
    align-items: flex-start;
    padding-top: 8px;
  }
  .demo {
    padding-bottom: 48px;
  }
}

/* タッチ操作の最適化 */
.sc-card, .sc-btn, .intro-cta, .rv-card-cta, .rv-reset {
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}
.sc-card {
  touch-action: pan-y; /* 横ドラッグはJSで処理、縦スクロールはネイティブに */
}

/* セーフエリア（iOSノッチ／ホームバー） */
.app-header {
  padding-top: max(14px, env(safe-area-inset-top));
}
.rv-stage {
  padding-bottom: max(24px, env(safe-area-inset-bottom));
}

/* WebView環境ではTweaksパネルを非表示にする */
body.flutter-embedded .twk-panel,
body.flutter-embedded .__edit_mode_toggle {
  display: none !important;
}

/* ロード中のチラつき防止 */
.app {
  -webkit-user-select: none;
  user-select: none;
}
