/* お問い合わせページ専用。共通ヘッダー・フッターはsite.cssを利用。 */
.contact-page { color: #203c42; font-family: "BIZ UDPGothic", "Yu Gothic", Meiryo, sans-serif; line-height: 1.85; }
.contact-page [hidden] { display: none !important; }
.contact-hero { background: #eaf5ef; padding: 34px 18px; text-align: center; border-bottom: 1px solid #c5d8cf; }
.contact-hero h1 { margin: 0 0 6px; padding: 0; background: none; border: 0; color: #203c42; font-weight: bold; font-size: 2.8rem; }
.contact-hero p { margin: 0; color: #176a64; font-size: 1.5rem; }
.contact-main { width: min(820px, calc(100% - 36px)); margin: 32px auto 56px; font-size: 1.6rem; }
.contact-main h2 { background: none; color: #203c42; border: 0; padding: 0; margin: 0 0 18px; font-weight: bold; font-size: 2.2rem; }
.contact-main p { margin: 0 0 16px; }
.contact-main a { color: #176a64; text-underline-offset: 4px; }
.contact-main :focus-visible { outline: 3px solid #b05520; outline-offset: 3px; }
.contact-breadcrumb { font-size: 1.3rem; margin-bottom: 24px; }
.contact-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); list-style: none; padding: 0; margin: 0 0 28px; gap: 8px; font-size: 1.4rem; }
.contact-steps li { margin: 0; padding: 10px 4px; text-align: center; color: #52645e; background: #f0f3f1; border-radius: 4px; }
.contact-steps li[aria-current] { background: #176a64; color: #fff; font-weight: bold; }
.contact-notice { padding: 16px; margin-bottom: 24px; border: 1px solid #ad3d27; background: #fff5ee; color: #81311d; font-size: 1.4rem; border-radius: 4px; }
.contact-fields { border: 0; margin: 0; padding: 0; min-width: 0; }
.contact-field { margin-bottom: 24px; }
.contact-field > label { display: block; font-weight: bold; margin-bottom: 8px; }
.contact-required, .contact-optional { display: inline-block; margin-left: 8px; padding: 1px 7px; border-radius: 3px; font-size: 1.2rem; vertical-align: middle; font-weight: normal; }
.contact-required { color: #8a311f; background: #fff0e9; }
.contact-optional { color: #506367; background: #edf2ef; }
.contact-field input, .contact-field select, .contact-field textarea { display: block; width: 100%; max-width: 100%; min-height: 48px; padding: 12px; color: #203c42; background: #fff; border: 1px solid #8ca99c; border-radius: 5px; font-family: inherit; font-size: 1.6rem; line-height: 1.6; }
.contact-field textarea { resize: vertical; min-height: 210px; }
.contact-field input::placeholder, .contact-field textarea::placeholder { color: #6c7d76; opacity: 1; }
.contact-main .contact-hint { margin: 6px 0 0; color: #506367; font-size: 1.3rem; }
.contact-count { text-align: right; }
.contact-consent { padding: 18px; margin-bottom: 24px; background: #edf4f1; border-radius: 5px; }
.contact-consent label { display: flex; align-items: flex-start; gap: 10px; font-size: 1.4rem; cursor: pointer; }
.contact-consent input { flex: none; width: 20px; height: 20px; margin: 3px 0 0; accent-color: #176a64; }
.contact-trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.contact-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 24px; }
.contact-main .contact-button { display: inline-flex; justify-content: center; align-items: center; min-height: 52px; padding: 14px 24px; border: 1px solid #176a64; border-radius: 5px; color: #fff; background: #176a64; font-family: inherit; font-size: 1.6rem; font-weight: bold; text-align: center; text-decoration: none; cursor: pointer; }
.contact-main .contact-button:hover { background: #114b47; }
.contact-main .contact-button-secondary { background: #fff; color: #176a64; }
.contact-main .contact-button-secondary:hover { background: #edf4f1; }
.contact-main .contact-button:disabled { background: #eef1ef; color: #5b6a64; border-color: #bac8c1; cursor: default; }
.contact-main .contact-submit-note { color: #506367; text-align: center; font-size: 1.3rem; margin-top: 12px; }
.contact-review-list { margin: 0; border-top: 1px solid #c5d8cf; }
.contact-review-list > div { padding: 16px 0; border-bottom: 1px solid #c5d8cf; }
.contact-review-list dt { font-weight: bold; margin-bottom: 6px; font-size: 1.4rem; }
.contact-review-list dd { padding: 0; margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.contact-success { padding: 28px 20px; background: #edf4f1; border: 1px solid #bdd6ca; border-radius: 6px; }
.contact-success .contact-reference { padding: 12px; background: #fff; font-size: 1.4rem; }
@media (max-width: 479px) {
  .contact-actions { display: grid; grid-template-columns: minmax(0, 1fr); }
  .contact-hero h1 { font-size: 2.5rem; }
}
@media (min-width: 768px) {
  .contact-hero { padding: 48px 18px; }
  .contact-hero h1 { font-size: 3.2rem; }
  .contact-main { margin-top: 40px; }
  .contact-review-list > div { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 20px; }
  .contact-review-list dt { margin: 0; }
}
