@charset "UTF-8";

.wpcf7 {
    padding: 80px 50px;
    border: 10px solid #F2FAFC;
    font-size: 16px;
}

.p-contact__item__head {
    display:flex;
    align-items:center;
    gap:.6rem;
}

.p-contact__item__head.required::after {
    content:"必須";
    font-size:12px;
    line-height:1;
    padding:.35em .6em;
    border-radius:3px;
    color:#fff;
    background:#e74c3c;
}

.p-contact__item__head.optional::after {
    content:"任意";
    font-size:12px;
    line-height:1;
    padding:.35em .6em;
    border-radius:3px;
    color:#fff;
    background:#56C2DB;
}

.p-contact__flex {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.p-contact__flex .half {
    width: 48%;
}

.p-contact__item {
    margin-bottom: 30px;
}

.p-contact__item__input.column label {
    display:block;
    margin:.4rem 0 0;
}

.wpcf7-text,
.wpcf7-textarea {
    width: 100%;
    background-color: #F0F0F0;
    border: 1px solid #C3C3C3!important;
}

.wpcf7-form-control-wrap {
    text-align: left;
}

span.wpcf7-list-item {
    margin-left: 0;
}

.p-contact__item__input.checkbox {
    padding-left: 0!important;
    background: initial!important;
}

.wpcf7-radio,
.wpcf7-checkbox {
    display: flex;
    flex-direction: column;
}

form input[type=text], form input[type=email], form input[type=password], form input[type=date], form select, form textarea, .wpcf7 input[type="tel"] {
    border-radius: 4px;
    padding: 10px!important;
    outline: 0;
    margin: 5px 5px 5px 0;
    -webkit-appearance: none;
    font-size: 100%;
}

span.wpcf7-list-item {
    padding: 0!important;
}

.wpcf7-textarea {
    font-size: 100%;
}

.p-contact__privacy a {
    color: #56C2DB;
    text-decoration: initial;
}

.p-contact__privacy a:hover {
    opacity: 1!important;
    text-decoration: underline;
    color: #56C2DB!important;
}

.p-contact__privacy p {
    text-align: center;
}

.p-contact__privacy-check p {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.p-contact__submit p {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
}

input[type=submit] {
    padding: 8px 20px!important;
}

@media screen and (max-width: 767px) {
    .wpcf7 {
        padding: 40px 20px;
    }
}