@media only screen and (max-width:768px) {
    .home_page .key {
        --height: calc(100vh + 90px);
        --max-height: 160vw;
        --min-height: 520px;
        margin-top: -3.8em
    }

    .home_page .key .key_text {
        width: calc(100% - 30px);
        font-size: min(8px, 1.3vmin);
        clip-path: polygon(0 16%, 100% 0, 100% 84%, 0 100%);
        background-image: url(../images/idx_mv01_sp.jpg)
    }

    .home_page .key .key_text .item {
        padding: 10px
    }

    .home_page .key .mv_slider {
        padding-left: 4%
    }

    .home_page .key .catch {
        padding-bottom: 20.2em;
        padding-left: 0;
        min-height: 56em;
        display: flex;
        flex-direction: column
    }

    .home_page .key .catch h2 {
        margin-left: 0.3em;
        line-height: 1.25
    }

    .home_page .key .catch p {
        margin-top: 0.4em;
        line-height: 1.6
    }

    .home_page .key_scroll {
        right: 10px;
        bottom: min(140px, 29vw);
        font-size: 8px
    }

    .home_page .key_circle {
        max-width: fit-content;
        width: 90%;
        bottom: min(120px, 26vw);
        font-size: min(7px, 1.2vmin)
    }
}

@media only screen and (max-width:639px) {
    .home_page .key {
        margin-top: 1.2em
    }
    .home_page .key_circle .cir_it{
        padding: 0.8em;
        margin: 0 -0.3em;
    }
    .home_page .key_circle .b_tl{
        font-size: 2.8em;
        line-height: 1.5;
        letter-spacing: 0.05em;
    }
    .home_page .key_circle .b_tl:after{font-size: 0.8em;}
    .home_page .key_circle .cir_it:first-child .b_tl:after{
        font-size: 0.85em;
        margin-top: 1px;
    }
    .home_page .key_circle .cir_it:first-child .b_tl{font-size: 2.6em;}
}

@media only screen and (max-width:768px) and (orientation:landscape) {
    .home_page .key {
        margin-top: -0.8em
    }

    .home_page .key .catch {
        min-height: 70em;
        padding-top: 5em;
        padding-bottom: 9em
    }
}

@media only screen and (max-width:768px) {
    .wrap_title.ic_title {
        position: relative;
        padding-bottom: 20px
    }

    .wrap_title .en {
        font-size: min(16px, 4.27vw);
        letter-spacing: 0.05em;
        margin-bottom: 5px
    }

    .wrap_title .en.ic_en {
        margin-bottom: 5px;
        padding-left: 0;
        position: unset
    }

    .wrap_title .en.ic_en:before {
        top: unset;
        right: 0;
        bottom: 0;
        margin: auto;
        width: 16px;
        height: 10px
    }

    .wrap_title h3 {
        letter-spacing: 0.1em;
        font-size: min(26px, 7.9vw)
    }

    .wrap_title h3.ic_h3:after {
        width: 16px;
        height: 12px;
        margin-top: 10px
    }

    .wrap_title h3 .sm {
        font-size: 20px
    }

    .wrap_title h3 .lg {
        font-size: 30px
    }

    .txt_en {
        font-size: min(60px, 10vw)
    }
}

