/* オウンドメディア（SWELL）のお問い合わせフォーム。テーマのメインカラー（--color_main）に合わせる */
.cn-form, .cn-done { --cn-main: var(--color_main, #1e73be); --cn-alert: #d93025; --cn-line: #d6dbe1; max-width: 680px; margin: 0 auto; }
.cn-form__lead { margin-bottom: 1.5em; }
.cn-form__row { margin-bottom: 1.4em; }
.cn-form__row > label { display: block; margin-bottom: .45em; font-weight: 700; }
.cn-form__req, .cn-form__opt { display: inline-block; margin-left: .6em; padding: .1em .55em; border-radius: 3px; font-size: .75em; font-weight: 700; line-height: 1.6; vertical-align: .1em; }
.cn-form__req { background: var(--cn-alert); color: #fff; }
.cn-form__opt { background: #eef0f3; color: #555; }
.cn-form input[type=text], .cn-form input[type=email], .cn-form input[type=tel], .cn-form textarea {
  width: 100%; padding: .75em .9em; border: 1px solid var(--cn-line); border-radius: 6px; background: #fff; font-size: 16px; line-height: 1.6; box-sizing: border-box;
}
.cn-form textarea { min-height: 10em; resize: vertical; }
.cn-form input:focus, .cn-form textarea:focus { outline: none; border-color: var(--cn-main); box-shadow: 0 0 0 3px color-mix(in srgb, var(--cn-main) 20%, transparent); }
.cn-form [aria-invalid=true] { border-color: var(--cn-alert); }
.cn-form__err { margin: .35em 0 0; color: var(--cn-alert); font-size: .85em; font-weight: 700; }
.cn-form__err:empty { display: none; }
.cn-form__agree { display: flex; align-items: center; justify-content: center; gap: .5em; }
.cn-form__agree input { width: 1.2em; height: 1.2em; margin: 0; accent-color: var(--cn-main); }
.cn-form__agree + .cn-form__err { text-align: center; }
.cn-form__submit { display: block; width: 100%; max-width: 360px; margin: 1.8em auto 0; padding: 1em; border: 0; border-radius: 999px; background: var(--cn-main); color: #fff; font-size: 1.05em; font-weight: 700; cursor: pointer; transition: opacity .2s; }
.cn-form__submit:hover { opacity: .85; }
.cn-form__submit:disabled { opacity: .6; cursor: wait; }
.cn-form__status { margin: 1em 0 0; text-align: center; color: var(--cn-alert); font-weight: 700; }
.cn-form__status:empty { display: none; }
.cn-form__hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.cn-form__note { margin-top: 1.2em; color: #777; font-size: .8em; text-align: center; }
.cn-done { padding: 2em 1.5em; border: 1px solid var(--cn-line); border-radius: 10px; text-align: center; }
.cn-done:focus { outline: none; }
.cn-done__title { margin: 0 0 .8em; font-size: 1.25em; font-weight: 700; color: var(--cn-main); }
