@charset "utf-8";
/* CSS Document */


/* under_page_top
   ================================================================== */
.unFder_page_top{
	position: relative;
}

.under_page_top .title_block{
    border-bottom: 1px solid #DDE7EE;
}

.under_page_top .title_block .inner{
	padding-top: 5vw;
	padding-bottom: 10vw;
    position: relative;
}

.under_page_top .title:before{
	content: "";
	background: #172C62;
	width: 15vw;
	height: 2px;
	position: absolute;
	bottom: -1px;
	left: 0;
}

.under_page_top .title > span{
	display: block;
    line-height: 150%;
}

.under_page_top .title .jpn{
	font-size: 6.5vw;
    font-weight: 800;
}

.under_page_top .title .eng{
    margin: 2vw 0 0;
	font-size: 2.9vw;
    font-weight: 500;
    color: #172C62;
}

/* pankz */
.under_page_top .pankz_block{
    padding: 5vw 0 8vw;
}

.pankz{
    margin: 0 auto 0;
    padding: 0;
    font-size: 0;
}

.pankz > li{
    margin: 0 8vw 2vw 0;
    display: inline-block;
    vertical-align: top;
    position: relative;
}

.pankz > li:last-child{
    margin-right: 0;
}

.pankz > li::before{
    content: "";
    background-image: url("../images/common/pankz_arrow.svg");
    background-position: center center;
    background-repeat: no-repeat;
    background-size: 100%;
    width: 1.3vw;
    height: 4.7vw;
    position: absolute;
    top: 0;
    left: calc(100% + 3.5vw);
}

.pankz > li:last-child::before{
    display: none;
}

.pankz > li > span,
.pankz > li a{
    font-size: 3.2vw;
    line-height: 150%;
    font-weight: 500;
    letter-spacing: 0.1em;
    color: #222;
    display: block;
}


/* block_title
   ================================================================== */
.block_title{
	position: relative;
}

.block_title > span{
	display: block;
    line-height: 150%;
    color: #172C62;
}

.block_title .eng{
	font-size: 8vw;
    font-weight: 700;
    font-family: 'Oswald';
    letter-spacing: 0.05em;
}

.block_title .jpn{
    margin: .6vw 0 0;
	font-size: 3.4vw;
    font-weight: 500;
}


/* block_title02
   ================================================================== */
.block_title02{
	position: relative;
}

.block_title02 > span{
	display: block;
    line-height: 150%;
    color: #111;
}

.block_title02 .eng{
	font-size: 6vw;
    font-weight: 900;
    letter-spacing: 0.05em;
}

.block_title02 .eng:first-letter{
	color: #F83585;
}

.block_title02 .jpn{
    margin: .6vw 0 0;
    padding-left: 15vw;
	font-size: 3.0vw;
    font-weight: 500;
    position: relative;
}

.block_title02 .jpn:before{
	content: "";
	background: #172C62;
	width: 12vw;
	height: 1px;
	position: absolute;
	top: 50%;
	left: 0;
}

    
/* alternate
   ================================================================== */
.alternate{
    position: relative;
    overflow: hidden;
    line-height: 0;
}

.alternate img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.alternate .fade_photo{
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
	animation: fade_photo 10s linear infinite;
}

.alternate.delay1 .fade_photo{
    animation-delay: .5s;
    animation-direction: 8s;
}

.alternate.delay2 .fade_photo{
    animation-delay: 2s;
    animation-direction: 12s;
}

.alternate.delay3 .fade_photo{
    animation-delay: 3.5s;
    animation-direction: 7s;
}

@keyframes fade_photo {
    0% {opacity: 0;}
    40%{opacity: 0;}
    50%{opacity: 1;}
    90%{opacity: 1;}
    100%{opacity: 0;}
}


/* hash_categories
   ================================================================== */
.hash_categories{
    display: block;
    font-size: 0;
}

.hash_categories > a,
.hash_categories > span{
    margin: 1vw 1vw 0 0;
    display: inline-block;
    font-size: 3.0vw;
    color: #C12C6F;
    letter-spacing: 0.1em;
    line-height: 150%;
}

.hash_categories > a::before,
.hash_categories > span::before{
    content: "♯";
}


/* hash_categories_box
   ================================================================== */
.hash_categories_box{
    display: block;
    font-size: 0;
}

.hash_categories_box > a,
.hash_categories_box > span{
    margin: 1vw 1vw 0 0;
    padding: 1vw 3vw;
    display: inline-block;
    font-size: 2.8vw;
    color: #fff;
    background: #C12C6F;
    letter-spacing: 0.1em;
    line-height: 150%;
    border-radius: 50px;
}


/* common_table
   ================================================================== */	
.common_table{
	margin: 0 auto;
    width: 100%;
    border-bottom: 1px solid #C8D4DC;
}

.common_table th,
.common_table td{
	padding: 3vw 4vw;
    font-size: 3.5vw;
    line-height: 170%;
    letter-spacing: 0.1em;
    font-family: "Noto Sans JP";
    width: 100%;
    display: block;
    box-sizing: border-box;
}

.common_table th{
    border-top: 1px solid #C8D4DC;
	background: #F2F5F7;
    font-weight: 700;
}

.common_table td{
	background: #fff;
    overflow: hidden;
}

.common_table td a{
	display: inline-block;
    font-size: inherit;
    line-height: inherit;
}

.common_table td .box + .box{
	margin: 4vw 0 0;
    padding: 4vw 0 0;
    position: relative;
}

.common_table td .box + .box::before{
	content: "";
    border-top: 1px dashed #C8D4DC;
    position: absolute;
    top: 0;
    left: -50vw;
    width: 2000%;
}


/* check_list
   ================================================================== */
.check_list > li{
    padding: 4vw 3vw;
    border-bottom: 1px dashed #ddd;
}

.check_list li > span{
    padding-left: 7vw;
    font-size: 3.5vw;
    line-height: 170%;
    font-weight: 500;
    letter-spacing: 0;
    display: inline-block;
    position: relative;
}

.check_list li > span::before{
    content: "";
    background-image: url("../images/common/icon_check.svg");
    background-position: center center;
    background-repeat: no-repeat;
    background-size: 100%;
    width: 5vw;
    height: 5vw;
    position: absolute;
    top: .8vw;
    left: 0;
}

.check_list li .arrow{
    margin-left: 8vw;
    width: 5vw;
}

.check_list li > span:nth-child(n+2){
    padding-left: 3vw;
}

.check_list li > span:nth-child(n+2)::before{
    display: none;
}

.check_list.circle li > span{
    padding-left: 7vw;
    border-color: #8EB1D4;
}

.check_list.circle li > span::before{
    background-image: url("../images/common/icon_circle.svg");
    width: 3.5vw;
    height: 3.5vw;
    top: 1.5vw;
    left: 0;
}

.check_list.circle.green li{
    border-color: #88C6A3;
}

.check_list.circle.green li > span::before{
    background-image: url("../images/common/icon_circle_green.svg");
}

.check_list.circle.red li{
    border-color: #EEA59E;
}

.check_list.circle.red li > span::before{
    background-image: url("../images/common/icon_circle_red.svg");
}


/* kv
   ================================================================== */
.kv{
	margin: 0 0 0 0;
    padding: 0 0 0 0vw;
	position: relative;
    overflow: hidden;
    border-radius: 0 0 20px 0;
}

.kv video{
    position: absolute;
    top: 50%;
    left: 50%;
    min-width: 100%;
    min-height: 100%;
    -webkit-transform: translate(-50%, -50%);
    -moz-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    animation: fade_in 0.8s cubic-bezier(0.77, 0, 0.175, 1);
    animation-fill-mode: forwards;
}

@keyframes fade_in {
	0% { opacity: 0; }
	100% { opacity: 1; }
}

.kv .inner{
	position: relative;
    z-index: 2;
    height: 85vh;
    box-sizing: border-box;
	display: flex;
    align-items: center;
    padding-left: 0;
}

.kv .inbox{
    padding: 0 0 0;
}

.kv .title{
    padding-left: 5vw;
}

.kv .title > span{
    display: block;
    line-height: 150%;
    color: #fff;
    font-weight: 900;
}

.kv .title .jpn{
    font-size: 6.5vw;
    letter-spacing: 0.15em;
}

.kv .title .eng{
    margin: 4vw 0 0;
    font-size: 3vw;
    letter-spacing: 0.05em;
}

.kv p{
    margin: 5vw 0 0;
    color: #fff;
    position: relative;
}

.kv p > span{
    margin: 3vw 0 0;
    padding: 2vw 3vw 2vw 5vw;
    font-size: 3.6vw;
    font-weight: 700;
    background: #fff;
    display: inline-block;
}

.kv p .name{
    width: 60vw;
    top: calc(100% + -4vw);
    left: 37%;
    position: absolute;
}


/* fix_cv
   ================================================================== */
.fix_cv{
	position: fixed;
}

.fix_cv,
.fix_cv .position_box{
	display: none;
}


/* card_box
   ================================================================== */
.card_box a{
    display: block;
}

.card_box a > span{
    display: block;
    line-height: 150%;
}

.card_box .thm{
    position: relative;
    overflow: hidden;
    border-radius: 10px;
}

.card_box .thm img{
    line-height: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    aspect-ratio: 350 / 200;
}

.card_box .text_box{
    padding: 2vw 2vw 0;
}

.card_box .date{
    font-size: 3.0vw;
    font-weight: 400;
    color: #474645;
}

.card_box .title{
    margin: 1vw 0 .5vw;
    font-size: 3.7vw;
    font-weight: 700;
	overflow: hidden;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 1;
}


/* work_card_box
   ================================================================== */
.work_card_box a{
    display: block;
}

.work_card_box a > span{
    display: block;
    line-height: 150%;
}

.work_card_box .thm{
    position: relative;
    overflow: hidden;
    border-radius: 10px;
}

.work_card_box .thm img{
    line-height: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    aspect-ratio: 350 / 200;
}

.work_card_box .text_box{
    padding: 2vw 2vw 0;
}

.work_card_box .date{
    font-size: 3.0vw;
    font-weight: 400;
    color: #474645;
}

.work_card_box .title{
    margin: 1vw 0 .5vw;
    font-size: 3.7vw;
    font-weight: 700;
	overflow: hidden;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 1;
}


/* index_blogs
   ================================================================== */
.index_blogs{
    padding: 15vw 0 15vw;
}

.index_blogs .index_blogs_slider{
    margin: 8vw 0 0;
    width: 70vw;
    overflow: visible;
}

.index_blogs .index_blogs_slider{
    opacity: 0;
    transition: .3s;
}

.index_blogs .index_blogs_slider.swiper-container-horizontal{
    opacity: 1;
}

.index_blogs .more_btn{
    margin: 8vw 0 0;
}


/* index_works
   ================================================================== */
.index_works{
    padding: 15vw 0 15vw;
}

.index_works .index_blogs_slider{
    margin: 8vw 0 0;
    width: 70vw;
    overflow: visible;
}

.index_works .index_blogs_slider{
    opacity: 0;
    transition: .3s;
}

.index_works .index_blogs_slider.swiper-container-horizontal{
    opacity: 1;
}

.index_works .more_btn{
    margin: 8vw 0 0;
}


/* blogs_list
   ================================================================== */
.blogs_list{
    padding: 0 0 15vw;
}

.blogs_list .card_list{
    margin: 8vw 0 0;
}

.blogs_list .card_list > li{
    margin: 8vw 0 0;
}


/* work_list
   ================================================================== */
.work_list{
    padding: 0 0 15vw;
}

.work_list .card_list{
    margin: 8vw 0 0;
    border-bottom: 1px dashed #ddd;
}

.work_list .card_list > li{
    padding: 5vw 0;
}

.work_list .card_list > li + li{
    border-top: 1px dashed #ddd;
}


/* service_links
   ================================================================== */
.service_links{
	margin: 15vw 0 0;
}

.under_page_top + .service_links{
	margin-top: 0;
    padding-bottom: 15vw;
}

.service_links .list > li > a{
	padding: 10vw 0;
    display: flex;
    border-top: 1px solid #eee;
}

.service_links .list > li:last-child > a{
    border-bottom: 1px solid #eee;
}