@media only screen and (max-width:768px) {
    .idx01 {
        padding: 30px 0px 50px;
        margin-top: 0
    }

    .idx01:after {
        font-size: 3px;
        background-image: url(../images/idx01_bg_sp.jpg)
    }

    .idx01 .wrap_title {
        margin-bottom: 25px
    }

    .idx01 .box_text {
        padding-right: 0;
        padding-bottom: 245px
    }

    .idx01 .box_text:before {
        font-size: 6px;
        right: 0;
        left: 0;
        margin: auto
    }

    .idx01 .concern_btns {
        margin-top: 20px;
        font-size: min(8.75px, 2.4vw)
    }

    .idx01 .concern_btns .btn_it {
        margin-left: auto;
        margin-right: auto;
        margin-bottom: 1.2em
    }

    .idx01 .concern_btns .btn_it a {
        padding: 0.06em 2.5em 0.06em 1em;
        letter-spacing: 0.08em;
        border-width: 5px
    }

    .idx01 .concern_btns .btn_it a:before {
        right: 0.7em
    }

    .idx02 .wrap_title {
        margin-bottom: 25px
    }

    .idx02 .b_img {
        display: table;
        margin: 0 auto 25px
    }

    .idx02 .gr_btn {
        margin-top: 25px
    }

    .idx02 .gr_btn .btn {
        margin-left: auto;
        margin-right: auto
    }

    .idx02 .block_flow {
        justify-content: center;
        font-size: min(8.75px, 1.41vw)
    }

    .idx02 .block_flow .item {
        --m-r: 5em;
        margin-bottom: 2.5em
    }

    .idx02 .block_flow .item:not(:last-child):after {
        right: calc(-1 * (var(--m-r) - 1.8em))
    }

    .idx02 .block_flow .item:nth-child(2n+2) {
        margin-right: 0
    }

    .idx02 .block_flow .item:nth-child(2n+2):after {
        display: none
    }

    .idx02 .TabContainer .TabPager>div {
        padding: 20px 10px 17px
    }

    .idx02 .TabContainer .TabPager>div .tt {
        font-size: min(20px, 5.4vw);
        letter-spacing: 0.05em
    }

    .idx02 .TabContainer .TabContent .content {
        padding: 50px 0;
        background-size: 45% auto
    }
    .idx02 .btn{margin-top: 25px;}

    .idx03 {
        padding: 50px 0
    }
    .idx03 > .inner_big{
        display: flex;
        flex-direction: column;
    }
    .idx03 .wrap_title {
        margin-bottom: 25px;
        order: 1;
    }

    .idx03 .idx_title .wrap_title .en {
        margin-bottom: 5px
    }

    .idx03 .idx_title .wrap_title h3.ic_h3:after {
        margin-left: auto
    }

    .idx03 .block_consultation {
        margin: 20px -5px 0;
        justify-content: center;
        font-size: min(8.75px, 1.8vw);
        order: 2;
    }

    .idx03 .block_consultation h4 {
        margin-bottom: 0.5em
    }

    .idx03 .block_consultation .item {
        width: calc(50% - 10px);
        margin: 5px;
        padding: 4.3em 2em 4.2em
    }
    .idx03 .inner_big .btn{
        order: 3;
        width: 100%;
    }

    .idx03 .btn {
        margin-top: 35px
    }

    .idx03 .block_contact {
        padding: 2em 4em 2em;
        font-size: min(8px, 2vw);
        max-width: 500px;
        width: 100%;
        margin: 35px auto 0;
        order: 4;
    }

    .idx03 .block_contact:before {
        left: 0;
        top: -3.7em;
        bottom: 0;
        width: 36.1em;
        height: 2px
    }

    .idx03 .block_contact .btn_it {
        margin: 2em auto;
        display: table
    }

    .idx03 .block_contact .btn_it.btn_tel {
        padding-left: 0;
        padding-top: 0
    }

    .idx03 .block_contact .btn_it.btn_tel:before {
        width: 100%;
        height: 44%
    }

    .idx03 .block_contact .btn_it.btn_mail {
        width: 100%;
        padding-top: 4em
    }

    .idx03 .block_contact .btn_it.btn_mail .txt_mail {
        padding-left: 4.5em
    }

    .idx03 .block_contact .btn_it.btn_mail .txt_mail:before {
        left: 0
    }

    .idx03 .block_contact .btn_it.btn_mail .txt_mail:after {
        left: 3.2em
    }

    .idx03 .block_network {
        width: calc(100% - 40px);
        margin-top: 45px
    }

    .idx03 .block_network:before {
        right: -30px;
        bottom: -10vw
    }

    .idx03 .block_network .wrap_title .en {
        margin-bottom: 5px
    }

    .idx03 .block_network .box_inner {
        padding: 60px 5% 9vw;
        background-image: url(../images/idx03_network_bg_sp.jpg);
        background-position: top center;
        background-size: 100% auto;
        background-color: #04405b
    }

    .idx03 .block_network .txt_en {
        letter-spacing: 0;
        bottom: -15vw
    }

    .TabContainer.tab_lv1 .TabPager {
        width: 95%;
        font-size: min(8.75px, 1.8vw)
    }

    .TabContainer.tab_lv1 .TabPager>div .tt {
        letter-spacing: 0.05em
    }

    .TabContainer.tab_lv1>.TabContent>.content {
        padding: 35px 5%
    }

    .TabContainer.tab_lv1 .tab_lv2 .tab_btn {
        font-size: min(8.75px, 2vw)
    }

    .TabContainer.tab_lv1 .tab_lv2 .tab_btn>div {
        width: calc(50% - 1em);
        margin: 0.8em 0.5em
    }

    .TabContainer.tab_lv1 .tab_lv2 .tab_content {
        padding-top: 35px
    }

    .idx04 {
        padding: 12vw 0 60px
    }

    .idx04:after,
    .idx04:before {
        height: calc(100% + 105px)
    }

    .idx04:after {
        background-position: top -4vw left;
        background-size: 85% auto
    }

    .idx04 .wrap_title {
        margin-bottom: 25px
    }

    .idx04 .wrap_title .en {
        margin-bottom: 5px
    }

    .idx04 .b_img {
        margin: 0 auto 25px;
        display: table
    }

    .idx04 .b_consultation {
        font-size: min(10px, 2vw)
    }

    .idx04 .b_consultation .item {
        width: calc(50% - 10px);
        margin: 5px;
        padding: 3em 1.5em 2.7em
    }

    .idx04 .b_consultation .consultation_bg:before {
        inset: 0.5em
    }

    .idx04 .b_consultation .consultation_cont h4 {
        margin-bottom: 0.5em
    }

    .idx04 .gr_btn {
        margin-top: 15px
    }

    .idx04 .TabContainer.tab_lv1>.TabContent>.content {
        padding: 35px 5%
    }

    .idx04 .TabContainer.tab_lv1 .tab_lv2 .tab_content {
        padding-top: 30px
    }

    .idx05 {
        padding-bottom: 55px
    }

    .idx05:before {
        max-height: 450px;
        height: 95vw;
        background-image: url(../images/idx05_bg_sp.jpg)
    }

    .idx05:after {
        font-size: 2px
    }

    .idx05 .wrap_title .en {
        margin-bottom: 0
    }

    .idx05 .wrap_title h3.ic_h3:after {
        margin-top: 6px
    }

    .idx05 .idx_title {
        padding: 80px 0 0
    }

    .idx05 .idx_title .wrap_title {
        margin-bottom: 25px
    }

    .idx05 h4 {
        font-size: 20px
    }
    .idx05 h4:after{width: 3.666667em;}

    .idx05 .case_text {
        padding: 50px 20px 25px
    }

    .idx05 .block_case {
        padding: 25px 4%;
        display: grid;
        grid-template-columns: 35% 65%;
        justify-content: space-between;
    }

    .idx05 .block_case h4 {
        margin-top: 0;
    }

    .idx05 .block_case .case_img {
        width: 21em;
        height: 21em;
        padding: 0.6em;
        font-size: min(8px, 1.4vw);
        grid-row: 1/span 3
    }

    .idx05 .TabContainer.tab_lv1>.TabPager>div {
        width: calc(25% - 1em);
        margin: 0 0.5em;
        padding: 1.2em 1em 1.2em
    }

    .idx05 .TabContainer.tab_lv1>.TabContent>.content {
        padding: 35px 5%
    }

    .idx05 .TabContainer.tab_lv1 .tab_lv2 .tab_btn {
        margin-bottom: -30px;
        font-size: min(8.75px, 2.25vw)
    }

    .idx05 .TabContainer.tab_lv1 .tab_lv2 .tab_btn>div {
        width: calc(50% - 1em);
        margin: 0 0.5em;
        padding: 0.5em 0.5em 0.8em
    }

    .idx05 .TabContainer.tab_lv1 .tab_lv2 .tab_btn>div .tt {
        display: flex;
        flex-direction: column
    }

    .idx05 .TabContainer.tab_lv1 .tab_lv2 .tab_btn>div .tt span {
        margin-left: 0;
        padding-left: 0;
        margin-top: 1em;
        padding-top: 0.5em
    }

    .idx05 .TabContainer.tab_lv1 .tab_lv2 .tab_btn>div .tt span:before {
        right: 0;
        height: 1px;
        width: 1.818181818em;
        margin: auto
    }

    .idx05 .TabContainer.tab_lv1 .tab_content {
        padding-top: 0
    }

    .idx06 .idx_wrap {
        padding: 55px 0 min(120px, 20vw)
    }

    .idx06 .wrap_title {
        padding-bottom: 0;
        padding-left: 6.222222em;
        margin-bottom: 25px;
        text-align: left;
        font-size: min(16px, 3.55vw)
    }

    .idx06 .wrap_title:before {
        font-size: 0.7em;
        top: 0.4em
    }

    .idx06 .wrap_title h3 {
        line-height: 1.3
    }

    .idx06 .wrap_title h3 .sm {
        letter-spacing: 0.02em
    }

    .idx06 .wrap_title .en {
        padding-left: 1.4em;
        position: relative
    }

    .idx06 .wrap_title .en:before {
        margin: 0;
        right: unset;
        bottom: 0.2em
    }

    .idx06 .btn {
        margin: 30px auto 0
    }

    .idx06 .txt_en {
        font-size: min(60px, 10vw)
    }

    .idx06 .block_feature {
        font-size: min(8px, 1.5vw)
    }

    .idx06 .feature_tabs {
        margin-bottom: 25px
    }

    .idx06 .feature_tabs .slick-track {
        display: flex !important;
        flex-wrap: wrap
    }

    .idx06 .feature_tabs .item {
        width: 50% !important;
        flex-direction: column;
        justify-content: center;
        height: auto;
        border-right: 1px solid #ccdde7;
        text-align: center;
        padding: 2.2em 1em
    }

    .idx06 .feature_tabs .item.slick-current {
        background-color: #d7e9f4
    }

    .idx06 .feature_tabs .item .num {
        order: 1
    }

    .idx06 .feature_tabs .item .ttl {
        letter-spacing: 0.05em;
        order: 2;
        margin-bottom: 0
    }

    .idx06 .feature_tabs .item:nth-child(2n+2) {
        border-right: 0
    }

    .idx06 .feature_tabs .item:nth-child(3) {
        border-bottom: 0
    }

    .idx06 .feature_silder:before {
        width: 100%
    }

    .idx06 .feature_silder h4 {
        text-align: center
    }

    .idx06 .feature_silder .s_item {
        padding-top: 0
    }

    .idx06 .feature_silder .feature_img {
        position: relative;
        right: 20px;
        top: 0;
        width: calc(100% + 40px);
        max-height: 59.7em;
        height: 76vw;
        display: none;
    }

    .idx06 .feature_silder .feature_cont {
        padding: 2.6em 3.6em;
        /* margin-top: -11em */
    }

    .idx07 {
        padding: min(400px, 60vw) 0 55px
    }

    .idx07:before {
        width: 100%;
        max-width: 100%;
        max-height: 350px;
        height: 50vw;
        background-image: url(../images/idx07_bg_sp.jpg)
    }

    .idx07 .wrap_title {
        margin-bottom: 25px
    }

    .idx07 .wrap_title .en {
        line-height: 1.3;
        margin-bottom: 0
    }

    .idx07 .wrap_title h3.ic_h3:after {
        margin-left: auto;
        margin-top: 10px
    }

    .idx07 .btn {
        margin-top: 35px
    }

    .idx07 .block_faq .b_question {
        padding: 1em 2.2em 1em 1.111111em
    }

    .idx07 .block_faq .b_question:before {
        right: 1em
    }

    .idx07 .block_faq .b_question:after {
        right: 1.43em
    }

    .idx07 .block_faq .b_question .ttl {
        padding-left: 1.6em
    }

    .idx07 .block_faq .b_question .ttl:before {
        left: -0.1em
    }

    .idx07 .block_faq .b_answer {
        padding-left: 1.833333em;
        padding-right: 0.83333333em;
        padding-top: 1em;
        padding-bottom: 1em
    }

    .idx07 .block_faq .b_answer p {
        font-size: 14px;
        line-height: 1.8;
        max-width: 100%
    }

    .idx08 {
        padding: 0;
        background-size: 768px auto
    }

    .idx08 .idx_wrap {
        padding: min(184px, 33vw) 0 60px
    }

    .idx08 .idx_wrap:before {
        right: -23em;
        font-size: 3px;
        background-size: 10px auto
    }

    .idx08 .wrap_title {
        margin-bottom: 25px
    }

    .idx08 .wrap_title .en {
        margin-bottom: 0
    }

    .idx08 .txt_en {
        top: 0.9em;
        right: 0;
        left: 0;
        text-align: center;
        line-height: 1;
        font-size: min(60px, 10vw)
    }

    .idx08 .greeting_img {
        margin: 0 auto min(60px, 16vw)
    }

    .idx08 .box_name {
        font-size: min(8px, 2vw)
    }

    .idx08 .gr_btn {
        margin-top: 25px
    }

    .idx08 .gr_btn .btn {
        margin: 10px auto
    }

    .idx09 {
        padding: 60px 0 min(90px, 19vw)
    }

    .idx09:after {
        max-width: 320px;
        width: 45%;
        height: 381px
    }

    .idx09 .inner_max:before {
        left: 0;
        margin: auto;
        font-size: 6px
    }

    .idx09 .idx_logo {
        max-width: 350px;
        width: 90%;
        margin: 0 auto 20px
    }

    .idx09 .box_tel {
        max-width: 300px;
        margin: 0 auto 25px
    }

    .idx09 .box_info {
        margin: 0 auto 25px
    }

    .idx09 .box_info dd,
    .idx09 .box_info dt {
        padding-bottom: 0.4em
    }

    .idx09 .btn {
        margin: 0 auto 35px
    }

    .idx09 .col_info,
    .idx09 .col_map {
        max-width: 100%
    }

    .idx09 .block_intro {
        padding: 40px 5%;
        width: 100%;
        margin-top: min(450px, 75vw)
    }

    .idx09 .block_intro:before {
        width: 100%;
        height: min(540px, 90vw);
        left: 0;
        top: 110px
    }

    .idx09 .txt_sroll {
        font-size: min(6px, 1.2vw)
    }

    .idx09 .b_traffic .item {
        padding: 20px 15px 0 15px
    }

    .idx09 .b_traffic .item:last-child {
        padding-bottom: 20px
    }

    .idx09 .b_traffic .traffic_img {
        height: 40px;
        width: 40px
    }

    .idx09 .b_traffic .traffic_cont {
        width: calc(100% - 40px);
        padding-left: 10px
    }

    .idx09 .b_traffic .traffic_tl {
        font-size: 16px
    }

    .idx09 .b_traffic .traffic_txt {
        font-size: 13px
    }

    .idx10 {
        padding: 60px 0
    }

    .idx10 .wrap_title {
        margin-bottom: 25px
    }

    .idx10 .block_news {
        padding: 35px 5%
    }

    .idx10 .tab_cate {
        justify-content: center
    }

    .idx10 .tab_cate .tab_it {
        padding-bottom: 10px
    }

    .idx10 .tab_cate .tab_it .tt {
        font-size: 16px
    }

    .idx10 .tab_list .content>div {
        padding: 25px 0 0
    }

    .idx10 .list_post li {
        margin-bottom: 14px
    }

    .idx10 .list_post a {
        flex-wrap: wrap;
        font-size: 14px;
        --w: 90px
    }

    .idx10 .list_post a .cate {
        width: 65px
    }

    .idx10 .list_post a .title {
        width: 100%;
        padding-left: 0;
        padding-right: 1em
    }

    .idx10 .gr_btn {
        margin-top: 25px
    }

    .idx10 .gr_btn .btn {
        margin: 0 auto
    }
}

