@charset "UTF-8";
/* CSS Document */



body{
    font-family: YuMincho, "Yu Mincho", "Hiragino Mincho ProN", "serif";
	font-feature-settings: "palt" 1;
    line-height: 2;
	font-size: 14px;
    letter-spacing: 0.1rem;
}

body.en{
    font-family: 'Fira Sans', sans-serif;
	font-feature-settings:normal;
	font-size: 14px;
    line-height: 2;
    letter-spacing: 0.1rem;
}

*{
    box-sizing: border-box;
}

html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    background: transparent;
}

a:link, a:visited, a:active, a:hover {
    text-decoration: none;
}
a {
    text-decoration: none;
    color: inherit;
}

ul,ol{
	list-style: none;
	padding: 0;
}

img{
    vertical-align: bottom;
    width: 100%;
    height: auto;
}



.clearfix:after { /* floatクリア */
   content: "";
   clear: both;
   display: block;
}

i{
	font-family:"FontAwesome" !important;
	background-color: inherit
}



/* header PC */
@media screen and (min-width: 768px) {

    
    .logo{
        position: fixed;
        top: 0;
        left: 0;
        z-index: 999;
    }
    
     a.logo{
        display: inline-block;
        padding: 20px 34px;
        background: #000;
    }
    #header_logo {
        height: 40px;
    }
    
    .st0{fill:#FFF;}

    .lang{
        position: fixed;
        top: 0;
        right: 0;
        z-index: 999;
        padding: 20px;
        display: flex;
        font-size: 1rem;
        color: #000;
    }
    
    .lang span{
        padding: 5px 0;
    } 
    
    .lang span:nth-child(2){
        padding: 5px 10px;
    } 
    
    .lang a{
        cursor: pointer;
    }
    
    .jp_active span:first-child{
        background: #000;
        color:#FFF;
        padding: 5px 10px;
    }  
    
    .en_active span:last-child{
        background: #000;
        color:#FFF;
        padding: 5px 10px;
    }  
    
}


/* header SP */
@media screen and (max-width: 767px) {
    
    .logo{
        position: fixed;
        top: 0;
        left: 0;
        z-index: 999;
    }
    
     a.logo{
        display: inline-block;
        padding: 10px 20px;
        background: #000;
    }
    
    #header_logo {
        height: 20px;
    }
    
    .st0{fill:#FFF;}

    .lang{
        position: fixed;
        top: 0;
        right: 0;
        z-index: 999;
        padding: 10px;
        display: flex;
        font-size: 0.8rem;
        color: #000;
    }
    
    .lang span{
        padding: 5px 0;
    } 
    
    .lang span:nth-child(2){
        padding: 5px 10px;
    } 
    
    .lang a{
        cursor: pointer;
    }
    
    .jp_active span:first-child{
        background: #000;
        color:#FFF;
        padding: 5px 10px;
    }  
    
    .en_active span:last-child{
        background: #000;
        color:#FFF;
        padding: 5px 10px;
    }  
}

/* footer PC */
@media screen and (min-width: 768px) {
    footer{
        text-align: center;
        padding: 1rem 0;
        background: #000;
        color: #FFF;
        letter-spacing: 0.1rem;
        font-size: 1rem;
    }
}

/* footer SP */
@media screen and (max-width: 767px) {
    footer{
        text-align: center;
        padding: 1rem 0;
        background: #000;
        color: #FFF;
        letter-spacing: 0.1rem;
    }
}

/* hero PC */
@media screen and (min-width: 768px) {
    
    .hero{
        width: 100%;
        display: block;
        position: relative;
    }
    
    .site_copy{
        position: absolute;
        top:50%;
        left: 50%;
        transform: translate(-50%,-50%);
        z-index: 998;
        color: #FFF;
        text-shadow: 0 0 20px rgba(0,0,0,1.0);
        font-size: 4rem;
        font-family: 'Damion', cursive;
    }
   .site_copy span{
        padding: 0 0.5rem;
        letter-spacing: 2px;
    }
    


}


/* hero SP */
@media screen and (max-width: 767px) {
    
    .hero{
        width: 100%;
        display: block;
        position: relative;
    }
    
    .site_copy{
        position: absolute;
        top:50%;
        left: 50%;
        transform: translate(-50%,-50%);
        z-index: 998;
        color: #FFF;
        text-shadow: 0 0 10px rgba(0,0,0,0.8);
        font-size: 2.5rem;
        font-family: 'Damion', cursive;
    }
    .site_copy span{
        padding: 0 0.5rem;
    }


}

