/* 連絡先（[params.contact]）とお問い合わせフォーム。method が form／email／both のサイトだけ読み込まれる。色は style.css の変数を使う。 */
.contact-box { margin: 1em 0; }
.contact-box p { margin: .4em 0; }
.contact-email-note { font-size: .9em; opacity: .8; }
.contact-notice { margin: 1.2em 0; padding: .8em 1em; border: 1px solid currentColor; border-radius: 8px; }
.contact-notice h2 { margin: 0 0 .4em; font-size: 1em; }
.contact-notice ul { margin: 0; padding-left: 1.2em; }
.contact-form { display: grid; gap: 1em; margin: 1.2em 0; }
.contact-field { display: grid; gap: .3em; }
.contact-field label, .contact-consent { font-weight: 700; }
.contact-field input, .contact-field select, .contact-field textarea { width: 100%; box-sizing: border-box; padding: .6em; font: inherit; color: inherit; background: transparent; border: 1px solid currentColor; border-radius: 6px; }
.contact-field [aria-invalid="true"] { outline: 2px solid #c62828; }
.contact-help, .contact-count { margin: 0; font-size: .9em; opacity: .8; }
.contact-required { margin-left: .4em; font-size: .8em; color: #c62828; }
.contact-optional { margin-left: .4em; font-size: .8em; font-weight: 400; opacity: .8; }
.contact-consent { display: flex; gap: .5em; align-items: flex-start; font-weight: 400; }
.contact-status { min-height: 1.5em; margin: 0; font-weight: 700; }
.contact-submit { justify-self: start; padding: .7em 1.6em; font: inherit; font-weight: 700; border: 1px solid currentColor; border-radius: 6px; background: transparent; color: inherit; cursor: pointer; }
.contact-submit[disabled] { opacity: .5; cursor: not-allowed; }
.contact-form input[name="website"] { display: none; }
