@media screen and (min-width: 100px) and (max-width: 800px) {}

@media screen and (min-width: 641px) {
    .under .side_gnavi dl dd ul li a:hover::after {
        width: 100%;
        opacity: 1
    }

    .under .infras_list > li a:hover::before,
    .under .under_link_infras li a:hover::after {
        visibility: visible;
        opacity: 1;
    }

    .under .pro_btn a:hover img,
    .under .infras_list > li a:hover img {
        transform: scale(1.05);
    }

    .under#catalog .group_tabs_name dd ul li a:hover {
        color: #fff;
        background: #076eaa;
    }

    .under#catalog .group_tabs_name dd ul li a:hover::before {
        width: 20px;
        background: #fff;
    }
}

@media screen and (max-width: 640px) {
    .under #main {
        margin-bottom: 50px;
    }

    .under .section {
        padding: 0 0px 35px 0;
    }

    .under .image_r,
    .under .image_l {
        float: none;
        text-align: center;
        margin: 0 0 20px;
    }

    .under h3 {
        font-size: 7.6vmin;
        margin-bottom: 45px;
    }

    .under h3 span::before {
        width: 45px;
        bottom: -9px;
    }

    /*-----top_info-----*/
    .under #top_info {
        height: 290px;
    }

    .under #top_info .inner {
        padding-top: 0;
    }

    .under #top_info h2 {
        font-size: 7.5vmin;
        margin-bottom: 0;
    }

    /*topic path*/
    .under #topic_path {
        margin: 0 0 35px;
    }

    .under #topic_path ul {
        padding: 10px 0 0;
    }

    /*-----table-----*/
    .under table {
        border: 1px solid #118abf;
    }

    .under table th,
    .under table td {
        padding: 8px;
    }

    .under table th {
        font-size: 15px;
    }

    /*-----table scroll------*/
    .under .tb_scroll {
        overflow: scroll;
        margin-bottom: 10px
    }

    .under .tb_scroll > table {
        width: 800px;
    }

    .under #content .txt_note {
        display: block;
        font-size: 12px;
        color: #AFAFAF;
        margin-bottom: 8px;
    }

    /*-----table block-----*/
    .under #content table.tb_block tr th,
    .under #content table.tb_block tr td {
        display: block !important;
        width: 100% !important;
        box-sizing: border-box;
    }

    .under table.tb_block tr th,
    .under table.tb_block tr td {
        border-bottom: none;
    }

    .under table.tb_block tr th {
        text-align: center;
    }

    .under table.tb_block tr:last-child td:last-child {
        border-bottom: 1px solid #118abf;
    }

    /*tb_cal*/
    .under .tb_cal th {
        line-height: 1.3;
    }

    .under .tb_cal td {
        font-size: 15px;
    }

    .under .list01 li::before {
        top: 8px;
    }

    .under .list02 li::before {
        top: 10px;
    }

    .under .list_2col li:not(:last-child) {
        margin-bottom: 25px;
    }

    .under .under_link {
        justify-content: space-around;
    }

    .under .under_link li:not(:last-child) {
        margin-bottom: 9px;
    }

    .under .infras_txt {
        font-size: 18px;
    }

    .under .global_net_frame {
        padding: 3% 3%;
    }

    .under .global_net_list {
        flex-wrap: wrap;
    }

    .under .global_net_list li {
        margin: 0 8px 15px;
    }

    .under .global_net_list li:first-child {
        width: 100%;
        margin: 0 0 25px;
    }

    .under .global_net_list li:first-child p {
        margin: 0 auto;
    }

    .under#infrastructure h3 {
        margin-bottom: 45px;
    }

    .under .infras_list {
        flex-wrap: wrap;
    }

    .under .infras_list li {
        font-size: 3.6vmin;
        width: 50%;
        height: 39.063vw;
    }

    .under .products_frame {
        margin: 50px 0 70px;
    }

    .under .products_txt {
        font-size: 5.6vmin;
        width: 100%;
        top: 53vw;
    }

    .under .pro_btn {
        max-width: 320px;
        height: 200px;
        position: relative;
        margin: 0 auto;
    }

    .under .pro_btn a {
        font-size: 20px;
    }

    .under .pro_btn a span {
        height: 50px;
    }

    .under .pro_btn:not(:last-child) {
        margin-bottom: 25px;
    }

    .under .btn_01 {
        margin-top: 45px;
    }

    .under#gr_company h3 {
        font-size: 6.7vmin;
    }

    .under#gr_company h3 span {
        font-size: 18px;
    }

    .under .gr_company_frame {
        flex-direction: column;
        align-items: center;
    }

    .under .gr_company_notes {
        padding: 25px 35px;
        position: relative;
        top: auto;
        right: auto;
    }

    .under .gr_company_notes li {
        font-size: 14px;
    }

    .under .gr_company_notes li:not(:last-child) {
        margin-bottom: 5px;
    }

    .under#catalog #topic_path {
        margin: 0 0 35px;
    }

    .under#catalog .group_tabs_name dt {
        max-width: 20%;
    }

    .under#catalog .group_tabs_name dd ul {
        justify-content: space-around;
    }

    .under#catalog .group_tabs_name dd ul li {
        max-width: 210px;
        margin: 0 0 25px;
    }

    .under .catalog_list {
        justify-content: space-around;
    }

    .under .catalog_list dl {
        /*        max-width: 290px;*/
        /*        margin-bottom: 10px;*/
        margin: 0 0 20px;
    }

    .under#news #topic_path {
        margin: 0 0 20px;
    }

    .under .news_frame {
        flex-direction: column-reverse;
    }

    .under .news_info {
        width: 100%
    }

    .under .side_gnavi {
        max-width: none;
    }

    .under#news .news_info dl {
        flex-direction: column;
        align-items: flex-start;
    }

    .under#news .news_info dl dt {
        margin: 0 0 15px;
    }

    .under#news_detail #topic_path {
        margin: 0 0 35px;
    }

    .under#news_detail .news_info .news_ttl {
        font-size: 24px;
    }

    .under#news_detail h3 {
        font-size: 20px;
    }

    .under .news_list_2col {
        flex-direction: column;
    }

    .under .news_list_2col dl {
        margin: 0 auto 45px;
        padding: 15px 15px 15px;
    }

    .under .comp_frame01 {
        flex-direction: column;
        padding: 20px 20px 20px;
    }

    .under .comp_frame {
        height: 250px;
        margin-bottom: 25px;
    }

    .under .comp_frame p {
        font-size: 6.6vmin;
    }

    .under .comp_list li:first-child {
        padding-right: 10px;
    }

    .under .comp_list li:last-child {
        padding-left: 10px;
    }

    .under .comp_list li dl::before {
        width: 25px;
        height: 95%;
    }

    .under .comp_list li dl dt {
        margin-bottom: 25px;
    }

    .under .comp_list li dl dd {
        min-height: 364px;
        flex-direction: column;
        align-items: flex-start;
    }

    .under .comp_list li dl dd p:not(:first-child) {
        margin: 0 auto;
    }

    .under .comp_ttl01 {
        font-size: 12px;
        padding: 10px 10px;
    }

    .under .comp_ttl01 span {
        font-size: 14px;
        margin-bottom: 0;
    }

    .under .comp_txt01 {
        font-size: 21px;
        flex-direction: column;
        padding: 15px 15px 15px;
    }

    .under .comp_txt01:nth-of-type(2) {
        padding-right: 15px;
    }

    .under .comp_txt01:nth-of-type(2)::before {
        font-size: 12px;
        left: 50%;
        transform: translate(40%);
    }

    .under .comp_txt01 span {
        margin: 0 0 15px;
    }

    .under .comp_txt01::before {
        width: 25px;
    }

    .under .comp_l {
        width: 100%;
        padding: 15px 15px 15px;
        margin-bottom: 25px;
    }

    .under .comp_ttl02 {
        font-size: 4.2vmin;
    }

    .under .comp_txt02 {
        font-size: 12px;
    }

    .under .comp_r li:not(:last-child) {
        margin-bottom: 15px;
    }

    .under .comp_sec02 {
        flex-direction: column;
        align-items: center;
    }

    .under .comp_sec02_l {
        margin: 0 0 25px;
    }

    .under .comp_sec02_l dl dt {
        font-size: 4.7vmin;
    }

    .under .comp_sec02_l dl dd {
        font-size: 18px;
        padding: 0 0 20px 70px;
    }

    .under .comp_sec02_l dl dd::before,
    .under .comp_sec02_l dl dd::after {
        left: 20px;
    }

    .under .comp_sec02_l dl dd::after {
        width: 35px;
        top: 12px;
    }

    .under .comp_sec02_l dl dd:last-child::before {
        height: 66%;
    }

    .under .comp_ttl03 {
        font-size: 4.7vmin;
    }

    .under .comp_ttl03 span {
        font-size: 18px;
    }

    .under .comp_list02 {
        justify-content: space-around;
    }

    .under .comp_list02 dl dt {
        font-size: 30px;
        height: 200px;
    }

    .under .comp_list02 dl:nth-child(4) {
        margin-left: 0;
    }

    .under .comp_list02 dl dd ul {
        justify-content: space-around;
    }

    .under .comp_ttl04 {
        font-size: 16px;
        top: 1.2vw;
    }

    .under#civil_engineering #topic_path {
        margin: 0 0 35px;
    }

    .under#civil_engineering h3 {
        font-size: 6.7vmin;
    }

    .under .infras_list > li a {
        font-size: 18px;
    }

    .under .infras_list02 {
        justify-content: space-around;
    }

    .under .infras_list02 dl {
        max-width: 450px;
        margin-right: 0;
        padding: 20px 25px 25px;
    }

    .under .infras_list02 dl dt {
        font-size: 16px;
    }

    .under .heightLine-1,
    .under .heightLine-2,
    .under .heightLine-2-1,
    .under .heightLine-3,
    .under .heightLine-4,
    .under .heightLine-5,
    .under .heightLine-5-1,
    .under .heightLine-6,
    .under .heightLine-7 {
        height: auto !important;
    }

    .under .under_link_infras {
        flex-wrap: wrap;
        justify-content: space-around;
    }

    .under .under_link_infras li:not(:last-child) {
        margin-bottom: 9px;
    }

    .under .under_link_infras li a {
        font-size: 16px;
    }

    .under#bridge .infras_list02 dl dd .infras_img {
        min-height: inherit;
    }

    .under#automotives h3 {
        font-size: 28px;
    }

    .under#automotives h3 span {
        font-size: 16px;
    }

    .under#automotives #topic_path {
        margin: 0 0 35px;
    }

    .under .auto_flex {
        flex-direction: column;
    }

    .under .auto_frame {
        margin: 0 0 55px;
        padding: 35px 5px 35px;
    }

    .under .auto_img01 {
        bottom: 18vw;
        top: auto;
        right: 0;
        left: auto;
        width: 62vw;
        margin-bottom: 0;
    }

    .under .auto_img02 {
        position: relative;
        top: auto;
        width: 62vw;
        padding: 18vw 0 0;
        margin-bottom: 0;
    }

    .under#automotives .auto_bg h3 {
        padding: 0 0;
        margin-bottom: 35px;
    }

    .under .auto_bg {
        margin: 55px 0 55px;
    }

    .under .auto_bg .auto_list {
        flex-direction: column;
        align-items: center;
    }

    .under .auto_bg .auto_list li {
        height: 155px;
    }

    .under .auto_bg .auto_list li:not(:last-child) {
        margin-bottom: 25px;
    }

    .under .auto_bg .auto_list li:first-child {
        height: auto;
        min-height: 300px;
    }

    .under .auto_bg .auto_list li dl dt {
        font-size: 20px;
        line-height: 1.4;
    }

    .under .auto_bg .auto_list li dl dd {
        flex-wrap: wrap;
        justify-content: space-around;
    }

    .under .auto_bg .auto_list li:last-child a {
        font-size: 18px;
        padding: 0 15px;
    }
}

@media screen and (max-width: 560px) {}

@media screen and (max-width: 490px) {
    .under#gr_company h3 span {
        font-size: 16px;
    }

    .under .comp_frame {
        height: 200px;
    }

    .under .comp_sec02_l dl dt {
        font-size: 5vmin;
    }

    .under .comp_sec02_l dl dd,
    .under .comp_ttl03 span {
        font-size: 16px;
    }

    .under .comp_sec02_l dl dd:last-child::before {
        height: 70%;
    }

    .under .comp_list02 dl dt {
        height: 150px;
    }
}

@media screen and (max-width: 375px) {
    .under .infras_list > li a {
        font-size: 16px;
    }
}

@media screen and (max-width: 320px) {}

