@charset "UTF-8";
/**
 * Contact Form 7 共通フォーム
 *
 * フォームを置くページに functions.php から自動で読み込まれる。
 * ページ固有クラスに依存させず、CF7 自身の .wpcf7 を起点にすることで、
 * 今後追加するフォームにも同じデザインを適用する。
 */
.wpcf7 {
  max-width: 720px;
  margin: 48px auto 0;
}
.wpcf7 form > p {
  margin: 0 0 30px;
  font-size: 13px;
  line-height: 1.85;
  letter-spacing: 0.04em;
  color: rgba(21, 18, 15, 0.62);
}
.wpcf7 form > p::first-line {
  font-size: 14px;
  font-weight: 700;
  color: #15120f;
}
.wpcf7 .wpcf7-form-control-wrap {
  display: block;
  margin: 10px 0 6px;
}
.wpcf7 input[type=text],
.wpcf7 input[type=email],
.wpcf7 input[type=tel],
.wpcf7 input[type=url],
.wpcf7 input[type=number],
.wpcf7 input[type=date],
.wpcf7 select,
.wpcf7 textarea {
  width: 100%;
  padding: 14px 16px;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: normal;
  color: #15120f;
  background: #fff;
  border: 1px solid rgba(21, 18, 15, 0.22);
  border-radius: 4px;
  transition: border-color 0.3s, box-shadow 0.3s;
  box-sizing: border-box;
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
}
.wpcf7 input[type=text]::-moz-placeholder, .wpcf7 input[type=email]::-moz-placeholder, .wpcf7 input[type=tel]::-moz-placeholder, .wpcf7 input[type=url]::-moz-placeholder, .wpcf7 input[type=number]::-moz-placeholder, .wpcf7 input[type=date]::-moz-placeholder, .wpcf7 select::-moz-placeholder, .wpcf7 textarea::-moz-placeholder {
  color: rgba(21, 18, 15, 0.35);
}
.wpcf7 input[type=text]::placeholder,
.wpcf7 input[type=email]::placeholder,
.wpcf7 input[type=tel]::placeholder,
.wpcf7 input[type=url]::placeholder,
.wpcf7 input[type=number]::placeholder,
.wpcf7 input[type=date]::placeholder,
.wpcf7 select::placeholder,
.wpcf7 textarea::placeholder {
  color: rgba(21, 18, 15, 0.35);
}
.wpcf7 input[type=text]:focus,
.wpcf7 input[type=email]:focus,
.wpcf7 input[type=tel]:focus,
.wpcf7 input[type=url]:focus,
.wpcf7 input[type=number]:focus,
.wpcf7 input[type=date]:focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus {
  outline: none;
  border-color: #c07a2b;
  box-shadow: 0 0 0 3px rgba(192, 122, 43, 0.15);
}
.wpcf7 input[name=your-age] {
  max-width: 120px;
}
.wpcf7 input[name=your-zipcode] {
  max-width: 200px;
}
.wpcf7 select {
  max-width: 320px;
  padding-right: 40px;
  background-image: linear-gradient(45deg, transparent 50%, #15120f 50%), linear-gradient(135deg, #15120f 50%, transparent 50%);
  background-position: calc(100% - 20px) calc(50% - 2px), calc(100% - 14px) calc(50% - 2px);
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
}
.wpcf7 textarea {
  min-height: 180px;
  line-height: 1.8;
  resize: vertical;
}
.wpcf7 .wpcf7-radio,
.wpcf7 .wpcf7-checkbox {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 10px;
}
.wpcf7 .wpcf7-radio .wpcf7-list-item,
.wpcf7 .wpcf7-checkbox .wpcf7-list-item {
  display: inline-block;
  margin: 0;
}
.wpcf7 .wpcf7-list-item label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0.02em;
  color: #15120f;
  background: #fff;
  border: 1px solid rgba(21, 18, 15, 0.22);
  border-radius: 999px;
  cursor: pointer;
  transition: border-color 0.25s, background 0.25s;
}
.wpcf7 .wpcf7-list-item label:hover {
  border-color: #c07a2b;
}
.wpcf7 input[type=radio],
.wpcf7 input[type=checkbox] {
  width: 16px;
  height: 16px;
  margin: 0;
  accent-color: #c07a2b;
  cursor: pointer;
}
.wpcf7 .wpcf7-list-item label:has(input:checked) {
  font-weight: 700;
  background: rgba(192, 122, 43, 0.08);
  border-color: #c07a2b;
}
.wpcf7 form > p:has(> .wpcf7-submit) {
  margin-top: 44px;
  text-align: center;
}
.wpcf7 .wpcf7-submit {
  min-width: 320px;
  max-width: 100%;
  padding: 1.2em 2em;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.16em;
  color: #fff;
  background: #15120f;
  border: 1px solid #15120f;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.3s, border-color 0.3s;
}
.wpcf7 .wpcf7-submit:hover {
  background: #c07a2b;
  border-color: #c07a2b;
}
.wpcf7 .wpcf7-spinner {
  margin: 0 auto;
}
.wpcf7 .wpcf7-not-valid-tip {
  margin-top: 6px;
  font-size: 12px;
  font-weight: 400;
  color: #c0392b;
}
.wpcf7 .wpcf7-response-output {
  margin: 32px 0 0;
  padding: 14px 18px;
  font-size: 14px;
  line-height: 1.7;
  text-align: center;
}

.p-contact__form > .wpcf7 {
  margin-top: 0;
}

@media screen and (max-width: 811px) {
  .wpcf7 .wpcf7-submit {
    width: 100%;
    min-width: 0;
  }
}
