/* =========================================================
   sp_contact.css（SP：お問い合わせフォーム専用）
   - 959.98px 以下のみ適用
   
   HTML構造:
   .gn-row
     ├─ .gn-label-area
     │     ├─ label.gn-label
     │     └─ span.gn-required-badge
     └─ .gn-field（入力欄）
   
   SPレイアウト:
   [ラベル][必須バッジ]  ← 横並び
   [入力欄 100%幅]       ← 下段
========================================================= */

@media (max-width: 959.98px) {

  /* ----------------------------------------
     0. ベース・リセット
  ---------------------------------------- */
  .gn-contact {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    padding: 0 16px !important;
    box-sizing: border-box !important;
  }

  .gn-contact *,
  .gn-contact *::before,
  .gn-contact *::after {
    box-sizing: border-box !important;
  }

  /* PC用スペーサーは非表示 */
  .gn-contact .gn-row-gap-sp {
    display: none !important;
  }

  /* ----------------------------------------
     1. 基本行（氏名・メール・ご用件・メッセージ）
     - 縦積みレイアウト
  ---------------------------------------- */
  .gn-contact .gn-row.gn-row-basic,
  .gn-contact .gn-row.gn-row-message {
    display: block !important;
    width: 100% !important;
    padding: 0 !important;
  }

  /* ★ 行間80px - 個別指定 */
  .gn-contact .gn-row.gn-row-name {
    margin: 48px 0 0 0 !important;
  }

  .gn-contact .gn-row.gn-row-email {
    margin: 80px 0 0 0 !important;
  }

  .gn-contact .gn-row.gn-row-subject {
    margin: 80px 0 0 0 !important;
  }

  .gn-contact .gn-row.gn-row-message {
    margin: 80px 0 0 0 !important;
  }

  /* ----------------------------------------
     2. ラベルエリア（ラベル + 必須バッジ横並び）
  ---------------------------------------- */
  .gn-contact .gn-row .gn-label-area {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 12px !important;
    margin: 0 0 8px 0 !important;
    padding: 0 !important;
  }

  /* ラベルエリア内のpタグ */
  .gn-contact .gn-row .gn-label-area > p {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 12px !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* brタグを非表示 */
  .gn-contact .gn-row .gn-label-area br {
    display: none !important;
  }

  .gn-contact .gn-row .gn-label {
    display: inline-flex !important;
    align-items: center !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1.4 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* ----------------------------------------
     3. 必須バッジ（ラベル横に表示）
  ---------------------------------------- */
  .gn-contact .gn-row .gn-required-badge {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 20px !important;
    line-height: 20px !important;
    padding: 0 10px !important;
    border-radius: 999px !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    white-space: nowrap !important;
    margin: 0 !important;
    background: #D93025 !important;
    color: #fff !important;
  }

  /* ----------------------------------------
     4. 入力欄（幅100%）
  ---------------------------------------- */
  .gn-contact .gn-row .gn-field {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* CF7が生成するpタグ */
  .gn-contact .gn-row .gn-field > p {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
  }

  /* CF7ラッパー */
  .gn-contact .gn-row .gn-field .wpcf7-form-control-wrap {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* 入力要素 */
  .gn-contact .gn-row .gn-field input[type="text"],
  .gn-contact .gn-row .gn-field input[type="email"],
  .gn-contact .gn-row .gn-field select {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 44px !important;
    min-height: 44px !important;
    margin: 0 !important;
    padding: 0 12px !important;
    font-size: 16px !important;
    box-sizing: border-box !important;
    border: 1px solid #dcdcdc !important;
    border-radius: 8px !important;
    background: #fff !important;
  }

  /* テキストエリア */
  .gn-contact .gn-row .gn-field textarea {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 120px !important;
    min-height: 120px !important;
    margin: 0 !important;
    padding: 12px !important;
    font-size: 16px !important;
    box-sizing: border-box !important;
    border: 1px solid #dcdcdc !important;
    border-radius: 8px !important;
    background: #fff !important;
    resize: none !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
  }

  /* ----------------------------------------
     5. セレクトボックス
  ---------------------------------------- */
  .gn-contact select {
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    background-image: none !important;
  }

  /* セレクトボックスの矢印 */
  .gn-contact .gn-row-subject .gn-field .wpcf7-form-control-wrap {
    position: relative !important;
  }

  .gn-contact .gn-row-subject .gn-field .wpcf7-form-control-wrap::after {
    content: "∨" !important;
    position: absolute !important;
    right: 14px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    pointer-events: none !important;
    font-size: 14px !important;
    line-height: 1 !important;
    color: #666 !important;
  }

  /* ----------------------------------------
     6. 注意書き（プライバシーポリシー）
     ※マークの後（「個」の下）から折り返しが始まるレイアウト
  ---------------------------------------- */
  .gn-contact .gn-notice {
    display: block !important;
    margin: 48px auto 0 auto !important;
    padding: 0 !important;
    padding-left: 1.5em !important;
    text-indent: -1.5em !important;
    font-size: 13px !important;
    line-height: 1.6 !important;
    text-align: left !important;
    max-width: fit-content !important;
  }

  .gn-contact .gn-notice a {
    text-decoration: underline !important;
  }

  /* ----------------------------------------
     7. 同意事項
     レイアウト: [チェックボックス]16px[テキスト]
     同意事項ラベルは左寄せ、チェックボックスと先頭行をセンター揃え
  ---------------------------------------- */
  .gn-contact .gn-row.gn-row-consent {
    display: block !important;
    margin: 40px 0 32px 0 !important;
    padding: 0 !important;
    text-align: left !important;
  }

  /* 同意事項行の疑似要素は非表示 */
  .gn-contact .gn-row.gn-row-consent::before {
    display: none !important;
    content: none !important;
  }

  /* 同意事項ラベル - 17px太字、左寄せ */
  .gn-contact .gn-row-consent .gn-label-area {
    display: block !important;
    margin: 0 0 8px 0 !important;
    padding: 0 !important;
    text-align: left !important;
  }

  .gn-contact .gn-row-consent .gn-label-area > p {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .gn-contact .gn-row-consent .gn-label {
    display: inline !important;
    font-size: 17px !important;
    font-weight: 700 !important;
    line-height: 1.4 !important;
  }

  /* 同意事項の必須バッジは非表示 */
  .gn-contact .gn-row-consent .gn-required-badge {
    display: none !important;
  }

  /* チェックボックス + テキスト部分 */
  .gn-contact .gn-row-consent .gn-field {
    display: flex !important;
    justify-content: flex-start !important;
    align-items: flex-start !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .gn-contact .gn-row-consent .gn-field > p {
    display: flex !important;
    justify-content: flex-start !important;
    align-items: flex-start !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .gn-contact .gn-row-consent .gn-field label {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    gap: 16px !important;
    cursor: pointer !important;
    font-size: 16px !important;
    line-height: 1.6 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* チェックボックス - 先頭行とセンター揃え */
  .gn-contact .gn-row-consent input[type="checkbox"] {
    margin: 0 !important;
    margin-top: 3px !important;
    padding: 0 !important;
    flex-shrink: 0 !important;
    width: 18px !important;
    height: 18px !important;
  }

  /* CF7ラッパー */
  .gn-contact .gn-row-consent .wpcf7-form-control-wrap {
    display: inline-flex !important;
    align-items: flex-start !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .gn-contact .gn-row-consent .wpcf7-acceptance {
    display: inline-flex !important;
    align-items: flex-start !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .gn-contact .gn-row-consent .wpcf7-list-item {
    display: inline-flex !important;
    align-items: flex-start !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .gn-contact .gn-row-consent .wpcf7-list-item-label {
    display: inline !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 16px !important;
    line-height: 1.6 !important;
  }

  /* ----------------------------------------
     8. 送信ボタン
  ---------------------------------------- */
  .gn-contact .gn-row.gn-row-submit {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
    margin: 48px 0 48px 0 !important;
    padding: 0 !important;
  }

  /* 送信ボタン行の疑似要素は非表示 */
  .gn-contact .gn-row.gn-row-submit::before {
    display: none !important;
    content: none !important;
  }

  /* CF7が生成するpタグ */
  .gn-contact .gn-row-submit > p {
    display: flex !important;
    justify-content: center !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .gn-contact .gn-row-submit input.wpcf7-submit,
  .gn-contact .gn-row-submit input[type="submit"] {
    display: inline-block !important;
    width: 280px !important;
    max-width: 100% !important;
    height: 48px !important;
    padding: 0 24px !important;
    margin: 0 !important;
    font-size: 16px !important;
    line-height: 48px !important;
    box-sizing: border-box !important;
    border-radius: 8px !important;
  }

  /* 送信ボタン：有効時 */
  .gn-contact .gn-row-submit input.wpcf7-submit:not(:disabled),
  .gn-contact .gn-row-submit input[type="submit"]:not(:disabled) {
    cursor: pointer !important;
  }

  /* 送信ボタン：無効時 */
  .gn-contact .gn-row-submit input.wpcf7-submit:disabled,
  .gn-contact .gn-row-submit input[type="submit"]:disabled,
  .gn-contact .gn-row-submit input.wpcf7-submit[disabled],
  .gn-contact .gn-row-submit input[type="submit"][disabled] {
    cursor: not-allowed !important;
    opacity: 0.6 !important;
  }

  /* CF7スピナーをレイアウトから除外 */
  .gn-contact .gn-row-submit .wpcf7-spinner {
    position: absolute !important;
    margin-left: 8px !important;
  }

  /* ----------------------------------------
     9. 自動送信メール案内
  ---------------------------------------- */
  .gn-contact .gn-auto-mail-box {
    margin-top: 48px !important;
    padding: 16px !important;
    border: 2px dotted #6cb4dc !important;
    border-radius: 8px !important;
    background-color: #eefaff !important;
    box-sizing: border-box !important;
  }

  .gn-contact .gn-auto-mail-title {
    font-size: 15px !important;
    font-weight: 700 !important;
    margin-bottom: 10px !important;
  }

  .gn-contact .gn-auto-mail-body {
    font-size: 13px !important;
    line-height: 1.7 !important;
  }

  /* ----------------------------------------
     10. CF7エラーメッセージ
  ---------------------------------------- */
  .gn-contact .wpcf7-not-valid-tip {
    display: block !important;
    margin-top: 4px !important;
    font-size: 12px !important;
    color: #D93025 !important;
  }
}