/* contents PC */
@media screen and (min-width: 768px) {
    .contents_wrap{
        padding: 9rem 0;
    }
    
     .contents_box{
        padding: 0 1.5rem;
    }

    .company_introduction{
        padding: 12rem 0;
    }

    .company_introduction h2{
        text-align: center;
        font-size: 2.4rem;
        letter-spacing: 0.4rem;
        margin-bottom: 2rem;
    }

    
    .en .company_introduction h2{
        letter-spacing: normal;
    }
    
    .company_introduction p{
        text-align: center;
        font-size: 1.4rem;
        line-height: 3rem;
        letter-spacing: 0.4rem;
    }
    
    .company_introduction p{
        letter-spacing: normal;
    }
    
     .company_introduction p span{
         display: block;
    }
    
    .company_info{
        display: grid;
        grid-template-columns: 1fr 1fr;
        padding: 0;
    }
    
    .greeting .contents_img {
        order: 1;
    }
     .greeting .contents_text {
        order: 2;
    }
   
    .contents_img img{
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    
    .contents_text {
        display: grid;
        background: #f7f7f7;
    }
    
    .contents_text>div{
        width: 100%;
        margin: auto;
        align-self: center;
        padding: 4rem;
    }
    
    .contents_text h3{
        text-align: center;
        font-weight: normal;
        font-size: 2rem;
        letter-spacing: 0.4rem;
        margin-bottom: 2rem;
    }
    
    .en .contents_text h3{
        letter-spacing:normal;
    }
    
    .contents_text h3 img{
        display: block;
        width: 3.5rem;
        height: auto;
        margin: 0 auto 0.5rem;
    }   

    .contents_text p{
        text-align: justify;
        font-size: 1rem;
        line-height: 2.4rem;
        letter-spacing: 0.2rem;
        text-justify: inter-ideograph;
    }
    
    .en .contents_text p{
        text-align: left !important;
        line-height: normal;
        letter-spacing: 1px;
        width: 80%;
        margin: auto;
    }
    
    
    
     .contents_text p span.president_name{
         display: block;
         width: 100%;
         text-align: right;
    }
     .greeting .contents_text p span:last-child{
         display: block;
         margin-top: 4rem;
         font-size: 1.2rem;
    } 
    
    .business .contents_img {
        order: 2;
    }
    .business .contents_text {
        order: 1;
    }

    .maker_logo {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        grid-gap: 2rem;
        margin: 3rem 0 0;
    }
    
    .maker_logo > div {
        flex: none;
        flex-basis: 18%;
        align-self: center;
    }
    
    
    
    
    
    .recycle_flow{
        padding: 6rem 0 9rem;
    }

    .recycle_flow img{
        display: block;
        width: 600px;
        margin: auto;
    }
    
    .overview{
        background: #f7f7f7;
        padding: 12rem 0;
    }
    .overview>img{
        display: block;
        width: 300px;
        height: auto;
        margin: 0 auto 4rem;
    }   
    .overview_text{
        display: grid;
        grid-template-columns: 1fr 1fr;
        grid-gap: 6rem;
        padding: 0 9rem;
    }
    
     .en .overview_text{
        display: block;
        padding: 0 9rem;
    }
   
    .overview_text h3{
        text-align: center;
        font-weight: normal;
        font-size: 1.5rem;
        margin-bottom: 3rem;
    }

    .overview_text>div{
        font-size: 1rem;
    }
    .overview_text>div>div{
        display: grid;
        grid-template-columns: 10rem auto;
        border-bottom: 1px solid #ccc;
        padding: 0.8rem 0;
        line-height: 2rem;
    }
    
     .en .overview_text>div>div{
        grid-template-columns: 16rem auto;
    }
   
    .overview_text>div>div ul {
        list-style: disc;
        padding-left: 1rem;
    }

    
    
    .form {
        background: #333;
        color: #fff;
        text-align: center;
    }
    .form h3{
        text-align: center;
        font-weight: normal;
        font-size: 1.5rem;
        margin-bottom: 1.5rem;
    }
    .form h3 i{
        display: block;
        text-align: center;
        font-weight: normal;
        font-size: 2.4rem;
        margin-bottom: 0.5rem;
        transform: rotate(-10deg);
    }
    
    .form_attention{
        margin-bottom: 40px;
        display: block;
    }
    .form_box {
        max-width: 1000px;
        width: 100%;
        margin: 0 auto;
        padding: 0 40px;
        display: grid;
        grid-template-columns: 180px 1fr;
        grid-gap: 20px;
        margin-bottom: 40px;
    }
    
    .form_box span{
        text-align: left;
        padding: 10px;
        line-height: 2;
    } 
    
    .form_wrap input,
    .form_wrap textarea {
        padding: 10px 15px;
        line-height: 2;
        border-radius: 10px;
        border: none;
    }
    input[type="submit"].form_button{
        background-color: #00952c;
        padding: 10px 90px;
        color: #000;
        -webkit-appearance: none;
    }
    .form_button_wrap {
        margin-bottom: 60px;
    }
    .form_service a {
        font-size: 0.8rem;
        border: none;
        letter-spacing: normal;
        color: #999;
    }
 
    
    
    
}

/* contents SP */
@media screen and (max-width: 767px) {
    .contents_wrap{
        padding: 4rem 0;
    }
    
    .contents_box{
        padding: 0 1.5rem;
    }
    
    .company_introduction h2{
        text-align: center;
        font-size: 1.5rem;
        letter-spacing: 0.1rem;
        margin-bottom: 1rem;
    }
    .en .company_introduction h2{
        line-height: 1.3;
    }
   
    .company_introduction p{
        font-size: 1rem;
        line-height: 1.8rem;
        text-align: justify;
        text-justify: inter-ideograph;        
    }
    
    .en .company_introduction p{
        font-size: 1rem;
        line-height: 1.8rem;
        text-align: left;
    }
    
    
    
    .greeting {
        display: block;
        position: relative;
        background: #000;
        padding: 0;
    }
    
    .greeting .contents_img{
        display: none !important;
        height: 100% !important;
        max-height: 100% !important;
        width: 100%;
        position: absolute;
        overflow: hidden;
        background-color: transparent;
        z-index: 0;
        object-fit: cover;
    }
    
    .greeting .contents_img img{
        display: block;
        height: 100%;
        width: auto;
        position: absolute;
        top:50%;
        left: 50%;
        transform: translate(-50%,-50%);
        opacity: 0.4;
    }
    
    .greeting .contents_text{
        width: 100%;
        padding: 100px 2rem;
        display: block;
        position: relative;
        /* top: 50%; */
        /* left: 50%; */
        /* transform: translate(-50%,-50%); */
        background-color: transparent !important;
        color: #FFF;
        z-index: 1;
        background: url("../images/greeting-sp.jpg");
        background-position: center center;
        background-size: cover;
    }
    
    .greeting .contents_text h3{
        text-shadow: 0 0 10px rgba(0,0,0,1);
    }
    
    .greeting .contents_text h3 img {
        display: block !important;
    }
    
    .greeting .contents_text p{
        font-size: 1rem;
        line-height: 1.8rem;
        letter-spacing: 0.1rem;
        text-shadow: 0 0 10px rgba(0,0,0,1);
    }

    
     .business{
        display: block;
        padding: 3rem 1.5rem 0;
    }


    
    .contents_img{
        position: relative;
        height: 50vh;
        max-height: 200px;
        overflow: hidden;
    }

    .contents_img img{
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
    }
    
    .contents_text {
        padding:2rem 0 0;
    }
    
    .contents_text>div{
        width: 100%;
    }
    
    .contents_text h3{
        text-align: center;
        font-weight: bold;
        font-size: 1.3rem;
        letter-spacing: 0.3rem;
        margin-bottom: 1rem;
    }
    
    .en .contents_text h3{
        letter-spacing: normal;
    }

    .contents_text h3 img{
        display: none;
        width: 3.5rem;
        height: auto;
        margin: 0 auto 2rem;
    }   
    
    .contents_text p{
        text-align: justify;
        text-justify: inter-ideograph;        
    }
 
    .en .contents_text p{
        text-align: left;
    }
    

    .qt-400 .contents_text p{
        padding: 0 1.5rem;
    }
    
     .greeting .contents_text p span:last-child{
         display: block;
         text-align: center;
         margin-top: 1rem;
         font-size: 1rem;
    } 
    
    .recycle_flow{
        padding: 2rem 0 0;
    }

    .recycle_flow img{
        display: block;
        width: 80%;
        margin: auto;
    }
    
    .overview{
        background: #f7f7f7;
        padding: 4rem 0;
    }
    .overview>img{
        display: block;
        width: 180px;
        height: auto;
        margin: 0 auto 3rem;
    }   
    .overview_text{
        display: grid;
        grid-template-columns: 1fr;
        grid-gap: 3rem;
        padding: 0 1.5rem;
    }
    .overview_text h3{
        text-align: center;
        font-weight: bold;
        font-size: 1.2rem;
        margin-bottom: 0;
    }

    .overview_text>div{
        font-size: 0.8rem;
    }
    .overview_text>div>div{
        display: block;
        border-bottom: 1px solid #ccc;
        padding: 0.5rem 0;
        line-height: 1.5rem;
    }
    .overview_text>div>div span:first-child{
        display: block;
        font-weight: bold;
    }

    .overview_text>div>div ul {
        list-style: disc;
        padding-left: 1rem;
    }
    
    .form {
        background: #333;
        color: #fff;
        text-align: center;
    }
    .form h3{
        text-align: center;
        font-weight: normal;
        font-size: 1rem;
        margin-bottom: 1rem;
    }
    .form h3 i{
        display: block;
        text-align: center;
        font-weight: normal;
        font-size: 1.8rem;
        margin-bottom: 0.5rem;
        transform: rotate(-10deg);
    }
    .form_attention{
        margin-bottom: 0;
        display: block;
    }
    .form_box {
        width: 100%;
        margin: 0 auto;
        padding: 0 1rem;
        display: block;
        margin-bottom: 40px;
    }
    
    .form_box span{
        text-align: left;
        padding: 20px 0 0;
        line-height: 2;
        display: block;
    } 
    
    .form_wrap input,
    .form_wrap textarea {
        padding: 10px 15px;
        line-height: 2;
        border-radius: 10px;
        border: none;
        width: 100%;
    }
    
    input[type="submit"].form_button{
        background-color: #00952c;
        color: #FFF;
        -webkit-appearance: none;
        width: 60%;
        font-size: 1rem;
    }
    .form_button_wrap {
        padding: 0 1rem;
        margin-bottom: 60px;
        text-align: center;
    }
    .form_service a {
        font-size: 0.8rem;
        border: none;
        letter-spacing: normal;
        color: #999;
    }

 
    .maker_logo {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        grid-gap: 1rem;
        margin: 1rem 0 3rem;
    }
    
    .maker_logo > div {
        flex: none;
        flex-basis: 20%;
        align-self: center;
    }
    
    
}


/* form comment PC */
@media screen and (min-width: 768px) {
    
    #form_comment{
        height: 100vh;
        display: block;
        position: relative;
    }
    
    .form_comment{
        position: relative;
        text-align: center;
        height: 100%;
    }
    
    .form_comment>div{
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        width: 100%;
    }
    
    
    .form_comment img{
        width: 60px;
        height: auto;
        margin-bottom: 40px;
    }
    
    
    .form_comment h3 {
        font-size: 1.2rem;
        margin-bottom: 10px;
    }
     .form_comment .form_error {
        color: #900;
    }

     .form_comment p {
        font-size: 1rem;
        margin-bottom: 60px;
    }
    
      .form_comment p.form_comment_attention {
            font-size: 0.7rem;
            margin:0 auto 40px;
            width: 600px;
            text-align: left;
            display: grid;
          grid-gap: 10px;
          grid-template-columns: 1rem 1fr;
        }

    .form_comment_attention span{
        display: block;
    }
    .form_comment a{
        padding-bottom: 10px;
        border-bottom: 1px solid #000;
    }    
    .form_comment a:before{
        font-family:"FontAwesome" !important;
        content:"\f177";
        display: inline-block;
        margin-right: 1rem;

    }
    
    #form_comment footer{
        position: absolute;
        bottom:0;
        width: 100%;
    }
}

