@charset "utf-8";
/* CSS Document */


/* kv
   ================================================================== */
.kv{
	padding: 10vw 0 15vw;
	position: relative;
}

.kv .inner{
	position: relative;
}

.kv .inbox{
    padding: 0 0 0;
}

.kv .site_logo{
    margin: 0 auto;
    width: 80vw;
    line-height: 0;
}

.kv .site_logo img{
    width: 100%;
}

.kv h2{
    margin: 15vw 0 0;
    font-size: 5.3vw;
    font-weight: 700;
    letter-spacing: 0.045em;
}

.kv p{
    margin: 5vw 0 0 3vw;
    font-weight: 700;
}


/* philosophy
   ================================================================== */
.philosophy .text_box{
	margin: 8vw 0 0;
}

.philosophy .text_box > p{
	margin: 6vw 0 0;
}

.philosophy .list{
	margin: 8vw 0 0;
}

.philosophy .list > li{
	margin: 0 0 0;
    display: flex;
}

.philosophy .list > li + li{
	margin-top: 5vw;
}

.philosophy .list .thm{
	width: 40vw;
    line-height: 0;
}

.philosophy .list .thm img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    aspect-ratio: 1 / 1;
}

.philosophy .list .pr_box{
    padding: 0 0 0 3vw;
	width: calc(100% - 40vw);
    box-sizing: border-box;
}

.philosophy .list .pr_box .top > span{
    display: block;
    line-height: 150%;
    font-weight: 900;
    font-family: 'Noto Serif JP';
}

.philosophy .list .pr_box .position{
    font-size: 3.3vw;
}

.philosophy .list .pr_box .name{
    margin: .3vw 0 0;
    font-size: 5vw;
}

.philosophy .list .cat{
    margin: 3vw 0 0;
}

.philosophy .list .cat > li{
    display: flex;
}

.philosophy .list .cat .cat_ttl{
    width: 19vw;
}

.philosophy .list .cat .cat_txt{
    width: calc(100% - 19vw);
    box-sizing: border-box;
}

.philosophy .list .cat .cat_ttl,
.philosophy .list .cat .cat_txt{
    font-size: 3.5vw;
    line-height: 170%;
    font-weight: 500;
}

.philosophy .list .message_text{
    margin: 3vw 0 0;
    font-size: 3.4vw;
}


/* business
   ================================================================== */
.business > div + div{
    margin-top: 12vw;
    padding-top: 12vw;
	border-top: 1px dashed #ddd;
}

.business .top .text_box{
	margin: 8vw 0 0;
}

.business .title{
    margin: 0 0 5vw;
}

.business .title > span{
    padding: 3vw 5vw;
	font-size: 3.5vw;
    letter-spacing: 0.15em;
    background: #111;
    line-height: 150%;
    color: #fff;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
}

.business .achievements .title > span{
    background: #006AB7;
}

.business .text_box > p{
	margin: 3vw 0 0;
}

.business .top .text_box{
	padding: 5vw;
    border: 1px solid #ddd;
}

.business .top .text_box .title{
	margin-top: calc(-5vw - 1px);
	margin-left: calc(-5vw - 1px);
}

.business .top .ttl{
	font-size: 3.8vw;
    letter-spacing: 0.15em;
}

/* mid */
.business .mid .list{
	margin: 0 0 0;
}

.business .mid .list > li{
	margin: 0 0 0;
}

.business .mid .list > li + li{
	margin-top: 10vw;
}

/* achievements */
.business .achievements .list{
	margin: 0 0 0;
}

.business .achievements .list > li{
	margin: 0 0 0;
}

.business .achievements .list > li + li{
	margin-top: 8vw;
}

.business .achievements .list .ttl > span{
    padding: 2vw 5vw;
	font-size: 3.5vw;
    min-width: 70vw;
    line-height: 150%;
    background: #111;
    color: #fff;
    font-weight: 500;
    display: inline-flex;
    align-items: center;
    box-sizing: border-box;
    border-radius: 0 50px 50px 0;
}

.business .achievements .list .photo{
    margin: 4vw 0 0;
}

.business .achievements .list .photo img{
    width: 100%;
}


/* message
   ================================================================== */
.message .text_box{
	margin: 8vw 0 0;
}

.message .text_box > p{
	margin: 6vw 0 0;
}

.message .text_box .name{
	margin: 6vw 0 0 auto;
    width: 45vw;
    line-height: 0;
}

.message .text_box .name img{
	width: 100%;
}


/* company
   ================================================================== */
