@media screen and (max-width:640px) {
    .pc {
        display: none;
    }

    .sp {
        display: block!important;
    }

    html {
        font-size: 90%;
    }

    h2 {
        font-size: 8vw;
        letter-spacing: 8px;
    }

    h3 {
        font-size: 120%;
    }

    .box {
        padding: 15% 0;
    }

    .logo {
        width: 50%;
        top: 2%;
        left: 4.5%;
    }
    
    /*========================= header ========================== */
    .header-menu-sp ul {
        margin-bottom: 5%;
    }

    .header-cta {
        display: flex;
        margin: 0 auto;
        width: 90%;
        flex-direction: column;
        gap: 10px;
    }

    .contact-btn {
        padding: 15px 2%;
    }

    .header-image h1 {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%);
        font-size: 110%;
        width: 90%;
    }

    .header-slider {
        height: 85vw;
    }

    .header-slider div:first-of-type {
        background: url(../img/00_1_sp.jpg) no-repeat top / cover;
    }
    .header-slider div:nth-of-type(2) {
        background: url(../img/00_2_sp.jpg) no-repeat top / cover;
        animation-delay: 5s;
    }
    .header-slider div:last-of-type {
        background: url(../img/00_3_sp.jpg) no-repeat top / cover;
        animation-delay: 10s;
    }

    .sub-title {
        top: 75%;
    }

    .sub-title h2 {
        font-size: 7vw;
        padding: 2% 0;
    }

    /*========================= about ========================== */
    .about {
        background-position: center 10%;
    }
    
    .blue-btn {
        display: block;
        padding: 4%;
    }

    .blue-btn:after {
        right: 30px;
    }

    /*========================= service ========================== */
    .service {
        overflow: hidden;
    }
    
    .service-box h3 {
        color: var(--blue);
    }
    
    .service-box ul > li {
        width: 49%;
    }

    .service-box ul > li img {
        height: 35%;
    }

    .blue-title {
        font-size: 105%;
        letter-spacing: 0;
    }

    .service:before {
        right: -5%;
    }

    .service:after {
        bottom: 0;
        top: 5%;
        left: 3%;
        width: 20%;
        height: 20%;
    }

    /*========================= flow ========================== */

    .flow-box ul {
        flex-direction: column;
    }

    .flow-box ul > li {
        width: 100%;
        flex-direction: row;
        gap: 15px;
        padding: 5% 0;
    }

    .flow-box ul > li img {
        width: 25%;
        height: 25%;
    }

    .flow-box ul li > div {
        width: 75%;
    }

    .flow-box ul > li .blue-title {
        margin-bottom: 5%;
    }

    /*========================= news ========================== */
    .news {
        text-align: center;
    }

    .news-box h2 {
        margin-bottom: 0;
    }
    
    .news-box {
        flex-direction: column;
        padding: 5% 2%;
    }

    .news-box ul {
        width: 95%;
    }

    /*========================= form ========================== */
    .form-tr {
        flex-direction: column;
    }

    .form-tr th {
        margin: 3% 0 2% 0;
    }

    .privacy {
        margin-bottom: 10%;
    }

    .form-box {
        padding: 5% 5% 8% 5%;
    }

    .submit-btn {
        width: 80%;
    }

    /*========================= cta ========================== */
    .cta-box {
        flex-direction: column;
    }

    .cta-box .tel-btn {
        padding: 4%;
    }
    
    .cta-box .contact-btn {
        padding: 4%;
    }

    /*========================= fixed-cta ========================== */
    .fixed-cta {
        position: fixed;
        bottom: 5%;
        left: 5%;
        z-index: 2000;
    }

    .fixed-cta a {
        display: block;
        width: 40%;
    }

    /*========================= footer ========================== */
    .footer-logo {
        width: 75%;
    }

    .footer-menu-box ul {
        flex-direction: column;
        width: 100%;
    }

    /*========================= lawyer ========================== */
    .lawyer {
        flex-direction: column;
    }

    .lawyer div {
        width: 100%;
    }

    .lawyer-messege {
        margin-top: 10%;
    }

    .lawyer-table {
        margin-top: 5%;
    }
}