.service_links .list span{
	display: block;
}

.service_links .list .inner{
	width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.service_links .list .title_box{
	display: block;
}

.service_links .list .service_number{
	display: flex;
    align-items: center;
}


.service_links .list .service_number span{
    font-size: 4vw;
    font-weight: 700;
	display: block;
    line-height: 150%;
    color: #172C62;
    font-family: 'Oswald';
    letter-spacing: 0.05em;
}

.service_links .list .service_number .siz_l{
    margin: -.5vw 0 0 3vw;
    font-size: 6vw;
    font-weight: 400;
}

.service_links .list .name{
    font-size: 4.5vw;
    font-weight: 700;
}

.service_links .list .more_btn_box{
    margin: 0 0 0;
	text-align: right;
}

.service_links .list .more_btn{
	display: inline-block;
}

.service_links .list .more_btn > span{
	display: inline-flex;
}


/* what
   ================================================================== */
.what{
	margin: 0 0 0;
}

.what .alternate{
	height: 80vw;
}

.what .alternate img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.what .scroll{
	margin: -15vw 0 0 -3vw;
    padding: 0 0 0 3vw;
    width: calc(100% + 3vw);
    overflow-x: scroll;
    position: relative;
    z-index: 1;
}

.what .list{
    width: 1000px;
    display: flex;
    justify-content: space-between;
    position: relative;
    z-index: 1;
}

.what .list > li{
    margin-right: 3vw;
	padding: 10px;
    width: 32%;
    background: #fff;
    line-height: 0;
    box-sizing: border-box;
}

.what .list > li iframe{
	width: 100%;
    height: 172px;
}

.what .block_title02{
	margin: 6vw 0 0;
}

.what .txt{
	margin: 6vw 0 0;
}

.what .txt + .txt{
	margin: 4vw 0 0;
}

.what .site_logo{
	margin: 6vw 0 0 auto;
    width: 45vw;
    line-height: 0;
}
    

/* index_loop
   ================================================================== */
.index_loop{
	margin: 10vw 0 0;
}

.index_loop .photos{
	margin: 6vw 0 0;
	padding: 0 0 0;
    visibility: hidden;
    display: flex;
    opacity: 0;
}

.index_loop .infiniteslide_wrap #loopslider,
.index_loop .infiniteslide_wrap #loopslider02{
    visibility: visible;
    opacity: 1;
}

.index_loop .photos li{
	width: 40vw;
    line-height: 0;
}


/* message_block
   ================================================================== */
.message_block{
	padding: 0 0 0;
}

.message_block .text_box{
	margin: 8vw 0 0;
}

.message_block .text_box > p{
	font-weight: 500;
}

.message_block .text_box > p + p{
	margin: 3vw 0 0;
}

.message_block .ceo{
	margin: 6vw 0 0 auto;
    width: 30vw;
    line-height: 0;
}

.message_block .ceo img{
	width: 100%;
}


/* philosophy_block
   ================================================================== */
.philosophy_block{
	padding: 15vw 0 0;
}

.philosophy_block .list{
	margin: 8vw 0 0;
}

.philosophy_block .list > li{
	margin: 4vw 0 0;
    padding: 5vw 5vw;
    background: #F8F8FB;
}

.philosophy_block .list h3{
	padding: 0 0 0 8vw;
    font-size: 4.5vw;
    font-weight: 700;
    letter-spacing: 0.05em;
    color: #172C62;
    position: relative;
}

.philosophy_block .list h3:before{
	content: "";
	background: #172C62;
	width: 10vw;
	height: 1px;
	position: absolute;
	top: 50%;
	left: -5vw;
}

.philosophy_block .list p{
	margin: 3vw 0 0;
    font-weight: 500;
}


/* company_block
   ================================================================== */
.company_block{
	padding: 15vw 0 15vw;
}

.company_block .common_table{
	margin: 8vw 0 0;
}


/* company_page solar_inspection
   ================================================================== */
.company_page .solar_inspection{
    margin-top: -15vw;
    padding-top: 0;
    padding-bottom: 0;
    border-bottom: none;
}


/* organization
   ================================================================== */
.organization{
	padding: 15vw 0 15vw;
}

.organization .photo{
	margin: 8vw 0 0;
}


/* under_page_kv
   ================================================================== */
.under_page_kv{
	position: relative;
}

.under_page_kv.txtin{
	border-bottom: 1px solid #DDE7EE;
}

.under_page_kv .inner{
	position: relative;
}

.under_page_kv .photo{
	margin: 0 -3vw;
    height: 40vw;
    position: relative;
    z-index: 1;
}

.under_page_kv .photo img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.under_page_kv .text_box{
	padding: 5vw 5vw;
    position: relative;
}

.under_page_kv .text_box:before{
	content: "";
	background: #F6F6F8;
	width: 100vw;
	height: calc(100% + 10vw);
	position: absolute;
	bottom: 0;
	left: 0;
}

.under_page_kv .text_box > *{
	position: relative;
    z-index: 1;
}


/* block_section
   ================================================================== */
.block_section{
    padding: 12vw 0;
	border-bottom: 1px solid #DDE7EE;
}


/* section_title
   ================================================================== */
.section_title{
	font-size: 4.5vw;
    font-weight: 800;
    color: #172C62;
}

.section_title + p{
	margin: 2vw 0 0;
    font-weight: 500;
}


/* box_title
   ================================================================== */
.box_title{
    padding-left: 4vw;
	font-size: 4.2vw;
    font-weight: 800;
    position: relative;
}

.box_title:before{
	content: "";
	background: #C12C6F;
	width: 1.8vw;
	height: 1.8vw;
	position: absolute;
	top: 2vw;
	left: 0;
    border-radius: 50px;
}


/* sp_scroll_photos
   ================================================================== */
.sp_scroll_photos{
    margin: 6vw 0 0;
    overflow-x: scroll;
}

.sp_scroll_photos > ul{
    width: 150vw;
    display: flex;
}

.sp_scroll_photos > ul > li{
    width: 50%;
    line-height: 0;
}


/* sp_1column
   ================================================================== */
.sp_1column{
    margin: 6vw 0 0;
}

.sp_1column > ul{
    width: 100%;
}

.sp_1column > ul > li{
    width: 100%;
    line-height: 0;
}


/* photo_box
   ================================================================== */
.photo_box{
    margin: 6vw 0 0;
    line-height: 0;
}

.photo_box.w450 img{
    width: 100%;
    max-width: 450px;
}

.photo_box.w700 img{
    width: 100%;
    max-width: 750px;
}

.photo_box p{
    padding: 2vw 0 0;
    font-size: 3.0vw;
    font-weight: 500;
}


/* security_maintenance
   ================================================================== */
.security_maintenance{
    padding-top: 8vw;
}


/* security_bottom
   ================================================================== */
.security_bottom{
    padding-bottom: 20vw;
}

.security_bottom .list{
    margin: 0 0 0;
}

.security_bottom .list > li + li{
    margin: 10vw 0 0;
}

.security_bottom .list .text_box{
    padding: 3vw 0 0;
}

.security_bottom .list .text_box p{
    margin: 1vw 0 0;
}


/* harmful_bird
   ================================================================== */
.harmful_bird{
    padding-top: 8vw;
}


/* hub_prevention
   ================================================================== */
.hub_prevention{
    padding-bottom: 20vw;
}


/* text_box_common
   ================================================================== */
.block_section .text_box_common{
    margin: 5vw 0 0;
}

.block_section .text_box_common.mat_0{
    margin-top: 0;
}

.block_section .text_box_common p{
    margin: 3vw 0 0;
    font-weight: 500;
}

.block_section .text_box_common > p:first-child{
    margin-top: 0;
}


/* solar_system
   ================================================================== */
.solar_system{
    padding-top: 10vw;
}

.solar_system .column_2{
    margin: 3vw 0 0;
}

.solar_system .bg_box{
    margin: 8vw 0 0;
    padding: 6vw 4vw;
    background: #F9F8F2;
}


/* storage_battery
   ================================================================== */
.storage_battery .check_list{
    margin-top: 3vw;
}

.storage_battery .photo_flex{
    margin: 8vw 0 0;
    background: #F9F8F2;
}

.storage_battery .photo_flex .flex_text_box{
    padding: 5vw 4vw;
}

.storage_battery .border_box{
    margin: 10vw 0 0;
    padding: 5px;
    background: #F2F6EC;
    border: 1px solid #78B13A;
}

.storage_battery .border_box .inbox{
    padding: 5vw 4vw;
    background: #fff;
}

.storage_battery .border_box p{
    font-weight: 500;
}

.storage_battery .border_box .f18{
    margin: 1vw 0 0;
}

.storage_battery .border_box .f18 + p{
    margin: 3vw 0 0;
}


/* box_with_title
   ================================================================== */
.box_with_title{
    margin: 12vw 0 0;
    padding: 3vw 5vw 5vw;
    background: #F8F8FB;
    border-radius: 15px;
    position: relative;
}

.box_with_title .ttl{
    position: absolute;
    top: -4vw;
    left: 5vw;
}

.box_with_title .ttl > span{
    padding: 2vw 4vw;
    font-size: 3.5vw;
    font-weight: 500;
    color: #fff;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    border-radius: 50px;
    background: #1A64AE;
}

/* green */
.box_with_title.green{
    background: #F9F8F2;
}

.box_with_title.green .ttl > span{
    background: #27AE60;
}

/* red */
.box_with_title.red{
    background: #F9F8F2;
}

.box_with_title.red .ttl > span{
    background: #E74C3C;
}


/* ttl_in_photo
   ================================================================== */
.ttl_in_photo{
    position: relative;
    line-height: 0;
}

.ttl_in_photo .photo_ttl{
    margin: auto;
    position: absolute;
    left: 0;
    right: 0;
    bottom: -5vw;
    text-align: center;
}

.ttl_in_photo .photo_ttl > span{
    padding: 2vw 4vw;
    font-size: 3.5vw;
    font-weight: 500;
    color: #fff;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    border-radius: 50px;
    background: #78B13A;
}

.ttl_in_photo.red .photo_ttl > span{
    background: #E74C3C;
}


/* site_logo
   ================================================================== */
.block_section .site_logo{
    width: 40vw;
}


/* font_combination
   ================================================================== */
.font_combination .text_16{
    font-size: 3.6vw;
    font-weight: 700;
}

.font_combination .ttl{
    margin: 2vw 0 0;
    font-size: 4.8vw;
    font-weight: 800;
}

.font_combination .bg_txt{
    margin: 3vw 0 0;
}

.font_combination .bg_txt > span{
    padding: 1vw 3vw;
    font-size: 3.5vw;
    line-height: 150%;
    font-weight: 700;
    background: #F6F6F8;
    display: inline-block;
}


/* remake
   ================================================================== */
.remake .photo_flex{
    margin-top: 10vw;
}

.remake .flex_text_box{
    margin-top: 8vw;
}

.remake .box_with_title .site_logo{
    margin: 6vw 0 5vw;
}

.remake .remake_message{
    margin: 10vw 0 0;
}

.remake .remake_message .thm{
    margin: 0 auto 5vw;
    padding: 2vw;
    width: 70vw;
    background: #ECECF0;
    border-radius: 500px;
    box-sizing: border-box;
    line-height: 0;
}


/* solar_inspection
   ================================================================== */
.solar_inspection{
    padding-bottom: 25vw;
}

.solar_inspection .check_list{
    margin-top: 2vw;
}

.solar_inspection .box_with_title .photos{
    margin: 8vw 0 5vw;
    display: flex;
}

/* solar_inspection_proof */
.solar_inspection .solar_inspection_proof{
    margin: 10vw 0 0;
}

.solar_inspection .solar_inspection_proof .sp_scroll_photos > ul{
    width: 200vw;
    justify-content: space-between;
}

.solar_inspection .solar_inspection_proof .sp_scroll_photos > ul > li{
    width: 29%;
    box-sizing: border-box;
}

.solar_inspection .solar_inspection_proof .sp_scroll_photos > ul > li.w300{
    width: 39%;
}

.solar_inspection .solar_inspection_proof .sp_scroll_photos .list_ttl{
    padding: 2vw 0 0;
    font-size: 3.2vw;
    font-weight: 700;
    text-align: center;
}

