.pa-mw-form,
.pa-mw-form input,
.pa-mw-form select,
.pa-mw-form textarea,
.pa-mw-form button,
.pa-mw-form label,
h2.form-header__title,
.cta-btn {
    font-family: 'Noto Sans JP', sans-serif;
}
.pa-form-button button[value="confirm"] {
    font-family: 'Noto Sans JP', sans-serif!important;
}
.pa-mw-form .pa-mw-form__title{
    background: transparent!important;
    border: none!important;
    width: 100%!important;
}
.pa-mw-form{
    border: none!important;
}
@media (min-width: 960px) {
    .pa-mw-form {
        display: block!important;
    }
}
.pa-mw-form .pa-mw-form__desc{
    border: none!important;
    padding: 0 0 32px!important;
    width: 100%!important;
}
.pa-mw-form input,
.pa-mw-form select,
.pa-mw-form textarea {
    background-color: #fff!important;
    border: 1px solid #c7c7c7!important;
    font-size: 16px!important;
}
.pa-mw-form .pa-mw-form__title{
    padding: 1em 0 18px 0!important;
    line-height: 1;
}
.pa-form-row{
    margin-top: 0!important;
    margin-bottom: 8px;
}
.pa-form-input.pa-form-required:has(select),
.pa-form-input.pa-form-required:has(input[type=text]),
.pa-form-input.pa-form-required:has(input[type=tel]){
    gap: 0!important;
}
.pa-form-input.pa-form-required:has(select) .invalid-feedback,
.pa-form-input.pa-form-required:has(input[type=tel]) .invalid-feedback{
    padding-bottom: 16px;
}
 
