body form{
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 24px;
    padding: 48px 50px;
    box-sizing: border-box;
    border: 3px solid #6A9576;
    border-radius: 5px
}

body div.screen-reader-response, fieldset.hidden-fields-container{
    display: none;
}
/* Font face declarations are now in base.css */

form label{
    font-size: 16px;
    line-height: 150%;
    font-weight: 400;
    color: #434343;
}
form input{
    padding: 0px;
    box-sizing: border-box;
}
form input[type="text"], form input[type="number"], form input[type="email"], form input[type="tel"], form input[type="date"]{
    width: 100%;
    min-width: 100%;
    max-width: 100%;
    height: 40px;
    border-radius: 5px;
    background-color: #F5F5F5;
    border: 2px solid transparent;
    padding-left: 20px;
    padding-right: 20px;
}

form input[type="text"]:focus, form input[type="number"]:focus, form input[type="email"]:focus, form input[type="tel"]:focus, form input[type="date"]:focus{
    border: 2px solid #6A9576;
    outline: 0px solid transparent;
    transition: all .3s ease-in-out 0s;
}
form textarea{
    width: 100%;
    min-width: 100%;
    max-width: 100%;
    border-radius: 5px;
    background-color: #F5F5F5;
    border: 3px solid transparent;
}
form textarea:focus{
    border: 3px solid #6A9576;
    outline: 0px solid transparent;
    transition: all .3s ease-in-out 0s;
}
form input[type="radio"]{
    background-color: red;
}
form input[type="radio"]{
    accent-color: #6A9576;
}
form input[type="checkbox"]{
    accent-color: #6A9576;
}
form label{
    height: 24px;
    width: fit-content;
}
form p{
    margin: 0px;
    box-sizing: border-box;
}
form p > span{
    margin-top: 4px;
    display: flex;
}
form select{
    width: 100%;
    text-align: center;
    height: 40px;
    border: none;
    border-radius: 5px;
    background-color: #F5F5F5;
    padding-right: 20px;
    font-size: 16px;
    font-family: 'Noto Sans JP', 'Noto Sans', 'Noto Sans KR', 'Roboto', 'Helvetica Neue', Arial, sans-serif;
    border: 2px solid transparent;
    outline: 0px solid transparent;
    position: relative;
}
form select:focus{
    border: 2px solid #6A9576;
    outline: 0px solid transparent;
    transition: all .3s ease-in-out 0s;
}

form p .contact_method-clss{
    display: flex;
    gap: 32px;
}
form .wpcf7-list-item.first label{
    display: flex;
    flex-direction: row;
}
form p .contact_method-clss label{
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 8px;

}
form [data-name="grade_levels"] > span{
    display: flex;
    flex-direction: row;
    gap: 24px;
}
form [data-name="format_options"] > span{
    display: flex;
    flex-direction: row;
    gap: 24px;
}
form [data-name="number_of_class"] > span{
    display: flex;
    flex-direction: row;
    gap: 24px;
}
form [data-name="ict_environment"] > span{
    display: flex;
    flex-direction: row;
    gap: 24px;
}
form [data-name="ict_environment"] > span{
    display: flex;
    flex-direction: row;
    gap: 24px;
}
form p span{
    position: relative;
}
form p span .wpcf7-not-valid-tip{
    position: absolute;
    top: 0;
    z-index: 4;
    display: none;
}
form p > label{
    position: relative;
}
form p:nth-child(-n+7)> label::after{
    content: '必須';
    background-color: #D17775;
    width: 28px;
    height: 15px;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    font-size: 10px;
    border-radius: 2px;
    color: white;
    line-height: 150%;
}
form p:nth-child(15)> label::after{
    content: '必須';
    background-color: #D17775;
    width: 28px;
    height: 15px;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    font-size: 10px;
    border-radius: 2px;
    color: white;
    line-height: 150%;
}
form span > label input{
    margin-right: 8px
}

form input[type="submit"]{
    color: white;
    font-size: 25px;
    line-height: 150%;
    padding: 15px 120px;
    background-color: #6A9576;
    border-radius: 5px;
    border: none;
    outline: 0px;
    display: block;
    margin: 0px auto;
    cursor: pointer;
}

@media (max-width: 1100px){
    label{
       font-size: 14px;
    }
}
@media (max-width: 1000px){
    body form{
        padding: 32px 15px;
    }
}