/* 下層ページ（contact__） */
.contact { padding-top: 80px; }
@media (max-width: 767px) {
  .contact { padding-top: 60px; }
}

.contact__crumb-bar { padding-block: 24px; background: var(--color-white); }
@media (max-width: 767px) {
  .contact__crumb-bar { padding-block: 16px; }
}
.contact__crumb { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; font-size: 12px; color: var(--color-text-sub); }
.contact__crumb-item:not(:last-child)::after { content: "/"; margin-left: 8px; }

.contact__hero {
  padding-block: 72px 64px;
  background: var(--color-brand-pale) url("../images/contact-hero.webp") center / cover;
}
@media (max-width: 767px) {
  .contact__hero {
    padding-block: 44px 40px;
    background-image: url("../images/contact-hero-sp.webp");
  }
}
.contact__hero .common__heading { margin-bottom: 0; }

.contact__text { margin: 0 0 1.6em; font-size: 15px; line-height: 2.2; text-align: start; }
@media (max-width: 767px) {
  .contact__text { font-size: 14px; }
}

.contact__form { width: min(720px, 100%); margin-inline: auto; display: grid; gap: 28px; }
.contact__field { display: grid; gap: 8px; }
.contact__label { display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 500; }
.contact__badge { padding: 2px 10px; border-radius: 999px; background: var(--color-required); color: var(--color-white); font-size: 11px; line-height: 1.6; }
.contact__badge--optional { background: var(--color-optional); }
.contact__input, .contact__select, .contact__textarea {
  width: 100%;
  padding: 14px 16px;
  border: 1px solid var(--color-line);
  border-radius: 4px;
  background: var(--color-white);
  font: inherit;
  font-size: 16px;
  color: var(--color-text);
}
.contact__textarea { min-height: 200px; resize: vertical; }
.contact__input:focus, .contact__select:focus, .contact__textarea:focus { outline: 2px solid var(--color-brand-soft); outline-offset: 1px; }
.contact__error { margin: 0; min-height: 1.4em; font-size: 12px; color: var(--color-required); }
.contact__agree { display: flex; align-items: center; gap: 10px; font-size: 14px; }
.contact__submit { margin-top: 8px; text-align: start; }
.contact__submit .common__btn { cursor: pointer; background: var(--color-brand); color: var(--color-white); }
.contact__submit .common__btn:hover { background: var(--color-brand-dark); }
.contact__thanks { width: min(720px, 100%); margin: 0 auto; padding: 48px 24px; background: var(--color-white); border: 1px solid var(--color-line); border-radius: 4px; text-align: start; }
.contact__thanks[hidden] { display: none; }
.contact__thanks-title { margin: 0 0 12px; font-family: var(--font-mincho); font-size: 22px; }
.contact__thanks-text { margin: 0; font-size: 14px; line-height: 2; }
.contact__tel { margin: 56px auto 0; width: min(720px, 100%); text-align: start; font-size: 14px; }
.contact__tel-num { display: block; margin-top: 6px; font-family: var(--font-en); font-size: 30px; letter-spacing: 0.1em; color: var(--color-brand); }
.contact__form[hidden] { display: none; }
