@media screen and (min-width: 751px) {

    #lightboxOverlay,
    #lightbox {
        min-width: var(--content-width) !important;
        width: 100% !important
    }

    .sp {
        display: none !important
    }

    .sp320,
    .sp375,
    .sp425 {
        display: none
    }

    a:hover {
        text-decoration: none
    }

    .to-top a:hover,
    .case_slider .slick-dots li:hover,
    .btn:hover,
    .blog_btn a:hover,
    .knowledge_list-item a:hover,
    .knowledge_banner a:hover {
        opacity: .7
    }

    .footer .submenu_item a:not([class]):hover,
    .header .submenu_item a:not([class]):hover {
        text-decoration: underline;
        text-underline-offset: 4px
    }

    .sell_list-btn a:hover {
        background: var(--cl-2nd)
    }

    .sell_list-btn a:hover::after {
        background-color: var(--cl-white);
        background-image: url(../images/ico_arr_btn_hover.png)
    }

    .sell_list-btn a:hover .sub {
        box-shadow: 0 0 0 5px var(--cl-2nd);
        -webkit-box-shadow: 0 0 0 5px var(--cl-2nd);
        -moz-box-shadow: 0 0 0 5px var(--cl-2nd);
        background: var(--cl-white);
        color: var(--cl-primary)
    }

    .sell_list-btn a:hover .main {
        color: var(--cl-white)
    }

    .solution_list-btn a:hover {
        background: var(--cl-2nd);
        color: var(--cl-white)
    }

    .solution_list-btn a:hover::after {
        background-color: var(--cl-white);
        background-image: url(../images/ico_arr_btn_hover.png)
    }

    .fixed_btn-item .contact:hover {
        background: #59beca;
        border-color: #59beca
    }

    .fixed_btn-item .contact:hover .contact_sub {
        background: var(--cl-white)
    }

    .fixed_btn-item .contact:hover .contact_sub span {
        color: #59beca;
        background-image: url(../images/ico_arr_contact_hover.png)
    }

    .header .submenu_close-btn:hover {
        background: #59beca
    }

    .header .submenu_close-btn:hover span {
        filter: brightness(0) invert(1)
    }

    .footer_btn-item .contact:hover {
        background: #59beca;
        border-color: #59beca
    }

    .footer_btn-item .contact:hover .contact_sub::after {
        background: var(--cl-white)
    }

    .footer_btn-item .contact:hover .contact_sub>span {
        color: #59beca;
        background-image: url(../images/ico_arr_contact_hover.png)
    }

    .footer .submenu_btn .contact:hover {
        background-color: #59beca;
        background-image: url(../images/ico_submenu.png);
        border-color: #59beca
    }

    .footer .submenu_btn .contact:hover>span {
        color: var(--cl-white)
    }

    .footer .submenu_btn .contact:hover>span::before {
        background-image: url(../images/ico_contact_mint.png)
    }

    .header .submenu_btn .contact:hover {
        background-color: #59beca;
        background-image: url(../images/ico_submenu.png);
        border-color: #59beca
    }

    .header .submenu_btn .contact:hover>span {
        color: var(--cl-white);
        background-image: url(../images/ico_contact_mint.png)
    }

    .header_menu-item:hover>span,
    .header_menu-item:hover>a {
        color: #5898ca
    }

    .blog_list-item a:hover {
        opacity: .7;
        text-decoration: underline
    }

    .under .header_info::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        height: calc(100% + 25px);
        aspect-ratio: 516/214;
        background: url(../images/logo_bg.png) left top/100% auto no-repeat;
        z-index: -1;
        transition: .3s
    }

    .under .header_nav::before {
        content: "";
        position: absolute;
        top: 0;
        right: 0;
        width: 970px;
        aspect-ratio: 970/111;
        background: url(../images/menu_bg.png) center/100% auto no-repeat;
        z-index: -1;
        transition: .3s
    }

    .header.active .header_wrap {
        background: var(--cl-white);
        align-items: center;
        box-shadow: 1px 1px 10px rgba(0, 0, 0, .08)
    }

    .header.active .header_info {
        padding: 15px 20px
    }

    .header.active .header_info::before {
        display: none
    }

    .header.active .header_info-logo {
        width: 90px
    }

    .header.active .header_info-txt {
        margin-left: 15px;
        font-size: 14px
    }

    .header.active .header_nav {
        padding: 15px 20px
    }

    .header.active .header_nav::before {
        display: none
    }

    .header.active .header_menu-item:not(:last-child) {
        margin-right: 40px
    }

    .header.active .header_menu-item>span,
    .header.active .header_menu-item>a {
        padding-right: 20px;
        font-size: 16px
    }

    .header.active .header_menu-item>span::after,
    .header.active .header_menu-item>a::after {
        width: 14px
    }

    .visual_chart .chart_list-item:nth-child(5) .sm {
        transform: translateY(-5px)
    }

    .header .submenu.col-2 {
        display: flex;
        justify-content: space-between;
        flex-wrap: wrap
    }

    .header .submenu.col-2 .submenu_item:nth-child(1) {
        width: 60%;
        order: 1
    }

    .header .submenu.col-2 .submenu_item:nth-child(2) {
        width: 60%;
        order: 3
    }

    .header .submenu.col-2 .submenu_item:nth-child(3) {
        width: 60%;
        order: 5
    }

    .header .submenu.col-2 .submenu_item:nth-child(4) {
        width: 35%;
        order: 2
    }

    .header .submenu.col-2 .submenu_item:nth-child(5) {
        width: 35%;
        order: 4
    }

    .header .submenu.col-2 .submenu_item:nth-child(6) {
        width: 35%;
        order: 6
    }

    .header .submenu.col-2 .submenu_close {
        order: 7;
        width: 100%
    }
}

@media screen and (min-width: 751px)and (max-width: 1900px) {
    .visual::after {
        width: 450px
    }

    .visual_wrap {
        min-height: 935px
    }

    .visual_wrap::before {
        width: 890px
    }

    .visual_left {
        padding-left: 255px
    }

    .visual_content .sub {
        font-size: 20px
    }

    .visual_content .sub::after {
        bottom: -20px;
        width: 390px
    }

    .visual_content .heading {
        font-size: 50px
    }

    .visual_content .heading .--dotted {
        font-size: 60px
    }

    .visual_content .heading .--dotted .char::after {
        width: 8px;
        height: 8px;
        top: -12px
    }

    .visual_content .heading .--mid {
        font-size: 56px
    }

    .visual_content .title {
        font-size: 36px
    }

    .visual_content .title .--mint,
    .visual_content .title .--blue {
        height: 48px
    }

    .visual_content .txt {
        margin-bottom: 30px;
        font-size: 26px
    }

    .visual_content .box_img {
        width: 350px
    }

    .visual_content .box_ballon .ballon_title {
        width: 120px;
        font-size: 34px
    }

    .visual_content .box_ballon .ballon_txt {
        font-size: 18px
    }

    .visual_content .box_ballon .ballon_txt::before {
        width: 24px
    }

    .visual_content .box_desc {
        font-size: 20px
    }

    .visual_content .box_desc .--mint {
        font-size: 24px
    }

    .visual_right {
        padding-right: 75px
    }

    .visual_chart {
        width: 600px
    }

    .visual_chart .chart_title {
        top: -55px
    }

    .visual_chart .chart_title>span {
        font-size: 26px
    }

    .visual_chart .chart_sub {
        right: -46px;
        font-size: 16px
    }

    .visual_chart .chart_sub::before {
        top: -61px;
        width: 234px
    }

    .visual_chart .chart_center {
        margin-bottom: 20px
    }

    .visual_chart .chart_center-title {
        font-size: 24px
    }

    .visual_chart .chart_center-logo {
        width: 145px
    }

    .visual_chart .chart_list-item {
        font-size: 20px
    }

    .visual_chart .chart_list-item .sm {
        font-size: 14px
    }

    .sell_heading {
        width: auto
    }
}

