@charset "utf-8";
/* CSS Document */


/* 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;
}

@media screen and (max-width : 499px){

    /* SPも2カラム */
	.design_table.sp2column th,
	.design_table.sp2column td{
		width: auto;
		display: table-cell;
		vertical-align: middle;
		box-sizing: border-box;
	}
	
	.design_table.sp2column th,
	.design_table.sp2column td,
    .design_table.sp2column td p{
        
    }

	.design_table.sp2column th{
		padding: 4vw 2vw 4vw 5vw;
		width: 26%;
	}
	
	.design_table.sp2column .col th{
		padding: 2vw 2vw 2vw 5vw;
	}
	
	.design_table.sp2column .title_top th{
		padding-top: 4vw;
		vertical-align: top;
	}
	
	.design_table.sp2column td{
		padding: 2.5vw 0;
	}

	.design_table.sp2column td .border{
		padding: 1.5vw 2vw 2vw 5vw;
		border-top: none;
		border-left: 1px solid #ddd;
		min-height: 3vw;
		display: block;
        box-sizing: border-box;
	}

}


/* kv
   ================================================================== */
.kv{
	margin: 0 0 0;
	position: relative;
}


/* company
   ================================================================== */
.company{
	padding: 12vw 0 25vw;
}

.company .btn_push{
	margin: 10vw 0 0;
}

.company .design_table{
	margin: 18vw 0 0;
}

.company .map{
	margin: 10vw auto 0;
    line-height: 0;
}

.company .map iframe{
	width: 100%;
    height: 80vw;
}


/* contact_cv
   ================================================================== */
.contact_cv{
	padding: 15vw 0;
    background: #333333;
}

.contact_cv *{
	color: #fff;
}

.contact_cv .flex{
	padding: 0 0 0;
}

.contact_cv .ttl{
	padding: 5vw 0 5vw 10vw;
    border-left: 1px solid #fff;
}

.contact_cv .ttl .title{
	font-size: 10vw;
    font-family: "Roboto";
    font-weight: 900;
    line-height: 1;
}

.contact_cv .ttl .text{
    margin: 2vw 0 0;
	font-size: 3.2vw;
}

.contact_cv .tel_box{
    padding: 5vw 0 0 10vw;
}

.contact_cv .tel_box .text{
    margin: 1vw 0 0;
	font-size: 3.2vw;
}

.contact_cv .sns_box{
    padding: 5vw 0 0 10vw;
}



@media screen and (min-width : 500px){


	/* 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: 3.0vw;
    }

	.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;
    }


    /* kv
       ================================================================== */
    .kv{
        margin: 0 0 0;
    }
        

    /* company
       ================================================================== */
    .company{
        padding: 7.0vw 0 10.0vw;
    }

    .company .btn_push{
        margin: 10.0vw 0 0;
    }

    .company .design_table{
        margin: 11.5vw 0 0;
    }

    .company .map{
        margin: 5.0vw auto 0;
    }

    .company .map iframe{
        height: 45.0vw;
    }


    /* contact_cv
       ================================================================== */
    .contact_cv{
        padding: 8.0vw 0;
    }

    .contact_cv .flex{
        padding: 2.2vw 0 2.2vw 4.5vw;
        display: flex;
        border-left: 1px solid #fff;
    }

    .contact_cv .ttl{
        padding: 0;
        border-left: none;
    }

    .contact_cv .ttl .title{
        font-size: 4.0vw;
    }

    .contact_cv .ttl .text{
        margin: 1.2vw 0 0;
        font-size: 1.4vw;
    }

    .contact_cv .tel_box{
        padding: 0 0 0 7.0vw;
    }

    .contact_cv .tel_box .text{
        margin: .6vw 0 0;
        font-size: 1.4vw;
    }

    .contact_cv .sns_box{
        margin: -.4vw 0 0;
        padding: 0 0 0 2.5vw;
    }

    
}
@media screen and (min-width : 1040px){    
	  

	/* design_table
	   ================================================================== */
	.design_table th,
	.design_table td,
    .design_table td p{
        font-size: 15px;
        line-height: 30px;
	}

	.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;
	}


    /* kv
       ================================================================== */
    .kv{
    	margin: 0 0 0;
    }
    

    /* company
       ================================================================== */
    .company{
        padding: 70px 0 100px;
    }

    .company .btn_push{
        margin: 100px 0 0;
    }

    .company .design_table{
        margin: 115px 0 0;
    }

    .company .map{
        margin: 50px auto 0;
    }

    .company .map iframe{
        height: 450px;
    }


    /* contact_cv
       ================================================================== */
    .contact_cv{
        padding: 80px 0;
    }

    .contact_cv .flex{
        padding: 22px 0 22px 45px;
        display: flex;
        border-left: 1px solid #fff;
    }

    .contact_cv .ttl{
        padding: 0;
        border-left: none;
    }

    .contact_cv .ttl .title{
        font-size: 40px;
    }

    .contact_cv .ttl .text{
        margin: 12px 0 0;
        font-size: 14px;
    }

    .contact_cv .tel_box{
        padding: 0 0 0 70px;
    }

    .contact_cv .tel_box .text{
        margin: 6px 0 0;
        font-size: 14px;
    }

    .contact_cv .sns_box{
        margin: -4px 0 0;
        padding: 0 0 0 25px;
    }
    

}
