/* FIVE SEASON Forms：表示側の見た目（テーマの見た目を邪魔しない最小限） */
.fsf-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.fsf-wrap [hidden] { display: none !important; }
.fsf-notice { border: 1px solid #c00; color: #c00; padding: 12px 16px; border-radius: 4px; margin-bottom: 20px; }
.fsf-error { display: block; color: #c00; font-size: .85em; margin-top: 4px; }
.fsf-field { display: inline-block; max-width: 100%; width: 100%; }
.fsf-field.is-error input, .fsf-field.is-error select, .fsf-field.is-error textarea { border-color: #c00; }
/* 入力欄の幅は swell・simple のときだけ決める（pcc はテーマ側の CSS に任せる） */
.fsf-style-swell .fsf-form input[type=text], .fsf-style-swell .fsf-form input[type=email], .fsf-style-swell .fsf-form input[type=tel], .fsf-style-swell .fsf-form select,
.fsf-style-simple .fsf-form input[type=text], .fsf-style-simple .fsf-form input[type=email], .fsf-style-simple .fsf-form input[type=tel], .fsf-style-simple .fsf-form select, .fsf-style-simple .fsf-form textarea { width: 100%; max-width: 480px; box-sizing: border-box; }
.fsf-style-simple .fsf-form textarea { max-width: 100%; }
.fsf-style-pcc .fsf-field { display: block; }
.fsf-style-pcc .fsf-help { display: block; font-weight: normal; color: #666; }
.fsf-style-pcc .fsf-heading, .fsf-style-pcc .fsf-html, .fsf-style-pcc .fsf-terms { grid-column: 1 / -1; }
.fsf-inline { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-start; }
.fsf-inline .fsf-field { flex: 1 1 200px; max-width: 235px; }
.fsf-inline .fsf-field input, .fsf-inline .fsf-field select { width: 100%; }
.fsf-other { display: block; margin-top: 6px; }
.fsf-choices .wpcf7-list-item { display: inline-block; margin: 0 1em 0 0; }
.fsf-item { margin: 1.4em 0; }
.fsf-item-agree { text-align: center; }
.fsf-terms { margin: 20px 0; }
details.fsf-terms { border: 1px solid #ddd; padding: 15px; border-radius: 4px; }
details.fsf-terms summary { font-weight: bold; cursor: pointer; padding: 5px; }
details.fsf-terms .fsf-terms__body { margin-top: 15px; }
.fsf-terms__title { font-weight: bold; margin-bottom: .6em; }
.fsf-terms__body { height: 220px; min-height: 120px; overflow-y: auto; border: 1px solid #e3e3e3; border-radius: 4px; padding: 18px 20px; background: #fafafa; font-size: .9em; line-height: 1.9; resize: vertical; }
.fsf-terms.is-expanded .fsf-terms__body { height: auto; max-height: none; overflow: visible; resize: none; }
.fsf-terms__toggle { display: block; margin: 10px auto 0; padding: .5em 1.6em; border: 1px solid #bbb; border-radius: 999px; background: #fff; color: #333; font-size: .85em; cursor: pointer; }
.fsf-terms__toggle:hover { background: #f3f3f3; }
.fsf-turnstile { margin-top: 30px; text-align: center; }
.fsf-submit { margin-top: 30px; text-align: center; }
.fsf-thanks { text-align: center; padding: 30px 0; }

/* swell：eneen の p-form-item の形。かたまりは中央、文は左寄せ。行間と余白を広めにとる */
.fsf-style-swell { max-width: 680px; margin-left: auto; margin-right: auto; text-align: left; line-height: 1.9; }
/* 入力欄は枠いっぱいに広げる（480px 止まりだと右が空いて左に寄って見える）。姓・名などの横並びは半分ずつ */
.fsf-style-swell .fsf-form input[type=text], .fsf-style-swell .fsf-form input[type=email], .fsf-style-swell .fsf-form input[type=tel], .fsf-style-swell .fsf-form input[type=date], .fsf-style-swell .fsf-form select { width: 100%; max-width: none; box-sizing: border-box; }
.fsf-style-swell .fsf-inline .fsf-field { flex: 1 1 0; min-width: 0; max-width: none; }
.fsf-style-swell .c-secTitle { margin-top: 3.2em; margin-bottom: 1.2em; }
.fsf-style-swell .fsf-form > .c-secTitle:first-of-type { margin-top: 1.5em; }
.fsf-style-swell .p-form-item { margin: 0; padding: 1.5em 0; border-bottom: 1px solid #eee; }
.fsf-style-swell .p-form-item__label { font-weight: 600; letter-spacing: .04em; margin-bottom: .7em; line-height: 1.7; }
.fsf-style-swell .c-form-required { margin-left: .5em; font-size: .8em; font-weight: normal; color: #b0475a; }
.fsf-style-swell .fsf-help { margin: 0 0 .9em; font-size: .85em; line-height: 1.85; color: #777; }
.fsf-style-swell .fsf-form input[type=text], .fsf-style-swell .fsf-form input[type=email], .fsf-style-swell .fsf-form input[type=tel], .fsf-style-swell .fsf-form input[type=date], .fsf-style-swell .fsf-form select, .fsf-style-swell .fsf-form textarea { padding: .65em .9em; border: 1px solid #d6d6d6; border-radius: 4px; background: #fff; font-size: 16px; line-height: 1.6; }
.fsf-style-swell .fsf-form textarea { width: 100%; max-width: 100%; box-sizing: border-box; }
.fsf-style-swell .fsf-choices .wpcf7-list-item { margin: .25em 1.6em .25em 0; }
.fsf-style-swell .fsf-inline { gap: 12px; }
.fsf-style-swell .fsf-sublabel { padding: 1.5em 0 0; font-weight: 600; letter-spacing: .04em; }
.fsf-style-swell .fsf-sublabel__note { margin-left: .4em; font-weight: normal; font-size: .85em; color: #777; }
.fsf-style-swell .fsf-sublabel + .p-form-item { border-top: 0; }
.fsf-style-swell .fsf-sub .p-form-item__label { font-weight: normal; padding-left: 1em; }
.fsf-style-swell .fsf-item-agree { margin: 1.2em 0 0; }
.fsf-style-swell .fsf-submit { margin-top: 3em; }
.fsf-style-swell .fsf-submit__btn { min-width: 240px; padding: .9em 2.4em; letter-spacing: .1em; }
@media (max-width: 599px) {
	.fsf-style-swell .p-form-item { padding: 1.2em 0; }
	/* スマホでも姓・名などの横並びは2つ（以上）を同じ幅で横に並べる */
	.fsf-inline { flex-wrap: nowrap; gap: 8px; }
	.fsf-inline .fsf-field { flex: 1 1 0; min-width: 0; max-width: none; }
}

/* simple：見出しと入力欄を縦に並べる */
.fsf-style-simple .fsf-label { display: block; font-weight: bold; margin-bottom: .4em; }
.fsf-style-simple .fsf-req { display: inline-block; margin-left: .5em; padding: 0 .4em; font-size: .75em; color: #fff; background: #c00; border-radius: 2px; vertical-align: middle; }
.fsf-style-simple .fsf-heading { margin: 2em 0 1em; }
