@charset "utf-8";

/* ========================================
   Contact Form 7 お問合せフォーム用スタイル補完
   （現行 #inquiry_contents の見た目に合わせる）
======================================== */

.wpcf7 {
	margin: 0;
	width: 100%;
}

.wpcf7 form {
	margin: 0;
}

/* 既存レイアウト（#inquiry_contents > div）内で幅を維持 */
#inquiry_contents > div > .wpcf7 {
	width: 100%;
	max-width: none;
	min-width: 0;
}

/* CF7が差し込むspan
   ※全部 block にすると郵便番号が縦積みになるため、用途別に分ける */
#inquiry_contents .wpcf7-form-control-wrap {
	position: relative;
	display: inline-block;
	vertical-align: middle;
}

/* フル幅フィールド・チェックボックス群は縦積み */
#inquiry_contents .wpcf7-form-control-wrap:has(input.full),
#inquiry_contents .wpcf7-form-control-wrap:has(textarea),
#inquiry_contents .wpcf7-form-control-wrap:has(.wpcf7-checkbox) {
	display: block;
	width: 100%;
}

/* 郵便番号：横並び（zip1 - zip2） */
#inquiry_contents .zip-row {
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
}

#inquiry_contents .zip-row .wpcf7-form-control-wrap,
#inquiry_contents .wpcf7-form-control-wrap:has(input.min) {
	display: inline-block;
	width: auto;
	vertical-align: middle;
}

#inquiry_contents input.min {
	display: inline-block;
	width: 100px;
	vertical-align: middle;
}

/* お問合せ項目チェック：1項目ずつ縦並び */
#inquiry_contents .wpcf7-checkbox .wpcf7-list-item {
	display: block;
	margin: 0 0 6px;
}

#inquiry_contents .wpcf7-list-item label {
	display: inline;
}

#inquiry_contents .wpcf7-list-item-label {
	margin: 0;
	padding: 0;
	text-align: left;
}

/* 個人情報同意：チェックと文言を中央で隣接配置 */
#inquiry_contents p.agree {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	text-align: center;
}

#inquiry_contents p.agree .wpcf7-form-control-wrap,
#inquiry_contents p.agree .wpcf7-acceptance,
#inquiry_contents p.agree .wpcf7-list-item,
#inquiry_contents p.agree .wpcf7-list-item label {
	display: inline-flex;
	align-items: center;
	width: auto;
	margin: 0;
	vertical-align: middle;
}

#inquiry_contents p.agree .wpcf7-list-item {
	margin-left: 0;
}

#inquiry_contents p.agree input[type="checkbox"] {
	margin: 0 6px 0 0;
	vertical-align: middle;
}

#inquiry_contents p.agree .wpcf7-list-item-label {
	text-align: left;
}

#inquiry_contents .wpcf7-not-valid-tip {
  display: block;
  color: #be0081;
  font-size: 12px;
  margin-top: 6px;
  letter-spacing: 1px;
}

#inquiry_contents .wpcf7-response-output {
  margin: 24px 0 0;
  padding: 12px 16px;
  border: 1px solid #ccc;
  text-align: center;
  font-size: 13px;
  letter-spacing: 1px;
}

#inquiry_contents .wpcf7 form.invalid .wpcf7-response-output,
#inquiry_contents .wpcf7 form.unaccepted .wpcf7-response-output,
#inquiry_contents .wpcf7 form.payment-required .wpcf7-response-output {
  border-color: #be0081;
  color: #be0081;
}

#inquiry_contents .wpcf7 form.sent .wpcf7-response-output {
  border-color: #231815;
  color: #231815;
}

#inquiry_contents input.wpcf7-submit.btn,
#inquiry_contents input.btn {
  display: block;
  width: 200px !important;
  height: auto !important;
  margin: 50px auto 0;
  border: 1px solid #000;
  text-align: center;
  color: #000;
  background-color: #fff;
  font-family: "リュウミン R-KL", "Ryumin Regular KL", "Zen Old Mincho", serif;
  font-style: normal;
  letter-spacing: 2px;
  font-size: 14px;
  line-height: 30px;
  padding: 8px 16px;
  cursor: pointer;
  transition: 0.5s;
}

#inquiry_contents input.wpcf7-submit.btn:hover,
#inquiry_contents input.btn:hover {
  background: #000;
  color: #fff;
}

/* 送信中の二重送信防止の見た目 */
#inquiry_contents .wpcf7 form.submitting input.wpcf7-submit {
  opacity: 0.6;
  pointer-events: none;
}

/* ========================================
   必須 / 任意 ラベル
======================================== */
#inquiry_contents .label-required,
#inquiry_contents .label-optional {
	display: inline-block;
	margin-left: 10px;
	padding: 2px 8px;
	font-size: 11px;
	font-weight: normal;
	letter-spacing: 0.08em;
	line-height: 1.4;
	vertical-align: middle;
	font-family: "Noto Sans JP", sans-serif;
}

#inquiry_contents .label-required {
	background-color: #231815;
	color: #fff;
}

#inquiry_contents .label-optional {
	background-color: #EAE9E8;
	color: #6b6560;
	border: 1px solid #d8d3ce;
}

#inquiry_contents p.agree .label-required {
	margin-left: 0;
	margin-right: 8px;
}

#inquiry_contents dt {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 4px 0;
}