/* form comment SP */
@media screen and (max-width: 767px) {
    
     #form_comment{
        height: 100vh;
        display: block;
        position: relative;
    }
    
    .form_comment{
        position: relative;
        text-align: center;
        height: 100%;
    }
    
    .form_comment>div{
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        width: 100%;
        padding: 0 1rem;
    }
    
    
    .form_comment img{
        width: 40px;
        height: auto;
        margin-bottom: 30px;
    }
    
    
    .form_comment h3 {
        margin-bottom: 10px;
    }
    .form_comment .form_error {
        color: #900;
    }

     .form_comment p {
        font-size: 0.8rem;
        margin-bottom: 30px;
    }
    
      .form_comment p.form_comment_attention {
            font-size: 0.7rem;
            margin:0 auto 30px;
            width: 100%;
            text-align: left;
            display: grid;
          grid-gap: 10px;
          grid-template-columns: 1rem 1fr;
        }

    .form_comment_attention span{
        display: block;
    }
    .form_comment a{
        padding-bottom: 10px;
        border-bottom: 1px solid #000;
    }    
    .form_comment a:before{
        font-family:"FontAwesome" !important;
        content:"\f177";
        display: inline-block;
        margin-right: 1rem;

    }
    
    #form_comment footer{
        position: absolute;
        bottom:0;
        width: 100%;
    }

}