@media screen and (min-width: 751px)and (max-width: 1700px) {
    .case .inner {
        width: 930px
    }

    .case_heading::before {
        top: 45px;
        left: -20px;
        width: 140px
    }

    .case_heading::after {
        top: 5px;
        left: 152px;
        width: 96px
    }

    .case_slider-content {
        padding-bottom: 85px
    }

    .case_box::before {
        right: -150px
    }

    .case_box::after {
        right: -220px;
        width: 200px
    }

    .sell .inner {
        width: 930px
    }

    .sell_heading::before {
        top: 185px;
        left: -180px;
        width: 260px
    }

    .sell_heading .sub {
        font-size: 58px
    }

    .sell_heading .main {
        font-size: 80px
    }

    .sell_heading .sm {
        font-size: 40px
    }

    .sell_content {
        flex-grow: 1;
        width: auto
    }

    .sell_content::after {
        right: -180px;
        width: 165px
    }

    .sell_list-btn a {
        min-height: 100px
    }

    .sell_list-btn a::after {
        background-position: center
    }

    .sell_list-btn a .main {
        font-size: 24px
    }

    .sell_desc p {
        font-size: 16px
    }

    .solution .inner {
        width: 930px
    }

    .solution_heading::after {
        bottom: -189px;
        left: -120px;
        width: max(45vw, 560px)
    }

    .solution_heading .sub {
        font-size: 58px
    }

    .solution_heading .main {
        font-size: 80px
    }

    .solution_heading .sm {
        font-size: 40px
    }

    .solution_content {
        flex-grow: 1;
        width: auto
    }

    .solution_content::after {
        left: -180px;
        width: 165px
    }

    .solution_list-btn a {
        padding: 24px 60px 20px 30px;
        min-height: 95px;
        font-size: 24px
    }

    .solution_list-btn a::after {
        background-position: center
    }

    .solution_desc p {
        font-size: 16px
    }
}

@media screen and (min-width: 751px)and (max-width: 1600px) {
    .header_info {
        padding: 15px 20px;
        width: 400px
    }

    .header_info-logo {
        width: 115px
    }

    .header_info-txt {
        margin-left: 15px
    }

    .header_nav {
        padding: 15px 20px
    }

    .header_menu-item:not(:last-child) {
        margin-right: 40px
    }

    .header_menu-item:last-child .submenu {
        right: -20px
    }

    .header_menu-item>span,
    .header_menu-item>a {
        padding-right: 20px;
        font-size: 16px
    }

    .header_menu-item>span::after,
    .header_menu-item>a::after {
        width: 14px
    }

    h1 {
        font-size: 13px;
        margin-bottom: 8px
    }

    .under .header_nav::before {
        width: 810px
    }

    .visual::after {
        width: 340px
    }

    .visual_wrap {
        padding-top: 155px;
        min-height: 720px;
        justify-content: flex-start;
        column-gap: 25px
    }

    .visual_wrap::before {
        width: 685px
    }

    .visual_left {
        padding-top: 0;
        padding-left: 260px
    }

    .visual_content .sub {
        font-size: 16px
    }

    .visual_content .sub::after {
        bottom: -14px;
        width: 310px
    }

    .visual_content .heading {
        margin-bottom: 10px;
        font-size: 42px
    }

    .visual_content .heading .--dotted {
        font-size: 52px
    }

    .visual_content .heading .--mid {
        font-size: 48px
    }

    .visual_content .title {
        margin-bottom: 5px;
        font-size: 30px
    }

    .visual_content .title .--mint,
    .visual_content .title .--blue {
        height: 40px
    }

    .visual_content .txt {
        margin-bottom: 15px;
        font-size: 22px
    }

    .visual_content .box {
        padding-left: 70px
    }

    .visual_content .box_img {
        width: 300px
    }

    .visual_content .box_ballon {
        margin-bottom: 15px
    }

    .visual_content .box_ballon-item:not(:last-child) {
        margin-right: 20px
    }

    .visual_content .box_ballon .ballon_title {
        width: 95px;
        font-size: 26px
    }

    .visual_content .box_ballon .ballon_txt {
        font-size: 16px
    }

    .visual_content .box_ballon .ballon_txt::before {
        width: 20px
    }

    .visual_content .box_desc {
        font-size: 16px
    }

    .visual_content .box_desc .--mint {
        font-size: 18px
    }

    .visual_right {
        flex-grow: 1;
        padding-right: 90px
    }

    .visual_chart {
        margin-left: auto;
        margin-right: auto;
        width: 520px
    }

    .visual_chart .chart_title {
        top: -46px;
        left: 50%
    }

    .visual_chart .chart_title::after {
        width: 25px
    }

    .visual_chart .chart_title>span {
        font-size: 22px
    }

    .visual_chart .chart_sub {
        right: -65px;
        font-size: 14px
    }

    .visual_chart .chart_sub::before {
        top: -52px;
        width: 200px
    }

    .visual_chart .chart_center {
        margin-bottom: 10px
    }

    .visual_chart .chart_center-title {
        font-size: 20px
    }

    .visual_chart .chart_center-logo {
        width: 130px
    }

    .visual_chart .chart_list-item {
        font-size: 18px
    }

    .visual_chart .chart_list-item .sm {
        font-size: 12px
    }

    .adv,
    .case {
        background-size: 1600px auto
    }

    .case {
        padding-top: 55px
    }

    .company_content::after {
        right: -120px
    }

    .fixed_btn {
        padding: 18px 18px 25px
    }

    .fixed_btn-item:not(:last-child) {
        margin-right: 12px
    }

    .fixed_btn-item a {
        width: 200px;
        min-height: 86px
    }

    .fixed_btn-item .tel {
        padding: 7px 15px
    }

    .fixed_btn-item .tel_sub {
        font-size: 12px
    }

    .fixed_btn-item .tel_num {
        padding-left: 25px;
        font-size: 20px;
        background-size: 20px auto
    }

    .fixed_btn-item .line {
        padding: 8px 10px 5px
    }

    .fixed_btn-item .line_sub {
        margin-bottom: 2px;
        font-size: 12px
    }

    .fixed_btn-item .line_txt {
        padding-left: 30px;
        font-size: 20px;
        background-size: 25px auto
    }

    .fixed_btn-item .contact::after {
        width: 80px
    }

    .fixed_btn-item .contact_txt-main .char {
        width: 25px;
        font-size: 18px
    }

    .fixed_btn-item .contact_txt-sub {
        top: -17px;
        left: 70px;
        font-size: 13px
    }

    .fixed_btn-item .contact_txt-sub::before {
        top: calc(50% + 4px);
        width: 72px
    }

    .fixed_btn-item .contact_sub {
        padding: 4px 15px
    }

    .fixed_btn-item .contact_sub>span {
        padding-right: 12px;
        font-size: 12px;
        background-size: 5px auto
    }

    .to-top {
        bottom: 139px
    }

    .to-top>a {
        width: 50px;
        height: 50px
    }

    .to-top>a::before {
        --size: 10px;
        border-top-width: 2px;
        border-right-width: 2px
    }

    .footer {
        padding-bottom: 159px
    }
}

