.contact-step-title {
    display: flex;
    justify-content: space-between;
    padding: 0 5vw;
    margin-bottom: 2.6vw;
}

.contact-step-item {
    display: flex;
}

.step-item-number {
    width: 2.6vw;
    height: 2.6vw;
    border-radius: 100%;
    box-sizing: border-box;
    border: 2px solid #E36F1C;
    color: #E36F1C;
    background-color: #ffffff;
    text-align: center;
    font-size: 1.4583vw;
    line-height: 2.4vw;
    font-weight: 700;
}

.step-active .step-item-number {
    background: #E36F1C;
    color: #ffffff;
}

.step-item-title {
    font-size: 1.4583vw;
    line-height: 2.6vw;
    font-weight: 700;
    padding-left: 1.3vw;
    letter-spacing: 0.14583vw;
    color: #E36F1C;
}

.contact-step-desc {
    margin: 0 7.292vw 5.2083vw;
    font-size: 0.9375vw;
    line-height: 1.875vw;
    letter-spacing: 0.075vw;
    display: none;
    white-space: pre-line;
}

.contact-step-desc.desc-active {
    display: block;
}

.form-input-rule {
    font-size: 0.9375vw;
    line-height: 1.875vw;
    margin-bottom: 1.042vw;
}

.form-input-item {
    display: flex;
    justify-content: space-between;
    border-top: 1px solid #B1B5C3;
    padding: 1.3vw 1.042vw;
}

.form-contact-input .form-input-item:last-child {
    border-bottom: 1px solid #B1B5C3;
}

.form-input-title {
    font-size: 0.9375vw;
    line-height: 2.65625vw;
}

.form-input {
    display: flex;
    position: relative;
}

.form-input-required {
    font-size: 0.9375vw;
    line-height: 2.65625vw;
    margin: 0 1.5625vw;
    width: 4.5833vw;
    height: 2.65625vw;
    text-align: center;
    border-radius: 0.52vw;
    color: #ffffff;
    background: #E36F1C;
}

.input-text {
    width: 39.0625vw;
    height: 2.65625vw;
    background: #F3F3F3;
    border: 0;
    padding: 0.625vw 0.78125vw;
    font-size: 0.9375vw;
    box-sizing: border-box;
    position: relative;
}

.input-text::placeholder {
    color: #9F9F9F;
}

select.input-text {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background: url("../../images/select.svg") #F3F3F3;
    background-repeat: no-repeat;
    background-size: 1.4vw;
    background-position: right 1.4vw bottom 0.625vw;
}

select.input-text:invalid {
  color: #9F9F9F;
}

.input-textarea {
    resize: none;
    height: 17.7vw;
}

.input-error {
    border: 2px solid #f27152;
    background-color: #ffe6e5;
}

select.input-text.input-error {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background: url("../../images/select.svg") #ffe6e5;
    background-repeat: no-repeat;
    background-size: 1.4vw;
    background-position: right 1.4vw bottom 0.625vw;
}

.form-contact-policy {
    width: 59.95vw;
    margin: 7.083vw auto 1.667vw;
    background-color: #F9F2EE;
    padding: 2.0833vw 1.4vw 2.0833vw 2.3vw;
    box-sizing: border-box;
    list-style-type: unset;
}

.contact-policy-text {
    font-size: 0.9375vw;
    line-height: 2.1875vw;
    padding-left: 0.4vw;
    white-space: pre-line;
    position: relative;
}

.contact-policy-text::before {
    content: "・";
    display: block;
    position: absolute;
    left: -1vw;
    top: 0;
}

.form-contact-button {
    font-size: 0.9375vw;
    line-height: 1.875vw;
}

.checkbox-confirm {
    text-align: center;
    height: 1.875vw;
}

.checkbox-confirm-input {
    width: 1.25vw;
    height: 1.25vw;
    border-radius: 0.26vw;
    position: relative;
    top: 0.2083vw;
    margin: 0 0.26vw;
}

.policy-show-text {
    font-size: 0.9375vw;
    line-height: 1.875vw;
    height: 1.875vw;
    display: inline-block;
    border-bottom: 1px solid #000000;
    box-sizing: border-box;
}

