/* 案内の吹き出し */
.explanation_txt,
.explanation_txt_sp {
    display: flex;
    justify-content: center;
    align-items: center;
}

.balloon-left,
.balloon-top {
    position: relative;
    display: inline-block;
    padding: 20px 20px;
    min-width: 120px;
    max-width: 100%;
    height: fit-content;
    font-size: 1.8rem;
    font-weight: 600;
    background: #FFF;
    border: 2px solid #DEE3E3;
    border-radius: 20px;
    box-sizing: border-box;
}

.balloon-left:before,
.balloon-top:before {
    content: "";
    position: absolute;
    top: 50%;
    left: -29px;
    margin-top: -13px;
    border: 11px solid transparent;
    border-right: 20px solid #FFF;
    z-index: 2;
}

.balloon-left:after,
.balloon-top:after {
    content: "";
    position: absolute;
    top: 50%;
    left: -33px;
    margin-top: -14px;
    border: 12px solid transparent;
    border-right: 20px solid #DEE3E3;
    z-index: 1;
}

.balloon-left p,
.balloon-top p {
    margin: 0;
    padding: 0;
}

.close_woman {
    width: 210px;
}


/* フォーム */

.contract-change .box--large,
.contract-close .box--large,
.ampare-change .box--large {
    padding: 60px;
}


.form_bg {
    background-color: var(--light-green);
    padding: 20px 40px;
    border-radius: 20px;
}

.form-group {
    padding: 0 0 25px;
    width: 100%;
    max-width: 550px;
    margin: 0 auto;
}

.contract-change .form-group {
    padding: 35px 0 0;
}

.form-group label {
    font-weight: 500;
    font-size: 1.6rem;
}

input[type=text],
input[type=password],
input[type=email],
input[type=tel],
textarea {
    border: 1px solid #E3E3E3;
    width: calc(100% - 42px);
    border-radius: 6px;
    padding: 20px;
    margin-top: 10px;
}

input[type=checkbox],
input[type=radio] {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    width: 0;
    height: 0;
}

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

.form-group select {
    margin-top: 10px;
    padding: 20px 40px 20px 20px;
}

.select-wrap.short {
    width: 28%;
}

.radio-field-text,
.checkbox-field-text {
    font-size: 1.5rem;
    font-weight: 600;
    box-sizing: border-box;
    cursor: pointer;
    display: inline-block;
    padding: 5px 43px;
    position: relative;
    width: auto;
}

.radio-field-text::before {
    background: #fff;
    border: 1px solid #DEE3E3;
    content: '';
    display: block;
    width: 20px;
    height: 20px;
    left: 0px;
    margin-top: -15px;
    position: absolute;
    top: 67%;
    border-radius: 50%;
}

.radio-field-text::after {
    content: '';
    display: block;
    width: 12px;
    height: 12px;
    background-color: var(--green);
    border-radius: 50%;
    left: 5px;
    top: 18px;
    margin-top: -3px;
    opacity: 0;
    position: absolute;
}

input[type=radio]:checked+.radio-field-text::before {
    background: #FFF;
    border: 1px solid var(--green);
}

.checkbox-field {
    text-align: center;
}

.checkbox-field-text::before {
    background: #fff;
    border: 2px solid #DEE3E3;
    content: '';
    display: block;
    width: 25px;
    height: 25px;
    left: 0px;
    margin-top: -12px;
    position: absolute;
    top: 42%;
    border-radius: 3px;
}

input[type=checkbox]:checked+.checkbox-field-text::before {
    background: #FFF;
    border: 2px solid var(--green);
}

.checkbox-field-text::after {
    border-right: 2px solid var(--green);
    border-bottom: 2px solid var(--green);
    content: '';
    display: block;
    width: 7px;
    height: 13px;
    left: 9px;
    top: 33%;
    margin-top: -3px;
    opacity: 0;
    position: absolute;
    transform: rotate(45deg);
}

input[type=checkbox]:checked+.checkbox-field-text::after,
input[type=radio]:checked+.radio-field-text::after {
    opacity: 1;
}

.error {
    color: #E6002D;
    font-weight: 600;
    margin-top: 10px;
    text-align: center;
}

.btn {
    margin: 25px 0 10px;
}

.btn.return {
    background: #fff;
}

.note {
    font-size: 1.2rem;
    margin-top: 10px;
}


/* 確認 */

.confirm_ttl {
    padding: 0px 10px;
    font-size: 1.5rem;
    font-weight: 700;
    position: relative;
}

.confirm_ttl::before {
    content: "";
    display: block;
    width: 4px;
    background: var(--green);
    position: absolute;
    left: 0;
    top: 55%;
    transform: translateY(-50%);
    border-radius: 50px;
    height: 50%;
}

.contract_info {
    margin: 10px auto 0;
    width: 100%;
}

.contract_info tr th,
.contract_info tr td {
    padding: 10px;
    border: 1px solid #EAF8F7;
}

.contract_info tr th {
    background-color: var(--green);
    color: #fff;
    width: 30%;
}

.contract_info tr td {
    background-color: #fff;
    width: 70%;
}

/* 注意書き */

.alert {
    background-color: #FBEFF0;
    border-radius: 20px;
    padding: 30px;
    margin-bottom: 40px;
}

.alert_ttl {
    font-size: 1.8rem;
    font-weight: 600;
    color: #F06F5E;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;
}

.icon_alert {
    width: 27px;
    margin-right: 10px;
}

