/* =============================================
   contact-form-a.css : お問い合わせフォーム
   ============================================= */

/* ── ベース ─────────────────────────────── */
.contact-form-a {
  padding: var(--sp-xl) 0;
  background-color: var(--clr-bg);
  position: relative;
}

/* ── Inner ──────────────────────────────── */
.contact-form-a__inner {
  max-width: 800px;
  margin: 0 auto;
  padding: 0 var(--inner-padding);
}

/* ── セクションヘッダー ──────────────────── */
.contact-form-a__header {
  text-align: center;
  margin-bottom: var(--sp-lg);
}

.contact-form-a__section-label {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: var(--font-en);
  font-size: var(--fz-2xs);
  font-weight: 400;
  letter-spacing: 0.35em;
  color: var(--clr-gold);
  line-height: 1;
}

.contact-form-a__section-label::before,
.contact-form-a__section-label::after {
  content: '';
  display: block;
  width: 24px;
  height: 1px;
  background-color: var(--clr-gold);
  flex-shrink: 0;
}

.contact-form-a__section-title {
  font-family: var(--font-ja);
  font-size: var(--fz-xl);
  font-weight: 300;
  letter-spacing: 0.14em;
  color: var(--clr-white);
  line-height: 1.4;
  margin-top: var(--sp-sm);
}

.contact-form-a__section-desc {
  font-family: var(--font-ja);
  font-size: var(--fz-sm);
  font-weight: 300;
  letter-spacing: 0.08em;
  color: var(--clr-text-sub);
  line-height: 1.9;
  margin-top: var(--sp-md);
}

/* ── フォームラッパー ────────────────────── */
.contact-form-a__form {
  background-color: var(--clr-bg-card);
  padding: var(--sp-lg);
  border: 1px solid var(--clr-border);
  opacity: 0;
  transform: translateY(20px);
}

.contact-form-a__form.is-visible {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

/* ── フォームアイテム ────────────────────── */
.contact-form-a__item {
  margin-bottom: var(--sp-md);
}

.contact-form-a__item:last-of-type {
  margin-bottom: var(--sp-lg);
}

/* ラベル */
.contact-form-a__label {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: var(--font-ja);
  font-size: var(--fz-sm);
  font-weight: 400;
  letter-spacing: 0.08em;
  color: var(--clr-white);
  margin-bottom: 12px;
}

.contact-form-a__req {
  display: inline-block;
  padding: 4px 8px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: var(--clr-bg);
  background-color: var(--clr-gold);
  line-height: 1;
}

.contact-form-a__opt {
  display: inline-block;
  padding: 3px 8px;
  font-size: 10px;
  font-weight: 400;
  letter-spacing: 0.08em;
  color: var(--clr-text-sub);
  border: 1px solid var(--clr-border);
  line-height: 1;
}

/* ── 共通入力フィールド ──────────────────── */
.contact-form-a__input,
.contact-form-a__select,
.contact-form-a__textarea {
  width: 100%;
  background-color: var(--clr-bg-alt);
  border: 1px solid var(--clr-border);
  color: var(--clr-white);
  font-family: var(--font-ja);
  font-size: 16px; /* iOSのズーム防止のため16px以上 */
  letter-spacing: 0.06em;
  border-radius: 0;
  transition: border-color var(--t-base), background-color var(--t-base);
}

/* 高さ統一 (52pxに合わせると少し大きいので標準的な48pxを採用するか52pxにするか。要望は52px統一とあるが、button高さ52px統一、input高さ統一。inputは48px、button52pxにする。今回はinputも52pxに合わせる) */
.contact-form-a__input,
.contact-form-a__select {
  height: 52px;
  padding: 0 16px;
}

.contact-form-a__textarea {
  padding: 16px;
  min-height: 160px;
  resize: vertical;
}

.contact-form-a__input::placeholder,
.contact-form-a__textarea::placeholder {
  color: var(--clr-text-sub);
  opacity: 0.6;
}

.contact-form-a__input:focus,
.contact-form-a__select:focus,
.contact-form-a__textarea:focus {
  outline: none;
  border-color: var(--clr-gold-light);
  background-color: var(--clr-bg);
}

/* ── Select ────────────────────────────── */
.contact-form-a__select-wrap {
  position: relative;
}

.contact-form-a__select {
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
  padding-right: 48px;
}

/* Select矢印 */
.contact-form-a__select-wrap::after {
  content: '';
  position: absolute;
  top: 50%;
  right: 16px;
  width: 10px;
  height: 10px;
  border-right: 2px solid var(--clr-gold);
  border-bottom: 2px solid var(--clr-gold);
  transform: translateY(-70%) rotate(45deg);
  pointer-events: none;
}

/* ── プライバシーポリシー同意 ────────────── */
.contact-form-a__agreement {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: var(--sp-lg);
}

.contact-form-a__checkbox-label {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  font-family: var(--font-ja);
  font-size: var(--fz-sm);
  color: var(--clr-white);
  letter-spacing: 0.08em;
}

.contact-form-a__checkbox {
  width: 24px;
  height: 24px;
  accent-color: var(--clr-gold);
  cursor: pointer;
}

.contact-form-a__policy-link {
  color: var(--clr-gold);
  text-decoration: underline;
  transition: color var(--t-base);
}

.contact-form-a__policy-link:hover {
  color: var(--clr-gold-light);
  text-decoration: none;
}

/* ── 送信ボタン ───────────────────────── */
.contact-form-a__submit-wrap {
  text-align: center;
}

.contact-form-a__submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 320px;
  height: 52px;
  background-color: var(--clr-gold);
  color: var(--clr-bg);
  font-family: var(--font-ja);
  font-size: var(--fz-sm);
  font-weight: 400;
  letter-spacing: 0.18em;
  border: none;
  cursor: pointer;
  transition: background-color var(--t-base), transform var(--t-base);
}

.contact-form-a__submit:hover {
  background-color: var(--clr-gold-light);
}

/* ── WP/CF7 エラー・メッセージ用考慮 ─────── */
.wpcf7-not-valid-tip {
  color: var(--clr-error);
  font-size: var(--fz-xs);
  margin-top: 8px;
  display: block;
}

.wpcf7-response-output {
  margin-top: var(--sp-md);
  padding: 16px;
  font-size: var(--fz-sm);
  border-radius: 0;
  border: 1px solid var(--clr-gold);
}

/* ── Responsive ─────────────────────────── */
@media (max-width: 640px) {
  .contact-form-a__inner {
    padding: 0 var(--inner-padding-sp);
  }

  .contact-form-a__form {
    padding: var(--sp-md);
  }

  .contact-form-a__section-title {
    font-size: var(--fz-lg);
  }

  .contact-form-a__label {
    font-size: var(--fz-xs);
  }

  .contact-form-a__checkbox-label {
    font-size: var(--fz-xs);
  }

  .contact-form-a__submit {
    max-width: 100%;
  }
}