.pa-mw-form label {
    font-size: 20px;
    color:#004D28;
}
.p-fixBtnWrap {
    display: none !important;
}
.pa-form-input input[type=text], .pa-form-input input[type=tel], .pa-form-input input[type=numeric], .pa-form-input input[type=email], .pa-form-input select{
    height: 50px!important;
}
.pa-form_student_name .pa-form-row{
    gap: 8px;
}
.pa-form-input input[type=text], .pa-form-input input[type=tel], .pa-form-input input[type=numeric], .pa-form-input input[type=email], .pa-form-input select{
    width: 100%!important;
}
span.pa-required{
    background-color: #E6204D!important;
    border-radius: 0%!important;
    font-size: 13px!important;
}
span.pa-not-required {
    background-color: #3e6eb3!important;
    border: none!important;
    border-radius: 0%!important;
    font-size: 13px!important;
    color: #fff!important;
    margin-left: 0.5em;
    padding: 1px 5px;
    font-weight: normal;
    flex-shrink: 0;
}
.pa-mw-form .pa-mw-form__title label {
    display: inline-flex;
    align-items: center;
    flex-wrap: nowrap;
}
input[type="radio"]{
    width: 19px;
    height: 19px;
}
/* 性別ラジオボタン：ボックスUI */
.pa-form_sex .mwform-radio-field label {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 6px;
    padding-left: 10px;
    width: 92px;
    height: 44px;
    box-shadow: 0 0 4px rgba(0,0,0,0.28);
    border-radius: 4px;
    cursor: pointer;
    transition: box-shadow 0.15s, color 0.15s;
    font-size: 16px;
    font-weight: normal;
    color: #555;
}
.pa-form_sex label:has(input[type="radio"]:checked) {
    box-shadow: 0 0 0 2px #004D28;
    background-color: #F0F8F5;
    color: #004D28;
    font-weight: bold;
}
/* 続柄ラジオボタン：ボックスUI */
.pa-form_relationship .mwform-radio-field {
    margin-right: 0 !important;
}
.pa-form_relationship .mwform-radio-field label {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 6px;
    padding-left: 10px;
    width: 102px;
    height: 44px;
    box-shadow: 0 0 4px rgba(0,0,0,0.28);
    border-radius: 4px;
    cursor: pointer;
    transition: box-shadow 0.15s, color 0.15s;
    font-size: 16px;
    font-weight: normal;
    color: #555;
}
.pa-form_relationship label:has(input[type="radio"]:checked) {
    box-shadow: 0 0 0 2px #004D28;
    background-color: #F0F8F5;
    color: #004D28;
    font-weight: bold;
}
.pa-mw-form .pa-form_relationship .pa-form-input {
    gap: 14px !important;
}
.pa-form-comment{
    color: #5E6369!important;
    font-size: 11px!important;
}
.pa-form_school_grade .invalid-feedback,
.pa-form-zip-code .invalid-feedback {
    width: 100%;
    margin-left: 0!important;
    padding-bottom: 16px;
}
.pa-form_school_grade .pa-form-comment,
.pa-form-zip-code .pa-form-comment {
    width: 100%;
}
input[type="checkbox"]{
    width: 19px;
    height: 19px;
}
/* 同意するチェックボックス：ボックスUI */
.pa-form-policy-check .mwform-checkbox-field label {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    padding: 0 16px;
    height: 44px;
    box-shadow: 0 0 4px rgba(0,0,0,0.28);
    border-radius: 4px;
    cursor: pointer;
    transition: box-shadow 0.15s, background-color 0.15s, color 0.15s;
    font-size: 16px;
    font-weight: normal;
    color: #555;
}
.pa-form-policy-check label:has(input[type="checkbox"]:checked) {
    box-shadow: 0 0 0 2px #004D28;
    background-color: #F0F8F5;
    color: #004D28;
    font-weight: bold;
}
.pa-form_relationship .pa-form-input {
    flex-wrap: wrap;
    row-gap: 0!important;
}
.pa-form_relationship .invalid-feedback {
    width: 100%;
    margin-left: 0!important;
}
.pa-form-input.pa-form-required.pa-form-policy-check{
    flex-direction: column!important;
    align-items: center!important;
    margin-top: 14px!important;
}
.pa-form-policy-check .invalid-feedback {
    margin-left: 0!important;
    text-align: center;
}
/* 同意確認：左右中央 */
.pa-form-row:has(.pa-form-policy-check) .pa-mw-form__title {
    text-align: center;
}
.pa-mw-form__desc:has(.pa-form-policy-check) {
    text-align: center;
    align-items: center!important;
}
.pa-form-input.pa-form-required.pa-form-zip-code, .pa-form-input.pa-form-required.pa-dorm-grade{
    gap: 4px!important;
}
.pa-form-row:has(input[name="form_relationship_other"]){
    display: none!important;
    margin: 0!important;
}
.pa-mw-form:has(input[name="form_relationship"][value="その他"]:checked) .pa-form-row:has(input[name="form_relationship_other"]){
    display: block!important;
}
input#form_school_name:not(.valid){
    height: 0!important;
    padding: 0!important;
    margin: 0!important;
    border: none!important;
    overflow: hidden;
}
input#form_school_name.valid{
    height: auto!important;
    padding: 0!important;
    margin: 0!important;
    border: none!important;
    font-weight: bold;
    font-size: 18px!important;
    color: #2d6e4e!important;
    background-color: transparent!important;
    width: 100%!important;
}
.pa-form-input:has(input#form_school_name.valid){
    background-color: #F0F8F5!important;
    border: none!important;
    border-radius: 4px;
    padding: 12px 16px;
    margin-top: 12px;
    gap: 4px!important;
    width: 100%!important;
}
.pa-form-input:has(input#form_school_name.valid)::before{
    content: "選択中の教室";
    display: block;
    font-size: 12px;
    color: #2d6e4e;
    font-weight: normal;
    margin-bottom: 6px;
    padding-left: 22px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Ccircle cx='10' cy='10' r='10' fill='%232d6e4e'/%3E%3Cpath d='M5 10.5 L8.5 14 L15 7' stroke='white' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: 16px 16px;
    background-position: left center;
}
.pa-open-btn-school-search{
        padding: .7em 2em .7em 1em!important;
}

.pa-form-button{
    margin-top: -40px!important;
    margin-bottom: 20px;
}
.pa-form-button button[value="confirm"]{
    display: block;
    width: 300px;
    max-width: calc(100% - 32px);
    margin: 0 auto;
    background-color: #3e6eb3;
    color: #fff;
    font-size: clamp(16px, 5vw, 20px);
    font-weight: bold;
    height: 56px;
    padding: 0 16px;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    box-shadow: 0 4px 0 0 #364D8D;
    transition: box-shadow 0.2s, transform 0.2s;
    white-space: nowrap;
}
.pa-form-button button[value="confirm"]:hover{
    box-shadow: 0 2px 0 0 #364D8D;
    transform: translateY(2px);
}
p.has-text-align-center{
    line-height: 1;
}