@media screen and (min-width: 751px)and (max-width: 1400px) {
    .header .submenu {
        padding: 25px;
        min-width: 400px
    }

    .visual_left {
        padding-left: 190px
    }

    .visual_right {
        padding-right: 40px
    }

    .visual_content .box_img {
        width: 250px
    }

    .visual_chart {
        width: 490px
    }

    .visual_chart .chart_title {
        top: -42px
    }

    .visual_chart .chart_title::after {
        width: 20px
    }

    .visual_chart .chart_title>span {
        font-size: 20px
    }

    .visual_chart .chart_sub {
        top: 20px;
        right: -20px;
        font-size: 11px
    }

    .visual_chart .chart_sub::before {
        top: -40px;
        width: 158px
    }

    .visual_chart .chart_list-item {
        font-size: 17px
    }

    .visual_chart .chart_list-item .sm {
        font-size: 11px
    }

    .adv,
    .case {
        background-size: 1400px auto
    }

    .case {
        padding-top: 30px;
        margin-top: -30px
    }

    .case_box::before {
        right: -120px
    }

    .case_box::after {
        right: -180px;
        width: 180px
    }

    .company .inner {
        width: 930px
    }

    .company_content::after {
        height: calc(100% - 70px)
    }

    .company_box {
        padding: 0 40px 64px
    }

    .company_box::after {
        width: 310px
    }

    .company_title {
        font-size: 24px
    }

    .company_desc p {
        font-size: 14px
    }
}

@media screen and (min-width: 751px)and (max-width: 1300px) {
    .visual_wrap {
        column-gap: 0
    }
}

@media screen and (min-width: 1921px) {
    .header_wrap {
        left: 50%;
        transform: translateX(-50%)
    }

    .fixed_btn {
        right: calc(50% - 960px)
    }

    .to-top {
        right: calc(50% - 960px + 10px)
    }
}

