@charset "utf-8";
/* =========================================================================================================================================== */
/* 下層ページデザイン　                                                                                                                             */
/* =========================================================================================================================================== */
/* ------------------------------------------------------------- */
/* キービジュアル　                                                  */
/* ------------------------------------------------------------- */
@media all {
    .page-sub #keyvisual figure {
        width: 100%;
        height: 260px;
    }
    .page-sub #keyvisual img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: right bottom;
    }
}
@media(max-width: 767px) {
    .page-sub #keyvisual figure {
        height: 170px;
    }
}


/* ------------------------------------------------------------- */
/* 測量                                                           */
/* ------------------------------------------------------------- */
@media all {
    #page-surveying #c1 .section_header .content {
        position: relative;
    }
    #page-surveying #c1 .section_header .title {
        font-size: 20px;
        padding-bottom: 6px;
        border-bottom: solid 2px;
        border-image: var(--gradient1);
        border-image-slice: 1;
        margin-bottom: 15px;
    }
    #page-surveying #c1 .grid_type1 {
        max-width: unset;
        width: 100%;
        padding-bottom: 0;
    }
    #page-surveying #c1 .list_type1 ul {
        width: 100%;
        max-width: unset;
        padding: 0;
    }
    #page-surveying #c1 .list_type1 ul li {
        padding-left: 19px;
    }
    #page-surveying #c1 .list_type1 ul li::before {
        left: 0;
    }
    #page-surveying #c1 .section_header .subtitle {
        position: absolute;
        right: 40px;
        bottom: 40px;
        border-bottom: solid 1px;
        line-height: 20px;
    }
}
@media (max-width: 767px) {
    #page-surveying #c1 .grid_type1 > :first-child {
        padding-bottom: 20px;
    }
    #page-surveying #c1 .section_header .subtitle {
        position: initial;
        padding-top: 10px;
        width: 220px;
        margin-left: auto;
        margin-bottom: 20px;
    }
}


/* ------------------------------------------------------------- */
/* 設計・開発　                                                     */
/* ------------------------------------------------------------- */
@media all {
    #page-develop .list_type1 {
        flex-wrap: initial;
    }
    #page-develop .list_type1 ul {
        max-width: unset;
        width: auto;
        padding: 0;
    }
    #page-develop .list_type1 ul:first-child {
        padding-right: 40px;
    }
}
@media (max-width: 1023px) {
    #page-develop .list_type1 ul li {
        line-height: 20px;
        padding-top: 0;
        padding-bottom: 10px;
    }
}
@media (max-width: 767px) { 
    #page-develop .list_type1 {
        flex-wrap: wrap;
    }
    #page-develop .list_type1 ul{
        width: 100%;
        padding: 0;
        max-width: 380px;
    }
    #page-develop .list_type1 ul li {
        line-height: 20px;
        padding-top: 0;
        padding-bottom: 10px;
    }
}

/* ------------------------------------------------------------- */
/* 問い合わせ：電話                                                  */
/* ------------------------------------------------------------- */
@media all {
    .contact-tel {
        padding-bottom: 52px
    }
    .contact-tel-inner {
        width: var(--width-100);
        max-width: var(--content-width-7);
        margin: 0 auto;
        border-top: solid 2px;
        border-bottom: solid 2px;
        border-image: var(--gradient1);
        border-image-slice: 1;
        height: 140px;
        display: flex;
        justify-content: center;
        flex-wrap: wrap;
        align-items: center;
    }
    

    .contact-tel_header {
        display: flex;
        justify-content: flex-start;
        align-items: center;
        padding-right: 20px;
    }
    .contact-tel_header .icon {
        width: 45px;
        margin-right: 14px;
    }
    .contact-tel_header p {
        font-size: 24px;
        font-weight: var(--font-weight-bold);
        line-height: 1;
    }


    .contact-tel_content {
        padding-left: 20px;
    }
    .contact-tel_content .tel {
        line-height: 32px;
    }
    .contact-tel_content .tel a {
        font-size: 32px;
        font-weight: var(--font-weight-bold);
    }
    .contact-tel_content .open {
        line-height: 20px;
    }
}
@media (max-width: 767px) {
    .contact-tel {
        padding-bottom: 35px;
    }
    .contact-tel-inner {
        height: 129px;
        display: block;
        padding-top: 16px;
    }


    .contact-tel_header {
        width: 100%;
        padding: 0;
        justify-content: center;
        padding-bottom: 11px;
    }
    .contact-tel_header .icon {
        width: 32px;
        margin-right: 8px;
    }
    .contact-tel_header p {
        font-size: 20px;
    }
    

    .contact-tel_content {
        padding: 0;
        text-align: center;
    }
    .contact-tel_content .tel {
        line-height: 26px;
        font-size: 14px;
    }
    .contact-tel_content .tel a {
        font-size: 26px;
    }
    .contact-tel_content .open {
        font-size: 14px;
        line-height: 18px;
    }
}