.company .design_table{
	margin: 8vw 0 0;
}


/* design_table
   ================================================================== */
.design_table{
	width: 100%;
	box-sizing: border-box;
}

.design_table th,
.design_table td{
	width: 100%;
	display: block;
	font-weight: 400;
	border-bottom: none;
	box-sizing: border-box;
}

.design_table th,
.design_table td,
.design_table td p{
    font-size: 3.5vw;
    letter-spacing: 0.1em;
	line-height: 170%;
}

.design_table td a{
    font-size: inherit;
}

.design_table tr:nth-child(2n+2){
	border-top: 1px solid #ddd;
	border-bottom: 1px solid #ddd;
}

.design_table tr:first-child{
	border-top: 1px solid #ddd;
}

.design_table tr:last-child{
	border-bottom: 1px solid #ddd;
}

.design_table th{
	padding: 5vw;
	font-weight: 700;
}

.design_table td{
	padding: 0 5vw;
}

.design_table td .border{
	padding: 5vw 0;
	border-top: 1px solid #ddd;
}

.design_table td .box + .box{
	margin-top: 5vw;
    padding-top: 5vw;
    border-top: 1px dashed #ddd;
}

.design_table td .ttl + p{
	margin: 1vw 0 0;
}


/* contact
   ================================================================== */
.contact{
	padding-bottom: 25vw;
}

.contact .main_office{
	margin: 8vw 0 0;
}

.contact .main_office .site_name .logo{
	width: 30vw;
    line-height: 0;
    display: block;
}

.contact .main_office .site_name .name{
	margin: 3vw 0 0;
    font-size: 4.5vw;
    font-weight: 700;
    display: block;
    line-height: 150%;
}

.contact .main_office .ttl{
	margin: 3vw 0 0;
    font-size: 3.7vw;
    font-weight: 700;
}

.contact .main_office .tel{
	margin: 1vw 0 0;
}

.contact .main_office .time{
	margin: 3vw 0 0;
    font-size: 3.5vw;
}

.contact .main_office .sns_btn{
	margin: 3vw 0 0;
}

.tel a{
    font-size: 8vw;
    line-height: 1;
    color: #263659;
    letter-spacing: 0.03em;
    font-weight: 700;
	display: flex;
    align-items: baseline;
}

.tel a .siz_s{
    font-size: 5vw;
    letter-spacing: 0.05em;
    line-height: inherit;
	display: block;
}

/* sales_office */
.contact .sales_office{
	margin: 8vw 0 0;
    padding: 5vw;
    border: 5px solid #F0F0F0;
}

.contact .sales_office .site_name .logo{
    margin: 0 0 0 -2vw;
	width: 25vw;
    display: block;
    line-height: 0;
}

.contact .sales_office .site_name .name{
	margin: 3vw 0 0;
    font-size: 3.5vw;
    font-weight: 700;
    display: block;
    line-height: 150%;
}

.contact .sales_office .tel a{
    font-size: 5vw;
}

.contact .sales_office .tel a .siz_s{
    font-size: 3.6vw;
}

.contact .sales_office .tel{
	margin: 3vw 0 0;
}

.contact .sales_office .time{
	margin: 3vw 0 0;
    font-size: 3.4vw;
}

.contact .sales_office .sns_btn{
	margin: 3vw 0 0;
}

/* bottom_text */
.contact .bottom_text{
	margin: 6vw 0 0;
}

.contact .bottom_text > p + p{
	margin: 3vw 0 0;
}

/* business_partners */
.contact .business_partners{
	margin: 6vw 0 0;
}

.contact .business_partners .ttl{
	font-size: 3.6vw;
}

.contact .business_partners .list{
	margin: 1vw 0 0;
    font-size: 0;
}

.contact .business_partners .list > li{
	margin: 2vw 2vw 0 0;
    padding: 2vw 4vw;
    font-size: 3.6vw;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    background: #eee;
    border-radius: 5px;
}


