/*
 * フォーム（Contact Form 7）をプロトタイプ GATUN-17-Contact / 14a の見た目にそろえる。
 * フォームの中身は GATUN Core が作成（gatun_form_template）。自動段落はオフ。
 */

/* 共通：カード */
.gt-form { margin: 0; }
.gt-form--contact { border-radius: 20px; border: 1px solid #E3E9F2; background: #fff; box-shadow: 0 10px 34px rgba(26, 43, 71, .06); padding: clamp(30px, 5vw, 54px) clamp(20px, 4.6vw, 56px); }
.gt-form--seminar { border-radius: 20px; border: 1px solid #E3E9F2; background: #fff; padding: clamp(26px, 5vw, 44px) clamp(20px, 4.4vw, 40px); }
.gt-form-missing { padding: 20px; border: 1px dashed #C62828; border-radius: 12px; color: #C62828; }

/* 行（お問い合わせ：左に項目名、右に入力欄） */
.gt-form__fields { display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(20px, 2.6vw, 30px); margin-bottom: clamp(28px, 3.4vw, 40px); }
.gt-form__row { display: grid; grid-template-columns: clamp(140px, 17vw, 210px) minmax(0, 1fr); gap: clamp(14px, 2vw, 28px); align-items: start; margin: 0; }
.gt-form__label { display: flex; align-items: center; gap: 8px; font-size: .9375rem; font-weight: 800; color: #1A2B47; padding-top: 15px; }
.gt-form__req { border-radius: 4px; padding: 2px 8px; font-size: .6875rem; font-weight: 700; color: #fff; background: #0097A7; }
.gt-form__opt { display: none; }
.gt-form__control { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.gt-form__note { font-size: .75rem; line-height: 1.8; color: #8A99B3; }
@media (max-width: 700px) {
  .gt-form__row { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .gt-form__label { padding-top: 0; }
}

/* セミナー申込：項目名を上に、2〜3列で並べる */
.gt-form--seminar .gt-form__fields { grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 24px; margin-bottom: 28px; }
.gt-form--seminar .gt-form__row { display: flex; flex-direction: column; gap: 10px; }
.gt-form--seminar .gt-form__label { padding-top: 0; font-size: .8125rem; font-weight: 700; }

/* 入力欄 */
.gt-form .wpcf7-form-control-wrap { display: block; }
.gt-input, .gt-textarea { width: 100%; border-radius: 10px; border: 1px solid #C7D2E2; background: #FAFCFE; font-size: .9375rem; font-family: inherit; color: #1A2B47; transition: border-color 200ms, box-shadow 200ms; }
.gt-input { height: 54px; padding: 0 16px; }
.gt-form--seminar .gt-input { height: 52px; }
.gt-textarea { padding: 14px 16px; resize: vertical; min-height: 140px; line-height: 1.8; }
.gt-input:focus, .gt-textarea:focus { outline: none; border-color: #0097A7; box-shadow: 0 0 0 3px rgba(0, 151, 167, .16); background: #fff; }
.gt-input::placeholder, .gt-textarea::placeholder { color: #A9B6CB; }

/* お問い合わせ種別（チェックボックス）・ご希望の形式 */
.gt-kinds { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px 18px; padding-top: 8px; }
.gt-radios { display: flex !important; flex-wrap: wrap; gap: 12px; }
.gt-kinds .wpcf7-list-item, .gt-radios .wpcf7-list-item { margin: 0; }
.gt-kinds label, .gt-radios label { display: inline-flex; align-items: center; gap: 10px; cursor: pointer; padding: 6px 4px; font-size: .9375rem; font-weight: 700; color: #1A2B47; transition: color 200ms; }
.gt-kinds input[type="checkbox"], .gt-radios input[type="checkbox"], .gt-form__consent input[type="checkbox"] { appearance: none; -webkit-appearance: none; flex: none; margin: 0; width: 18px; height: 18px; border-radius: 5px; border: 1.5px solid #C7D2E2; background: #fff; cursor: pointer; }
.gt-radios input[type="checkbox"] { border-radius: 9999px; }
.gt-kinds input:checked, .gt-form__consent input:checked { border-color: #0097A7; background: #0097A7 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12.5l5 5L20 6.5'/%3E%3C/svg%3E") center / 13px 13px no-repeat; }
.gt-radios input:checked { border-color: #0097A7; box-shadow: inset 0 0 0 4px #fff, inset 0 0 0 12px #0097A7; }
.gt-kinds label:has(input:checked), .gt-radios label:has(input:checked) { color: #0097A7; }
.gt-kinds input:focus-visible, .gt-radios input:focus-visible, .gt-form__consent input:focus-visible { outline: 3px solid rgba(0, 151, 167, .45); outline-offset: 2px; }
@media (max-width: 860px) { .gt-kinds { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) { .gt-kinds { grid-template-columns: minmax(0, 1fr); } }

/* 同意・送信 */
.gt-form__consent { margin: 0 0 22px; text-align: center; font-size: .8125rem; color: #48587A; }
.gt-form--seminar .gt-form__consent { text-align: left; }
.gt-form__consent label { display: inline-flex; align-items: center; gap: 10px; cursor: pointer; }
.gt-form__consent .wpcf7-list-item { margin: 0; }
.gt-form__consent a { color: #1565C0; text-decoration: underline; text-underline-offset: 3px; }
.gt-form__submit { display: flex; justify-content: center; }
.gt-form--seminar .gt-form__submit { justify-content: flex-start; }
.gt-form__button { display: inline-flex; align-items: center; justify-content: center; gap: 10px; border: none; cursor: pointer; border-radius: 9999px; padding: 18px 40px; font-size: 1rem; font-weight: 700; font-family: inherit; color: #fff; background: linear-gradient(135deg, #0D47A1 0%, #0097A7 55%, #43A047 100%); box-shadow: 0 12px 30px rgba(21, 101, 192, .26); }
.gt-form__button:hover { box-shadow: 0 16px 38px rgba(21, 101, 192, .34); }
.gt-form__button:disabled, .gt-form.submitting .gt-form__button { opacity: .6; cursor: wait; }
.gt-form .wpcf7-spinner { margin: 0 0 0 12px; }

/* エラー・結果表示（CF7） */
.gt-form .wpcf7-not-valid { border-color: #C62828 !important; background: #FFF8F8; }
.gt-form .wpcf7-not-valid-tip { margin-top: 6px; font-size: .8125rem; font-weight: 700; color: #C62828; }
.gt-form .wpcf7-response-output { margin: 24px 0 0 !important; padding: 14px 18px !important; border-radius: 10px; border: 1px solid #E3E9F2 !important; font-size: .9375rem; line-height: 1.8; }
.gt-form.invalid .wpcf7-response-output, .gt-form.unaccepted .wpcf7-response-output { border-color: #F2C94C !important; background: #FFFBEA; color: #6B4E00; }
.gt-form.failed .wpcf7-response-output, .gt-form.aborted .wpcf7-response-output, .gt-form.spam .wpcf7-response-output { border-color: #E57373 !important; background: #FFF5F5; color: #8E1C1C; }
.gt-form.sent .wpcf7-response-output { border-color: #81C784 !important; background: #F1F8F2; color: #1B5E20; }
.wpcf7 .screen-reader-response { position: absolute; margin: -1px; padding: 0; border: 0; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }

/* CF7 の基本動作に必要な最小限（CF7 標準CSSは読み込まないため） */
.gt-form .hidden-fields-container { display: none; }
.gt-form.init .wpcf7-response-output, .gt-form.resetting .wpcf7-response-output, .gt-form.submitting .wpcf7-response-output { display: none; }
.gt-form .wpcf7-response-output:empty { display: none; }
.gt-form .wpcf7-spinner { visibility: hidden; display: inline-block; width: 24px; height: 24px; border-radius: 9999px; border: 3px solid #D6DEEA; border-top-color: #0097A7; vertical-align: middle; animation: gt-spin 800ms linear infinite; }
.gt-form.submitting .wpcf7-spinner { visibility: visible; }
.gt-form .wpcf7-list-item-label::before, .gt-form .wpcf7-list-item-label::after { content: none; }
@keyframes gt-spin { to { transform: rotate(360deg); } }