@media screen and (min-width: 1px)and (max-width: 750px) {

    h1,
    h2,
    h3,
    h4,
    h5,
    h6,
    input,
    button,
    textarea,
    select,
    p,
    blockquote,
    th,
    td,
    pre,
    address,
    li,
    dt,
    dd {
        font-size: 14px
    }

    #wrapper {
        min-width: unset !important
    }

    .pc {
        display: none !important
    }

    * {
        column-gap: none !important;
        row-gap: none !important
    }

    .inner {
        width: 100%;
        padding-left: 20px;
        padding-right: 20px
    }

    #menu-toggle {
        display: block
    }

    .sec_heading {
        margin-bottom: 20px
    }

    .sec_heading .jp {
        padding-top: 33px;
        font-size: 26px
    }

    .sec_heading .en {
        font-size: 12px
    }

    .btn {
        display: inline-flex;
        justify-content: center;
        align-items: center;
        width: 314px;
        min-height: 55px;
        font-size: 16px;
        background-size: 7px auto;
        border-radius: 28px
    }

    .open-nav .header_nav {
        opacity: 1;
        visibility: visible
    }

    .open-nav .header .submenu {
        opacity: 1;
        visibility: visible
    }

    .to-top {
        bottom: 96px
    }

    .to-top>a {
        width: 48px;
        height: 48px;
        border-radius: 6px
    }

    .to-top>a::before {
        --size: 10px;
        border-top-width: 2px;
        border-right-width: 2px
    }

    .fixed_btn {
        padding: 12px 5px 8px 5px;
        border-radius: 0;
        width: 100%
    }

    .fixed_btn-item {
        width: calc((100% - 196px)/2);
        flex-grow: 1
    }

    .fixed_btn-item:not(:last-child) {
        margin-right: 5px
    }

    .fixed_btn-item:last-child {
        width: 186px;
        flex-shrink: 0;
        flex-grow: 0
    }

    .fixed_btn-item a {
        width: 100%;
        min-height: 66px;
        border-radius: 6px
    }

    .fixed_btn-item .tel {
        padding: 5px;
        justify-content: center
    }

    .fixed_btn-item .tel_sub,
    .fixed_btn-item .tel_num {
        display: none
    }

    .fixed_btn-item .tel_txt {
        padding-top: 35px;
        color: var(--cl-white);
        font-size: 10px;
        font-weight: 700;
        line-height: 1em;
        white-space: nowrap;
        background: url(../images/ico_tel.svg) 50% 0%/25px auto no-repeat
    }

    .fixed_btn-item .line {
        justify-content: center;
        padding: 5px
    }

    .fixed_btn-item .line_sub {
        display: none
    }

    .fixed_btn-item .line_txt {
        padding-left: 0;
        padding-top: 37px;
        color: var(--cl-white);
        font-size: 10px;
        font-weight: 700;
        line-height: 1em;
        white-space: nowrap;
        background-position: 50% 0%;
        background-size: 27px auto
    }

    .fixed_btn-item .contact {
        padding: 5px 30px 4px 5px
    }

    .fixed_btn-item .contact::after {
        bottom: 2px;
        right: -5px;
        width: 62px;
        aspect-ratio: 62/67;
        background-image: url(../images/ico_btn_contact_sp.png)
    }

    .fixed_btn-item .contact_txt-main .word:not(:last-child) {
        margin-bottom: 4px
    }

    .fixed_btn-item .contact_txt-main .char {
        padding-top: 2px;
        width: 22px;
        font-size: 16px
    }

    .fixed_btn-item .contact_txt-sub {
        top: -13px;
        left: 60px;
        font-size: 14px;
        z-index: 2
    }

    .fixed_btn-item .contact_txt-sub::before {
        width: 74px
    }

    .fixed_btn-item .contact_sub {
        display: none
    }

    .header {
        position: relative;
        z-index: 100
    }

    .header.active .header_wrap {
        background: var(--cl-white);
        box-shadow: 1px 1px 10px rgba(0, 0, 0, .08)
    }

    .header.active .header_info {
        flex-grow: 0;
        background: none;
        width: calc(100% - 60px)
    }

    .header.active #menu-toggle {
        background: none
    }

    .header.active h1 {
        font-size: 10px
    }

    .header_wrap {
        width: 100%
    }

    .header_info {
        padding: 5px 25px 14px 20px;
        width: 295px;
        position: unset;
        top: 0;
        left: 0;
        background: url(../images/logo_bg_sp.png) right bottom/cover no-repeat;
        z-index: 2
    }

    .header_info-logo {
        width: 75px
    }

    .header_info-txt {
        margin-left: 12px;
        font-size: 12px
    }

    .header_nav {
        padding: 97px 20px;
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: var(--cl-white);
        opacity: 0;
        visibility: hidden;
        overflow-y: auto;
        transition: .3s ease
    }

    .header_menu {
        flex-direction: column
    }

    .header_menu-item {
        padding: 15px 0;
        border-bottom: 1px solid #eee
    }

    .header_menu-item:not(:last-child) {
        margin-right: 0
    }

    .header_menu-item:last-child .submenu {
        transform: translate(0)
    }

    .header_menu-item>span,
    .header_menu-item>a {
        padding-right: 18px;
        font-size: 16px
    }

    .header_menu-item>span::after,
    .header_menu-item>a::after {
        width: 12px
    }

    .header_menu-item>span.open::after {
        scale: -1
    }

    .header .submenu {
        margin-top: 14px;
        padding: 0;
        position: static;
        width: 100%;
        min-width: auto;
        transform: translate(0);
        background: none;
        box-shadow: none;
        transition: none;
        display: none
    }

    .header .submenu_item:not(:last-child) {
        margin-bottom: 7px
    }

    .header .submenu_item:nth-last-child(2) {
        margin-bottom: 0
    }

    .header .submenu_item a {
        padding-right: 25px;
        text-wrap: wrap;
        font-size: 14px;
        color: var(--cl-2nd);
        background: url(../images/ico_arr_btn_blue.png) 100% calc(50% - 1px)/18px auto no-repeat
    }

    .header .submenu_close {
        display: none
    }

    h1 {
        font-size: 10px;
        margin-bottom: 3px
    }

    .visual {
        background-image: url(../images/visual_01_sp.jpg)
    }

    .visual::after {
        bottom: -12px;
        width: 160px
    }

    .visual_wrap {
        padding-top: 80px;
        padding-bottom: 15px;
        padding-left: 20px;
        padding-right: 20px;
        min-height: auto;
        flex-direction: column;
        justify-content: flex-start;
        align-items: center
    }

    .visual_wrap::before {
        display: none
    }

    .visual_left {
        margin-bottom: 59px;
        padding-left: 0;
        padding-top: 23px;
        width: 100%;
        display: flex;
        z-index: 2
    }

    .visual_left::after {
        content: "";
        position: absolute;
        bottom: -28px;
        right: -4px;
        width: 398px;
        aspect-ratio: 398/413;
        background: url(../images/visual_03_sp.png) center/100% auto no-repeat;
        z-index: -2
    }

    .visual_content {
        margin: 0 auto
    }

    .visual_content .sub {
        margin-bottom: 23px;
        margin-left: 23px;
        font-size: 16px
    }

    .visual_content .sub::after {
        bottom: -13px;
        width: 322px;
        aspect-ratio: 322/33;
        background-image: url(../images/visual_06_sp.png)
    }

    .visual_content .heading {
        margin-bottom: 6px;
        font-size: 30px;
        text-shadow: #fff 3px 0px 0px, #fff 2.83487px .981584px 0px, #fff 2.35766px 1.85511px 0px, #fff 1.62091px 2.52441px 0px, #fff .705713px 2.91581px 0px, #fff -0.287171px 2.98622px 0px, #fff -1.24844px 2.72789px 0px, #fff -2.07227px 2.16926px 0px, #fff -2.66798px 1.37182px 0px, #fff -2.96998px .42336px 0px, #fff -2.94502px -0.571704px 0px, #fff -2.59586px -1.50383px 0px, #fff -1.96093px -2.27041px 0px, #fff -1.11013px -2.78704px 0px, #fff -0.137119px -2.99686px 0px, #fff .850987px -2.87677px 0px, #fff 1.74541px -2.43999px 0px, #fff 2.44769px -1.73459px 0px, #fff 2.88051px -0.838247px 0px
    }

    .visual_content .heading .--dotted .char::after {
        top: -7px;
        width: 6px;
        height: 6px
    }

    .visual_content .heading .--dotted,
    .visual_content .heading .--mid {
        font-size: 40px
    }

    .visual_content .title {
        margin-bottom: 9px;
        font-size: 20px
    }

    .visual_content .title .--mint,
    .visual_content .title .--blue {
        padding: 5px 6px 3px !important;
        height: auto
    }

    .visual_content .title .--mint {
        margin-right: 3px
    }

    .visual_content .title .--blue {
        margin-left: 3px
    }

    .visual_content .txt {
        margin-bottom: 7px;
        font-size: min(4.5vw, 18px)
    }

    .visual_content .box {
        position: relative;
        padding-left: 16px
    }

    .visual_content .box_img {
        top: -28px;
        right: -5px;
        bottom: auto;
        left: auto;
        width: 144px;
        z-index: -1
    }

    .visual_content .box_ballon {
        margin-bottom: 11px
    }

    .visual_content .box_ballon-item:not(:last-child) {
        margin-right: 15px
    }

    .visual_content .box_ballon-item:nth-child(2) {
        margin-top: 16px
    }

    .visual_content .box_ballon .ballon_title {
        padding-top: 5px;
        width: 82px;
        font-size: 25px
    }

    .visual_content .box_ballon .ballon_title::before {
        top: 5px;
        left: 5px
    }

    .visual_content .box_ballon .ballon_txt {
        min-width: 78px;
        font-size: 14px;
        border-width: 3px
    }

    .visual_content .box_ballon .ballon_txt::before {
        width: 19px
    }

    .visual_content .box_desc {
        font-size: min(4vw, 16px);
        line-height: 1.65em;
        text-shadow: #fff 3px 0px 0px, #fff 2.83487px .981584px 0px, #fff 2.35766px 1.85511px 0px, #fff 1.62091px 2.52441px 0px, #fff .705713px 2.91581px 0px, #fff -0.287171px 2.98622px 0px, #fff -1.24844px 2.72789px 0px, #fff -2.07227px 2.16926px 0px, #fff -2.66798px 1.37182px 0px, #fff -2.96998px .42336px 0px, #fff -2.94502px -0.571704px 0px, #fff -2.59586px -1.50383px 0px, #fff -1.96093px -2.27041px 0px, #fff -1.11013px -2.78704px 0px, #fff -0.137119px -2.99686px 0px, #fff .850987px -2.87677px 0px, #fff 1.74541px -2.43999px 0px, #fff 2.44769px -1.73459px 0px, #fff 2.88051px -0.838247px 0px
    }

    .visual_content .box_desc .--mint {
        font-size: min(4.5vw, 18px)
    }

    .visual_right {
        position: relative;
        padding-right: 0;
        z-index: 2
    }

    .visual_chart {
        margin: 0 auto;
        width: 334px;
        max-width: 100%;
        background-image: url(../images/visual_04_sp.png)
    }

    .visual_chart .chart_title {
        top: -32px;
        left: calc(50% - 10px)
    }

    .visual_chart .chart_title::before {
        bottom: 4px;
        width: calc(100% - 30px);
        height: 1px
    }

    .visual_chart .chart_title::after {
        bottom: 4px;
        left: calc(50% - 23px);
        height: 1px;
        width: 15px
    }

    .visual_chart .chart_title>span {
        padding: 5px 15px;
        font-size: 16px;
        background: rgba(255, 255, 255, .9);
        clip-path: polygon(calc(100% - 10px) 0, 100% 50%, calc(100% - 10px) 100%, 10px 99%, 0 50%, 10px 0)
    }

    .visual_chart .chart_sub {
        top: 23px;
        right: -25px;
        font-size: 10px
    }

    .visual_chart .chart_sub::before {
        top: -35px;
        left: calc(50% - 2px);
        width: 139px;
        aspect-ratio: 139/74;
        background-image: url(../images/visual_07_sp.png)
    }

    .visual_chart .chart_list-item {
        font-size: 12px
    }

    .visual_chart .chart_list-item:nth-child(1) {
        left: 39.1%
    }

    .visual_chart .chart_list-item .sm {
        font-size: 8px
    }

    .visual_chart .chart_center {
        margin-bottom: 18px
    }

    .visual_chart .chart_center-logo {
        width: 82px
    }

    .visual_chart .chart_center-title {
        padding: 3px 9px 1px;
        font-size: 15px
    }

    .adv {
        padding: 56px 0 86px;
        background: url(../images/adv_bg_sp.png) center bottom/100% auto no-repeat
    }

    .adv_title {
        margin-bottom: 17px;
        font-size: min(4.85vw, 18px)
    }

    .adv_desc {
        margin-bottom: 20px
    }

    .adv_desc p {
        text-align: left;
        line-height: 2.13em
    }

    .adv_list {
        flex-direction: column
    }

    .adv_list-item {
        padding: 10px 20px;
        display: flex;
        flex-direction: column;
        align-items: center
    }

    .adv_list-img {
        margin-bottom: 18px;
        height: 174px
    }

    .adv_list-img img {
        width: 100%;
        height: 100%;
        object-fit: contain
    }

    .adv_list-title {
        margin-bottom: 11px;
        font-size: min(3.95vw, 16px);
        line-height: 1.8em
    }

    .adv_list-desc {
        line-height: 2.14em
    }

    .case {
        margin-top: 0;
        padding: 52px 0 101px;
        background: url(../images/case_bg_sp.png) calc(100% + 5px) 13px/calc(100% + 5px) calc(100% - 60px) no-repeat
    }

    .case_heading {
        margin-bottom: 27px;
        margin-right: auto;
        margin-left: auto;
        width: fit-content
    }

    .case_heading::before {
        top: -30px;
        left: -65px;
        width: 88px
    }

    .case_heading::after {
        top: -60px;
        left: 30px;
        width: 59px
    }

    .case_box {
        padding: 24px 0 40px
    }

    .case_box::before {
        right: -20px;
        width: calc(100% + 40px)
    }

    .case_slider {
        margin-bottom: 42px !important;
        display: flex;
        flex-direction: column-reverse
    }

    .case_slider-item {
        flex-direction: column;
        align-items: center
    }

    .case_slider-content {
        margin-bottom: 18px;
        padding: 0 10px;
        width: 100%
    }

    .case_slider-content .num {
        margin-bottom: 16px;
        margin-left: 13px;
        font-size: 14px
    }

    .case_slider-content .num::before {
        top: calc(50% + 10px);
        width: 94px;
        background-image: url(../images/ico_num_sp.png)
    }

    .case_slider-content .num_count {
        font-size: 16px
    }

    .case_slider-content .title {
        margin-bottom: 17px;
        font-size: min(5vw, 18px)
    }

    .case_slider-content .subtitle {
        margin-bottom: 8px;
        padding: 12px 0;
        font-size: min(4.25vw, 16px)
    }

    .case_slider-content .desc p {
        line-height: 2.14em
    }

    .case_slider-img {
        width: 234px;
        filter: drop-shadow(10px 10px 0px rgba(89, 153, 202, 0.1))
    }

    .case_slider .slick-dots {
        margin-bottom: 28px;
        margin-left: auto;
        margin-right: auto;
        position: static;
        width: fit-content
    }

    .case_slider .slick-dots li {
        padding-top: 10px;
        width: 51px;
        font-size: 20px
    }

    .case_slider .slick-dots li:not(:last-child) {
        margin-right: 10px
    }

    .case_slider .slick-dots li.slick-active {
        width: 51px
    }

    .case_btn {
        text-align: center
    }

    .blog {
        padding: 20px;
        flex-direction: column;
        border-radius: 30px 30px 10px 10px
    }

    .blog_title {
        padding-right: 0;
        padding-top: 0;
        padding-bottom: 10px;
        width: 100%;
        display: flex;
        justify-content: center;
        font-size: 18px;
        border-right: 0;
        border-bottom: 1px solid var(--cl-gray)
    }

    .blog_list {
        padding: 0;
        padding-top: 21px;
        align-self: start
    }

    .blog_list-item a {
        line-height: 1.8em
    }

    .blog_btn a {
        top: auto;
        right: auto;
        bottom: 0;
        left: 50%;
        transform: translate(-50%, 50%);
        background-position: center
    }

    .sell {
        padding: 49px 0 42px;
        background: url(../images/sell_bg_sp.jpg) center top/cover no-repeat
    }

    .sell_wrap {
        flex-direction: column
    }

    .sell_heading {
        margin-left: 0;
        margin-bottom: 28px;
        padding-left: 20px;
        flex-direction: column;
        width: auto
    }

    .sell_heading::before {
        top: -35px;
        left: auto;
        right: -15px;
        width: 174px;
        aspect-ratio: 174/194;
        background-image: url(../images/sell_01_sp.png)
    }

    .sell_heading .sub {
        margin-bottom: 13px;
        font-size: min(8vw, 32px);
        writing-mode: horizontal-tb
    }

    .sell_heading .main {
        margin-bottom: 15px;
        padding: 12px 18px 7px;
        font-size: min(11.5vw, 48px);
        writing-mode: horizontal-tb
    }

    .sell_heading .main::before {
        width: 18px
    }

    .sell_heading .sm {
        font-size: min(7vw, 28px);
        writing-mode: horizontal-tb
    }

    .sell_content {
        width: 100%;
        z-index: 2
    }

    .sell_content::after {
        bottom: auto;
        right: auto;
        top: 0;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 95px;
        z-index: -1
    }

    .sell_list {
        margin-bottom: 24px;
        padding: 0
    }

    .sell_list-btn:not(:last-child) {
        margin-bottom: 7px
    }

    .sell_list-btn a {
        padding: 20px 40px 10px 25px;
        min-height: 75px
    }

    .sell_list-btn a::after {
        right: 14px;
        width: 26px;
        height: 26px;
        background-position: center;
        background-size: 6px auto
    }

    .sell_list-btn a .sub {
        top: 2px;
        left: 24px;
        width: 100px;
        height: 33px;
        font-size: 14px;
        box-shadow: 0 0 0 3px var(--cl-white);
        -webkit-box-shadow: 0 0 0 3px var(--cl-white);
        -moz-box-shadow: 0 0 0 3px var(--cl-white)
    }

    .sell_list-btn a .main {
        font-size: min(4.5vw, 18px)
    }

    .sell_desc p {
        font-size: 16px;
        line-height: 1.99em
    }

    .solution {
        padding: 49px 0 42px;
        background: url(../images/solution_bg_sp.jpg) center top/cover no-repeat
    }

    .solution_wrap {
        flex-direction: column
    }

    .solution_heading {
        margin-right: 0;
        margin-bottom: 52px;
        padding-left: 20px;
        width: 100%;
        flex-direction: column
    }

    .solution_heading::after {
        bottom: auto;
        left: auto;
        top: -22px;
        right: -52px;
        width: 238px;
        aspect-ratio: 238/198;
        background-image: url(../images/solution_01_sp.png)
    }

    .solution_heading .sub {
        margin-bottom: 13px;
        font-size: min(8vw, 32px);
        writing-mode: horizontal-tb
    }

    .solution_heading .main {
        margin-bottom: 15px;
        padding: 12px 18px 7px;
        font-size: min(11.5vw, 48px);
        writing-mode: horizontal-tb
    }

    .solution_heading .main::before {
        width: 18px
    }

    .solution_heading .sm {
        font-size: min(7vw, 28px);
        writing-mode: horizontal-tb
    }

    .solution_content {
        width: 100%;
        z-index: 2
    }

    .solution_content::after {
        bottom: auto;
        right: auto;
        top: 0;
        left: 50%;
        transform: translate(-50%, -66%);
        width: 103px;
        z-index: -1
    }

    .solution_list {
        margin-bottom: 24px;
        padding: 0
    }

    .solution_list-btn:not(:last-child) {
        margin-bottom: 16px
    }

    .solution_list-btn a {
        padding: 12px 40px 10px 23px;
        min-height: 67px;
        font-size: min(4.35vw, 18px)
    }

    .solution_list-btn a::after {
        right: 14px;
        width: 26px;
        height: 26px;
        background-position: center;
        background-size: 6px auto
    }

    .solution_desc p {
        font-size: 16px;
        line-height: 1.99em
    }

    .knowledge {
        padding: 56px 0 70px
    }

    .knowledge_heading {
        margin-bottom: 28px
    }

    .knowledge_list {
        margin-bottom: 20px;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 20px 18px
    }

    .knowledge_list-item .stt {
        margin: -15px 0 2px;
        font-size: 12px;
        width: 88px
    }

    .knowledge_list-item .stt_num {
        font-size: 16px
    }

    .knowledge_list-item .title {
        padding-right: 30px;
        font-size: min(4vw, 16px)
    }

    .knowledge_list-item .title::after {
        top: -1px;
        width: 26px;
        height: 26px
    }

    .knowledge_banner {
        margin-bottom: 40px
    }

    .knowledge_banner::after {
        top: -11px;
        right: -17px;
        width: 124px
    }

    .knowledge_banner a {
        padding: 12px 110px 15px 20px
    }

    .knowledge_banner a::before {
        width: 26px;
        top: auto;
        bottom: 10px;
        right: 10px;
        transform: translate(0)
    }

    .knowledge_banner .content_title {
        margin-bottom: 5px;
        padding-bottom: 9px;
        font-size: 18px
    }

    .knowledge_banner .content_title::after {
        background: rgba(23, 105, 168, .7)
    }

    .knowledge_banner .content_desc {
        font-size: 12px;
        line-height: 2em
    }

    .company_wrap {
        padding: 0
    }

    .company_gallery {
        padding-left: 0;
        margin-left: -20px;
        position: static;
        width: calc(100% + 40px);
        display: flex;
        align-items: stretch;
        gap: 0
    }

    .company_gallery-img {
        flex-grow: 1
    }

    .company_gallery-img:not(:last-child) {
        margin-right: 8px
    }

    .company_gallery-img:nth-child(3) {
        padding-right: 0
    }

    .company_gallery-img:nth-child(1) .img {
        aspect-ratio: 142/112
    }

    .company_gallery-img:nth-child(2) .img,
    .company_gallery-img:nth-child(3) .img {
        aspect-ratio: 128/112
    }

    .company_gallery-img .img {
        position: relative;
        width: 100%;
        height: 100%;
        min-height: 112px
    }

    .company_gallery-img .img img {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        object-fit: cover
    }

    .company_content {
        margin-top: -39px;
        padding-bottom: 56px
    }

    .company_content::after {
        bottom: auto;
        right: auto;
        top: 0;
        left: -20px;
        width: calc(100% + 40px);
        height: 100%;
        border-bottom-right-radius: 0
    }

    .company_box {
        margin-bottom: 40px;
        padding: 28px 30px 40px
    }

    .company_box::before {
        bottom: 10px;
        left: 10px;
        width: calc(100% - 10px);
        height: calc(100% - 10px)
    }

    .company_box::after {
        width: calc(100% - 30px);
        height: calc(100% - 30px);
        top: 10px;
        right: 10px
    }

    .company_logo {
        transform: translateY(0)
    }

    .company_logo img {
        width: 100px
    }

    .company_title {
        margin-bottom: 17px;
        font-size: min(4.85vw, 20px)
    }

    .company_desc {
        margin-bottom: 18px
    }

    .company_desc p {
        line-height: 2.14em;
        text-align: left
    }

    .company_banner {
        margin-bottom: 32px
    }

    .footer {
        padding: 56px 0 106px
    }

    .footer::before {
        background: url(../images/footer_bg_sp.png) center top/100% auto no-repeat
    }

    .footer_btn {
        margin-right: auto;
        margin-left: auto;
        max-width: 374px;
        margin-bottom: 24px;
        padding: 20px 20px 45px;
        flex-direction: column
    }

    .footer_btn-item {
        width: 100%
    }

    .footer_btn-item:not(:last-child) {
        margin-bottom: 16px
    }

    .footer_btn-item a {
        min-height: auto
    }

    .footer_btn-item .tel {
        min-height: 132px
    }

    .footer_btn-item .line {
        padding: 5px 10px 7px;
        min-height: 105px
    }

    .footer_btn-item .line_sub {
        margin-bottom: 11px
    }

    .footer_btn-item .line_txt {
        margin-bottom: 9px;
        padding-left: 46px;
        padding-right: 46px;
        font-size: 26px;
        background-size: 36px auto
    }

    .footer_btn-item .line_txt::after {
        top: 50%;
        width: 34px
    }

    .footer_btn-item .contact {
        margin-top: 20px;
        padding: 16px 13px 7px
    }

    .footer_btn-item .contact_txt-sub {
        font-size: 16px
    }

    .footer_btn-item .contact_sub::before {
        bottom: 20px;
        right: -2px
    }

    .footer_address {
        margin-bottom: 15px;
        padding: 20px
    }

    .footer_address-map {
        aspect-ratio: 334/224
    }

    .footer_address-content {
        justify-content: flex-start
    }

    .footer_address-content .logo {
        width: 110px
    }

    .footer_address-content .txt {
        font-size: 16px;
        line-height: 1.6em
    }

    .footer_menu {
        margin-bottom: 40px
    }

    .footer_menu-item {
        padding: 29px 0 20px;
        flex-direction: column
    }

    .footer_menu-item:nth-child(2) .submenu {
        max-width: 650px
    }

    .footer_menu-item:nth-child(4) .submenu {
        max-width: 450px
    }

    .footer_menu-item>span,
    .footer_menu-item>a {
        margin-bottom: 17px;
        width: auto !important;
        font-size: 18px
    }

    .footer_social {
        margin-bottom: 49px
    }

    .footer .submenu {
        padding-top: 0;
        gap: 16px 20px
    }

    .footer .submenu_item a:not([class]) {
        padding-top: 3px;
        padding-bottom: 3px;
        padding-right: 26px;
        background-size: 18px auto
    }

    .footer .submenu_btn {
        flex-wrap: wrap;
        justify-content: space-between
    }

    .footer .submenu_btn a {
        min-height: 56px
    }

    .footer .submenu_btn a:not(:last-child) {
        margin-right: 0
    }

    .footer .submenu_btn a:nth-child(1) {
        width: 100%;
        margin-bottom: 16px
    }

    .footer .submenu_btn a:nth-child(2),
    .footer .submenu_btn a:nth-child(3) {
        width: calc(50% - 9px)
    }

    .footer .submenu_btn .tel {
        padding: 7px 35px 5px;
        background-size: 18px auto;
        background-position: calc(100% - 12px) 50%
    }

    .footer .submenu_btn .line {
        padding: 7px 35px 5px;
        background-size: 18px auto;
        background-position: calc(100% - 12px) 50%
    }

    .footer .submenu_btn .line>span::before {
        left: -30px;
        width: 26px
    }

    .footer .submenu_btn .contact {
        padding: 7px 35px 5px;
        background-size: 18px auto;
        background-position: calc(100% - 12px) 50%
    }

    .footer .submenu_btn .contact>span::before {
        left: -32px;
        width: 24px
    }

    .footer_partner {
        margin: 0 auto 43px;
        max-width: 248px;
        display: flex;
        flex-direction: column;
        gap: 0
    }

    .footer_partner-item:nth-child(1) {
        margin-right: 0
    }

    .footer_partner-item:not(:last-child) {
        margin-bottom: 16px
    }

    .footer_partner-item a {
        width: 100%
    }

    .footer_partner-item a img {
        width: 100%
    }

    .footer address {
        font-size: 12px;
        line-height: 1.55em
    }
}