/* 完了 */
.close_completion {
    border-radius: 10px;
    padding: 30px 10px 0;
}

.icon_check {
    width: 50px;
    display: block;
    margin: 0 auto 20px;
}

.completion_ttl {
    font-size: 2rem;
    margin: 0 auto 20px;
    color: var(--green);
    font-size: 2.5rem;
    line-height: 3.5rem;
    font-weight: 600;
    text-align: center;
}

.completion_ttl br {
    display: none;
}

.close_woman2 {
    width: 130px;
}

.close_completion .explanation_txt {
    flex-wrap: wrap;
    flex-direction: column-reverse;
}

.close_completion .explanation_txt .balloon-left:before {
    content: "";
    position: absolute;
    top: auto;
    bottom: -19px;
    left: 55%;
    margin-left: 1px;
    border: 11px solid transparent;
    border-bottom: none;
    border-top: 20px solid #fff;
    z-index: 2;
}

.close_completion .explanation_txt .balloon-left:after {
    content: "";
    position: absolute;
    top: auto;
    bottom: -22px;
    left: 55%;
    border: 12px solid transparent;
    border-bottom: none;
    border-top: 20px solid #DEE3E3;
    z-index: 1;
}

.Page__section_title {
    font-size: 1.5rem;
    margin-top: 20px;
}

@media (max-width: 768px) {

    /* 案内の吹き出し */
    .balloon-left {
        padding: 10px;
        min-width: 120px;
        max-width: 100%;
        font-size: 1.5rem;
        border-radius: 10px;
    }

    .explanation_txt_sp {
        display: block;
        width: fit-content;
        margin: 0 auto 10px;
        text-align: center;
    }

    .balloon-top {
        padding: 10px;
        min-width: 120px;
        max-width: 100%;
        height: fit-content;
        font-size: 1.5rem;
        border-radius: 10px;
        box-sizing: border-box;
    }

    .balloon-top:before {
        content: "";
        position: absolute;
        top: -16px;
        left: 58%;
        margin-left: 1px;
        border: 11px solid transparent;
        border-bottom: 20px solid #FFF;
        z-index: 2;
    }

    .balloon-top:after {
        content: "";
        position: absolute;
        top: -20px;
        left: 58%;
        border: 12px solid transparent;
        border-bottom: 20px solid #DEE3E3;
        z-index: 1;
    }

    .balloon-left br,
    .balloon-top br {
        display: none;
    }

    .balloon-left p,
    .balloon-top p {
        margin: 0;
        padding: 0;
    }


    .close_woman {
        width: 100px;
    }

    .contract-change .box--large,
    .contract-close .box--large,
    .ampare-change .box--large {
        padding: 30px 20px;
    }

    .form_bg {
        padding: 20px 10px;
        border-radius: 10px;
    }

    .radio-wrap {
        display: flex;
        flex-wrap: wrap;
    }

    .radio-field {
        padding: 10px 0;
        width: 100%;
    }

    .form-group .select-wrap.short select {
        padding: 20px 0px 20px 10px;
    }

    .select-wrap.short:after {
        right: 10px;
    }

    .radio-field-text,
    .checkbox-field-text {
        font-size: 1.5rem;
        padding: 5px 5px 5px 35px;
    }

    .radio-field-text::before {
        top: 62%;
    }

    .radio-field-text::after {
        left: 5px;
        top: 16px;
    }

    .checkbox-field-text::before {
        top: 44%;
    }

    .checkbox-field-text::after {
        top: 31%;
    }

    /* 確認 */
    .contract_info tr {
        border: 1px solid #EAF8F7;
        display: block;
        background-color: #fff;
        padding: 10px 0;
    }

    .contract_info tr th,
    .contract_info tr td {
        padding: 0 10px;
        width: 100%;
        display: block;
        box-sizing: border-box;
        border: none;
        text-align: left;
    }

    .contract_info tr th {
        color: var(--green);
        background-color: #fff;
    }

    .contract_info tr td {
        background-color: #fff;
    }

    /* 注意書き */

    .alert {
        border-radius: 10px;
        padding: 30px 10px;
    }

    .alert_ttl {
        font-size: 1.6rem;
        margin-bottom: 20px;
    }

    .icon_alert {
        width: 27px;
        margin-right: 10px;
    }

    /* 完了 */

    .close_completion {
        border-radius: 10px;
        padding: 30px 10px 0;
    }

    .completion_ttl {
        font-size: 2rem;
        margin: 0 auto 20px;
    }

    .completion_ttl br {
        display: none;
    }

    .close_woman2 {
        width: 130px;
    }

    .close_completion .explanation_txt {
        flex-wrap: wrap;
        flex-direction: column-reverse;
    }

    .close_completion .explanation_txt .balloon-left:before {
        content: "";
        position: absolute;
        top: auto;
        bottom: -19px;
        left: 55%;
        margin-left: 1px;
        border: 11px solid transparent;
        border-bottom: none;
        border-top: 20px solid #fff;
        z-index: 2;
    }

    .close_completion .explanation_txt .balloon-left:after {
        content: "";
        position: absolute;
        top: auto;
        bottom: -22px;
        left: 55%;
        border: 12px solid transparent;
        border-bottom: none;
        border-top: 20px solid #DEE3E3;
        z-index: 1;
    }

    .Page__section_title {
        font-size: 1.5rem;
        margin-top: 20px;
    }

}