/* ------------------------------------------------------------- */
/* 問い合わせ：フォーム                                               */
/* ------------------------------------------------------------- */
/* 入力フォーム */
@media all {
    .contact-form {
        padding-bottom: 105px;
    }
    .contact-form-inner {
        width: var(--width-100);
        max-width: var(--content-width-7);
        margin: 0 auto;
        /* border-radius: 3px; */
        /* background-color: var(--color-gray1); */
        /* padding: 29px 50px 60px; */
    }
    .contact-form .error {
        font-size: 14px;
        padding-bottom: 15px;
        color: var(--color-red1);
    }
    
    .contact-form table {
        width: 100%;
    }
    .contact-form table tbody {
        border-radius: 3px;
        background-color: var(--color-gray1);
        padding: 29px 50px 60px;
        display: block;
        margin-bottom: 67px;
    }
    .contact-form table tr {
        border-bottom: solid 1px var(--color-gray2);
        display: flex;
        min-height: 90px;
        justify-content: flex-start;
        align-items: center;
        flex-wrap: wrap;
    }
    .contact-form table tr:last-child {
        border-bottom: none;
    }
    
    
    .contact-form table tr th {
        width: 313px;
        text-align: left;
        font-size: 14px;
        line-height: 19px;
        font-weight: var(--font-weight-bold);
        padding-left: 25px;
        position: relative;
    }
    
    .contact-form table tr.required th::after {
        content: "必須";
        display: flex;
        position: absolute;
        justify-content: center;
        align-items: center;
        width: 57px;
        height: 19px;
        background: var(--gradient1);
        color: var(--color-white);
        font-size: 12px;
        right: 37px;
        top: 0;
        bottom: 0;
        margin: auto;
    }
    
    .contact-form table tr td {
        width: calc(100% - 313px);
        padding-right: 24px;
    }
    
    .contact-form table tr td input[type="text"],
    .contact-form table tr td input[type="email"],
    .contact-form table tr td input[type="text"] {
        width: 100%;
        height: 43px;
        border: solid 1px var(--color-gray2);
        padding: 0 20px;
    }
    
    .contact-form table tr.name td input,
    .contact-form table tr.furikana td input {
        max-width: 370px
    }
    .contact-form table tr.telephone td input {
        max-width: 215px;
    }
    
    .contact-form table tr.type td {
        display: flex;
        justify-content: flex-start;
        align-items: center;
        flex-wrap: wrap;
    }
    
    .contact-form table tr.type td .input_radio input {
        position: relative;
        display: none;
    }
    
    .contact-form table tr.type td .input_radio input + label {
        position: relative;
        padding-left: 27px;
        padding-right: 45px;
        display: block;
        line-height: 20px;
        cursor: pointer;
    }
    
    .contact-form table tr.type td .input_radio input + label::before {
        content: "";
        width: 18px;
        height: 18px;
        background-color: var(--color-white);
        display: block;
        border-radius: 50%;
        border: solid 1px var(--color-gray2);
        position: absolute;
        left: 0;
    }
    
    .contact-form table tr.type td .input_radio input:checked + label::after {
        content: "";
        width: 14px;
        height: 14px;
        display: block;
        position: absolute;
        background-color: var(--color-black1);
        border-radius: 50%;
        left: 3px;
        top: 3px;
    }
    
    .contact-form table tr td textarea {
        width: 100%;
        height: 350px;
        vertical-align: bottom;
        margin-top: 24px;
        padding: 10px 20px;
        border: solid 1px var(--color-gray2);
    }


    .contact-form table tfoot tr {
        min-height: auto;
        border-bottom: none;
    }
    
    .contact-form table tfoot tr td {
        width: 100%;
        padding: 0;
    }


    #page-contact-finish #c1 p {
        padding-bottom: 30px;
    }
}
@media (max-width: 767px) {
    .contact-form .error {
        font-size: 12px;
        padding-bottom: 7px;
    }
    .contact-form table tbody {
        padding: 16px 30px 12px;
        margin-bottom: 30px;
    }
    .contact-form table tr th {
        width: 100%;
        padding: 0;
        display: flex;
        justify-content: flex-start;
        padding-bottom: 8px;
    }
    .contact-form table tr.required th::after {
        position: unset;
        margin: 0;
        margin-left: 10px;
    }
    .contact-form table tr {
        min-height: auto;
        padding-top: 17px;
        padding-bottom: 21px;
    }
    .contact-form table tr td {
        width: 100%;
        padding: 0;
    }
    
    .contact-form table tr.type td .input_radio {
        width: 100%;
        padding-bottom: 8px;
    }
    .contact-form table tr.type td .input_radio:last-child {
        padding-bottom: 0;
    }
    .contact-form table tr td textarea {
        height: 200px;
        margin-top: 0;
    }


    #page-contact-finish #c1 p {
        padding-bottom: 15px;
    }
}