@media screen and (min-width: 1px)and (max-width: 413px) {
    .btn {
        min-height: 48px
    }

    .header .submenu_btn .tel {
        background-size: 16px auto;
        background-position: calc(100% - 8px) 50%
    }

    .header .submenu_btn .tel>span {
        padding: 7px 0 5px 28px;
        background-size: 21px auto
    }

    .header .submenu_btn .line {
        width: calc(50% - 5px);
        padding: 5px 25px 5px 5px;
        background-size: 16px auto;
        background-position: calc(100% - 8px) 50%
    }

    .header .submenu_btn .line>span {
        padding: 7px 0 5px 26px;
        font-size: 13px;
        background-size: 22px auto
    }

    .header .submenu_btn .contact {
        padding: 5px 25px 5px 5px;
        width: calc(50% - 5px);
        background-size: 16px auto;
        background-position: calc(100% - 8px) 50%
    }

    .header .submenu_btn .contact>span {
        padding: 7px 0 5px 17px;
        font-size: 13px;
        background-size: 18px auto
    }

    .header_info {
        padding: 3px 15px 12px 15px;
        width: 245px
    }

    .header_info-logo {
        width: 62px
    }

    .header_info-txt {
        margin-left: 10px;
        font-size: 10px
    }

    .visual::after {
        width: 130px
    }

    .visual_content .sub {
        margin-bottom: 28px;
        margin-left: 14px;
        font-size: 14px
    }

    .visual_content .sub::after {
        bottom: -11px;
        width: 275px
    }

    .visual_content .heading {
        font-size: min(7vw, 30px)
    }

    .visual_content .heading .--dotted,
    .visual_content .heading .--mid {
        font-size: min(10.5vw, 40px)
    }

    .visual_content .title {
        font-size: min(4.6vw, 20px)
    }

    .visual_content .box {
        padding-left: 10px
    }

    .visual_content .box_img {
        right: -20px
    }

    .visual_content .box_ballon {
        padding-left: 4px
    }

    .visual_content .box_ballon-item:not(:last-child) {
        margin-right: 10px
    }

    .visual_content .box_ballon-item:nth-child(2) {
        margin-top: 15px
    }

    .visual_content .box_ballon .ballon_title {
        font-size: 22px
    }

    .visual_content .box_ballon .ballon_txt {
        font-size: 12px
    }

    .visual_chart {
        width: 295px
    }

    .visual_chart .chart_title>span {
        font-size: 14px
    }

    .visual_chart .chart_sub {
        top: 14px;
        right: -7px;
        font-size: 8px
    }

    .visual_chart .chart_sub::before {
        top: -29px;
        width: 112px
    }

    .visual_chart .chart_list-item {
        font-size: 10px
    }

    .visual_chart .chart_list-item .sm {
        font-size: 7px
    }

    .visual_chart .chart_center {
        margin-bottom: 10px
    }

    .adv_list-item {
        padding: 10px
    }

    .case_heading::before {
        top: -22px;
        left: -35px;
        width: 75px
    }

    .case_heading::after {
        top: -52px;
        left: 48px;
        width: 53px
    }

    .case_slider .slick-dots li {
        width: 48px
    }

    .case_slider .slick-dots li:not(:last-child) {
        margin-right: 8px
    }

    .case_slider .slick-dots li.slick-active {
        width: 48px
    }

    .sell_heading {
        padding-left: 10px
    }

    .sell_heading::before {
        top: -15px;
        right: -15px;
        width: 135px
    }

    .sell_heading .main {
        padding: 12px 15px 7px
    }

    .sell_list-btn a {
        padding: 15px 40px 10px 20px;
        min-height: 64px
    }

    .sell_list-btn a::after {
        right: 10px;
        width: 22px;
        height: 22px;
        background-size: 5px auto
    }

    .sell_list-btn a .sub {
        left: 20px;
        width: 86px;
        height: 28px;
        font-size: 12px
    }

    .solution_heading {
        padding-left: 10px
    }

    .solution_heading::after {
        top: -6px;
        right: -45px;
        width: 185px
    }

    .solution_heading .main {
        padding: 12px 15px 7px
    }

    .solution_list-btn a {
        padding: 12px 35px 10px 20px
    }

    .solution_list-btn a::after {
        right: 10px;
        width: 22px;
        height: 22px;
        background-size: 5px auto
    }

    .solution_list-btn a .sub {
        left: 20px;
        width: 86px;
        height: 28px;
        font-size: 12px
    }

    .knowledge_list-item .title {
        padding-right: 20px
    }

    .knowledge_list-item .title::after {
        width: 20px;
        height: 20px
    }

    .knowledge_banner::after {
        top: 10px;
        right: -17px;
        width: 105px
    }

    .knowledge_banner a {
        padding: 12px 85px 15px 15px
    }

    .knowledge_banner .content_title {
        padding-right: 15px;
        font-size: 17px;
        white-space: nowrap
    }

    .company_gallery-img .img {
        min-height: 80px
    }

    .company_box {
        padding: 25px 22px 35px
    }

    .footer {
        padding-bottom: 150px
    }

    .footer_btn-item .tel {
        padding: 10px 20px;
        min-height: 115px
    }

    .footer_btn-item .tel_sub {
        margin-bottom: 0;
        font-size: 12px
    }

    .footer_btn-item .tel_num {
        padding-left: 30px;
        font-size: 24px;
        background-size: 24px auto
    }

    .footer_btn-item .line {
        padding: 8px 5px 5px;
        min-height: 96px
    }

    .footer_btn-item .line_sub {
        margin-bottom: 7px;
        font-size: 11px;
        letter-spacing: .025em;
        text-align: center
    }

    .footer_btn-item .line_txt {
        padding-left: 37px;
        padding-right: 37px;
        font-size: 22px;
        background-size: 30px auto
    }

    .footer_btn-item .line_txt::after {
        width: 30px
    }

    .footer_btn-item .contact {
        padding: 15px 9px 7px;
        border-width: 3px
    }

    .footer_btn-item .contact_txt {
        margin-bottom: 7px
    }

    .footer_btn-item .contact_txt-main .char {
        font-size: 18px;
        width: 24px
    }

    .footer_btn-item .contact_txt-main .char:not(:last-child) {
        margin-right: 3px
    }

    .footer_btn-item .contact_txt-sub {
        font-size: 14px
    }

    .footer_btn-item .contact_txt-sub::after {
        top: -6px;
        left: -10px;
        width: 110px
    }

    .footer_btn-item .contact_title {
        font-size: 10px
    }

    .footer_btn-item .contact_title::after {
        top: -3px;
        right: -62px;
        width: 60px
    }

    .footer_btn-item .contact_title .blue {
        font-size: 12px
    }

    .footer_btn-item .contact_sub {
        padding: 7px 12px 6px
    }

    .footer_btn-item .contact_sub::before {
        width: 70px
    }

    .footer_btn-item .contact_sub>span {
        font-size: 12px;
        padding-right: 12px;
        background-size: 5px auto
    }

    .footer_address-content {
        column-gap: 15px
    }

    .footer_address-content .logo {
        width: 82px
    }

    .footer_address-content .txt {
        font-size: min(3.85vw, 14px);
        line-height: 1.5em
    }

    .footer .submenu_btn .tel {
        background-size: 15px auto;
        background-position: calc(100% - 8px) 50%
    }

    .footer .submenu_btn .line {
        padding: 7px 25px 5px;
        width: calc(50% - 5px) !important;
        background-size: 15px auto;
        background-position: calc(100% - 8px) 50%
    }

    .footer .submenu_btn .line>span {
        font-size: 12px
    }

    .footer .submenu_btn .line>span::before {
        left: -23px;
        width: 24px
    }

    .footer .submenu_btn .contact {
        padding: 7px 25px 5px;
        width: calc(50% - 5px) !important;
        background-size: 15px auto;
        background-position: calc(100% - 8px) 50%
    }

    .footer .submenu_btn .contact>span {
        font-size: 12px
    }

    .footer .submenu_btn .contact>span::before {
        left: -23px;
        width: 22px
    }
}

