/* =========================================================
   pc_contact.css（PC：お問い合わせフォーム専用）
   - 960px 以上のみ適用
   - 全プロパティに !important を使用して他CSSからの干渉を遮断
========================================================= */

@media (min-width: 960px) {

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

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

  .gn-contact .gn-row-gap-sp {
    display: none !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* ----------------------------------------
     1. 基本行の完全リセット
  ---------------------------------------- */
  .gn-contact .gn-row.gn-row-basic,
  .gn-contact .gn-row.gn-row-message {
    display: grid !important;
    grid-template-columns: auto 1fr 460px !important;
    grid-template-rows: auto !important;
    align-items: center !important;
    justify-items: stretch !important;
    width: 100% !important;
    min-height: 38px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
  }

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

  .gn-contact .gn-row.gn-row-email {
    margin-top: 112px !important;
    margin-bottom: 0 !important;
  }

  .gn-contact .gn-row.gn-row-subject {
    margin-top: 112px !important;
    margin-bottom: 0 !important;
  }

  .gn-contact .gn-row.gn-row-message {
    margin-top: 112px !important;
    margin-bottom: 0 !important;
  }

  /* ----------------------------------------
     2. ラベルエリア（グリッド1列目）
  ---------------------------------------- */
  .gn-contact .gn-row.gn-row-basic > .gn-label-area,
  .gn-contact .gn-row.gn-row-message > .gn-label-area {
    grid-column: 1 / 2 !important;
    grid-row: 1 / 2 !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start !important;
    height: 38px !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .gn-contact .gn-row .gn-label {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    height: 38px !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .gn-contact .gn-row .gn-label-text {
    display: inline !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* ★ ラベルエリア内の必須バッジを完全に非表示 */
  .gn-contact .gn-row.gn-row-basic > .gn-label-area > .gn-required-badge,
  .gn-contact .gn-row.gn-row-message > .gn-label-area > .gn-required-badge,
  .gn-contact .gn-row.gn-row-basic .gn-label-area .gn-required-badge,
  .gn-contact .gn-row.gn-row-message .gn-label-area .gn-required-badge,
  .gn-contact .gn-row.gn-row-basic .gn-label-area p .gn-required-badge,
  .gn-contact .gn-row.gn-row-message .gn-label-area p .gn-required-badge {
    display: none !important;
    visibility: hidden !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    opacity: 0 !important;
    position: absolute !important;
    left: -9999px !important;
  }

  /* ラベルエリア内のpタグとbrタグをリセット */
  .gn-contact .gn-row .gn-label-area > p {
    display: flex !important;
    align-items: center !important;
    margin: 0 !important;
    padding: 0 !important;
    height: 38px !important;
  }

  .gn-contact .gn-row .gn-label-area br {
    display: none !important;
  }

  /* ----------------------------------------
     3. 必須バッジ（疑似要素でグリッド2列目に配置）
  ---------------------------------------- */
  .gn-contact .gn-row.gn-row-basic::before,
  .gn-contact .gn-row.gn-row-message::before {
    content: "必須" !important;
    grid-column: 2 / 3 !important;
    grid-row: 1 / 2 !important;
    justify-self: end !important;
    align-self: center !important;
    margin: 0 16px 0 0 !important;
    padding: 0 10px !important;
    
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 20px !important;
    min-width: 40px !important;
    line-height: 20px !important;
    border-radius: 999px !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    white-space: nowrap !important;
    background-color: #D93025 !important;
    color: #ffffff !important;
    border: none !important;
  }

  /* ----------------------------------------
     4. 入力欄（グリッド3列目）
  ---------------------------------------- */
  .gn-contact .gn-row.gn-row-basic > .gn-field,
  .gn-contact .gn-row.gn-row-message > .gn-field {
    grid-column: 3 / 4 !important;
    grid-row: 1 / 2 !important;
    width: 460px !important;
    max-width: 460px !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* CF7が生成するpタグ */
  .gn-contact .gn-row .gn-field > 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: 38px !important;
    min-height: 38px !important;
    margin: 0 !important;
    padding: 0 12px !important;
    font-size: 16px !important;
    box-sizing: border-box !important;
  }

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

  /* ----------------------------------------
     5. メッセージ行（上揃え・ラベル位置調整）
  ---------------------------------------- */
  .gn-contact .gn-row.gn-row-message {
    align-items: flex-start !important;
  }

  /* メッセージ行のラベルエリア - 6.5px下に配置 */
  .gn-contact .gn-row.gn-row-message > .gn-label-area {
    height: auto !important;
    padding-top: 6.5px !important;
    margin-top: 0 !important;
    align-items: flex-start !important;
  }

  .gn-contact .gn-row.gn-row-message .gn-label-area > p {
    height: auto !important;
    padding-top: 0 !important;
    margin-top: 0 !important;
  }

  .gn-contact .gn-row.gn-row-message .gn-label {
    height: 20px !important;
    line-height: 20px !important;
  }

  /* メッセージ行の必須バッジも6.5px下に配置 */
  .gn-contact .gn-row.gn-row-message::before {
    align-self: flex-start !important;
    margin-top: 6.5px !important;
  }

  /* ----------------------------------------
     6. セレクトボックス（Mac対応のカスタム矢印）
  ---------------------------------------- */
  .gn-contact select {
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    background-image: none !important;
    padding-right: 40px !important;
  }

  /* セレクトボックスのラッパーを相対位置に */
  .gn-contact .gn-row-subject .gn-field {
    position: relative !important;
  }

  /* wpcf7-form-control-wrap を基準点にする */
  .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;
    color: #333 !important;
    line-height: 1 !important;
    display: block !important;
  }

  /* ----------------------------------------
     7. 注意書き
  ---------------------------------------- */
  .gn-contact .gn-notice {
    display: block !important;
    margin: 64px 0 24px 0 !important;
    padding: 0 !important;
    font-size: 14px !important;
    line-height: 1.6 !important;
    text-align: center !important;
  }

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

  /* ----------------------------------------
     8. 同意事項
     レイアウト: [同意事項]32px[チェックボックス]16px[テキスト]
     全体センター配置、垂直方向もセンター揃え
  ---------------------------------------- */
  .gn-contact .gn-row.gn-row-consent {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0 !important;
    margin: 24px 0 40px 0 !important;
    padding: 0 !important;
  }

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

  /* 同意事項ラベルエリア - 右に32px間隔 */
  .gn-contact .gn-row-consent .gn-label-area {
    flex: 0 0 auto !important;
    display: flex !important;
    align-items: center !important;
    height: auto !important;
    margin: 0 32px 0 0 !important;
    padding: 0 !important;
  }

  /* ラベルエリア内のpタグをリセット */
  .gn-contact .gn-row-consent .gn-label-area > p {
    display: flex !important;
    align-items: center !important;
    margin: 0 !important;
    padding: 0 !important;
  }

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

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

  /* gn-field内のpタグ */
  .gn-contact .gn-row-consent .gn-field > p {
    display: flex !important;
    align-items: center !important;
    margin: 0 !important;
    padding: 0 !important;
  }

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

  /* チェックボックス */
  .gn-contact .gn-row-consent input[type="checkbox"] {
    margin: 0 !important;
    padding: 0 !important;
    flex-shrink: 0 !important;
    width: 16px !important;
    height: 16px !important;
  }

  /* チェックボックスのラッパー（CF7が生成） */
  .gn-contact .gn-row-consent .wpcf7-form-control-wrap {
    display: inline-flex !important;
    align-items: center !important;
    margin: 0 !important;
    padding: 0 !important;
  }

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

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

  .gn-contact .gn-row-consent .wpcf7-list-item-label {
    display: inline-flex !important;
    align-items: center !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 14px !important;
    line-height: 1 !important;
  }

  .gn-contact .gn-row-consent .wpcf7-list-item-label {
    display: inline-flex !important;
    align-items: center !important;
    line-height: 1 !important;
  }

  /* ----------------------------------------
     9. 送信ボタン
  ---------------------------------------- */
  .gn-contact .gn-row.gn-row-submit {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 32px auto 48px auto !important;
    padding: 0 !important;
    text-align: center !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: 360px !important;
    max-width: 100% !important;
    height: 48px !important;
    padding: 0 32px !important;
    margin: 0 !important;
    font-size: 16px !important;
    line-height: 48px !important;
    box-sizing: border-box !important;
    border-radius: 8px !important;
  }

  /* CF7スピナー（送信中ローディング）をレイアウトから除外 */
  .gn-contact .gn-row-submit .wpcf7-spinner {
    position: absolute !important;
    margin-left: 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;
    pointer-events: auto !important;
  }

  /* ----------------------------------------
     10. 自動送信メール案内
  ---------------------------------------- */
  .gn-contact .gn-auto-mail-box {
    margin-top: 64px !important;
    padding: 16px !important;
  }

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

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

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