@media only screen and (max-width:639px) {
    .idx04 .gr_btn .btn {
        width: 100%;
        margin-left: auto;
        margin-right: auto
    }
    .idx05 .block_case{
        grid-template-columns: 35% 56%;
    }
}

@media only screen and (max-width:450px) {
    .idx02 .block_flow h4 {
        font-size: 3.04em
    }

    .idx02 .block_flow p {
        font-size: 2.5em
    }

    .idx03 .block_network .box_inner {
        padding-bottom: 16vw
    }

    .idx04 .b_consultation .consultation_cont h4 {
        font-size: 2em;
        letter-spacing: 0.05em
    }

    .idx04 .b_consultation .consultation_cont p {
        font-size: 1.7em;
        letter-spacing: 0.05em
    }
    .idx05 .block_case h4{font-size: min(20px, 6vw);}
    .idx05 .block_case .case_ct p{
        font-size: min(14px, 4vw);
        letter-spacing: 0.05em;
    }
    .idx05 .block_case .case_img .lawyer_name{
        line-height: 1.5;
        padding-top: 0.3em;
        height: 5em;
    }
    .idx06 .feature_silder h4 {
        font-size: min(20px, 6vw);
        margin-bottom: 15px
    }

    .idx06 .feature_silder .feature_img {
        max-height: 71.7em;
        height: 115vw
    }

    /* .idx06 .feature_silder .feature_cont {
        margin-top: -35em
    } */

    .idx06 .feature_silder .feature_cont p {
        font-size: 16px
    }
}

/*# sourceMappingURL=index_sp.css.map */