/* 確認ページ */
@media all {
    .contact-form.confirm table tr.content {
        align-items: flex-start;
        padding-top: 37px;
    }
}
@media (max-width: 767px) {
    .contact-form.confirm table tr.content {
        padding-top: 17px;
    }
}


/* サンキューページ */
@media all {
    #page-contact-finish #site-content {
        height: calc(100vh - 44px);
    }
}


/* ------------------------------------------------------------- */
/* 3次元計測                                                       */
/* ------------------------------------------------------------- */
/* C1: ３次元計測 */
@media all {
    #page-3d #c1 .list_type1 ul {
        max-width: unset;
        width: auto;
    }
}
@media (max-width: 767px) {
    #page-3d #c1 .list_type1 {
        display: block;
    }
    #page-3d #c1 .list_type1 ul {
        width: 100%;
        max-width: 290px;
        margin: 0 auto;
    }
}


/* C2: 地理情報システム（GIS） */
@media all {
    #page-3d #c2 .list_type1 ul {
        width: auto;
    }
    #page-3d #c2 .list_type1 ul li small {
        display: inline;
    }
}
@media (max-width: 767px) {
    #page-3d #c2 .list_type1 ul {
        width: 100%;
        max-width: 370px;
    }
    #page-3d #c2 .list_type1 ul li small {
        display: block;
    }
}


/* C3: 空中写真測量 */
@media all {
    #page-3d #c3 .list_type1 ul {
        width: auto;
    }
}
@media (max-width: 767px) {
    #page-3d #c3 .list_type1 ul {
        width: 100%;
        max-width: 250px;
    }
}


/* ------------------------------------------------------------- */
/* 企業情報                                                        */
/* ------------------------------------------------------------- */
/* C1: 未来の世代へつなぐ 自然との共生社会 */
@media all {
    #page-company #c1 p.type4 {
        padding-bottom: 58px;
    }
}
@media (max-width: 767px) {
    #page-company #c1 p.type4 {
        padding-bottom: 32px;
    }
}