@media screen and (min-width: 375px)and (max-width: 413px) {
    .footer_btn-item .line_sub {
        font-size: 12px
    }

    .footer_btn-item .contact_txt-main .char {
        font-size: 20px;
        width: 30px
    }

    .footer_btn-item .contact_txt-main .char:not(:last-child) {
        margin-right: 4px
    }

    .footer_btn-item .contact_title {
        font-size: 12px
    }

    .footer_btn-item .contact_title::after {
        right: -80px;
        width: 70px
    }

    .footer_btn-item .contact_title .blue {
        font-size: 14px
    }

    .footer_btn-item .contact_sub::before {
        width: 77px
    }
}

@media screen and (min-width: 375px)and (max-width: 750px) {
    .sp320 {
        display: none
    }

    .fixed_btn-item .tel_txt {
        font-size: 14px
    }

    .fixed_btn-item .line_txt {
        font-size: 14px
    }
}

@media screen and (min-width: 414px)and (max-width: 750px) {
    .sp375 {
        display: none
    }

    .fixed_btn {
        padding: 12px 13px 8px 10px
    }

    .fixed_btn-item:nth-child(1) {
        margin-right: 8px
    }

    .fixed_btn-item:nth-child(2) {
        margin-right: 13px
    }
}

@media screen and (min-width: 415px)and (max-width: 750px) {
    .visual_left::after {
        bottom: auto;
        right: auto;
        top: calc(50% + 40px);
        left: -20px;
        transform: translateY(-50%);
        width: max(75vw, 398px)
    }
}

@media screen and (min-width: 525px)and (max-width: 750px) {
    .sp425 {
        display: none
    }

    .knowledge_banner::after {
        top: -40px;
        right: -15px;
        width: 110px
    }
}

@-moz-document url-prefix() {}