/* レスポンシブデザイン */

/* CSS変数で共通値を定義 */
:root {
  --padding-large: 2rem;
  --padding-medium: 1rem;
  --padding-small: 0.75rem;
  --padding-tiny: 0.5rem;
  --gap-large: 1.5rem;
  --gap-medium: 1rem;
  --gap-small: 0.75rem;
  --gap-tiny: 0.5rem;
  --font-large: 1.5rem;
  --font-medium: 1.2rem;
  --font-small: 1rem;
  --font-tiny: 0.85rem;
}

/* モバイル（768px未満）- 統一設定 */
@media (max-width: 767px) {
  body {
    padding: 0.25rem;
  }

  .container {
    border-radius: 8px;
  }

  .header {
    padding: 1.5rem var(--padding-small);
  }

  .header h1 {
    font-size: var(--font-medium);
    line-height: 1.3;
  }

  .subtitle {
    font-size: 0.9rem;
  }

  .main-content {
    padding: var(--padding-small);
  }

  .form-section {
    padding: var(--padding-small);
    margin-bottom: 1.5rem;
  }

  .section-header {
    margin-bottom: 1.5rem;
  }

  .section-header h2 {
    font-size: var(--font-medium);
    margin-bottom: 0.25rem;
  }

  .form-grid {
    grid-template-columns: 1fr;
    gap: var(--gap-small);
  }

  .submit-button {
    width: 100%;
    max-width: 300px;
    padding: 0.875rem var(--padding-large);
    font-size: var(--font-small);
    min-width: 180px;
  }

  /* 半券関連の設定 */
  .ticket-form-grid {
    grid-template-columns: 1fr !important;
    gap: var(--gap-small);
  }

  .ticket-form-grid .form-group {
    grid-column: 1 !important;
    margin-bottom: 0.5rem;
  }

  .ticket-form-grid .form-group:nth-child(5) {
    grid-column: 1;
  }

  .ticket-group {
    padding: var(--padding-small);
    margin-bottom: var(--gap-small);
  }

  .ticket-group h3 {
    font-size: var(--font-small);
    margin-bottom: var(--gap-small);
  }

  /* 入力フィールド統一設定 */
  .input-field,
  .select-field {
    width: 100%;
    box-sizing: border-box;
    padding: 0.75rem;
    font-size: 16px !important; /* iOS Safari ズーム防止 */
    min-height: 44px; /* iOSタッチターゲット推奨サイズ */
    -webkit-text-size-adjust: 100%;
  }

  .field-label {
    font-size: var(--font-tiny);
    margin-bottom: 0.25rem;
  }

  .prize-options {
    grid-template-columns: 1fr !important;
    gap: 1rem !important;
  }

  .prize-card {
    padding: 1rem !important;
  }

  .prize-title {
    font-size: 1.2rem !important;
  }

  .prize-description {
    font-size: 0.8rem !important;
  }

  .file-input {
    padding: var(--padding-small);
    font-size: var(--font-tiny);
    text-align: center;
  }

  .file-help-text {
    font-size: 0.7rem;
    margin-top: 0.125rem;
    text-align: center;
  }

  .no-prize-selected {
    padding: var(--padding-medium);
  }

  .no-prize-selected p {
    font-size: var(--font-tiny);
  }

  .notice-box {
    padding: var(--padding-medium);
  }

  .notice-box h3 {
    font-size: var(--font-small);
    margin-bottom: var(--gap-small);
  }

  .notice-box li {
    font-size: var(--font-tiny);
    padding: 0.25rem 0;
    padding-left: 1.25rem;
  }

  .address-status {
    font-size: 0.7rem;
    padding: 0.25rem 0.4rem;
  }

  .mini-spinner {
    width: 14px;
    height: 14px;
  }

  .footer {
    padding: 1.5rem;
    font-size: 0.8rem;
  }
}