.button-submit {
    width: 16.667vw;
    height: 4.1667vw;
    border-radius: 5.2vw;
    background: linear-gradient(90deg, #FB6D3A 0%, #F9AF39 100%);
    border: none;
    margin: 2.6vw auto;
    box-sizing: border-box;
    cursor: pointer;
    padding: 0;
    display: block;
}

.button-submit-text {
    font-size: 1.042vw;
    line-height: 1.042vw;
    font-weight: 700;
    color: #ffffff;
    display: block;
    height: calc(100% - 6px);
    margin: auto;
    width: calc(100% - 6px);
    border-radius: 5.2vw;
    display: flex;
    justify-content: center;
    flex-direction: column;
}

#block-step-3 .button-submit-text {
    text-align: center;
    top: 3px;
    position: relative;
}

.button-submit:hover{
    cursor: pointer;
}

.button-submit:disabled {
    cursor: not-allowed;
    background: #ffffff;
    color: #D7D7D7;
    border: 3px solid #D7D7D7;
}


.button-submit:hover .button-submit-text {
    color: #E36F1C;
    background: #ffffff;
    transition: 0.5s;
    border-radius: 25.45vw;
}

.button-submit:disabled .button-submit-text {
    color: #D7D7D7;
}

.block-step {
    display: none;
}

.block-step.block-step-active {
    display: block;
}

.error-message {
    position: absolute;
    color: #E12F2F;
    font-size: 0.78125vw;
    left: 8vw;
    bottom: -1.25vw;
}

.form-contact-confirm .contact-confirm-item:last-child {
    border-bottom: 1px solid #B1B5C3;
}

.contact-confirm-item {
    display: flex;
    height: 5.26vw;
    border-top: 1px solid #B1B5C3;
}

.confirm-item-title {
    font-size: 0.9375vw;
    line-height: 1.875vw;
    background: #F9F2EE;
    min-width: 20.365vw;
    display: block;
    padding: 1.667vw 1.042vw;
}

.confirm-item-detail {
    font-size: 0.9375vw;
    line-height: 1.875vw;
    display: block;
    padding: 1.667vw 2.34375vw;
}

.detail-textarea {
    min-height: 20.3125vw;
    height: auto;
}

.button-submit.button-light {
    border: 0.21vw solid #FB6D3A;
    background: #ffffff;
}

.button-submit.button-light .button-submit-text {
    color: #FB6D3A;
}

