@charset "utf-8";
*{
    margin: 0;
    padding: 0;
	-webkit-tap-highlight-color:rgba(255,255,255,0);
}
html,body{
    background: #f5f5f5;
}
a{
	color: #000;
	text-decoration: none;
}
#wrapper{
    position: relative;
    width:100%;
    max-width: 100%;
    margin: 0 auto;
    font-family: 'Noto Serif JP', serif;
	min-height: 0;
	/*
	overflow: hidden;
	*/
}
.notext {
   text-indent: 100%;
   white-space: nowrap;
   overflow: hidden;
}
h1{
    position: absolute;
    left:30px;
    top:0;
    width:200px;
    height: 200px;
    background: url("../img/h1_logo.gif") no-repeat left top;
    background-size:100% auto;
    z-index: 1;
}
#main_visual{
    position: relative;
    width: calc(100% - 100px);
    margin-left: 100px;
    background: url(../img/visual1.jpg) no-repeat left top;
    background-size: cover;
}
#copy1{
    position:absolute;
    font-size:16px;
    line-height: 32px;
    color: #FFF;
    background: #1a5b33;
    padding: 15px 15px 15px 35px;
    width:520px;
    right:30px;
    bottom:-55px;
}
/*-------------
scroll
--------------*/
.scroll_view{
    position: fixed;
    left:44px;
    bottom:30px;
    transition:0.3s;
}
.scroll_text{
    background: url("../img/scroll.png") no-repeat left top;
    background-size:100% auto;
    width:12px;
    height: 45px;
}
.scroll_line{
    position: relative;
    width:1px;
    height: 100px;
    margin-top:10px;
    margin-left:5px;
    overflow: hidden;
}
.line_anim{
    position: absolute;
    left:0;
    top:-100px;
    width:100%;
    height: 100%;
    background: #1a5b33;    
    animation: roopanim 3s cubic-bezier(.43,.2,.02,1) 1s infinite;
}

@keyframes roopanim {
  0% {
    top:-110px;
  }
  100% {
      top:110px;
  }
}
#section2{
    margin-top:70px;
}
#section_margin{
    max-width:1280px;
    margin: 0 auto;
}
.img_r_w{
    position: relative;
    display: flex;
    justify-content: flex-end;
    margin: 0 30px;
}
.img_r{
    position: relative;
    width:768px;
    height: 400px;
    margin-top:180px;
}
.img_l_w{
    position: relative;
    display: flex;
    justify-content: flex-start;
    margin: 0 30px;
}
.img_l{
    position: relative;
    width:768px;
    height: 400px;
    margin-top:180px;
}
.white_text{
    position: relative;
    width:610px;
    background: rgba(255,255,255,0.9);
    padding: 30px;
}
.white_text_l{
    position: relative;
    display: flex;
    justify-content: flex-start;
    margin: 0 30px;
}
.white_text_r{
    position: relative;
    display: flex;
    justify-content: flex-end;
    margin: 0 30px;
}

.white_text h2{
    color: #1a5b33;
    font-size:30px;
    font-weight: normal;
    margin-bottom:10px;
    letter-spacing: .16em;
}
.white_text p{
    color: #000;
    font-size:16px;
    line-height: 32px;
    letter-spacing: .06em;
    text-align: justify;
}
#h_1{
    margin-top:-120px;
}



#works{
    margin-top:300px;
}

