/* ============================================================
   お問い合わせフォーム（公開）スタイル
   - フレーム非依存。テーマ変数を使うので色も追従。
   ============================================================ */
.cms-form-parts { max-width: 640px; margin: 0 auto; }
.cms-form-row { margin: 0 0 1.1em; }
.cms-form-label { display: block; font-weight: 700; margin: 0 0 .35em; }
.cms-form-req { font-size: .72em; font-weight: 700; padding: .1em .5em; border-radius: 4px; margin-left: .4em;
  background: var(--accent-color, #e07b39); color: var(--accent-inverse-color, #fff); }
.cms-form-input {
  width: 100%; padding: .65em .8em; font-size: 1em; line-height: 1.6;
  border: 1px solid var(--bg-border-color, rgba(0, 0, 0, .28)); border-radius: 8px; background: var(--bg-color, #fff); color: inherit;
}
.cms-form-input:focus { outline: 2px solid var(--primary-color, #2563eb); outline-offset: 1px; }
textarea.cms-form-input { resize: vertical; }
.cms-form-actions { text-align: center; margin-top: 1.4em; }
.cms-form-submit {
  display: inline-block; padding: .8em 2.4em; font-size: 1.05em; font-weight: 700; cursor: pointer;
  border: 0; border-radius: 8px; background: var(--primary-color, #2563eb); color: var(--primary-inverse-color, #fff);
}
.cms-form-submit:hover { opacity: .9; }
.cms-form-choices { display: flex; flex-wrap: wrap; gap: .4em 1.4em; padding: .3em 0; }
.cms-form-choice { display: flex; align-items: center; gap: .35em; }
.cms-form-consent { display: flex; align-items: flex-start; gap: .5em; justify-content: center; }
.cms-form-fielderr { display: block; margin-top: .3em; font-size: .88em; color: #dc2626; }
.cms-form-hint { display: block; margin-top: .25em; font-size: .82em; opacity: .65; }
.cms-form-error { padding: .8em 1em; border-radius: 8px; margin: 0 0 1.2em;
  background: #fef2f2; border: 1px solid #fecaca; color: #b91c1c; }
/* 送信後のお礼。ページの下のほうにフォームがあると見落とされやすいので、
   上下の余白を厚めに取って「送信できた」ことがひと目で分かるようにしている（marginではなくpadding＝背景色ごと広げる） */
.cms-form-thanks { padding: 2.6em 1.2em; border-radius: 10px; text-align: center; font-weight: 700;
  background: var(--light-color, #ecfdf5); color: var(--light-inverse-color, #065f46); }
/* 詳細ページに差し込むインラインフォーム */
.cms-form-inline { padding: 2em 16px; margin-top: 1.5em; border-top: 1px solid var(--bg-border-color, rgba(0, 0, 0, .1)); }
.cms-form-inline-h { text-align: center; font-size: 1.3em; margin: 0 0 1.2em; }

/* ハニーポット（画面外に隠す。スクリーンリーダーからも外す） */
.cms-form-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* 送信後は #アンカー でフォームの位置に戻る（submit.php）。
   お礼のメッセージが画面の一番上に貼り付かないよう、少しだけ余白を取る。 */
.cms-form-parts { scroll-margin-top: 1.5rem; }