@media screen and (min-width : 500px){


    /* kv
       ================================================================== */
    .kv{
        padding: 15.6vw 0 6.7vw;
    }

    .kv .site_logo{
        width: 69.0vw;
    }

    .kv h2{
        margin: 20.0vw 0 0;
        font-size: 3.4vw;
        line-height: 3.2vw;
    }

    .kv p{
        margin: 2.7vw 0 0 2.5vw;
        font-size: 2.0vw;
    }
    

    /* philosophy
       ================================================================== */
    .philosophy .text_box{
        margin: 3.0vw 0 0;
    }

    .philosophy .text_box > p{
        margin: 2.5vw 0 0;
    }

    .philosophy .list{
        margin: 6.0vw 0 0;
    }

    .philosophy .list > li{
        margin: 0 0 0;
    }

    .philosophy .list > li + li{
        margin-top: 2.5vw;
    }

    .philosophy .list .thm{
        width: 18.0vw
    }

    .philosophy .list .pr_box{
        padding: 0 0 0 3.0vw;
        width: calc(100% - 18.0vw);
    }

    .philosophy .list .pr_box .position{
        font-size: 1.3vw;
    }

    .philosophy .list .pr_box .name{
        margin: .3vw 0 0;
        font-size: 2.0vw;
    }

    .philosophy .list .cat{
        margin: 1.0vw 0 0;
    }

    .philosophy .list .cat .cat_ttl{
        width: 8.0vw;
    }

    .philosophy .list .cat .cat_txt{
        width: calc(100% - 8.0vw);
    }

    .philosophy .list .cat .cat_ttl,
    .philosophy .list .cat .cat_txt{
        font-size: 1.5vw;
    }

    .philosophy .list .message_text{
        margin: .5vw 0 0;
        font-size: 1.4vw;
    }


    /* business
       ================================================================== */
    .business{
        padding-bottom: 9.0vw;
    }

    .business > div + div{
        margin-top: 6.5vw;
        padding-top: 6.5vw;
    }

    .business .top .text_box{
        margin: 4.5vw 0 0;
    }

    .business .title{
        margin: 0 0 2.0vw;
    }

    .business .title > span{
        padding: 0 2.8vw;
        font-size: 1.7vw;
        height: 5.0vw;
    }

    .business .text_box > p{
        margin: 1.0vw 0 0;
    }

    .business .top .text_box{
        padding: 3.0vw 3.0vw 3.4vw;
    }

    .business .top .text_box .title{
        margin-top: calc(-3.0vw - 1px);
        margin-left: calc(-3.0vw - 1px);
    }

    .business .top .ttl{
        font-size: 1.8vw;
    }

    /* mid */
    .business .mid .list{
        margin: 0 0 0;
    }

    .business .mid .list > li{
        margin: 0 0 0;
    }

    .business .mid .list > li + li{
        margin-top: 5.5vw;
    }

    /* achievements */
    .business .achievements .list{
        margin: 0 0 0;
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        gap: 8%;
    }

    .business .achievements .list > li{
        margin: 3.0vw 0 0;
        width: 46%;
    }

    .business .achievements .list > li + li{
        margin-top: 3.0vw;
    }

    .business .achievements .list .ttl > span{
        padding: 0 2.8vw;
        font-size: 1.5vw;
        height: 4.0vw;
        min-width: 27.0vw;
    }

    .business .achievements .list .photo{
        margin: 2.0vw 0 0;
    }


    /* message
       ================================================================== */
    .message .text_box{
        margin: 3.0vw 0 0;
    }

    .message .text_box > p{
        margin: 2.0vw 0 0;
    }

    .message .text_box .name{
        margin: 4.0vw 0 0 auto;
        width: 15.7vw;
    }


    /* company
       ================================================================== */
    .company{
        padding-bottom: 15.0vw;
    }

    .company .design_table{
        margin: 5.0vw 0 0;
    }


	/* design_table
	   ================================================================== */
	.design_table{
		width: 100%;
		box-sizing: border-box;
	}
	
	.design_table th,
	.design_table td{
		width: auto;
		display: table-cell;
		vertical-align: middle;
		box-sizing: border-box;
	}
	
	.design_table th,
	.design_table td,
    .design_table td p{
        font-size: 1.5vw;
        line-height: 2.5vw;
    }

	.design_table th{
		padding: 0 2vw 0 5vw;
		width: 23%;
	}
	
	.design_table .col th{
		padding: 2vw 2vw 2vw 5vw;
	}
	
	.design_table .title_top th{
		padding-top: 2vw;
		vertical-align: top;
	}
	
	.design_table td{
		padding: 2.5vw 0;
	}

	.design_table td .border{
		padding: 0 2vw 0 5vw;
		border-top: none;
		border-left: 1px solid #ddd;
		min-height: 3vw;
		display: flex;
		align-items: center;
        box-sizing: border-box;
	}

	.design_table td .border.box_in{
		display: block;
	}

    .design_table td .box{
    	margin-right: -2.0vw;
    }

    .design_table td .box + .box{
    	margin-top: 1.5vw;
        padding-top: 1.5vw;
    }
    
    .design_table td .ttl + p{
    	margin: .7vw 0 0;
    }


    /* contact
       ================================================================== */
    .contact{
        padding-bottom: 12.3vw;
    }

    .contact .main_office{
        margin: 1.7vw 0 0;
    }

    .contact .main_office .site_name .logo{
        width: 16.0vw;
    }

    .contact .main_office .site_name .name{
        margin: .8vw 0 0;
        font-size: 2.0vw;
    }

    .contact .main_office .ttl{
        margin: 2.0vw 0 0;
        font-size: 1.7vw;
    }

    .contact .main_office .tel{
        margin: .6vw 0 0;
    }

    .contact .main_office .time{
        margin: 1.0vw 0 0;
        font-size: 1.5vw;
    }

    .contact .main_office .sns_btn{
        margin: 1.5vw 0 0;
    }

    .tel a{
        font-size: 4.0vw;
    }

    .tel a .siz_s{
        font-size: 2.7vw;
    }

    /* sales_office */
    .contact .sales_office{
        margin: 4.0vw 0 0;
        padding: 2.0vw 3.0vw 3.6vw;
    }

    .contact .sales_office .site_name .logo{
        margin: 0 0 0 -.5vw;
        width: 10.5vw;
    }

    .contact .sales_office .site_name .name{
        margin: 1.2vw 0 0;
        font-size: 1.6vw;
    }

    .contact .sales_office .tel a{
        font-size: 2.5vw;
    }

    .contact .sales_office .tel a .siz_s{
        font-size: 1.8vw;
    }

    .contact .sales_office .tel{
        margin: 1.0vw 0 0;
    }

    .contact .sales_office .time{
        margin: .5vw 0 0;
        font-size: 1.4vw;
    }

    .contact .sales_office .sns_btn{
        margin: 1.5vw 0 0;
    }

    /* bottom_text */
    .contact .bottom_text{
        margin: 3.0vw 0 0;
    }

    .contact .bottom_text > p + p{
        margin: 1.5vw 0 0;
    }

    .contact .bottom_text > p{
        line-height: 2.8vw;
    }

    /* business_partners */
    .contact .business_partners{
        margin: 3.0vw 0 0;
    }

    .contact .business_partners .ttl{
        font-size: 1.6vw;
    }

    .contact .business_partners .list{
        margin: .5vw 0 0;
    }

    .contact .business_partners .list > li{
        margin: 1.5vw 1.5vw 0 0;
        padding: 0 2.2vw;
        font-size: 1.5vw;
        height: 5.0vw;
        box-sizing: border-box;
    }

    
}
@media screen and (min-width : 1040px){    


    /* kv
       ================================================================== */
    .kv{
        padding: 156px 0 67px;
    }

    .kv .site_logo{
        width: 690px;
    }

    .kv h2{
        margin: 200px 0 0;
        font-size: 34px;
        line-height: 32px;
    }

    .kv p{
        margin: 27px 0 0 25px;
        font-size: 20px;
    }
    

    /* philosophy
       ================================================================== */
    .philosophy .text_box{
        margin: 30px 0 0;
    }

    .philosophy .text_box > p{
        margin: 25px 0 0;
    }

    .philosophy .list{
        margin: 60px 0 0;
    }

    .philosophy .list > li{
        margin: 0 0 0;
    }

    .philosophy .list > li + li{
        margin-top: 25px;
    }

    .philosophy .list .thm{
        width: 180px
    }

    .philosophy .list .pr_box{
        padding: 0 0 0 30px;
        width: calc(100% - 180px);
    }

    .philosophy .list .pr_box .position{
        font-size: 13px;
    }

    .philosophy .list .pr_box .name{
        margin: 3px 0 0;
        font-size: 20px;
    }

    .philosophy .list .cat{
        margin: 10px 0 0;
    }

    .philosophy .list .cat .cat_ttl{
        width: 80px;
    }

    .philosophy .list .cat .cat_txt{
        width: calc(100% - 80px);
    }

    .philosophy .list .cat .cat_ttl,
    .philosophy .list .cat .cat_txt{
        font-size: 15px;
    }

    .philosophy .list .message_text{
        margin: 5px 0 0;
        font-size: 14px;
    }


    /* business
       ================================================================== */
    .business{
        padding-bottom: 90px;
    }

    .business > div + div{
        margin-top: 65px;
        padding-top: 65px;
    }

    .business .top .text_box{
        margin: 45px 0 0;
    }

    .business .title{
        margin: 0 0 20px;
    }

    .business .title > span{
        padding: 0 28px;
        font-size: 17px;
        height: 50px;
    }

    .business .text_box > p{
        margin: 10px 0 0;
    }

    .business .top .text_box{
        padding: 30px 30px 34px;
    }

    .business .top .text_box .title{
        margin-top: calc(-30px - 1px);
        margin-left: calc(-30px - 1px);
    }

    .business .top .ttl{
        font-size: 18px;
    }

    /* mid */
    .business .mid .list{
        margin: 0 0 0;
    }

    .business .mid .list > li{
        margin: 0 0 0;
    }

    .business .mid .list > li + li{
        margin-top: 55px;
    }

    /* achievements */
    .business .achievements .list{
        margin: 0 0 0;
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        gap: 8%;
    }

    .business .achievements .list > li{
        margin: 30px 0 0;
        width: 46%;
    }

    .business .achievements .list > li + li{
        margin-top: 30px;
    }

    .business .achievements .list .ttl > span{
        padding: 0 28px;
        font-size: 15px;
        height: 40px;
        min-width: 270px;
    }

    .business .achievements .list .photo{
        margin: 20px 0 0;
    }


    /* message
       ================================================================== */
    .message .text_box{
        margin: 30px 0 0;
    }

    .message .text_box > p{
        margin: 20px 0 0;
    }

    .message .text_box .name{
        margin: 40px 0 0 auto;
        width: 157px;
    }


    /* company
       ================================================================== */
    .company{
        padding-bottom: 150px;
    }

    .company .design_table{
        margin: 50px 0 0;
    }


	/* design_table
	   ================================================================== */
	.design_table th,
	.design_table td,
    .design_table td p{
        font-size: 15px;
        line-height: 25px;
	}

	.design_table th{
		padding: 0 10px 0 50px;
		width: 23%;
	}
		
	.design_table .title_top th{
		padding-top: 25px;
	}

	.design_table td{
		padding: 25px 0;
	}

	.design_table td .border{
		padding: 0 20px 0 50px;
        min-height: 30px;
	}

    .design_table td .box{
    	margin-right: -20px;
    }

    .design_table td .box + .box{
    	margin-top: 15px;
        padding-top: 15px;
    }
    
    .design_table td .ttl + p{
    	margin: 7px 0 0;
    }

	.design_table td a:hover{
		text-decoration: underline;
	}


    /* contact
       ================================================================== */
    .contact{
        padding-bottom: 123px;
    }

    .contact .main_office{
        margin: 17px 0 0;
    }

    .contact .main_office .site_name .logo{
        width: 160px;
    }

    .contact .main_office .site_name .name{
        margin: 8px 0 0;
        font-size: 20px;
    }

    .contact .main_office .ttl{
        margin: 20px 0 0;
        font-size: 17px;
    }

    .contact .main_office .tel{
        margin: 6px 0 0;
    }

    .contact .main_office .time{
        margin: 10px 0 0;
        font-size: 15px;
    }

    .contact .main_office .sns_btn{
        margin: 15px 0 0;
    }

    .tel a{
        font-size: 40px;
    }

    .tel a .siz_s{
        font-size: 27px;
    }

    /* sales_office */
    .contact .sales_office{
        margin: 40px 0 0;
        padding: 20px 30px 36px;
    }

    .contact .sales_office .site_name .logo{
        margin: 0 0 0 -5px;
        width: 105px;
    }

    .contact .sales_office .site_name .name{
        margin: 12px 0 0;
        font-size: 16px;
    }

    .contact .sales_office .tel a{
        font-size: 25px;
    }

    .contact .sales_office .tel a .siz_s{
        font-size: 18px;
    }

    .contact .sales_office .tel{
        margin: 10px 0 0;
    }

    .contact .sales_office .time{
        margin: 5px 0 0;
        font-size: 14px;
    }

    .contact .sales_office .sns_btn{
        margin: 15px 0 0;
    }

    /* bottom_text */
    .contact .bottom_text{
        margin: 30px 0 0;
    }

    .contact .bottom_text > p + p{
        margin: 15px 0 0;
    }

    .contact .bottom_text > p{
        line-height: 28px;
    }

    /* business_partners */
    .contact .business_partners{
        margin: 30px 0 0;
    }

    .contact .business_partners .ttl{
        font-size: 16px;
    }

    .contact .business_partners .list{
        margin: 5px 0 0;
    }

    .contact .business_partners .list > li{
        margin: 15px 15px 0 0;
        padding: 0 22px;
        font-size: 15px;
        height: 50px;
        box-sizing: border-box;
    }
    

}