#works h2{
    color: #000;
    font-size:36px;
    font-weight: normal;
    margin: 0 auto;
    text-align: center;
    letter-spacing: .16em;
}
#works h2:after{
    content:"";
    width:100px;
    height: 5px;
    background: #1a5b33;
    margin: 15px auto;
    display: block;
}
.works_list{
    margin-top:80px;
}
.works_img{
    position: relative;
    width:762px;
    height: 500px;
    margin: 50px auto;
    overflow: hidden;
}
.works_img:before {
    content:"";
    display: block;
    position: absolute;
    left: -86px;
    top: -86px;
    width: 176px;
    height: 176px;
    transform-origin: center center;
    transform: rotate(45deg);
    background: #1a5b33;
	z-index: 1;
}
.works_img p {
    position: absolute;
    left: 0;
    top: 26px;
    color: #FFF;
    transform-origin: center center;
    width: 80px;
    text-align: center;
	z-index: 1;
}
.works_img1{
	background: url("../img/oku1_before.jpg") no-repeat left top;
	background-size:cover;
}
.works_img1 .after{
	position: absolute;
	width:100%;
	height: 100%;
	left:0;
	top:0;
	background: url("../img/oku1_after.jpg") no-repeat left top;
	background-size:cover;
	opacity: 0;
}
.works_img2{
	background: url("../img/gai1_before.jpg") no-repeat left top;
	background-size:cover;
}
.works_img2 .after{
	position: absolute;
	width:100%;
	height: 100%;
	left:0;
	top:0;
	background: url("../img/gai1_after.jpg") no-repeat left top;
	background-size:cover;
	opacity: 0;
}
.works_img3{
	background: url("../img/gai2_before.jpg") no-repeat left top;
	background-size:cover;
}
.works_img3 .after{
	position: absolute;
	width:100%;
	height: 100%;
	left:0;
	top:0;
	background: url("../img/gai2_after.jpg") no-repeat left top;
	background-size:cover;
	opacity: 0;
}

.works_img4{
	background: url("../img/gai3_before.jpg") no-repeat left top;
	background-size:cover;
}
.works_img4 .after{
	position: absolute;
	width:100%;
	height: 100%;
	left:0;
	top:0;
	background: url("../img/gai3_after.jpg") no-repeat left top;
	background-size:cover;
	opacity: 0;
}
.works_img5{
	background: url("../img/rou_before.jpg") no-repeat left top;
	background-size:cover;
}
.works_img5 .after{
	position: absolute;
	width:100%;
	height: 100%;
	left:0;
	top:0;
	background: url("../img/rou_after.jpg") no-repeat left top;
	background-size:cover;
	opacity: 0;
}
.after{
	transition:2s !important;
}
.active{
	transition:2s !important;
	opacity: 1 !important;
}
.change_ctr{
	position: absolute;
	left:0;
	bottom:0;
	width:100%;
	display: flex;
	justify-content: center;
	align-items: center;
	z-index: 1;
	font-size: 16px;
	font-weight: bold;
	font-family:"Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, "sans-serif"
}
.before_btn{
	color: #333;
	text-shadow: 0 0 4px #CCC,0 0 4px #CCC,0 0 2px #CCC,0 0 2px #CCC;
	text-align: center;
	padding: 30px 0;
	margin-right:30px;
	cursor: pointer;
}
.after_btn{
	color: #333;
	text-shadow: 0 0 4px #CCC,0 0 4px #CCC,0 0 2px #CCC,0 0 2px #CCC;
	text-align: center;
	padding: 30px 0;
	margin-left:30px;
	cursor: pointer;
}
.before_active .before_btn{
	color: #1a5b33 !important;
	text-shadow: 0 0 4px #FFF,0 0 4px #FFF,0 0 2px #FFF,0 0 2px #FFF !important;
}
.after_active .after_btn{
	color: #1a5b33 !important;
	text-shadow: 0 0 4px #FFF,0 0 4px #FFF,0 0 2px #FFF,0 0 2px #FFF !important;
}
.toggle{
	position: relative;
    width: 52px;
    height: 26px;
    border-radius: 30px;
    background: #333;
    z-index: 1;
	border: solid 2px #DDD;
	cursor: pointer;
}
.toggle_s{
	position: absolute;
	width:22px;
	height: 22px;
	background: #DDD;
	border-radius: 100%;
	left:2px;
	top:2px;
	box-shadow: 0 0 1px #000;
	transition:0.1s ease;
}
.after_active .toggle_s{
	left:28px !important;
}
.before_active .toggle_s{
	left:2px !important;
}




#history{
    position: relative;
    margin-top:300px;
    background-size:100% auto;
}
#history h2{
    color: #000;
    font-size:36px;
    letter-spacing: .16em;
    font-weight: normal;
    margin: 0 auto;
    text-align: center;
}
#history h2:after{
    content:"";
    width:100px;
    height: 5px;
    background: #1a5b33;
    margin: 15px auto;
    display: block;
}
#history_disp{
	position: relative;
	max-width: 840px;
	width:calc(100% - 90px);
	padding: 15px 30px;
	margin: 70px auto 0;
	font-size:18px;
	border: solid 1px #1a5b33;
	color: #1a5b33;
	display: flex;
	justify-content: center;
	cursor: pointer;
}