img.wp-image-10331{
    max-width: 200px;
}
.l-footer__widgetArea{
    padding-top: 40px;
}
/* フォームヘッダー */
.form-header{
    text-align: center;
    padding: 0 0 32px;
    margin-bottom: 0!important;
}
h2.form-header__title{
    font-size: 22px;
    font-weight: bold;
    color: #004D28;
    margin-bottom: 6px;
    line-height: 1.3;
    background-color: transparent!important;
}
h2.form-header__title::before{
    content: none;
}
.form-steps{
    display: flex;
    align-items: flex-start;
    justify-content: center;
}
.form-steps__item{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    min-width: 38px;
}
.form-steps__circle{
    width: clamp(26px, 3.9vw, 40px);
    height: clamp(26px, 3.9vw, 40px);
    border-radius: 50%;
    border: 2px solid #ccc;
    background-color: #fff;
    color: #ccc;
    font-size: clamp(11px, 1.5vw, 17px);
    font-weight: bold;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}
.form-steps__item.is-active .form-steps__circle{
    background-color: #2d6e4e;
    border-color: #2d6e4e;
    color: #fff;
}
.form-steps__label{
    font-size: clamp(10px, 1.2vw, 14px);
    color: #ccc;
}
.form-steps__item.is-active .form-steps__label{
    color: #2d6e4e;
    font-weight: bold;
}
.form-steps__line{
    width: clamp(28px, 4.8vw, 64px);
    height: 2px;
    background-color: #ccc;
    margin-top: clamp(12px, 1.7vw, 20px);
    flex-shrink: 0;
}
.form-steps__line.is-half{
    background: linear-gradient(to right, #2d6e4e 50%, #ccc 50%);
}
.form-steps__line.is-done{
    background-color: #2d6e4e;
}
/* CTAボタン */
.cta-btn-wrap{
    padding: 18px 0 24px;
    margin-bottom: 0!important;
}
.cta-btn{
    display: block;
    width: 300px;
    max-width: calc(100% - 32px);
    margin: 0 auto;
    background-color: #E6204D;
    color: #fff!important;
    font-size: clamp(16px, 5.5vw, 20px);
    white-space: nowrap;
    font-weight: bold;
    text-decoration: none!important;
    height: 56px;
    padding: 0 52px 0 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    border-radius: 4px;
    text-align: center;
    box-shadow: 0 4px 0 0 #C71941;
    transition: opacity 0.2s, box-shadow 0.2s, transform 0.2s;
}
.cta-btn:hover{
    opacity: 0.9;
    box-shadow: 0 2px 0 0 #C71941;
    transform: translateY(2px);
}
.cta-btn::after{
    content: '';
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    width: 16px;
    height: 16px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 36'%3E%3Ccircle cx='18' cy='18' r='18' fill='white'/%3E%3Cpolygon points='14,11 14,25 27,18' fill='%23E6204D'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: contain;
    pointer-events: none;
}
/* 電話CTA */
.tel-cta{
    display: block;
    width: 300px;
    max-width: calc(100% - 32px);
    margin: 0 auto;
    border-radius: 4px;
    padding: 16px 12px;
    background: #fff;
    box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.06);
    text-decoration: none;
    color: inherit;
}
.tel-cta:hover,
.tel-cta:hover * {
    text-decoration: none!important;
}
.tel-cta__lead{
    text-align: center;
    font-size: 14px;
    font-weight: 500;
    color: #333;
    margin-bottom: 8px;
    line-height: 1;
}
.tel-cta__body{
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    flex-wrap: nowrap;
}
.tel-cta__character{
    width: clamp(44px, 16vw, 56px);
    height: clamp(44px, 16vw, 56px);
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}
.tel-cta__info{
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 0;
}
.tel-cta__number{
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    font-size: clamp(16px, 7.6vw, 24px);
    white-space: nowrap;
    font-weight: 900;
    color: #004D28!important;
    text-decoration: none!important;
    line-height: 1;
    margin-bottom: 6px;
}
.tel-cta__tel-icon{
    width: clamp(20px, 4vw, 22px);
    height: clamp(20px, 4vw, 22px);
    flex-shrink: 0;
}
.tel-cta__hours{
    font-size: clamp(9px, 2.5vw, 11px);
    color: #555;
    text-align: center;
    margin: 0;
}
@media (min-width: 750px) {
    .tel-cta{
        display: none;
    }
}
@media (max-width: 749px) {
    .tel-cta,
    .cta-btn {
        width: auto;
        max-width: 100%;
        margin-left: .75em;
        margin-right: .75em;
    }
    .cta-btn {
        padding-left: 48px;
    }
}
@media (min-width: 750px) {
    .pa-mw-form{
        max-width: 860px;
        margin: 0 auto;
    }
    .pa-mw-form label{
        font-size: 22px;
    }
    .pa-mw-form .pa-open-btn-school-search{
        display: block!important;
        width: 100%!important;
        text-align: center!important;
    }
    .cta-btn{
        width: 400px;
        height: 68px;
        font-size: 22px;
        padding: 0 44px 0 28px;
        border-radius: 6px;
        box-shadow: 0 5px 0 0 #C71941;
    }
    .cta-btn:hover{
        box-shadow: 0 2px 0 0 #C71941;
    }
    .cta-btn::after{
        right: 16px;
        width: 18px;
        height: 18px;
    }
}
@media (min-width: 960px) {
    .pa-mw-form .pa-form-input:not(:first-of-type) {
        margin-left: 0!important;
    }
    .pa-mw-form .pa-mw-form__desc {
        padding-bottom: 48px!important;
    }
    .pa-form-comment {
        font-size: 14px!important;
    }
    .invalid-feedback {
        font-size: 14px!important;
    }
    h2.form-header__title {
        font-size: clamp(26px, 2.5vw, 36px);
    }
    .form-steps__line {
        height: 3px;
    }
    .form-header {
        padding-bottom: 36px;
    }
    .pa-form-button button[value="confirm"] {
        width: 500px;
        height: 80px;
        font-size: 22px;
    }
    .cta-btn-wrap {
        padding-top: 8px;
    }
    .cta-btn {
        width: 500px;
        height: 96px;
        font-size: 26px;
        padding: 0 50px 0 32px;
        box-shadow: 0 6px 0 0 #C71941;
    }
    .cta-btn:hover {
        box-shadow: 0 2px 0 0 #C71941;
    }
    .cta-btn::after {
        right: 20px;
        width: 22px;
        height: 22px;
    }
    span.pa-required,
    span.pa-not-required {
        font-size: 1em!important;
        padding: 3px 10px!important;
    }
    .pa-form_relationship .pa-form-input {
        flex-wrap: wrap;
        align-items: flex-start;
        row-gap: 0!important;
    }
    .pa-form_relationship .invalid-feedback {
        width: 100%;
        margin-left: 0!important;
        margin-top: 2px;
    }
    .pa-form_sex .mwform-radio-field label {
        height: 50px;
    }
    .pa-form_relationship .mwform-radio-field label {
        height: 50px;
    }
    .pa-form-input input[type=text],
    .pa-form-input input[type=tel],
    .pa-form-input input[type=numeric],
    .pa-form-input input[type=email],
    .pa-form-input select {
        height: 50px!important;
    }
    .pa-open-btn-school-search {
        padding: 12px 2em 12px 1em!important;
        font-size: 1.25em!important;
    }
    .pa-open-btn-school-search::before {
        width: 22px!important;
        height: 22px!important;
    }
    .pa-form_student_name .pa-form-row {
        gap: 16px;
    }
    .pa-form_student_name .pa-form-input {
        flex: 1;
        min-width: 0;
    }
    .pa-form_school_name .pa-open-btn-school-search-box {
        width: calc(50% - 8px);
    }
    .pa-form_school_grade .pa-form-input {
        width: calc(50% - 8px);
    }
    .pa-form_telephone .pa-form-input,
    .pa-form_email .pa-form-input,
    .pa-form_message .pa-form-input {
        width: 100%;
    }
    .pa-form_message .pa-form-input textarea {
        width: 100%!important;
    }
    .pa-mw-form__desc.pa-form_postal {
        flex-direction: row!important;
        flex-wrap: wrap!important;
        column-gap: 16px;
        align-items: start;
    }
    .pa-form_postal .pa-form_postal_code {
        width: calc(50% - 8px);
    }
    .pa-form_postal .pa-form-row.pa-form_postal_region {
        width: 100%;
    }
    .pa-form_postal .pa-form-row:has(select) {
        gap: 16px;
    }
    .pa-form_postal .pa-form-row:has(select) .pa-form-input {
        flex: 1;
        min-width: 0;
        align-self: flex-start;
    }
    .pa-form_postal .pa-form-row.pa-form_postal_street_address,
    .pa-form_postal .pa-form-row.pa-form_postal_extended_address {
        width: calc(50% - 8px);
    }
    .pa-form_postal .pa-form-row .pa-form-input {
        width: 100%;
    }
}