/* solar_inspection_block */
.solar_inspection .solar_inspection_block{
    margin: 10vw 0 0;
}

.solar_inspection .solar_inspection_block .photo{
    height: 80vw;
    border-radius: 10px;
    overflow: hidden;
}

.solar_inspection .solar_inspection_block .photo img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.solar_inspection .solar_inspection_block .inspection_kv_text{
	margin: -16vw 0 0;
}

.solar_inspection .solar_inspection_block .inspection_kv_text .font_combination{
    padding: 5vw 5vw 0 0;
    max-width: 90%;
    background: #fff;
    display: inline-block;
    box-sizing: border-box;
    border-radius: 0 10px 0 0;
}

.solar_inspection .solar_inspection_block .sp_scroll_photos > ul > li{
    width: calc(100% / 4);
}

/* solar_cv */
.solar_inspection .solar_cv{
    margin: 10vw 0 0;
}

.solar_inspection .solar_cv .flex{
    margin: 6vw 0 0;
}

.solar_inspection .solar_cv .solar_cv_right{
    padding: 6vw 0 0;
    box-sizing: border-box;
}

.solar_inspection .solar_cv .solar_cv_right p{
    font-size: 3.6vw;
    font-weight: 700;
}

.solar_inspection .solar_cv .solar_cv_right h4{
    margin: 3vw 0 0;
}

.solar_inspection .solar_cv .solar_cv_right h4 > span{
    padding: 2vw 4vw;
    font-size: 3.5vw;
    font-weight: 500;
    display: inline-flex;
    color: #fff;
    background: #C12C6F;
    border-radius: 0 50px 50px 0;
}

.solar_inspection .solar_cv .solar_cv_right .catch{
    margin: 3vw 0 0;
    font-size: 4.9vw;
    font-weight: 800;
    color: #F83585;
}


/* cv_box
   ================================================================== */
.cv_box{
    padding: 3vw;
    width: 70vw;
    background: #172C62;
    border-radius: 5px;
    box-sizing: border-box;
}

.cv_box .site_name > span{
    font-size: 3.2vw;
    display: inline-block;
    color: #fff;
    font-weight: 700;
}

.cv_box .site_name .siz_l{
    font-size: 3.6vw;
}

.cv_box .cv_btn{
    margin: 3vw 0 0;
}

.cv_box .cv_btn a{
    padding: 0 7vw;
    height: 12vw;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 5px;
    background: #fff;
}

.cv_box .cv_btn a svg{
    width: 4vw;
}

.cv_box .cv_btn a .txt{
    margin: 0 0 0 2vw;
    font-size: 3.4vw;
    font-weight: 800;
    display: block;
    line-height: 150%;
    color: #111;
}

.cv_box .txtbox{
    padding: 3vw 0 0;
    text-align: center;
}

.cv_box .txtbox *{
    color: #fff;
}

.cv_box .txtbox .ttl{
    font-size: 3.2vw;
    font-weight: 500;
}

.cv_box .txtbox .tel{
    margin: 1vw 0 0;
}

.cv_box .txtbox .tel a{
    display: flex;
    align-items: baseline;
    justify-content: center;
}

.cv_box .txtbox .tel a span{
    font-size: 6vw;
    display: block;
    line-height: 150%;
    font-weight: 800;
    letter-spacing: 0.04em;
}

.cv_box .txtbox .tel a .siz_s{
    font-size: 4.5vw;
    letter-spacing: 0.05em;
}

.cv_box .txtbox .time{
    margin: 2vw 0 0;
    font-size: 3.2vw;
    font-weight: 500;
}


/* pagination
   ================================================================== */
.pagination{
	text-align: center;
	padding: 10vw 0 5px;
	font-size: 0;
}

.pagination li{
	display: inline-block;
    vertical-align: top;
	margin: 6px 3px 0;
}

.pagination li.disabled{
	display: none;
}

.pagination a,
.pagination .active span{
	text-decoration: none;
	background: #ddd;
	color: #FFF;
	padding: 2px 0 0;
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 16px;
	width: 34px;
	height: 34px;
    box-sizing: border-box;
    letter-spacing: 0;
    transition: all ease-out 0.3s;
    font-family: "メイリオ","ms pgothic", sans-serif;
}

.pagination .active span{
	background: #1C4873;
}


/* sns_area
   ================================================================== */
.sns_area{
	margin: 4vw 0 0;
	line-height: 1;
    overflow: hidden;
}

.sns_area div{
	margin-bottom: 5px;
	margin-right: 5px;
	float: left;
	display: inline-block;
	font-size: 0;
	line-height: 1;
}

.linebutton img{
	width: 21px;
}


/* detail_page
   ================================================================== */
.detail_page{
	margin: 0 0 0;
	font-size: 16px;
	word-break: break-all;
}

.detail_page .detail_box h1{
	border-bottom: 1px solid #172C62;
	font-size: 18px;
	font-weight: bold;
	margin: 0 0 10px;
	padding: 0 10px 10px;
	word-break: break-all;
	line-height: 150%;
}

.detail_page .flex{
	margin: 4vw 0 0;
    display: flex;
}

.detail_page .date{
    width: 22vw;
    font-size: 3.5vw;
    font-weight: 400;
    display: inline-block;
    vertical-align: middle;
}

.detail_page .date.color_red{
    color: #D8A1A1;
}

.detail_page .hash_categories{
    width: calc(100% - 22vw);
}

.detail_page .hash_categories{
	margin: -.5vw 0 0;
}

.detail_page .photo{
	margin: 4vw 0 0;
	line-height: 0;
}
	
.detail_page .photo img{
	max-height: 500px;
}
	
.detail_page .detail_body{
	margin: 4vw 0 0;
    clear: both;
}


/* detail_btn_area
   ================================================================== */
.detail_btn_area{
	margin: 5vw 0 0;
    padding: 10px;
	font-size: 0;
    text-align: center;
    background: #F9F9F9;
}

.detail_btn_area .btn{
	margin: 0;
	display: inline-block;
	vertical-align: top;
	box-sizing: border-box;
	width: 40%;
    max-width: 310px;
}
	
.detail_btn_area .btn.prev,
.detail_btn_area .btn.next{
	width: 28%;
}

.detail_btn_area .btn.back{
	margin: 0 2%;
}

.detail_btn_area .btn a,
.detail_btn_area .btn button{
	display: block;
	margin: auto;
	padding: 10px 0;
    box-sizing: border-box;
	width: 100%;
    height: 50px;
	background: #fff;
    border: 1px solid #ddd;
    border-radius: 0;
	color: #333;
	text-align: center;
	font-size: 16px;
	letter-spacing: 0.10em;
	font-family: "Noto Sans JP","メイリオ","ms pgothic", sans-serif;
}


/* list_page
   ================================================================== */
.list_page{
    position: relative;
}

.list_page .inner{
    padding-top: 6vw;
    position: relative;
}


/* show_page
   ================================================================== */
.show_page{
    margin-top: -3vw;
    position: relative;
}

.show_page .inner{
    padding-bottom: 25vw;
    position: relative;
}


/* select_category
   ================================================================== */
.select_category{
    position: absolute;
    top: 0;
    right: 0;
    display: flex;
}

.select_category .select_category_inbox{
    position: relative;
}

.select_category .select_btn{
    padding: 2vw 10vw 2vw 5vw;
    font-size: 3.4vw;
    font-weight: 500;
    position: relative;
    cursor: pointer;
}

.select_category .select_btn::before{
    content: "";
    margin: auto;
    background-image: url("../images/common/icon_down_arrow.svg");
    background-position: center center;
    background-repeat: no-repeat;
    background-size: 100%;
    width: 3vw;
    height: 3vw;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 3vw;
    transition: .3s;
}

.select_category .on .select_btn::before{
    transform: rotate(180deg);
}

.select_category ul{
	position: absolute;
	min-width: 45vw;
	top: 100%;
	right: 0;
	z-index: 10;
    display: none;
}

.select_category ul > li{
    margin: 0 0 0;
}

.select_category ul > li a{
	padding: 0 8vw 0 4vw;
	display: flex;
	white-space: nowrap;
	height: 15vw;
	align-items: center;
	font-size: 3.4vw;
    letter-spacing: 0.1em;
	font-weight: 400;
	color: #fff;
	background-color: rgba(0,0,0,.9);
    background-image: url("../images/common/icon_nav_arrow.svg");
    background-position: 93% center;
    background-repeat: no-repeat;
    background-size: auto;
	transition: .3s;
    position: relative;
    border-bottom: 1px solid #fff;
}


/* works_detail_page
   ================================================================== */
.works_detail_page .works_slider{
    margin: 0;
    opacity: 0;
    transition: .3s;
    overflow: visible;
}

.works_detail_page .works_slider.swiper-container-horizontal{
    opacity: 1;
}

.works_slider .swiper-slide img{
    line-height: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    aspect-ratio: 700 / 400;
}

.works_slider .swiper-pagination{
    margin-top: 5vw;
    bottom: auto !important;
    position: relative;
    text-align: left;
    display: block;
}

.works_slider .swiper-pagination-bullet{
    margin: 0 2vw 0 0 !important;
    width: 3vw;
    height: 3vw;
    display: inline-block;
    border-radius: 100%;
    background: #ddd;
    opacity: 1;
    box-sizing: border-box;
}

.works_slider .swiper-pagination-bullet-active{
    background: #C12C6F;
}

/* works_detail_text_box */
.works_detail_text_box{
    padding: 10vw 0 0;
}

.works_detail_text_box .date{
    margin: 3vw 0;
    width: auto;
    font-size: 3.5vw;
    font-weight: 400;
}

.works_detail_text_box .work_title{
    font-size: 4.2vw;
    font-weight: 700;
}

/* works_sub_list */
.works_sub_list{
    margin: 12vw 0 15vw;
}

.works_sub_list > li{
    margin: 10vw 0 0;
}

.works_sub_list .thm{
    width: 100%;
    line-height: 0;
}

.works_sub_list .thm img{
    width: 100%;
}

.works_sub_list .text_box{
    padding: 5vw 0 0;
    box-sizing: border-box;
}

.works_sub_list .text_box h3{
    font-size: 3.7vw;
    font-weight: 700;
    position: relative;
}

.works_sub_list .text_box p{
    margin: 3vw 0 0;
    font-size: 3.2vw;
}


/* contact_block
   ================================================================== */
.contact_block{
	margin: 0 0 25vw;
}


/* contact
   ================================================================== */
.contact{
	padding: 2vw 0 0;
}

/* form */
.contact form{
	margin-top: -90px;
    padding-top: 90px;
}

.contact form *{
	font-family: "Noto Sans JP";
}

.contact .top_note{
	margin: 0 0 6vw;
    text-align: center;
    font-size: 4vw;
    font-weight: 700;
}

.contact .top_text{
	margin: 0 -4vw;
    text-align: center;
    font-size: 3.0vw;
}

.contact .conf_text{
    margin: 10vw 0 0;
	font-size: 4vw;
    color: #E64C3B;
    text-align: center;
    font-weight: 700;
	line-height: 150%;
}

.contact .req{
	color: #E64C3B;
}

.contact table{
    margin: 10vw auto 0;
	width: 100%;
	box-sizing: border-box;
}

.contact th,
.contact td{
	font-size: 16px;
	line-height: 150%;
	letter-spacing: 0.10em;
	width: 100%;
	display: block;
	font-weight: normal;
	border-bottom: none;
	box-sizing: border-box;
}

.contact th{
	padding: 0 0 10px;
    font-weight: 500;
}

.contact td{
	padding: 0 0 25px;
    position: relative;
}

.contact td .balloon{
    position: absolute;
    bottom: -25px;
    left: 15px;
    height: 16px;
    line-height: 1;
    font-size: 13px;
    color: #E64C3B;
    letter-spacing: 0;
}

.contact output,
.contact input,
.contact select,
.contact textarea{
	margin: 0;
	font-size: 16px;
    line-height: 170%;
    letter-spacing: 0.1em;
	padding: 15px;
	box-sizing: border-box;
	width: 100%;
    background: #F8F8F8;
	border: 1px solid #F8F8F8;
	vertical-align: middle;
}