.history_wrap{
	position: relative;
	width: 100%;
	display: none;
}
#history_disp:after{
	content: "";
    width: 12px;
    height: 12px;
    border-right: solid 1px #1a5b33;
    border-top: solid 1px #1a5b33;
    transform-origin: center center;
    transform: rotate(135deg);
    display: block;
    position: relative;
    left: 0;
    top: 5px;
	margin-left:15px;
}
.h_open:after{
	transform: rotate(315deg) !important;
    top: 12px !important;
}
.history_text{
	position: relative;
	max-width:900px;
	width:calc(100% - 30px);
	display: table;
	margin: 30px auto 0;
	border-collapse: collapse;
}
.history_text ul{
	display: table-row;
	flex-wrap: wrap;
	justify-content: center;
	width:900px;
	align-items: center;
}
.history_text ul li{
	display: table-cell;
	list-style: none;
	border: solid 1px #000;
	box-sizing: border-box;
	padding: 10px 5px;
	text-align: center;
}
.history_text ul li:nth-child(1){
	width:calc(60% - 10px);
}
.history_text ul li:nth-child(2){
	width:calc(20% - 10px);
}
.history_text ul li:nth-child(3){
	width:calc(20% - 10px);
}
#history_label li{
	position:sticky;
	z-index: 1;
	background: #1a5b33;
	color: #FFF;
	top:0;
	border: none;
	border-left: solid 1px #000;
	border-right: solid 1px #000;
	border-bottom: solid 1px #000;
	box-sizing: content-box;
}






#company{
    position: relative;
    margin-top:300px;
    background: url(../img/bg.jpg) no-repeat center bottom;
    background-size:100% auto;
    padding-bottom:50%;
}

#company h2{
    color: #000;
    font-size:36px;
    letter-spacing: .16em;
    font-weight: normal;
    margin: 0 auto;
    text-align: center;
}
#company h2:after{
    content:"";
    width:100px;
    height: 5px;
    background: #1a5b33;
    margin: 15px auto;
    display: block;
}

.company_table{
    display: table;
    border-collapse: collapse;
    width:780px;
    margin: 80px auto;
}
.company_tr{
    display: table-row;
}
.company_td{
    display: table-cell;
    padding: 20px 40px;
    letter-spacing: .06em;
}
.company_tr .company_td:nth-child(1){
    width:140px;
    text-align: center;
}
.company_right h3{
    color: #fff;
    font-size:28px;
    letter-spacing: .16em;
    font-weight: normal;
    margin: 0 auto 15px;
}
.company_right {
    position: absolute;
    text-align: right;
    display: inline-block;
    right: 0px;
    bottom: 0px;
    letter-spacing: .16em;
    color: #fff;
    text-shadow: 
        0 0 1px rgba(26,91,51,1),
        0 0 15px rgba(26,91,51,1),
        0 0 15px rgba(26,91,51,1),
        0 0 15px rgba(26,91,51,1);
    font-weight: bold;
    font-size: 16px;
    line-height: 38px;
    border-radius: 10px;
    padding: 30px 30px 15px 30px;

}


footer{
    position: relative;
    max-width: 1920px;
    margin: 0 auto;
    background: rgba(255,255,255,0.9);
    height: 100px;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
}
footer adress{
    font-style: normal;
    display: block;
    font-size:12px;
    margin: 0;
    padding: 0;
    color: #000;
}






#load_fade{
	position: fixed;
	width:100%;
	height: 100%;
	left:0;
	top:0;
	background: #FFF;
	z-index: 9999;
}

.loader,
.loader:after {
  border-radius: 50%;
  width: 50px;
  height: 50px;
}
.loader {
    position: absolute;
    left:50%;
    top:50%;
    margin-left:-30px;
    margin-top:-30px;
    font-size: 10px;
    text-indent: -9999em;
    border-top: 1px solid rgba(50, 100, 50, 0.2);
    border-right: 1px solid rgba(50, 100, 50, 0.2);
    border-bottom: 1px solid rgba(50, 100, 50, 0.2);
    border-left: 1px solid #1a5b33;
    -webkit-transform: translateZ(0);
    -ms-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-animation: load8 1.1s infinite linear;
    animation: load8 1.1s infinite linear;
}
@-webkit-keyframes load8 {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
@keyframes load8 {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}