@media only screen and (min-width: 600px) and (max-width: 820px) {

    .contact-step-title {
        padding: 0 2vw;
    }

    .step-item-title {
        font-size: 2vw;
        line-height: 3vw;
    }

    .step-item-number {
        width: 3vw;
        height: 3vw;
        font-size: 2vw;
    }

    .contact-step-desc.desc-active {
        font-size: 1.5vw;
        line-height: 2.4vw;
        margin: 0 3vw 4vw;
    }

    .form-input-rule {
        font-size: 1.5vw;
        line-height: 2.4vw;
    }

    .form-input-title {
        font-size: 1.5vw;
        line-height: 3vw;
    }

    .form-input-required {
        font-size: 1.5vw;
        line-height: 3vw;
        height: 3vw;
        width: 7vw;
    }

    .input-text {
        font-size: 1.5vw;
        line-height: 2.4vw;
        height: 3vw;
        width: 50vw;
        padding: 0.5vw 1vw;
    }

    .input-textarea {
        height: 25vw;
    }

    .form-contact-policy {
        width: 78vw;
    }
    
    .contact-policy-text {
        font-size: 1.5vw;
        line-height: 3vw;
    }

    .policy-show-text, .policyConfirm {
        font-size: 1.5vw;
        line-height: 3vw;
        height: 3vw;
    }

    .checkbox-confirm-input {
        width: 2.5vw;
        height: 2.5vw;
        top: 0.5vw;
    }

    .confirm-item-title, .confirm-item-detail {
        font-size: 1.5vw;
        line-height: 3vw;
    }

    .checkbox-confirm {
        height: 4vw;
    }

    .button-submit-text {
        font-size: 1.5vw;
        line-height: 3vw;
    }

    .button-submit {
        width: 20vw;
        height: 5vw;
    }

    .error-message {
        font-size: 1.2vw;
        left: 10vw;
        bottom: -2vw;
    }

    .form-input-item {
        padding: 2vw;
    }

    select.input-text.input-error {
        padding: 0 1vw;
    }

    .contact-policy-text::before {
        font-size: 1.5vw;
        line-height: 3vw;
    }

}
@media only screen and (max-width: 600px) {

    .contact-step-title {
        display: block;
        padding: 5.089vw 6.361vw;
    }

    .contact-step-item {
        margin-bottom: 5.089vw;
    }

    .step-item-number {
        font-size: 5.089vw;
        line-height: 6.7vw;
        width: 7.634vw;
        height: 7.634vw;
    }

    .step-item-title {
        font-size: 5.089vw;
        line-height: 7.634vw;
        padding-left: 5.089vw;
        letter-spacing: 0.5vw;
    }

    .contact-step-desc {
        font-size: 4.0713vw;
        line-height: 7.634vw;
        margin: 7.634vw 4.326vw 20.356vw;
        letter-spacing: 0.303vw;
        white-space: pre-line;
    }

    .form-input-rule {
        font-size: 4.0713vw;
        line-height: 7.634vw;
        margin: 9.67vw 2.545vw 7.634vw;
    }

    .form-input-title {
        font-size: 3.5623vw;
        line-height: 5.6vw;
        display: block;
        margin-bottom: 3.562vw;
        margin-left: 2.545vw;
    }

    .form-input-required {
        font-size: 3.5623vw;
        line-height: 7.634vw;
        position: absolute;
        width: 15.013vw;
        height: 7.634vw;
        right: 0;
        top: -10vw;
        border-radius: 2.545vw;
    }

    .input-text {
        font-size: 3.5623vw;
        line-height: 5.6vw;
        height: 10.18vw;
        width: 100%;
        padding-left: 2.545vw;
    }

    .form-input {
        position: relative;
    }

    .form-input-item{
        display: block;
        padding: 5.089vw 0;
    }

    .form-contact-input {
        margin: 0 2.545vw;
    }

    .form-contact-policy {
        width: 100%;
        padding: 7.634vw 2.545vw;
    }

    .form-contact-policy .contact-policy-text {
        font-size: 4.07vw;
        line-height: 7.634vw;
        letter-spacing: 0.285vw;
        padding-left: 2.545vw;
        position: relative;
    }

    .policyConfirm {
        font-size: 3.5623vw;
        line-height: 5.6vw;
    }

    .policy-show-text {
        font-size: 3.5623vw;
        line-height: 5.6vw;
        height: 5.6vw;
    }

    .checkbox-confirm {
        height: 5.6vw;
        margin: 8.651vw 0;
    }

    .checkbox-confirm-input {
        width: 3.82vw;
        height: 3.82vw;
        border-radius: 1.2vw;
    }

    .button-submit {
        width: 81.17vw;
        height: 15.27vw;
        border-radius: 25.45vw;
    }

    .button-submit-text {
        font-size: 4.58vw;
    }

    .input-textarea {
        height: 73.8vw;
    }

    .contact-page .banner-background {
        height: 100%;
        object-fit: cover;
        width: 100%;
        object-position: 78% 100%;
    }

    .form-contact-confirm {
        width: 94.91vw;
        margin: 0 auto 14.758vw;
    }

    .contact-confirm-item {
        display: block;
        height: auto;
    }

    .confirm-item-title {
        width: 100%;
        box-sizing: border-box;
        font-size: 3.5623vw;
        line-height: 5.6vw;
        height: 14.758vw;
        padding: 4.326vw 2.545vw;
    }


    .confirm-item-detail {
        width: 100%;
        box-sizing: border-box;
        font-size: 3.5623vw;
        line-height: 5.6vw;
        padding: 4.326vw 2.545vw;
        height: 14.758vw;
    }

    .button-submit {
        margin-bottom: 10.18vw;
    }

    .error-message {
        font-size: 3vw;
        left: 2vw;
        bottom: -5vw;
    }

    .detail-textarea .confirm-item-detail {
        height: auto;
        min-height: 100vw;
    }

}
