/* PC/SPの共通宣言を基底へ集約し、表示差だけを幅別に指定。 */
:where(.content-page--form) .page-mainimg { display: flex; -webkit-box-orient: horizontal; flex-flow: row nowrap; justify-content: center; align-items: center; position: relative; }
:where(.content-page--form) .page-mainimg .fv_mainimage { height: 100%; position: absolute; object-fit: cover; }
:where(.content-page--form) .page-mainimg h1 { position: relative; z-index: 5; font-weight: 900; text-align: center; color: #fff; }
:where(.content-page--form) .page-mainimg h1:after { font-weight: bold; content: attr(data-sub); display: block; font-size: var(--font-size-regular); letter-spacing: 1.6px; text-align: center; text-transform: uppercase; }
:where(.content-page--form) .page-mainimg h1 span { text-align: center; }
:where(.content-page--form) .form-step { display: flex; -webkit-box-orient: horizontal; flex-flow: row nowrap; justify-content: space-between; align-items: center; }
:where(.content-page--form) .form-step li { position: relative; text-align: center; }
:where(.content-page--form) .form-step li:not(:first-child):after { content: ""; position: absolute; height: 5px; }
:where(.content-page--form) .form-step li.current span { background-color: #336699; }
:where(.content-page--form) .form-step li.current:after { border-color: #336699; }
:where(.content-page--form) .form-step li span { display: block; margin-bottom: 5px; border-radius: 50%; background-color: #ccc; color: #fff; text-align: center; }
:where(.content-page--form) .form-grid-2 { display: grid; margin: 0 auto; }
:where(.content-page--form) .form-grid-2 .left h2 { font-weight: 900; text-align: center; }
:where(.content-page--form) .form-grid-2 .left .desc { margin: 24px 0; }
:where(.content-page--form) .form-grid-2 .left .telBox { display: block; border-radius: 200px; color: #232323; }
:where(.content-page--form) .form-grid-2 .left .telBox:hover { text-decoration: none; }
:where(.content-page--form) .form-grid-2 .left .telBox .txt { font-size: var(--font-size-regular); text-align: center; }
:where(.content-page--form) .form-grid-2 .left .telBox .txt span { margin-right: 12.8px; font-weight: bold; }
:where(.content-page--form) .form-grid-2 .left .telBox .num { line-height: 1; text-align: center; }
:where(.content-page--form) .form-grid-2 .left .telBox .num i { margin-right: 5px; color: #336699; }
:where(.content-page--form) .form-grid-2 .left .telBox .num span { font-weight: bold; }
:where(.content-page--form) .form-new-table { width: 100%; }
:where(.content-page--form) .form-new-table tr:not(:first-child) th { margin-top: 15px; }
:where(.content-page--form) .form-new-table td { display: block; }
:where(.content-page--form) .form-new-table th { display: flex; -webkit-box-orient: horizontal; flex-flow: row nowrap; align-items: center; margin-bottom: 5px; font-weight: bold; font-size: var(--font-size-regular); }
:where(.content-page--form) :is(.form-new-table th, .agreement .ttl) :is(.req, .optional) { display: inline-block; flex-shrink: 0; margin-left: 5px; padding: 2px 5px; border-radius: 2px; font-size: 12px; line-height: 1.4; white-space: nowrap; }
:where(.content-page--form) :is(.form-new-table th, .agreement .ttl) .req { background-color: #cf2e2e; color: #fff; }
:where(.content-page--form) .form-new-table th .optional { background-color: #eee; color: #232323; }
:where(.content-page--form) :is(.form-contact-input, .form-contact-preview) .form-new-table th .optional { background-color: #d5d5d5; }
:where(.content-page--form) .form-new-table input:not(.submit):not([type=checkbox]):not([type=radio]) { width: 100%; height: 50px; padding: 10px; border: 1px solid #eee; border-radius: 5px; background-color: #fff; }
:where(.content-page--form) .form-new-table select { width: 100%; height: 50px; padding: 10px; border: 1px solid #eee; border-radius: 5px; background-color: #fff; }
:where(.content-page--form) .form-new-table textarea { width: 100%; height: 50px; padding: 10px; border: 1px solid #eee; border-radius: 5px; background-color: #fff; min-height: 140px; resize: vertical; }
:where(.content-page--form) .form-new-table input:not(.submit):not([type=checkbox]):not([type=radio]).validation-error { border-color: rgba(207,46,46,0.1); background-color: rgba(207,46,46,0.05); }
:where(.content-page--form) .form-new-table select.validation-error { border-color: rgba(207,46,46,0.1); background-color: rgba(207,46,46,0.05); }
:where(.content-page--form) .form-new-table textarea.validation-error { border-color: rgba(207,46,46,0.1); background-color: rgba(207,46,46,0.05); }
:where(.content-page--form) .form-new-table .flexCheck { display: grid; grid-template-columns: repeat(2,1fr); grid-template-rows: 1fr; }
:where(.content-page--form) .form-new-table .flexCheck:has(.validation-error) li { border-color: rgba(207,46,46,0.1); background-color: rgba(207,46,46,0.05); }
:where(.content-page--form) .form-new-table .flexCheck:has(input[type=checkbox]:checked) li { border: 1px solid #eee; background-color: #fff; }
:where(.content-page--form) .form-new-table .flexCheck li { display: flex; -webkit-box-orient: horizontal; flex-flow: row nowrap; align-items: center; height: 50px; border: 1px solid #eee; border-radius: 5px; background: #fff; transition: border-color 0.2s ease,background-color 0.2s ease; }
:where(.content-page--form) .form-new-table .flexCheck li:has(input[type=checkbox]:checked) { border-color: rgba(51,102,153,0.45); background-color: rgba(51,102,153,0.08); }
:where(.content-page--form) .form-new-table .flexCheck li label { width: 100%; height: 100%; }
:where(.content-page--form) .form-new-table .flexCheck li label .checkmark { left: 2px; }
:where(.content-page--form) .form-new-table .err_output { display: block; }
:where(.content-page--form) .form-new-table .err_output .validation-error { padding: 5px 0 0; color: #cf2e2e; font-size: var(--font-size-regular); }
:where(.content-page--form) .form-new-table .err_output .validation-error:before { content: "▲ "; }
:where(.content-page--form) .form-new-table .radioArea { border: 1px solid #eee; border-radius: 4px; }
:where(.content-page--form) .form-new-table .radioArea label { margin-right: 20px; cursor: pointer; }
:where(.content-page--form) .form-new-table .radioArea label input { margin-right: 5px; }
:where(.content-page--form) .form-btns { display: flex; justify-content: center; align-items: center; margin-top: 40px; }
:where(.content-page--form) .form-btns .submit { display: block; width: 100%; padding: 16px 0; border-radius: 100px; background-color: #336699; color: #fff; font-weight: bold; text-align: center; cursor: pointer; }

:where(.content-page--form) .form-simpleTtl { display: flex; -webkit-box-orient: horizontal; flex-flow: row nowrap; justify-content: center; align-items: center; position: relative; isolation: isolate; overflow: hidden; font-weight: bold; }
:where(.content-page--form) .form-simpleTtl:after { content: ""; position: absolute; z-index: -1; top: 0; left: 0; width: 100%; height: 100%; background-position: 50% 5%; background-size: cover; background-repeat: no-repeat; filter: grayscale(100%); }
:where(.content-page--form) .form-grid-1 .cmp { line-height: 2.2; }
:where(.content-page--form) .form-grid-1 .telBox { display: block; border-radius: 200px; background-color: #f5f5f5; color: #232323; }
:where(.content-page--form) .form-grid-1 .telBox:hover { text-decoration: none; }
:where(.content-page--form) .form-grid-1 .telBox .txt { font-size: var(--font-size-regular); text-align: center; }
:where(.content-page--form) .form-grid-1 .telBox .txt span { margin-right: 12.8px; font-weight: bold; }
:where(.content-page--form) .form-grid-1 .telBox .num { line-height: 1; text-align: center; }
:where(.content-page--form) .form-grid-1 .telBox .num i { margin-right: 5px; color: #336699; }
:where(.content-page--form) .form-grid-1 .telBox .num span { font-weight: bold; }
:where(.content-page--form) .form-grid-1 .table-preview td { min-height: 50px; padding: 10px; }
:where(.content-page--form) .form-grid-1 .table-preview .textarea { height: auto; }

@media (min-width: 1024px) {
:where(.content-page--form) .page-mainimg { height: 300px; overflow: hidden; }
:where(.content-page--form) .page-mainimg .fv_mainimage { width: 100%; inset: 0; }
:where(.content-page--form) .page-mainimg h1 { font-size: 32px; line-height: 1.6; text-shadow: none; }
:where(.content-page--form) .page-mainimg .inner { position: relative; width: 1000px; color: #fff; text-shadow: rgba(255,255,255,0.1) 0 0 20px; }
:where(.content-page--form) .page-mainimg .inner .desc { margin-bottom: 15px; font-size: 24px; }
:where(.content-page--form) .page-mainimg .inner h1 { font-size: 48px; line-height: 1; text-align: left; }
:where(.content-page--form) .form-step { width: 650px; margin: 60px auto 50px; }
:where(.content-page--form) .form-step li { width: 50px; }
:where(.content-page--form) .form-step li:not(:first-child):after { top: 25px; left: -235px; width: 220px; border-top: 5px dotted #ccc; }
:where(.content-page--form) .form-step li span { width: 50px; height: 50px; font-size: var(--font-size-regular); line-height: 50px; }
:where(.content-page--form) .form-grid-2 { grid-template-columns: 1fr 660px; grid-template-rows: 1fr; gap: 4vw; max-width: 1300px; padding: 0 10px; }
:where(.content-page--form) .form-grid-2 .right .form-validate { padding: 40px; background-color: #f5f5f5; }
:where(.content-page--form) .form-grid-2 .left h2 { font-size: 32px; line-height: 1.6; }
:where(.content-page--form) .form-grid-2 .left .telBox { margin: 30px 0 50px; padding: 16px; border: 1px solid #dddddd; }
:where(.content-page--form) .form-grid-2 .left .telBox .num { margin-top: 5px; font-size: 40px; }
:where(.content-page--form) .form-grid-2 .left .telBox .num i { font-size: 32px; }
:where(.content-page--form) .form-grid-2 .left .left-box { display: flex; -webkit-box-orient: horizontal; flex-flow: row nowrap; align-items: center; gap: 4vw; position: relative; margin-top: 50px; }
:where(.content-page--form) .form-grid-2 .left .left-box.is-right { -webkit-box-orient: horizontal; flex-direction: row-reverse; }
:where(.content-page--form) .form-grid-2 .left .left-box .figure { width: 170px; }
:where(.content-page--form) .form-grid-2 .left .left-box .figure img { width: 100%; height: auto; }
:where(.content-page--form) .form-grid-2 .left .left-box .in { flex: 1; line-height: 1.5; }
:where(.content-page--form) .form-grid-2 .left .left-box .in h3 { font-weight: bold; font-size: 24px; }
:where(.content-page--form) .form-grid-2 .left .left-box .in .txt { margin-top: 8px; }
:where(.content-page--form) .form-new-table .flexCheck { gap: 10px; }
:where(.content-page--form) .form-new-table .flexCheck li { padding-left: 10px; }
:where(.content-page--form) .form-new-table .flexCheck li label { display: block; line-height: 50px; }
:where(.content-page--form) .form-new-table .flexCheck li label .checkmark { top: 16px; }
:where(.content-page--form) .form-new-table .radioArea { height: 50px; padding: 0 10px; line-height: 50px; }
:where(.content-page--form) .form-new-table .radioArea label { display: inline-block; }
:where(.content-page--form) .form-btns { -webkit-box-orient: horizontal; flex-flow: row nowrap; gap: 30px; }
:where(.content-page--form) .form-btns .submit-send { flex-grow: 1; }
:where(.content-page--form) .form-btns .submit-back { width: 150px; }
:where(.content-page--form) .form-btns .submit-back input { background-color: #bbb; }
:where(.content-page--form) .form-simpleTtl { height: 180px; color: #fff; font-size: 32px; }
:where(.content-page--form) .form-simpleTtl:after { z-index: -1; background-image: url("../image/form@2x.jpg"); }
:where(.content-page--form) .form-grid-1 { max-width: 650px; margin: 0 auto; }
:where(.content-page--form) .form-grid-1 .telBox { margin: 30px 0 50px; padding: 16px; }
:where(.content-page--form) .form-grid-1 .telBox .num { margin-top: 5px; font-size: 40px; }
:where(.content-page--form) .form-grid-1 .telBox .num i { font-size: 32px; }
:where(.content-page--form) .form-grid-1 .table-preview td { border-radius: 4px; background-color: #f8f8f8; }
}
@media (min-width: 1024px) and (max-width: 1199px) {
  :where(.content-page--form) .form-grid-2 .left .left-box { display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; gap: 16px; }
}
@media (max-width: 1023px) {
:where(.content-page--form) .page-mainimg { height: 160px; }
:where(.content-page--form) .page-mainimg .fv_mainimage { width: 100vw; top: 0; left: 0; right: 0; }
:where(.content-page--form) .page-mainimg h1 { font-size: clamp(24px, 4vw, 32px); line-height: 1.5; }
:where(.content-page--form) .page-mainimg h1 span { display: block; font-size: var(--font-size-regular); letter-spacing: 0.8px; text-transform: uppercase; font-weight: bold; }
:where(.content-page--form) .form-step { width: 300px; margin: 40px auto 30px; }
:where(.content-page--form) .form-step li { width: 40px; font-size: var(--font-size-regular); }
:where(.content-page--form) .form-step li:not(:first-child):after { top: 20px; right: 50px; width: 68px; border-top: 3px dotted #ccc; }
:where(.content-page--form) .form-step li span { width: 40px; height: 40px; font-size: var(--font-size-regular); line-height: 41px; }
:where(.content-page--form) .form-grid-2 { padding: 0 20px 50px; }
:where(.content-page--form) .form-grid-2 .left h2 { font-size: clamp(24px, 4vw, 32px); line-height: 1.5; text-wrap: balance; }
:where(.content-page--form) .form-grid-2 .left .telBox { margin: 30px 0; padding: 10px 0; background-color: #f5f5f5; }
:where(.content-page--form) .form-grid-2 .left .telBox .txt span { display: block; line-height: 1.4; text-align: center; }
:where(.content-page--form) .form-grid-2 .left .telBox .num { font-size: 32px; }
:where(.content-page--form) .form-grid-2 .left .telBox .num i { font-size: var(--icon-large); }
:where(.content-page--form) .form-grid-2 .left .left-box { display: grid; grid-template-columns: 100px minmax(0, 1fr); align-items: center; gap: 16px; margin-top: 24px; }
:where(.content-page--form) .form-grid-2 .left .left-box .figure img { display: block; width: 100%; height: auto; }
:where(.content-page--form) .form-grid-2 .left .left-box h3 { font-size: 20px; font-weight: 700; line-height: 1.5; text-wrap: balance; }
:where(.content-page--form) .form-grid-2 .left .left-box .txt { margin-top: 8px; }
:where(.content-page--form) .form-grid-2 .right { margin-top: 32px; }
:where(.content-page--form) .form-new-table { margin-top: 10px; }
:where(.content-page--form) .form-new-table input:not(.submit):not([type=checkbox]):not([type=radio]) { font-size: var(--font-size-regular); }
:where(.content-page--form) .form-new-table select { font-size: var(--font-size-regular); }
:where(.content-page--form) .form-new-table textarea { font-size: var(--font-size-regular); }
:where(.content-page--form) .form-new-table .flexCheck { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
:where(.content-page--form) .form-new-table .flexCheck li { min-width: 0; min-height: 50px; height: auto; padding: 0 10px; font-size: var(--font-size-regular); }
:where(.content-page--form) .form-new-table .flexCheck li label { display: flex; -webkit-box-orient: horizontal; flex-flow: row nowrap; align-items: center; min-height: 48px; padding-block: 10px; padding-left: 22px; line-height: 1.5; }
:where(.content-page--form) .form-new-table .flexCheck li label .checkmark { top: 50%; transform: translateY(-50%); }
:where(.content-page--form) .form-new-table .flexCheck .check-label { word-break: keep-all; overflow-wrap: anywhere; }
:where(.content-page--form) .form-new-table .radioArea { min-height: 50px; padding: 10px; }
:where(.content-page--form) .form-new-table .radioArea label { display: block; padding: 5px 30px; padding-right: 0; }
:where(.content-page--form) .form-new-table .radioArea label input { height: auto; }
:where(.content-page--form) .form-btns { -webkit-box-orient: vertical; flex-flow: column nowrap; gap: 15px; }
:where(.content-page--form) .form-btns .submit { -webkit-appearance: none; appearance: none; }
:where(.content-page--form) .form-btns .submit-send { order: 0; width: 100%; }
:where(.content-page--form) .form-btns .submit-back { order: 1; }
:where(.content-page--form) .form-btns .submit-back input { padding: 7.2px 14.4px; background-color: #f5f5f5; color: #232323; font-weight: normal; font-size: var(--font-size-regular); }
:where(.content-page--form) .form-simpleTtl { height: 160px; color: #fff; font-size: 24px; }
:where(.content-page--form) .form-simpleTtl:after { background-image: url("../image/mobile/mainimg-common.png"); background-position: center; filter: none; }
:where(.content-page--form) .form-step li.current:after { border-color: #336699; }
:where(.content-page--form) .form-grid-1 { padding: 0 20px 50px; }
:where(.content-page--form) .form-grid-1 .telBox { margin: 30px 0; padding: 10px 0; }
:where(.content-page--form) .form-grid-1 .telBox .txt span { display: block; line-height: 1.4; text-align: center; }
:where(.content-page--form) .form-grid-1 .telBox .num { font-size: 32px; }
:where(.content-page--form) .form-grid-1 .telBox .num i { font-size: var(--icon-large); }
:where(.content-page--form) .form-grid-1 .table-preview td { display: flex; -webkit-box-orient: horizontal; flex-flow: row nowrap; align-items: center; background-color: #f5f5f5; line-height: 1.5; }
:where(.content-page--form) .form-grid-1 .table-preview .textarea { line-height: 1.8; }
:where(.content-page--form) .form-new-table .radioArea label .checkmark { top: 8px; }
}

/* 原本の共通部品。幅による差だけをメディアクエリへ分離。 */
.labelCheck { display: block; position: relative; cursor: pointer; user-select: none; }
.labelCheck input { opacity: 0; position: absolute; width: 0; height: 0; cursor: pointer; }
.labelCheck .checkmark { position: absolute; top: 5px; left: 0; border: 1px solid #ddd; background-color: #fff; }
.labelCheck input:checked~.checkmark { border: 1px solid #ddd; background-color: #fff; }
.labelCheck .checkmark:after { display: none; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); content: "\ea5e"; font-variant: normal; font-family: "tabler-icons"!important; text-transform: none; speak: none; font-size: 20px; line-height: 1; color: #336699; }
.labelCheck input:checked~.checkmark:after { display: block; }
.labelCheck input:focus-visible~.checkmark, .labelRadio input:focus-visible~.checkmark { outline: 3px solid var(--link); outline-offset: 4px; }
.labelRadio { display: block; position: relative; padding-left: 30px; cursor: pointer; user-select: none; }
.labelRadio input { opacity: 0; position: absolute; width: 0; height: 0; cursor: pointer; }
.labelRadio .checkmark { position: absolute; left: 0; width: 20px; height: 20px; border-radius: 50%; background-color: #eee; }
.labelRadio input:checked~.checkmark { background-color: #eee; }
.labelRadio .checkmark:after { content: ""; display: none; position: absolute; top: 5px; left: 5px; width: 10px; height: 10px; border-radius: 50%; background: #336699; }
.labelRadio input:checked~.checkmark:after { display: block; }
.agreement { margin: 30px 0; padding: 14.4px; border: 1px solid #eee; border-radius: 5px; background-color: #fff; font-size: var(--font-size-regular); }
.agreement:has(.validation-error) { border-color: rgba(207,46,46,0.1); background-color: rgba(207,46,46,0.05); }
.agreement:has(input[type=checkbox]:checked) { border: 1px solid #eee; background-color: #fff; }
.agreement.is_disabled { margin-top: 20px; pointer-events: none; }
.agreement.is_disabled label { opacity: 0.6; }
.agreement.is_disabled .mt { margin-top: 5px; }
.agreement input { display: inline-block; margin-right: 5px; }
.agreement .ttl { display: flex; flex-flow: row nowrap; align-items: center; padding: 5px 0; font-weight: bold; line-height: 1.5; }
.agreement .desc { font-size: 14px; }
.agreement span.validation-error { padding: 0 5px; color: #cf2e2e; font-weight: normal; font-size: var(--font-size-regular); white-space: nowrap; }
.agreement span.validation-error:before { content: "▲ "; }
.agreement label { display: block; position: relative; cursor: pointer; }
.agreement .mt { margin-top: 15px; }
.security { display: flex; flex-flow: row nowrap; justify-content: center; align-items: center; gap: 6px; margin-top: 20px; color: #006600; font-size: 14px; line-height: 1.5; text-align: center; }
.security:before { content: "\eb22"; display: block; flex: 0 0 16px; width: 16px; height: 16px; font-variant: normal; font-weight: normal; font-family: "tabler-icons"!important; text-transform: none; speak: none; font-size: var(--font-size-regular); line-height: 1; }
:where(.content-page--form) .left-box small { font-size: 14px; }
@media (min-width: 1024px) {
.labelCheck { padding-left: 30px; }
.labelCheck .checkmark { width: 20px; height: 20px; }
.labelCheck .checkmark:after { font-weight: normal; }
.labelRadio .checkmark { top: 15px; }
}
@media (max-width: 1023px) {
.labelCheck { padding-left: 25px; }
.labelCheck .checkmark { width: 15px; height: 15px; }
.labelCheck .checkmark:after { font-weight: bold; }
.labelRadio .checkmark { top: 3px; }
.labelCheck:last-child { margin-bottom: 0!important; }
.labelRadio:last-child { margin-bottom: 0!important; }
}
@media (max-width: 767px) {
  :where(.content-page--form) .form-grid-2 .left .left-box { display: none; }
}

/* 同意欄とTurnstileを同じ行にまとめ、収まらない幅では縦に並べる。 */
:where(.content-page--form) .form-consent { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 16px; margin: 24px 0 0; }
:where(.content-page--form) .form-consent > .agreement { flex: 1 1 260px; min-width: 0; margin: 0; padding: 0; border: 0; background: transparent; }
:where(.content-page--form) .form-consent .agreement label { display: flex; align-items: center; min-height: 65px; padding: 9px 12px; border: 1px solid #eee; border-radius: 5px; background-color: #fff; box-sizing: border-box; }
:where(.content-page--form) .form-consent .agreement .ttl { display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; align-items: center; gap: 10px; width: 100%; padding: 0; line-height: 1.4; }
:where(.content-page--form) .form-consent .agreement input { width: 20px; height: 20px; margin: 0; accent-color: #336699; }
:where(.content-page--form) .form-consent .agreement-text { min-width: 0; text-align: left; }
:where(.content-page--form) .form-consent .agreement .req { margin-left: 0; }
:where(.content-page--form) .form-consent .agreement .desc { margin-top: 8px; line-height: 1.6; }
:where(.content-page--form) .form-consent .agreement .err_output { display: block; }
:where(.content-page--form) .form-consent .agreement span.validation-error { padding: 0; white-space: normal; }
:where(.content-page--form) .form-consent .agreement label:has(input:checked) { border-color: rgba(51,102,153,0.45); background-color: rgba(51,102,153,0.08); }
:where(.content-page--form) .form-consent .agreement label:focus-within { outline: 2px solid #336699; outline-offset: 3px; }
:where(.content-page--form) .form-consent .agreement:has(input.validation-error) label { border-color: rgba(207,46,46,0.45); background-color: rgba(207,46,46,0.05); }
:where(.content-page--form) .form-consent > .form-turnstile { flex: 0 0 300px; max-width: 100%; }

/* お問い合わせ件名。複数選択の動作を保ち、丸い選択マークに揃える。 */
:where(.content-page--form) .form-contact-input .form-new-table .flexCheck li { min-width: 0; min-height: 50px; height: auto; padding: 0; border-radius: 4px; }
:where(.content-page--form) .form-contact-input .form-new-table .flexCheck li:has(input[type=checkbox]:checked) { border-color: #336699; color: #336699; }
:where(.content-page--form) .form-contact-input .form-new-table .flexCheck .labelCheck { display: flex; align-items: center; min-height: 48px; padding: 11px 15px 11px 49px; line-height: 1.5; box-sizing: border-box; }
:where(.content-page--form) .form-contact-input .flexCheck .labelCheck input { z-index: 1; top: 50%; left: 15px; width: 22px; height: 22px; margin: 0; transform: translateY(-50%); }
:where(.content-page--form) .form-contact-input .form-new-table .flexCheck .labelCheck .checkmark { top: 50%; left: 15px; width: 22px; height: 22px; border: 1px solid #aaa; border-radius: 50%; background-color: #fff; transform: translateY(-50%); box-sizing: border-box; }
:where(.content-page--form) .form-contact-input .flexCheck .labelCheck input:checked~.checkmark { border-color: #336699; }
:where(.content-page--form) .form-contact-input .flexCheck .checkmark:after { content: ""; width: 12px; height: 12px; border-radius: 50%; background-color: #336699; }
:where(.content-page--form) .form-contact-input .flexCheck .check-label { word-break: keep-all; overflow-wrap: anywhere; }
:where(.content-page--form) :is(.form-contact-input, .form-input-layout) .err_output .validation-error:before { content: none; }

/* 申し込みの入力画面。電話案内から確認ボタンまでを1列にまとめる。 */
:where(.content-page--form) .form-input-layout .telBox { display: flex; align-items: center; justify-content: center; gap: 32px; min-height: 70px; margin: 0; padding: 15px 16px; border-radius: 0; box-sizing: border-box; }
:where(.content-page--form) .form-input-layout .telBox .txt { font-size: 14px; line-height: 1.4; text-align: left; }
:where(.content-page--form) .form-input-layout .telBox .txt span { display: block; margin: 0; text-align: left; }
:where(.content-page--form) .form-input-layout .telBox .num { margin: 0; font-size: 32px; white-space: nowrap; }
:where(.content-page--form) .form-input-layout .telBox .num i { font-size: 24px; }
.content-page--form .form-input-layout .form-step { position: relative; width: auto; max-width: none; margin: 40px 32px 50px; align-items: flex-start; }
:where(.content-page--form) .form-input-layout .form-step:before { content: ""; position: absolute; top: 18px; left: 18px; right: 18px; border-top: 1px dotted #ccc; }
:where(.content-page--form) .form-input-layout .form-step li { z-index: 1; width: 36px; font-size: 14px; line-height: 1.4; }
:where(.content-page--form) .form-input-layout .form-step li:not(:first-child):after { content: none; }
:where(.content-page--form) .form-input-layout .form-step li span { width: 36px; height: 36px; font-size: 16px; font-weight: bold; line-height: 36px; }
:where(.content-page--form) .form-input-layout .form-new-table { margin: 0; }
:where(.content-page--form) .form-input-layout .form-new-table tr:not(:first-child) th { margin-top: 24px; }
:where(.content-page--form) .form-input-layout .form-new-table th { margin-bottom: 8px; }
:where(.content-page--form) .form-input-layout .form-new-table :is(input:not(.submit):not([type=checkbox]):not([type=radio]), select, textarea) { display: block; padding-inline: 15px; }
:where(.content-page--form) .form-input-layout .form-new-table :is(input:not(.submit):not([type=checkbox]):not([type=radio]), select, textarea):where(:not(.validation-error)) { border-color: #ddd; }
:where(.content-page--form) .form-input-layout .form-new-table textarea { min-height: 200px; }
.content-page--form .form-entry-layout :is(.req, .optional) { border-radius: 4px; font-weight: bold; }
:where(.content-page--form) :is(.form-input-layout, .form-contact-input) .form-consent { margin-top: 18px; }
.content-page--form :is(.form-input-layout, .form-contact-input) .form-consent > .agreement { border: 0; background: transparent; }
:where(.content-page--form) :is(.form-input-layout, .form-contact-input) .form-consent .agreement-control { position: relative; min-height: 65px; padding: 16px; border: 1px solid #ddd; border-radius: 4px; background-color: #f8f8f8; box-sizing: border-box; }
:where(.content-page--form) :is(.form-input-layout, .form-contact-input) .form-consent .agreement .ttl { grid-template-columns: 30px minmax(0, 1fr) auto; gap: 8px; font-size: 14px; font-weight: normal; }
:where(.content-page--form) :is(.form-input-layout, .form-contact-input) .form-consent .agreement input { position: absolute; z-index: 2; top: 50%; left: 16px; width: 30px; height: 30px; opacity: 0; transform: translateY(-50%); cursor: pointer; }
:where(.content-page--form) :is(.form-input-layout, .form-contact-input) .agreement-checkmark { display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid #aaa; border-radius: 50%; background-color: #fff; box-sizing: border-box; }
:where(.content-page--form) :is(.form-input-layout, .form-contact-input) .agreement-checkmark:after { content: ""; display: none; width: 8px; height: 14px; margin-top: -3px; border: solid #fff; border-width: 0 3px 3px 0; transform: rotate(45deg); }
:where(.content-page--form) :is(.form-input-layout, .form-contact-input) .agreement-control:has(input:checked) .agreement-checkmark { border-color: #198b4d; background-color: #198b4d; }
:where(.content-page--form) :is(.form-input-layout, .form-contact-input) .agreement-control:has(input:checked) .agreement-checkmark:after { display: block; }
:where(.content-page--form) :is(.form-input-layout, .form-contact-input) .form-consent .agreement-text label { display: inline; position: static; min-height: 0; padding: 0; border: 0; border-radius: 0; background: transparent; }
:where(.content-page--form) :is(.form-input-layout, .form-contact-input) .agreement-text label:after { content: ""; position: absolute; z-index: 1; inset: 0; cursor: pointer; }
:where(.content-page--form) :is(.form-input-layout, .form-contact-input) .agreement-text a { position: relative; z-index: 2; color: var(--link); text-decoration: underline; }
:where(.content-page--form) :is(.form-input-layout, .form-contact-input) .agreement-control:has(input:focus-visible) { outline: 2px solid #336699; outline-offset: 3px; }
:where(.content-page--form) :is(.form-input-layout, .form-contact-input) .agreement-control:has(input.validation-error) { border-color: rgba(207,46,46,0.45); background-color: rgba(207,46,46,0.05); }
:where(.content-page--form) :is(.form-input-layout, .form-contact-input) .form-security-check { flex: 0 0 300px; max-width: 100%; }
:where(.content-page--form) :is(.form-input-layout, .form-contact-input) .form-security-check .form-turnstile { line-height: 0; }
:where(.content-page--form) :is(.form-input-layout, .form-contact-input) .form-turnstile-note { margin-top: 8px; font-size: 14px; line-height: 1.6; text-align: center; }
:where(.content-page--form) .form-contact-input .form-consent .agreement-control { padding-block: 9px; }
:where(.content-page--form) .form-contact-input .agreement-text :is(a, label) { white-space: nowrap; }
:where(.content-page--form) .form-contact-input .form-consent .req { border-radius: 4px; font-weight: bold; }
:where(.content-page--form) .form-contact-input .form-turnstile-note { font-weight: normal; }
:where(.content-page--form) .form-contact-input .form-btns { margin-top: 30px; }
:where(.content-page--form) .form-input-layout .form-btns { margin-top: 32px; }
:where(.content-page--form) :is(.form-input-layout, .form-contact-input) .form-btns .submit { width: 400px; max-width: 100%; min-height: 70px; padding: 16px 24px; border-radius: 10px; background-color: #336699; font-size: 16px; line-height: 1.5; }
:where(.content-page--form) :is(.form-contact-input, .form-input-layout) .form-new-table :is(input:not([type=checkbox]):not([type=radio]), select, textarea):focus { outline: none; box-shadow: none; border-color: #336699; }
@media (max-width: 767px) {
  :where(.content-page--form) .form-input-layout .telBox { flex-direction: column; gap: 8px; }
  :where(.content-page--form) .form-input-layout .telBox .txt,
  :where(.content-page--form) .form-input-layout .telBox .txt span { text-align: center; }
  .content-page--form .form-input-layout .form-step { margin-inline: 16px; }
}