/* 確認画面の入力文字背景 */
.contact output{
    display: block;
    background: rgba(246,172,43,.1);
    border-color: rgba(246,172,43,.1);
}

input:focus,
select:focus,
textarea:focus{
    outline: none;
}

textarea::-webkit-input-placeholder,
select::-webkit-input-placeholder,
input::-webkit-input-placeholder{
    color: #ccc;
}

textarea::-moz-placeholder,
textarea::-moz-placeholder,
select::-moz-placeholder{
    color: #ccc; opacity: 1;
}

textarea:-ms-input-placeholder,
select:-ms-input-placeholder,
input:-ms-input-placeholder{
    color: #ccc;
}

.contact textarea{
    height: 50vw;
	line-height: 150%;
}

.zas_btn_area{
	margin: auto;
	text-align: center;
	padding: 30px 0 0;
	font-size: 0;
	box-sizing: border-box;
	max-width: 500px;
}

.zas_btn_area button{
	font-size: 16px;
	color: #FFF;
	border: none;
	position: relative;
	overflow: hidden;
	text-align: center;
    transition: .3s;
}

.zas_btn_area button > span{
	padding: 12px 0;
	border: none;
	display: block;
	font-size: 16px;
    font-weight: 400;
	line-height: 150%;
	color: #FFF;
}

.zas_btn_area button:disabled{
	background: #ccc !important;
    border-color: #ccc !important;
    cursor: auto;
}

.zas_btn_area button:disabled span{
    color: #fff !important;
}

.zas_btn_area .zas_btn01 button{
	background: #C12C6F;
    border: 1px solid #C12C6F;
	width: 55%;
	max-width: 260px;
}

.zas_btn_area .zas_btn02 button{
	margin-right: 2%;
	background: #ccc;
	width: 28%;
}

.zas_btn_area .zas_btn03 button{
	background: #C12C6F;
    border: 1px solid #C12C6F;
	width: 55%;
	max-width: 260px;
}


/* thanks
   ================================================================== */
.thanks h3{
	font-size: 4.5vw;
    text-align: center;
}

.thanks p{
    margin: 10vw 0 0;
	font-size: 3.5vw;
	line-height: 150%;
	text-align: center;
}

.thanks .go_top_btn{
	margin: 15vw 0 0;
	text-align: center;
}

.thanks .go_top_btn a{
	display: inline-flex;
}


/* comingsoon
   ================================================================== */
.comingsoon{
	padding: 6vw 0 25vw;
}

.comingsoon .box{
    height: 80vw;
	display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    border: 1px solid #ddd;
}

.comingsoon h3{
	font-size: 4.5vw;
    text-align: center;
}


/* banners
   ================================================================== */
.banners{
	padding: 15vw 0 0;
}

.banners_slider{
	margin: 0 0 0 !important;
    width: 80vw;
	position: relative;
    overflow: inherit !important;
}

.banners_slider{
    opacity: 0;
    transition: .3s;
}

.banners_slider.swiper-container-horizontal{
    opacity: 1;
}

.banners_slider .swiper-wrapper{
	line-height: 0;
}

.banners_slider .swiper-slide{
	line-height: 0;
}

.banners_slider .swiper-slide a{
	line-height: 0;
    display: block;
}


/* swiper-pagination */
.banners_slider .swiper-pagination{
    margin-top: 5vw;
    bottom: auto !important;
    position: relative;
    text-align: left;
    display: block;
}

.banners_slider .swiper-pagination-bullet{
    margin: 0 2vw 0 0 !important;
    width: 4vw;
    height: 4vw;
    display: inline-block;
    border-radius: 100%;
    background: #ddd;
    opacity: 1;
    box-sizing: border-box;
}

.banners_slider .swiper-pagination-bullet-active{
    background: #C12C6F;
}


@media screen and (min-width : 500px){


    /* under_page_top
       ================================================================== */
    .under_page_top .title_block .inner{
        padding-top: 5.5vw;
        padding-bottom: 8.5vw;
    }

    .under_page_top .title:before{
        width: 5.0vw;
        left: 2.0vw;
    }

    .under_page_top .title .jpn{
        font-size: 4.5vw;
    }

    .under_page_top .title .eng{
        margin: 1.5vw 0 0;
        font-size: 1.3vw;
    }

    /* pankz */
    .under_page_top .pankz_block{
        padding: 4.0vw 0 4.5vw;
    }

    .pankz{
        margin: 0 auto 0;
        padding: 0;
        box-sizing: border-box;
    }

    .pankz > li{
        margin: 0 2.7vw 1.5vw 0;
    }

    .pankz > li::before{
        width: .5vw;
        height: 1.9vw;
        left: calc(100% + 1.0vw);
    }

    .pankz > li > span,
    .pankz > li a{
        font-size: 1.2vw;
    }

    .pankz > li a:hover{
        text-decoration: underline;
    }


    /* block_title
       ================================================================== */
    .block_title .eng{
        font-size: 3.5vw;
    }

    .block_title .jpn{
        margin: .2vw 0 0;
        font-size: 1.4vw;
    }


    /* block_title02
       ================================================================== */
    .block_title02 .eng{
        font-size: 3.0vw;
    }

    .block_title02 .jpn{
        margin: .3vw 0 0;
        padding-left: 4.2vw;
        font-size: 1.4vw;
    }

    .block_title02 .jpn:before{
        width: 3.5vw;
    }

    
    /* hash_categories
       ================================================================== */
    .hash_categories{
        display: block;
    }

    .hash_categories > a,
    .hash_categories > span{
        margin: 1.0vw 1.0vw 0 0;
        font-size: 1.3vw;
        transition: .3s;
    }

    .hash_categories > a:hover{
        opacity: .5;
    }


    /* hash_categories_box
       ================================================================== */
    .hash_categories_box{
        display: block;
    }

    .hash_categories_box > a,
    .hash_categories_box > span{
        margin: 1.0vw 1.0vw 0 0;
        padding: .8vw 2.1vw;
        font-size: 1.2vw;
        transition: .3s;
    }

    .hash_categories_box > a:hover{
        opacity: .5;
    }
   

    /* common_table
       ================================================================== */	
    .common_table{
        border-bottom: none;
    }
    
    .common_table th,
    .common_table td{
    	padding: 1.5vw 3.0vw;
        font-size: 1.5vw;
        line-height: 2.5vw;
        width: auto;
        display: table-cell;
        border-top: 1px solid #C8D4DC;
        border-bottom: 1px solid #C8D4DC;
    }
    
    .common_table th{
        width: 21.0vw;
    }

    .common_table td .box + .box{
    	margin: 2vw 0 0;
        padding: 2vw 0 0;
    }


    /* check_list
       ================================================================== */
    .check_list > li{
        padding: 1.5vw 1.5vw 1.5vw 1.0vw;
    }
    
    .check_list li > span{
        padding-left: 3.5vw;
        font-size: 1.5vw;
    }
    
    .check_list li .arrow{
        margin-left: 1.7vw;
        width: 3.0vw;
    }

    .check_list li > span:nth-child(n+2){
        padding-left: 1.3vw;
    }

    .check_list li > span::before{
        width: 2.3vw;
        height: 2.3vw;
        top: .5vw;
        left: 0;
    }

    .check_list.circle li > span{
        padding-left: 3.4vw;
    }

    .check_list.circle li > span::before{
        width: 1.8vw;
        height: 1.8vw;
        top: .4vw;
        left: .5vw;
    }


    /* kv
       ================================================================== */
    .kv{
        margin: 0 10.0vw 0 0;
        padding: 0 0 0 0vw;
    }
    
    .kv .inner{
        height: 95vh;
        min-height: 600px;
    }

    .kv .title{
        padding-left: 3vw;
    }

    .kv .title .jpn{
        font-size: 3.5vw;
        line-height: 5.5vw;
        letter-spacing: 0.30em;
    }

    .kv .title .eng{
        margin: 1.5vw 0 0;
        font-size: 1.8vw;
    }

    .kv p{
        margin: .5vw 0 0;
    }

    .kv p > span{
        margin: 1.5vw 0 0;
        padding: .8vw 1.4vw .8vw 3vw;
        font-size: 1.5vw;
    }

    .kv p .name{
        width: 29.6vw;
        top: calc(100% + -2.5vw);
        left: 38%;
    }
        

    /* fix_cv
       ================================================================== */
    .fix_cv,
    .fix_cv .position_box{
        display: none;
    }


    /* card_box
       ================================================================== */
    .card_box .thm img{
        transition: .3s;
    }

    .card_box .text_box{
        padding: 1.5vw 1.5vw 0;
    }

    .card_box .date{
        font-size: 1.3vw;
    }

    .card_box .title{
        margin: .5vw 0 0;
        font-size: 1.7vw;
        transition: .3s;
    }
    
    .card_box a:hover .thm img{
        transform: scale(1.05);
    }

    .card_box a:hover .title{
        color: #C12C6F;
    }
        

    /* work_card_box
       ================================================================== */
    .work_card_box .thm img{
        transition: .3s;
    }

    .work_card_box .text_box{
        padding: 1.5vw 1.5vw 0;
    }

    .work_card_box .date{
        font-size: 1.3vw;
    }

    .work_card_box .title{
        margin: .5vw 0 0;
        font-size: 1.7vw;
        transition: .3s;
    }
    
    .work_card_box a:hover .thm img{
        transform: scale(1.05);
    }

    .work_card_box a:hover .title{
        color: #C12C6F;
    }

    /* card_list */
    .card_list .work_card_box a{
        display: flex;
    }

    .card_list .work_card_box .thm{
        width: 35.0vw;
    }

    .card_list .work_card_box .text_box{
        padding: 0 0 0 3.0vw;
        width: calc(100% - 35.0vw);
        box-sizing: border-box;
    }


    /* index_blogs
       ================================================================== */
    .index_blogs{
        padding: 9.0vw 0 9.0vw;
    }

    .index_blogs .index_blogs_slider{
        margin: 4.5vw 0 0;
        width: 72.0vw;
    }

    .index_blogs .more_btn{
        margin: 5.5vw 0 0;
    }


    /* index_works
       ================================================================== */
    .index_works{
        padding: 9.5vw 0 9.0vw;
    }

    .index_works .index_blogs_slider{
        margin: 4.5vw 0 0;
        width: 72.0vw;
    }

    .index_works .more_btn{
        margin: 5.5vw 0 0;
    }


    /* blogs_list
       ================================================================== */
    .blogs_list{
        padding: 0 0 1.7.0vw;
    }

    .blogs_list .card_list{
        margin: 0 0 0;
        font-size: 0;
    }

    .blogs_list .card_list > li{
        margin: 4.0vw 2% 0 0;
        width: 32%;
        display: inline-block;
        vertical-align: top;
        box-sizing: border-box;
    }

    .blogs_list .card_list > li:nth-child(3n+3){
        margin-right: 0;
    }


    /* work_list
       ================================================================== */
    .work_list{
        padding: 0 0 17.0vw;
    }

    .work_list .card_list{
        margin: 0 0 0;
    }

    .work_list .card_list > li{
        margin: 0 0 0;
        padding: 3.5vw 0;
    }


    /* service_links
       ================================================================== */
    .service_links{
        margin: 8.0vw 0 0;
    }

    .under_page_top + .service_links{
        padding-bottom: 15.0vw;
    }

    .service_links .list > li > a{
        padding: 5.4vw 0;
        position: relative;
    }

    .service_links .list .inner{
        display: flex;
        justify-content: space-between;
        align-items: center;
    }

    .service_links .list .service_number span{
        font-size: 1.4vw;
        font-weight: 700;
        display: block;
        line-height: 150%;
        color: #172C62;
        font-family: 'Oswald';
        letter-spacing: 0.05em;
    }

    .service_links .list .service_number .siz_l{
        margin: -.1vw 0 0 1.6vw;
        font-size: 2.2vw;
    }

    .service_links .list .name{
        margin: .5vw 0 0;
        font-size: 1.9vw;
        transition: .3s;
    }

    .service_links .list a:hover .name{
        color: #C12C6F;
    }

    .service_links .list .more_btn_box{
        margin: 0 0 0;
    }

    .service_links .list a:hover .more_btn span::before{
        transform: translateX(10px);
    }


    /* what
       ================================================================== */
    .what{
        margin: 0 0 0;
    }

    .what .alternate{
        height: 52.0vw;
    }

    .what .scroll{
        margin: -8.0vw 0 0;
        padding: 0;
        width: 100%;
        overflow-x: auto;
    }

    .what .list{
        width: 100%;
        display: flex;
        justify-content: space-between;
    }

    .what .list > li{
        margin: 0;
        padding: 1.0vw;
        width: 32%;
        box-sizing: border-box;
    }

    .what .list > li iframe{
        height: 16.8vw;
    }

    .what .block_title02{
        margin: 5.5vw 0 0;
    }

    .what .txt{
        margin: 3.0vw 0 0;
    }

    .what .txt + .txt{
        margin: 2.5vw 0 0;
    }

    .what .site_logo{
        margin: 4.0vw 0 0 auto;
        width: 20.5vw;
    }
    

    /* index_loop
       ================================================================== */
    .index_loop{
        margin: 6.5vw auto 0;
    }

    .index_loop .tab.pc{
        padding: 0 2.0vw;
        display: block;
    }

    .index_loop .photos{
        margin: 4.0vw 0 0;
        display: flex;
        opacity: 1;
        visibility: visible;
    }

    .index_loop .photos + .photos{
        justify-content: flex-end;
    }

    .index_loop .photos li{
        width: 18%;
        max-width: 22.0vw;
    }


    /* message_block
       ================================================================== */
    .message_block{
        padding: 0 0 0;
    }

    .message_block .text_box{
        margin: 3.0vw 0 0;
    }

    .message_block .text_box > p + p{
        margin: 1.5vw 0 0;
    }

    .message_block .ceo{
        margin: 4.0vw 0 0 auto;
        width: 15.4vw;
    }


    /* philosophy_block
       ================================================================== */
    .philosophy_block{
        padding: 10.0vw 0 0;
    }

    .philosophy_block .list{
        margin: 3.0vw 0 0;
    }

    .philosophy_block .list > li{
        margin: 2.5vw 0 0;
        padding: 3.0vw;
    }

    .philosophy_block .list h3{
        padding: 0 0 0 3.0vw;
        font-size: 2.6vw;
    }

    .philosophy_block .list h3:before{
        width: 4.0vw;
        left: -3.0vw;
    }

    .philosophy_block .list p{
        margin: 1.7vw 0 0;
        line-height: 2.8vw;
    }


    /* company_block
       ================================================================== */
    .company_block{
        padding: 10.0vw 0 15.0vw;
    }

    .company_block .common_table{
        margin: 3.0vw 0 0;
    }


    /* company_page solar_inspection
       ================================================================== */
    .company_page .solar_inspection{
        margin-top: -15.0vw;
        padding-top: 1.0vw;
    }


    /* organization
       ================================================================== */
    .organization{
        padding: 10.0vw 0 15.0vw;
    }

    .organization .photo{
        margin: 3.0vw 0 0;
    }


    /* under_page_kv
       ================================================================== */
    .under_page_kv .photo_position{
        position: relative;
        height: 35.0vw;
    }

    .under_page_kv .photo{
        margin: 0;
        width: 96vw;
        height: 100%;
        position: absolute;
        top: 0;
        right: 2.0vw;
    }

    .under_page_kv .text_box{
        padding: 3.5vw 0 5.7vw 3.0vw;
    }

    .under_page_kv .text_box:before{
        height: calc(100% + 7.8vw);
        bottom: 0;
        left: 0;
    }


    /* block_section
       ================================================================== */
    .block_section{
        padding: 7.0vw 0;
    }


    /* section_title
       ================================================================== */
    .section_title{
        font-size: 3.3vw;
    }

    .section_title + p{
        margin: 1.0vw 0 0;
    }


    /* box_title
       ================================================================== */
    .box_title{
        padding-left: 2.7vw;
        font-size: 2.7vw;
    }

    .box_title:before{
        width: 1.0vw;
        height: 1.0vw;
        top: 1.5vw;
    }


    /* sp_scroll_photos
       ================================================================== */
    .sp_scroll_photos{
        margin: 3.5vw 0 0;
        overflow-x: auto;
    }

    .sp_scroll_photos > ul{
        width: 90.0vw;
    }


    /* sp_1column
       ================================================================== */
    .sp_1column{
        margin: 3.5vw 0 0;
    }

    .sp_1column > ul{
        width: 90.0vw;
        display: flex;
    }

    .sp_1column > ul > li{
        width: 50%;
    }


    /* photo_box
       ================================================================== */
    .photo_box{
        margin: 3.5vw 0 0;
    }

    .photo_box.w450 img{
        width: 45%;
    }

    .photo_box.w700 img{
        width: 70%;
    }

    .photo_box p{
        padding: .6vw 0 0;
        font-size: 1.3vw;
    }


    /* security_maintenance
       ================================================================== */
    .security_maintenance{
        padding-top: 4.0vw;
    }


    /* security_bottom
       ================================================================== */
    .security_bottom{
        padding-bottom: 16.0vw;
    }

    .security_bottom .list{
        margin: -5.0vw 0 0;
        font-ize: 0;
    }

    .security_bottom .list > li{
        width: 45%;
        display: inline-block;
        vertical-align: top;
        box-sizing: border-box;
    }

    .security_bottom .list > li,
    .security_bottom .list > li + li{
        margin: 5.0vw 0 0;
    }

    .security_bottom .list > li:nth-child(2n+1){
        margin-right: 5%;
    }

    .security_bottom .list .text_box{
        padding: 1.5vw 0 0;
    }

    .security_bottom .list .text_box p{
        margin: .8vw 0 0;
    }


    /* harmful_bird
       ================================================================== */
    .harmful_bird{
        padding-top: 4.0vw;
    }


    /* hub_prevention
       ================================================================== */
    .hub_prevention{
        padding-bottom: 16.0vw;
    }


    /* text_box_common
       ================================================================== */
    .block_section .text_box_common{
        margin: 3.0vw 0 0;
    }

    .block_section .text_box_common p{
        margin: 1.2vw 0 0;
    }


    /* solar_system
       ================================================================== */
    .solar_system{
        padding-top: 6.0vw;
    }

    .solar_system .column_2{
        margin: 2.5vw 0 0;
        font-size: 0;
    }

    .solar_system .column_2 > li{
        width: 48%;
        vertical-align: top;
        box-sizing: border-box;
        display: inline-block;
    }

    .solar_system .column_2 > li:nth-child(2n+2){
        margin-left: 4%;
    }

    .solar_system .bg_box{
        margin: 3.8vw 0 0;
        padding: 2.8vw 3.0vw;
    }


    /* storage_battery
       ================================================================== */
    .storage_battery .check_list{
        margin-top: 1.5vw;
    }

    .storage_battery .photo_flex{
        margin: 4.2vw 0 0;
        display: flex;
    }

    .storage_battery .photo_flex .photo{
        width: 45.0vw;
    }

    .storage_battery .photo_flex .flex_text_box{
        padding: 2.5vw 3.5vw;
        width: calc(100% - 45.0vw);
        box-sizing: border-box;
    }

    .storage_battery .border_box{
        margin: 4.0vw 0 0;
    }

    .storage_battery .border_box .inbox{
        padding: 2.0vw 2.5vw;
    }

    .storage_battery .border_box .f18{
        margin: .5vw 0 0;
    }

    .storage_battery .border_box .f18 + p{
        margin: 1.5vw 0 0;
    }


    /* box_with_title
       ================================================================== */
    .box_with_title{
        margin: 6.3vw 0 0;
        padding: 2.2vw 3.0vw 3.5vw;
    }

    .box_with_title .ttl{
        top: -2.3vw;
        left: 3.0vw;
    }

    .box_with_title .ttl > span{
        padding: 1.0vw 2.2vw;
        font-size: 1.5vw;
    }


    /* ttl_in_photo
       ================================================================== */
    .ttl_in_photo .photo_ttl{
        bottom: -1.8vw;
    }

    .ttl_in_photo .photo_ttl > span{
        padding: .6vw 1.9vw;
        font-size: 1.4vw;
    }


    /* site_logo
       ================================================================== */
    .block_section .site_logo{
        width: 20.5vw;
    }


    /* font_combination
       ================================================================== */
    .font_combination .text_16{
        font-size: 1.6vw;
        line-height: 2.4vw;
    }

    .font_combination .ttl{
        margin: 1.0vw 0 0;
        font-size: 2.7vw;
    }

    .font_combination .bg_txt{
        margin: 2.0vw 0 0;
    }

    .font_combination .bg_txt > span{
        padding: .6vw 1.8vw;
        font-size: 1.5vw;
        line-height: 2.7vw;
    }


    /* remake
       ================================================================== */
    .remake .photo_flex{
        margin-top: 3.6vw;
        display: flex;
    }

    .remake .photo{
        width: 36.0vw;
    }

    .remake .flex_text_box{
        margin-top: 0;
        padding: 0 0 0 3.0vw;
        width: calc(100% - 36.0vw);
        box-sizing: border-box;
    }

    .remake .box_with_title{
        margin-top: 7.6vw;
    }

    .remake .box_with_title .site_logo{
        margin: 2.0vw 0 1.5vw;
    }

    .remake .box_with_title .check_list{
        margin: 1.0vw 0 0;
    }

    .remake .remake_message{
        margin: 3.5vw 0 0;
        display: flex;
        align-items: center;
    }

    .remake .remake_message .thm{
        margin: 0;
        padding: 1.0vw;
        width: 23.0vw;
    }

    .remake .remake_message .remake_message_right{
        padding: 0 0 0 4.0vw;
        width: calc(100% - 23.0vw);
        box-sizing: border-box;
    }


    /* solar_inspection
       ================================================================== */
    .solar_inspection{
        padding-bottom: 16.0vw;
    }

    .solar_inspection .check_list{
        margin-top: 1.0vw;
    }

    .solar_inspection .box_with_title .photos{
        margin: 2.5vw 0 3.0vw;
        width: 60.0vw;
    }

    /* solar_inspection_proof */
    .solar_inspection .solar_inspection_proof{
        margin: 3.0vw 0 0;
    }

    .solar_inspection .solar_inspection_proof .sp_scroll_photos > ul{
        width: 78.0vw;
    }

    .solar_inspection .solar_inspection_proof .sp_scroll_photos > ul > li{
        width: 22.0vw;
    }

    .solar_inspection .solar_inspection_proof .sp_scroll_photos > ul > li.w300{
        width: 30.0vw;
    }

    .solar_inspection .solar_inspection_proof .sp_scroll_photos .list_ttl{
        padding: .9vw 0 0;
        font-size: 1.3vw;
        line-height: 2.2vw;
    }

    /* solar_inspection_block */
    .solar_inspection .solar_inspection_block{
        margin: 5.3vw 0 0;
    }

    .solar_inspection .solar_inspection_block .photo{
        height: 32.0vw;
    }

    .solar_inspection .solar_inspection_block .inspection_kv_text{
        margin: -10.0vw 0 0;
    }

    .solar_inspection .solar_inspection_block .inspection_kv_text .font_combination{
        padding: 2.3vw 0 0 0;
        max-width: 90%;
    }

    .solar_inspection .solar_inspection_block .sp_scroll_photos > ul{
        width: 100%;
    }

    /* solar_cv */
    .solar_inspection .solar_cv{
        margin: 2.4vw 0 0;
    }

    .solar_inspection .solar_cv .flex{
        margin: 2.0vw 0 0;
        display: flex;
        align-items: center;
    }

    .solar_inspection .solar_cv .solar_cv_left{
        width: 23.0vw;
    }

    .solar_inspection .solar_cv .solar_cv_right{
        padding: 0 0 0 2.6vw;
        width: calc(100% - 23.0vw);
    }

    .solar_inspection .solar_cv .solar_cv_right p{
        font-size: 1.6vw;
        line-height: 2.4vw;
    }

    .solar_inspection .solar_cv .solar_cv_right h4{
        margin: 1.5vw 0 0;
    }

    .solar_inspection .solar_cv .solar_cv_right h4 > span{
        padding: .5vw 2.0vw .5vw 1.5vw;
        font-size: 1.5vw;
    }

    .solar_inspection .solar_cv .solar_cv_right .catch{
        margin: 1.0vw 0 0;
        font-size: 2.7vw;
    }


    /* cv_box
       ================================================================== */
    .cv_box{
        padding: .8vw 1.6vw 1.0vw;
        width: 23.0vw;
    }

    .cv_box .site_name > span{
        font-size: 1.3vw;
    }

    .cv_box .site_name .siz_l{
        font-size: 1.6vw;
    }

    .cv_box .cv_btn{
        margin: .6vw 0 0;
    }

    .cv_box .cv_btn a{
        padding: 0 2.0vw;
        height: 4.0vw;
    }

    .cv_box .cv_btn a svg{
        width: 1.6vw;
    }

    .cv_box .cv_btn a .txt{
        margin: 0 0 0 1.0vw;
        font-size: 1.2vw;
    }

    .cv_box .cv_btn a,
    .cv_box .cv_btn a .txt,
    .cv_box .cv_btn a path{
        transition: .3s;
    }

    .cv_box .cv_btn a:hover{
        background: #F83585;
    }

    .cv_box .cv_btn a:hover .txt{
        color: #fff;
    }

    .cv_box .cv_btn a:hover path{
        fill: #fff;
    }

    .cv_box .txtbox{
        padding: .5vw 0 0;
    }

    .cv_box .txtbox .ttl{
        font-size: 1.3vw;
    }

    .cv_box .txtbox .tel{
        margin: -.3vw 0 0;
    }

    .cv_box .txtbox .tel a span{
        font-size: 2.2vw;
    }

    .cv_box .txtbox .tel a .siz_s{
        font-size: 1.5vw;
    }

    .cv_box .txtbox .time{
        margin: -.2vw 0 0;
        font-size: 1.3vw;
    }
 	

	/* pagination
	   ================================================================== */
	.pagination{
		margin: 6vw 0 0;
		padding: 0;
	}

    .pagination a,
    .pagination .active span{
    	padding: 1px 0 0;
    }
	
	.pagination a:hover{
		background: #1C4873;
	}
     

	/* sns_area
	   ================================================================== */
    .sns_area {
        margin: 2vw 0 0;
    }
    
	.sns_area div{
		margin-bottom: 0;
		margin-right: 5px;
	}


    /* detail_page
       ================================================================== */
    .detail_page{
    	margin: 0 0 0;
    }

    .detail_page .detail_box h1{
    	font-size: 20px;
    	margin: 0 0 10px;
    	padding: 0 10px 10px;
    }
    
    .detail_page .flex{
    	margin: 2vw 0 0;
    }
    
    .detail_page .date{
        width: 9.5vw;
        font-size: 1.5vw;
    }
    
    .detail_page .hash_categories{
        margin: -.4vw 0 0;
        width: calc(100% - 9.5vw);
    }
    
    .detail_page .photo{
    	margin: 2vw 0 0;
    }
    	
    .detail_page .detail_body{
    	margin: 3vw 0 0;
    }


	/* detail_btn_area
	   ================================================================== */
	.detail_btn_area{
		margin: 3.0vw 0 0;
		font-size: 0;
		text-align: center;
	}
	
    .detail_btn_area .btn,
    .detail_btn_area .btn.next,
    .detail_btn_area .btn.prev{
    	width: 32%;
    }

    .detail_btn_area .btn.back{
    	margin: 0 2%;
    }
    
	.detail_btn_area .btn a,
	.detail_btn_area .btn button{
		padding: 0;
		width: 100%;
        height: 45px;
        line-height: 45px;
		text-align: center;
		font-size: 15px;
		letter-spacing: 0.10em;
		transition: .3s;
		cursor: pointer;
	}
	
	.detail_btn_area .btn path{
		transition: .3s;
	}
	
	.detail_btn_area .btn a:hover,
	.detail_btn_area .btn button:hover{
		background: #1C4873;
		border-color: #1C4873;
        color: #fff;
	}

	.detail_btn_area .btn a:hover path{
        fill: #fff;
	}


    /* list_page
       ================================================================== */
    .list_page .inner{
        padding-top: 3.0vw;
    }


    /* show_page
       ================================================================== */
    .show_page{
        margin-top: -2.0vw;
    }

    .show_page .inner{
        padding-bottom: 15.0vw;
    }


    /* select_category
       ================================================================== */
    .select_category{
        top: -3vw;
        right: 2vw;
    }

    .select_category .select_btn{
        padding: .8vw 5.0vw .8vw 2.0vw;
        font-size: 1.4vw;
        transition: .3s;
    }

    .select_category .select_btn:hover{
        color: #F83585;
    }

    .select_category .select_btn::before{
        width: 1.0vw;
        height: .6vw;
        right: 1.7vw;
    }

    .select_category ul{
        min-width: 23.0vw;
        right: 0;
    }

    .select_category ul > li{
        margin: 0 0 0;
    }

    .select_category ul > li a{
        padding: 0 4.0vw 0 2.3vw;
        height: 6.0vw;
        font-size: 1.4vw;
        transition: .3s;
    }

    .select_category ul > li a:hover{
        background-color: #F83585;
    }


    /* works_detail_page
       ================================================================== */
    .works_slider{
        width: 70.0vw;
    }

    .works_slider .swiper-pagination{
        margin-top: 3.0vw;
    }

    .works_slider .swiper-pagination-bullet{
        margin: 0 2.0vw 0 0 !important;
        width: 1.5vw;
        height: 1.5vw;
    }

    /* works_detail_text_box */
    .works_detail_text_box{
        padding: 5.0vw 0 0;
    }

    .works_detail_text_box .date{
        margin: 1.5vw 0 1.0vw;
        width: auto;
        font-size: 1.3vw;
    }

    .works_detail_text_box .work_title{
        font-size: 2.3vw;
    }

    /* works_sub_list */
    .works_sub_list{
        margin: 6.0vw 0 15.0vw;
    }

    .works_sub_list > li{
        margin: 5.0vw 0 0;
        display: flex;
        justify-content: flex-start;
    }

    .works_sub_list .thm{
        width: 50%;
    }

    .works_sub_list .text_box{
        padding: 3.0vw 0 0 4.0vw;
        width: 50%;
    }

    .works_sub_list .text_box h3{
        font-size: 1.7vw;
    }
    
    .works_sub_list .text_box h3:before{
        content: "";
        border-bottom: 1px solid #C12C6F;
        width: 6.0vw;
        height: 1px;
        position: absolute;
        top: 50%;
        left: -7.5vw;
        z-index: 1;
    }

    .works_sub_list .text_box p{
        margin: 1.5vw 0 0;
        font-size: 1.4vw;
        line-height: 2.6vw;
    }


    /* contact_block
       ================================================================== */
    .contact_block{
    	margin: 0 0 20.0vw;
    }


    /* contact
       ================================================================== */
    .contact{
    	padding: 2.0vw 0 0;
    }

    .contact.thanks{
    	padding: 8.0vw 0 0;
    }
    
    /* form */
    .contact .top_note{
    	margin: 0 0 1.7vw;
        font-size: 1.8vw;
    }
    
    .contact .top_text{
    	margin: 0 0 0;
        font-size: 1.4vw;
    }
    
    .contact .conf_text{
        margin: 0 0 0;
    	font-size: 1.5vw;
    }
    
    .contact table{
        margin: 7vw 0 0 15%;
        width: 85%;
    }
    
    .contact th,
    .contact td{
        width: auto;
    	font-size: 15px;
    }
    
    .contact th{
    	padding: 0 0 0;
        box-sizing: border-box;
    }
    
    .contact .title_top th{
    	padding-top: 31px;
        vertical-align: top;
    }
    
    .contact td{
    	padding: 17px 0 18px;
    }
    
    .contact output,
    .contact input,
    .contact select,
    .contact textarea{
    	margin: 0;
    	font-size: 16px;
    	padding: 15px;
        max-width: 85%;
    }
	
	.contact select{
		vertical-align: middle;
	}
    
    .contact textarea{
        height: 235px;
    }
    
    .zas_btn_area{
    	margin: auto;
    	text-align: center;
    	padding: 40px 0 0;
    	font-size: 0;
    	box-sizing: border-box;
    }
    
    .zas_btn_area button{
    	font-size: 16px;
    	color: #FFF;
    	border: 2px solid #A5A5A5;
    	position: relative;
    	overflow: hidden;
    	text-align: center;
        transition: .3s;
        cursor: pointer;
    }
    
    .zas_btn_area button span{
    	padding: 12px 0;
    	border: none;
    	display: block;
    	font-size: 16px;
        transition: .3s;
    }
    
    .zas_btn_area .zas_btn01 button{
    	width: 50%;
    	max-width: 280px;
    }
    
    .zas_btn_area .zas_btn02 button{
    	margin-right: 2%;
    	width: 28%;
        border-color: #ccc;
    }
    
    .zas_btn_area .zas_btn03 button{
    	width: 50%;
    	max-width: 280px;
    }
    
    .zas_btn_area .zas_btn01 button:hover,
    .zas_btn_area .zas_btn03 button:hover{
    	background: #fff;
    }
    
    .zas_btn_area .zas_btn02 button:hover{
    	opacity: .5;
    }
    
    .zas_btn_area .zas_btn01 button:hover span,
    .zas_btn_area .zas_btn03 button:hover span{
    	color: #C12C6F;
    }


    /* thanks
       ================================================================== */
    .thanks h3{
        font-size: 3.2vw;
    }

    .thanks p{
        margin: 4.8vw 0 0;
    	font-size: 1.5vw;
        line-height: 2.5vw;
    }
    
    .thanks .go_top_btn{
    	margin: 9.0vw 0 0;
    }
    

    /* comingsoon
       ================================================================== */
    .comingsoon{
        padding: 1.7vw 0 15.0vw;
    }

    .comingsoon .box{
        height: 45.0vw;
    }

    .comingsoon h3{
        font-size: 2.5vw;
    }


    /* banners
       ================================================================== */
    .banners{
        padding: 7.5vw 0 1.0vw;
    }

    .banners_slider{
        width: 73.0vw;
    }

    
    /* swiper-pagination */
    .banners_slider .swiper-pagination{
        margin-top: 3.0vw;
    }

    .banners_slider .swiper-pagination-bullet{
        margin: 0 1.0vw 0 0 !important;
        width: 2.0vw;
        height: 2.0vw;
    }

    
}
@media screen and (min-width : 1040px){    


    /* under_page_top
       ================================================================== */
    .under_page_top .title_block .inner{
        padding-top: 55px;
        padding-bottom: 85px;
    }

    .under_page_top .title:before{
        width: 50px;
        left: 20px;
    }

    .under_page_top .title .jpn{
        font-size: 45px;
    }

    .under_page_top .title .eng{
        margin: 15px 0 0;
        font-size: 13px;
    }

    /* pankz */
    .under_page_top .pankz_block{
        padding: 40px 0 45px;
    }

    .pankz{
        margin: 0 auto 0;
        padding: 0;
        box-sizing: border-box;
    }

    .pankz > li{
        margin: 0 27px 15px 0;
    }

    .pankz > li::before{
        width: 5px;
        height: 19px;
        left: calc(100% + 10px);
    }

    .pankz > li > span,
    .pankz > li a{
        font-size: 12px;
    }


    /* block_title
       ================================================================== */
    .block_title .eng{
        font-size: 35px;
    }

    .block_title .jpn{
        margin: 2px 0 0;
        font-size: 14px;
    }


    /* block_title02
       ================================================================== */
    .block_title02 .eng{
        font-size: 30px;
    }

    .block_title02 .jpn{
        margin: 3px 0 0;
        padding-left: 42px;
        font-size: 14px;
    }

    .block_title02 .jpn:before{
        width: 35px;
    }


    /* hash_categories
       ================================================================== */
    .hash_categories{
        display: block;
    }

    .hash_categories > a,
    .hash_categories > span{
        margin: 10px 10px 0 0;
        font-size: 13px;
    }


    /* hash_categories_box
       ================================================================== */
    .hash_categories_box{
        display: block;
    }

    .hash_categories_box > a,
    .hash_categories_box > span{
        margin: 10px 10px 0 0;
        padding: 8px 21px;
        font-size: 12px;
    }
  

    /* common_table
       ================================================================== */	
    .common_table{
        border-bottom: none;
    }
    
    .common_table th,
    .common_table td{
    	padding: 15px 30px;
        font-size: 15px;
        line-height: 25px;
        width: auto;
        display: table-cell;
        border-top: 1px solid #C8D4DC;
        border-bottom: 1px solid #C8D4DC;
    }
    
    .common_table th{
        width: 210px;
    }

    .common_table td .box + .box{
    	margin: 20px 0 0;
        padding: 20px 0 0;
    }


    /* check_list
       ================================================================== */
    .check_list > li{
        padding: 15px 15px 15px 10px;
    }
    
    .check_list li > span{
        padding-left: 35px;
        font-size: 15px;
    }
    
    .check_list li .arrow{
        margin-left: 17px;
        width: 30px;
    }

    .check_list li > span:nth-child(n+2){
        padding-left: 13px;
    }

    .check_list li > span::before{
        width: 23px;
        height: 23px;
        top: 5px;
        left: 0;
    }

    .check_list.circle li > span{
        padding-left: 34px;
    }

    .check_list.circle li > span::before{
        width: 18px;
        height: 18px;
        top: 4px;
        left: 5px;
    }


    /* kv
       ================================================================== */
    .kv{
        margin: 0 100px 0 0;
        padding: 0 0 0 50px;
    }
    
    .kv .inner{
        height: 95vh;
        min-height: 600px;
        max-width: none;
    }
    
    .kv .title{
        padding-left: 0px
    }


    .kv .title .jpn{
        font-size: 35px;
        line-height: 55px;
        letter-spacing: 0.30em;
    }

    .kv .title .eng{
        margin: 15px 0 0;
        font-size: 18px;
    }

    .kv p{
        margin: 5px 0 0;
    }

    .kv p > span{
        margin: 15px 0 0;
        padding: 8px 14px;
        font-size: 15px;
    }

    .kv p .name{
        width: 296px;
        top: calc(100% + -25px);
        left: 38%;
    }
            

    /* fix_cv
       ================================================================== */
    .fix_cv{
        display: block;
        position: fixed;
        bottom: 10vh;
        right: 20px;
    }

    .fix_cv .position_box{
        display: block;
        position: relative;
    }

    .fix_cv .close{
        position: absolute;
        top: -10px;
        right: -10px;
        width: 29px;
        cursor: pointer;
    }

    .fix_cv .close:hover{
        opacity: .5;
    }


    /* card_box
       ================================================================== */
    .card_box .text_box{
        padding: 15px 15px 0;
    }

    .card_box .date{
        font-size: 13px;
    }

    .card_box .title{
        margin: 5px 0 0;
        font-size: 17px;
    }
    

    /* work_card_box
       ================================================================== */
    .work_card_box .text_box{
        padding: 15px 15px 0;
    }

    .work_card_box .date{
        font-size: 13px;
    }

    .work_card_box .title{
        margin: 5px 0 0;
        font-size: 17px;
    }

    /* card_list */
    .card_list .work_card_box a{
        display: flex;
    }

    .card_list .work_card_box .thm{
        width: 350px;
    }

    .card_list .work_card_box .text_box{
        padding: 0 0 0 30px;
        width: calc(100% - 350px);
        box-sizing: border-box;
    }


    /* index_blogs
       ================================================================== */
    .index_blogs{
        padding: 90px 0 90px;
    }

    .index_blogs .index_blogs_slider{
        margin: 45px 0 0;
        width: 720px;
    }

    .index_blogs .more_btn{
        margin: 55px 0 0;
    }


    /* index_works
       ================================================================== */
    .index_works{
        padding: 95px 0 90px;
    }

    .index_works .index_blogs_slider{
        margin: 45px 0 0;
        width: 720px;
    }

    .index_works .more_btn{
        margin: 55px 0 0;
    }


    /* blogs_list
       ================================================================== */
    .blogs_list{
        padding: 0 0 170px;
    }

    .blogs_list .card_list{
        margin: 0 0 0;
        font-size: 0;
    }

    .blogs_list .card_list > li{
        margin: 40px 2% 0 0;
        width: 32%;
        display: inline-block;
        vertical-align: top;
        box-sizing: border-box;
    }

    .blogs_list .card_list > li:nth-child(3n+3){
        margin-right: 0;
    }


    /* work_list
       ================================================================== */
    .work_list{
        padding: 0 0 170px;
    }

    .work_list .card_list{
        margin: 0 0 0;
    }

    .work_list .card_list > li{
        margin: 0 0 0;
        padding: 35px 0;
    }


    /* service_links
       ================================================================== */
    .service_links{
        margin: 80px 0 0;
    }

    .under_page_top + .service_links{
        padding-bottom: 150px;
    }

    .service_links .list > li > a{
        padding: 54px 0;
        position: relative;
    }

    .service_links .list .inner{
        display: flex;
        justify-content: space-between;
        align-items: center;
    }

    .service_links .list .service_number span{
        font-size: 14px;
        font-weight: 700;
        display: block;
        line-height: 150%;
        color: #172C62;
        font-family: 'Oswald';
        letter-spacing: 0.05em;
    }

    .service_links .list .service_number .siz_l{
        margin: -1px 0 0 16px;
        font-size: 22px;
    }

    .service_links .list .name{
        margin: 5px 0 0;
        font-size: 19px;
    }

    .service_links .list .more_btn_box{
        margin: 0 0 0;
    }


    /* what
       ================================================================== */
    .what{
        margin: 0 0 0;
    }

    .what .alternate{
        height: 520px;
    }

    .what .scroll{
        margin: -80px 0 0;
    }

    .what .list{
        display: flex;
        justify-content: space-between;
    }

    .what .list > li{
        padding: 10px;
        width: 320px;
        box-sizing: border-box;
    }

    .what .list > li iframe{
        height: 172px;
    }

    .what .block_title02{
        margin: 55px 0 0;
    }

    .what .txt{
        margin: 30px 0 0;
    }

    .what .txt + .txt{
        margin: 25px 0 0;
    }

    .what .site_logo{
        margin: 40px 0 0 auto;
        width: 205px;
    }
    

    /* index_loop
       ================================================================== */
    .index_loop{
        margin: 65px auto 0;
        max-width: 2000px;
    }

    .index_loop .tab.pc{
        padding: 0 33px;
        display: block;
    }

    .index_loop .photos{
        margin: 40px 0 0;
        display: flex;
        opacity: 1;
        visibility: visible;
    }

    .index_loop .photos + .photos{
        justify-content: flex-end;
    }

    .index_loop .photos li{
        width: 16%;
        max-width: 220px;
    }


    /* message_block
       ================================================================== */
    .message_block{
        padding: 0 0 0;
    }

    .message_block .text_box{
        margin: 30px 0 0;
    }

    .message_block .text_box > p + p{
        margin: 15px 0 0;
    }

    .message_block .ceo{
        margin: 40px 0 0 auto;
        width: 154px;
    }


    /* philosophy_block
       ================================================================== */
    .philosophy_block{
        padding: 100px 0 0;
    }

    .philosophy_block .list{
        margin: 30px 0 0;
    }

    .philosophy_block .list > li{
        margin: 25px 0 0;
        padding: 30px;
    }

    .philosophy_block .list h3{
        padding: 0 0 0 30px;
        font-size: 26px;
    }

    .philosophy_block .list h3:before{
        width: 40px;
        left: -30px;
    }

    .philosophy_block .list p{
        margin: 17px 0 0;
        line-height: 28px;
    }


    /* company_block
       ================================================================== */
    .company_block{
        padding: 100px 0 150px;
    }

    .company_block .common_table{
        margin: 30px 0 0;
    }


    /* company_page solar_inspection
       ================================================================== */
    .company_page .solar_inspection{
        margin-top: -150px;
        padding-top: 15px;
    }


    /* organization
       ================================================================== */
    .organization{
        padding: 100px 0 150px;
    }

    .organization .photo{
        margin: 30px 0 0;
    }


    /* under_page_kv
       ================================================================== */
    .under_page_kv .photo_position{
        position: relative;
        height: 350px;
    }

    .under_page_kv .photo{
        margin: 0;
        width: 85vw;
        max-width: 1500px;
        min-width: 1150px;
        height: 100%;
        position: absolute;
        top: 0;
        right: 20px;
    }

    .under_page_kv .text_box{
        padding: 35px 0 57px;
    }

    .under_page_kv .text_box:before{
        height: calc(100% + 78px);
        bottom: 0;
        left: -67px;
    }


    /* block_section
       ================================================================== */
    .block_section{
        padding: 70px 0;
    }


    /* section_title
       ================================================================== */
    .section_title{
        font-size: 33px;
    }

    .section_title + p{
        margin: 10px 0 0;
    }


    /* box_title
       ================================================================== */
    .box_title{
        padding-left: 27px;
        font-size: 27px;
    }

    .box_title:before{
        width: 10px;
        height: 10px;
        top: 15px;
    }


    /* sp_scroll_photos
       ================================================================== */
    .sp_scroll_photos{
        margin: 35px 0 0;
        overflow-x: auto;
    }

    .sp_scroll_photos > ul{
        width: 900px;
    }


    /* sp_1column
       ================================================================== */
    .sp_1column{
        margin: 35px 0 0;
    }

    .sp_1column > ul{
        width: 900px;
    }


    /* photo_box
       ================================================================== */
    .photo_box{
        margin: 35px 0 0;
    }

    .photo_box.w450 img{
        width: 45%;
    }

    .photo_box.w700 img{
        width: 70%;
    }

    .photo_box p{
        padding: 6px 0 0;
        font-size: 13px;
    }


    /* security_maintenance
       ================================================================== */
    .security_maintenance{
        padding-top: 40px;
    }


    /* security_bottom
       ================================================================== */
    .security_bottom{
        padding-bottom: 160px;
    }

    .security_bottom .list{
        margin: -50px 0 0;
        font-ize: 0;
    }

    .security_bottom .list > li{
        width: 45%;
        display: inline-block;
        vertical-align: top;
        box-sizing: border-box;
    }

    .security_bottom .list > li,
    .security_bottom .list > li + li{
        margin: 50px 0 0;
    }

    .security_bottom .list > li:nth-child(2n+1){
        margin-right: 5%;
    }

    .security_bottom .list .text_box{
        padding: 15px 0 0;
    }

    .security_bottom .list .text_box p{
        margin: 8px 0 0;
    }


    /* harmful_bird
       ================================================================== */
    .harmful_bird{
        padding-top: 40px;
    }


    /* hub_prevention
       ================================================================== */
    .hub_prevention{
        padding-bottom: 160px;
    }


    /* text_box_common
       ================================================================== */
    .block_section .text_box_common{
        margin: 30px 0 0;
    }

    .block_section .text_box_common p{
        margin: 12px 0 0;
    }


    /* solar_system
       ================================================================== */
    .solar_system{
        padding-top: 60px;
    }

    .solar_system .column_2{
        margin: 25px 0 0;
        font-size: 0;
    }

    .solar_system .column_2 > li{
        width: 48%;
        vertical-align: top;
        box-sizing: border-box;
        display: inline-block;
    }

    .solar_system .column_2 > li:nth-child(2n+2){
        margin-left: 4%;
    }

    .solar_system .bg_box{
        margin: 38px 0 0;
        padding: 28px 30px;
    }


    /* storage_battery
       ================================================================== */
    .storage_battery .check_list{
        margin-top: 15px;
    }

    .storage_battery .photo_flex{
        margin: 42px 0 0;
        display: flex;
    }

    .storage_battery .photo_flex .photo{
        width: 450px;
    }

    .storage_battery .photo_flex .flex_text_box{
        padding: 25px 35px;
        width: calc(100% - 450px);
        box-sizing: border-box;
    }

    .storage_battery .border_box{
        margin: 40px 0 0;
    }

    .storage_battery .border_box .inbox{
        padding: 20px 25px;
    }

    .storage_battery .border_box .f18{
        margin: 5px 0 0;
    }

    .storage_battery .border_box .f18 + p{
        margin: 15px 0 0;
    }


    /* box_with_title
       ================================================================== */
    .box_with_title{
        margin: 63px 0 0;
        padding: 22px 30px 35px;
    }

    .box_with_title .ttl{
        top: -23px;
        left: 30px;
    }

    .box_with_title .ttl > span{
        padding: 10px 22px;
        font-size: 15px;
    }


    /* ttl_in_photo
       ================================================================== */
    .ttl_in_photo .photo_ttl{
        bottom: -18px;
    }

    .ttl_in_photo .photo_ttl > span{
        padding: 6px 19px;
        font-size: 14px;
    }


    /* site_logo
       ================================================================== */
    .block_section .site_logo{
        width: 205px;
    }


    /* font_combination
       ================================================================== */
    .font_combination .text_16{
        font-size: 16px;
        line-height: 24px;
    }

    .font_combination .ttl{
        margin: 10px 0 0;
        font-size: 27px;
    }

    .font_combination .bg_txt{
        margin: 20px 0 0;
    }

    .font_combination .bg_txt > span{
        padding: 6px 18px;
        font-size: 15px;
        line-height: 27px;
    }


    /* remake
       ================================================================== */
    .remake .photo_flex{
        margin-top: 36px;
        display: flex;
    }

    .remake .photo{
        width: 360px;
    }

    .remake .flex_text_box{
        margin-top: 0;
        padding: 0 0 0 30px;
        width: calc(100% - 360px);
        box-sizing: border-box;
    }

    .remake .box_with_title{
        margin-top: 76px;
    }

    .remake .box_with_title .site_logo{
        margin: 20px 0 15px;
    }

    .remake .box_with_title .check_list{
        margin: 10px 0 0;
    }

    .remake .remake_message{
        margin: 35px 0 0;
        display: flex;
        align-items: center;
    }

    .remake .remake_message .thm{
        margin: 0;
        padding: 10px;
        width: 230px;
    }

    .remake .remake_message .remake_message_right{
        padding: 0 0 0 40px;
        width: calc(100% - 230px);
        box-sizing: border-box;
    }


    /* solar_inspection
       ================================================================== */
    .solar_inspection{
        padding-bottom: 160px;
    }

    .solar_inspection .check_list{
        margin-top: 10px;
    }

    .solar_inspection .box_with_title .photos{
        margin: 25px 0 30px;
        width: 600px;
    }

    /* solar_inspection_proof */
    .solar_inspection .solar_inspection_proof{
        margin: 30px 0 0;
    }

    .solar_inspection .solar_inspection_proof .sp_scroll_photos > ul{
        width: 780px;
    }

    .solar_inspection .solar_inspection_proof .sp_scroll_photos > ul > li{
        width: 220px;
    }

    .solar_inspection .solar_inspection_proof .sp_scroll_photos > ul > li.w300{
        width: 300px;
    }

    .solar_inspection .solar_inspection_proof .sp_scroll_photos .list_ttl{
        padding: 9px 0 0;
        font-size: 13px;
        line-height: 22px;
    }

    /* solar_inspection_block */
    .solar_inspection .solar_inspection_block{
        margin: 53px 0 0;
    }

    .solar_inspection .solar_inspection_block .photo{
        height: 320px;
    }

    .solar_inspection .solar_inspection_block .inspection_kv_text{
        margin: -100px 0 0;
    }

    .solar_inspection .solar_inspection_block .inspection_kv_text .font_combination{
        padding: 23px 0 0 0;
        max-width: 90%;
    }

    .solar_inspection .solar_inspection_block .sp_scroll_photos > ul{
        width: 100%;
    }

    /* solar_cv */
    .solar_inspection .solar_cv{
        margin: 24px 0 0;
    }

    .solar_inspection .solar_cv .flex{
        margin: 20px 0 0;
        display: flex;
        align-items: center;
    }

    .solar_inspection .solar_cv .solar_cv_left{
        width: 230px;
    }

    .solar_inspection .solar_cv .solar_cv_right{
        padding: 0 0 0 26px;
        width: calc(100% - 230px);
    }

    .solar_inspection .solar_cv .solar_cv_right p{
        font-size: 16px;
        line-height: 24px;
    }

    .solar_inspection .solar_cv .solar_cv_right h4{
        margin: 15px 0 0;
    }

    .solar_inspection .solar_cv .solar_cv_right h4 > span{
        padding: 5px 20px 5px 15px;
        font-size: 15px;
    }

    .solar_inspection .solar_cv .solar_cv_right .catch{
        margin: 10px 0 0;
        font-size: 27px;
    }


    /* cv_box
       ================================================================== */
    .cv_box{
        padding: 8px 16px 10px;
        width: 230px;
    }

    .cv_box .site_name > span{
        font-size: 13px;
    }

    .cv_box .site_name .siz_l{
        font-size: 16px;
    }

    .cv_box .cv_btn{
        margin: 6px 0 0;
    }

    .cv_box .cv_btn a{
        padding: 0 20px;
        height: 40px;
    }

    .cv_box .cv_btn a svg{
        width: 16px;
    }

    .cv_box .cv_btn a .txt{
        margin: 0 0 0 10px;
        font-size: 12px;
    }

    .cv_box .txtbox{
        padding: 5px 0 0;
    }

    .cv_box .txtbox .ttl{
        font-size: 13px;
    }

    .cv_box .txtbox .tel{
        margin: -3px 0 0;
    }

    .cv_box .txtbox .tel a span{
        font-size: 22px;
    }

    .cv_box .txtbox .tel a .siz_s{
        font-size: 15px;
    }

    .cv_box .txtbox .time{
        margin: -2px 0 0;
        font-size: 13px;
    }
 	

	/* pagination
	   ================================================================== */
	.pagination{
		margin: 80px 0 0;
		padding: 0;
	}

    .pagination a,
    .pagination .active span{
        padding: 2px 0 0;
    	font-size: 15px;
    	width: 40px;
    	height: 40px;
    }
     

	/* sns_area
	   ================================================================== */
    .sns_area {
        margin: 25px 0 0;
    }
    
	.sns_area div{
		margin-right: 10px;
	}


    /* detail_page
       ================================================================== */
    .detail_page{
    	margin: 0 0 0;
    }

    .detail_page .detail_box h1{
    	font-size: 25px;
    	margin: 0 0 10px;
    	padding: 0 10px 10px;
    }
    
    .detail_page .flex{
    	margin: 20px 0 0;
    }
    
    .detail_page .date{
        width: 95px;
        font-size: 15px;
    }
        
    .detail_page .hash_categories{
        margin: -7px 0 0;
        width: calc(100% - 95px);
    }
    
    .detail_page .photo{
    	margin: 20px 0 0;
    }
    	
    .detail_page .detail_body{
    	margin: 25px 0 0;
    }


	/* detail_btn_area
	   ================================================================== */
	.detail_btn_area{
		margin: 30px 0 0;
		font-size: 0;
		text-align: center;
	}
	
	.detail_btn_area .btn{
		margin: 0;
	}

    .detail_btn_area .btn.back{
    	margin: 0 2%;
    }
	
	.detail_btn_area .btn a,
	.detail_btn_area .btn button{
		padding: 0;
		width: 100%;
        height: 60px;
        line-height: 60px;
		text-align: center;
		font-size: 16px;
		letter-spacing: 0.10em;
    }


    /* list_page
       ================================================================== */
    .list_page .inner{
        padding-top: 30px;
    }


    /* show_page
       ================================================================== */
    .show_page{
        margin-top: -20px;
    }

    .show_page .inner{
        padding-bottom: 150px;
    }


    /* select_category
       ================================================================== */
    .select_category{
        top: -30px;
        right: 0;
    }

    .select_category .select_btn{
        padding: 8px 50px 8px 20px;
        font-size: 14px;
    }

    .select_category .select_btn::before{
        width: 10px;
        height: 6px;
        right: 17px;
    }

    .select_category ul{
        min-width: 230px;
        right: 0;
    }

    .select_category ul > li{
        margin: 0 0 0;
    }

    .select_category ul > li a{
        padding: 0 40px 0 23px;
        height: 60px;
        font-size: 14px;
    }


    /* works_detail_page
       ================================================================== */
    .works_slider{
        width: 700px;
    }

    .works_slider .swiper-pagination{
        margin-top: 30px;
    }

    .works_slider .swiper-pagination-bullet{
        margin: 0 20px 0 0 !important;
        width: 15px;
        height: 15px;
    }

    /* works_detail_text_box */
    .works_detail_text_box{
        padding: 50px 0 0;
    }

    .works_detail_text_box .date{
        margin: 15px 0 10px;
        width: auto;
        font-size: 13px;
    }

    .works_detail_text_box .work_title{
        font-size: 23px;
    }

    /* works_sub_list */
    .works_sub_list{
        margin: 60px 0 150px;
    }

    .works_sub_list > li{
        margin: 50px 0 0;
        display: flex;
        justify-content: flex-start;
    }

    .works_sub_list .thm{
        width: 50%;
    }

    .works_sub_list .text_box{
        padding: 30px 0 0 40px;
        width: 50%;
    }

    .works_sub_list .text_box h3{
        font-size: 17px;
    }
    
    .works_sub_list .text_box h3:before{
        content: "";
        border-bottom: 1px solid #C12C6F;
        width: 60px;
        height: 1px;
        position: absolute;
        top: 50%;
        left: -75px;
        z-index: 1;
    }

    .works_sub_list .text_box p{
        margin: 15px 0 0;
        font-size: 14px;
        line-height: 26px;
    }


    /* contact_block
       ================================================================== */
    .contact_block{
    	margin: 0 0 200px;
    }


    /* contact
       ================================================================== */
    .contact{
    	padding: 20px 0 0;
    }

    .contact.thanks{
    	padding: 80px 0 0;
    }
    
    /* form */
    .contact form{
    	margin-top: -140px;
        padding-top: 140px;
    }

    .contact .top_note{
    	margin: 0 0 17px;
        font-size: 18px;
    }
    
    .contact .top_text{
        margin: 0 0 0;
    	font-size: 14px;
    }
    
    .contact .conf_text{
        margin: 0 0 0;
    	font-size: 15px;
    }
    
    .contact table{
        margin: 70px 0 0 15%;
        width: 85%;
    	font-size: 15px;
    }
    
    .contact table td,
    .contact table th{
    	font-size: 15px;
    }
    
    .contact th{
    	padding: 0 0 0;
    }
    
    .contact td{
    	padding: 20px 0 30px;
    }
    
    .contact output,
    .contact input,
    .contact select,
    .contact textarea{
    	font-size: 15px;
    	padding: 21px 30px;
        max-width: 700px;
    }
    
    .contact textarea{
        height: 235px;
    }
    
    .zas_btn_area{
    	padding: 60px 0 0;
    }
    
    .zas_btn_area button{
    	font-size: 16px;
    }
    
    .zas_btn_area button > span{
    	padding: 17px 0;
    	font-size: 16px;
    }
    
    .zas_btn_area .zas_btn01 button{
    	width: 280px;
    }
    
    .zas_btn_area .zas_btn02 button{
    	margin-right: 2%;
    	width: 28%;
    }
    
    .zas_btn_area .zas_btn03 button{
    	width: 280px;
    }


    /* thanks
       ================================================================== */
    .thanks h3{
        font-size: 32px;
    }

    .thanks p{
        margin: 48px 0 0;
    	font-size: 15px;
        line-height: 25px;
    }
    
    .thanks .go_top_btn{
    	margin: 90px 0 0;
    }
    

    /* comingsoon
       ================================================================== */
    .comingsoon{
        padding: 17px 0 150px;
    }

    .comingsoon .box{
        height: 450px;
    }

    .comingsoon h3{
        font-size: 25px;
    }


    /* banners
       ================================================================== */
    .banners{
        padding: 75px 0 10px;
    }

    .banners_slider{
        width: 730px;
    }

    
    /* swiper-pagination */
    .banners_slider .swiper-pagination{
        margin-top: 30px;
    }

    .banners_slider .swiper-pagination-bullet{
        margin: 0 10px 0 0 !important;
        width: 20px;
        height: 20px;
    }


}
@media screen and (min-width : 1300px){
    

    /* select_category
       ================================================================== */
    .select_category ul{
        right: -103px;
    }
    
    
}
