@charset "utf-8";

html,body{
    width: 100%;
    min-width: 320px;
    font-size: 16px;
    font-weight: 400;
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    color: #404040;
    background-color: #ffffff;
    position: relative;
}

h2{
    margin-bottom: 30px;
    font-size: 24px;
    font-weight: 500;
    text-align: center;
}

h3{
    font-size: 21px;
    font-weight: 500;
}

b{
    font-weight: 700;
}

.all-view, .page-header, .page-main, .page-footer, .wrapper{
    width: 100%;
}

.flex{
    display: flex;
    flex-flow: row wrap;
}

.container{
    max-width: 1200px;
    margin: 0 auto;
    padding-left: 12px;
    padding-right: 12px;
}

main section, footer section{
    padding: 60px 0;
}



/*==== ページヘッダー ====*/

.page-header, .page-header .inner{
    width: 100%;
    height: 72px;
}

.page-header .flex{
    padding: 0 9px;
    justify-content: space-between;
}

.logo-wrap{
    padding: 6px 0;
}

.logo{
    height: 60px;
}

.logo img{
    display: block;
    height: 60px;
}

.menu{
    position: relative;
}

.menu nav{
    width: 48px;
    height: 60px;
    padding: 6px 0 6px;
    position: absolute;
    top: 0;
    right: 0;
    transition: all 0.4s ease-out;
}

.menu-btn{
    width: 48px;
    height: 48px;
    padding: 3px;
    background-color: transparent;
    position: absolute;
    right: 0;
}

.menu-btn span{
    display: block;
    width: 36px;
    height: 2px;
    border-radius: 4px;
    background-color: #404040;
    position: absolute;
    left: 6px;
    transition: all 0.2s ease-out;
}

.menu-btn span:first-child{
    top: 15px;
}

.menu-btn span:nth-child(2){
    top: 23px;
    opacity: 1;
}

.menu-btn span:last-child{
    top: 31px;
}

.menu-list-wrap{
    display: none;
}

/* メニュー展開 */
.menu nav.open{
    width: 332px;
    height: 332px;
    border-radius: 0 0 0 100%;
    background-color: #d6e3d7f0;
    position: absolute;
    top: 0;
    right: -12px;
}

nav.open .menu-btn{
    position: absolute;
    right: 12px;
}

nav.open .menu-btn span:first-child{
    transform: rotate(45deg);
    top: 24px;
}

nav.open .menu-btn span:nth-child(2){
    opacity: 0;
}

nav.open .menu-btn span:last-child{
    transform: rotate(-45deg);
    top: 24px;
}

nav.open .menu-list-wrap{
    display: block;
    position: relative;
    top: 42px;
}

nav.open .menu-list{
    width: 240px;
    height: auto;
    padding: 0 0 0 60px;
    margin-left: 60px;
}

nav.open .menu-list li{
    width: 150px;
    padding: 0 0 0 6px;
    margin-bottom: 6px;
    font-size: 18px;
    text-align: left;
    list-style-type: "‐";
}

nav.open .menu-list li a{
    display: block;
    width: 100%;
    padding: 6px;
}

nav.open .menu-list li.instagram{
    padding-top: 6px;
    padding-left: 45px;
    list-style-type: none;
}

nav.open .menu-list li.instagram a{
    display: inline-block;
    width: 36px;
    height: 36px;
}

.instagram img{
    display: inline-block;
    width: 36px;
    height: 36px;
}



/*==== ファーストビュー ====*/

.first-view{
    width: 100%;
    max-width: 1200px;
    min-height: 600px;
    background-image: url(../img/image1.png);
    background-clip: border-box;
    background-repeat: no-repeat;
    background-size: 100% auto;
    background-position: center top 30px;
    padding: 0;
    margin: 0 auto;
}

.first-view .container{
    width: 100%;
    max-width: 1200px;
    min-height: 600px;
    margin: 0 auto;
    background-color: rgba(255, 255, 255, 0.8);
}

.first-view .contents{
    width: 100%;
    padding: 120px 0 0;
}

.first-view h1{
    margin-bottom: 60px;
    font-weight: 500;
    font-size: 18px;
    line-height: 2;
    text-align: center;
    text-shadow: #bcd0bd 1px 1px 2px, #fff 0 0 4px, #fff 0 0 4px;
}

.first-view h1 span{
    display: inline-block;
    font-size: 24px;
    padding: 3px;
}

.first-view h1 span:last-child{
    font-size: 36px;
}

.first-view .description p{
    max-width: 480px;
    margin: 0 auto 30px;
    padding: 6px;
    font-weight: 500;
    text-shadow: #bcd0bd 1px 1px 2px, #fff 0 0 4px, #fff 0 0 4px;
}

.top-btns{
    justify-content: center;
}

.top-btns a{
    display: block;
    width: 210px;
    height: 48px;
    border: 2px solid #005d24;
    border-radius: 6px;
    font-size: 18px;
    line-height: 42px;
    font-weight: 500;
    text-align: center;
    margin: 0 15px 15px;
    box-sizing: border-box;
}

.top-btns .school{
    color: #fff;
    background-color: #005d24;
}

.top-btns .mail-form{
    color: #005d24;
    background-color: #fff;
}

.first-view::after{
    content: "";
    display: block;
    width: 100%;
    height: 30px;
    background: linear-gradient(to bottom, rgba(255,255,255,0.8), #fff);
}



/*==== about ====*/

.about{
    margin-top: 60px;
    padding-top: 30px;
}

.about h2{
    width: 100%;
}

.about .contents{
    justify-content: center;
    column-gap: 12px;
}

.about .content-box{
    flex: 1 1 300px;
    max-width: 360px;
    min-height: 240px;
    background-color: #e4ece4;
    border: 2px solid #c9d9ca;
    border-radius: 6px;
    padding: 18px 24px 24px;
    margin-bottom: 12px;
    overflow: hidden;
}

.about .icon-box{
    width: 60px;
    height: 60px;
    margin-bottom: 12px;
    padding: 10px;
    border-radius: 60px;
    background-color: #005d24;
    text-align: center;
}

.about .icon-box img{
    display: inline-block;
    width: 40px;
    height: 40px;
}

.about h3{
    margin-bottom: 12px;
}


/*==== service ====*/

.service{
    margin-top: 60px;
    background-color: #005d24;
    color: #fff;
}

.service .contents{
    padding-top: 60px;
    padding-left: 6px;
    padding-right: 6px;
}

.service-desc{
    margin-bottom: 60px;
}

.service-list{
    column-gap: 18px;
}

.service-list div{
    flex: 1 1 360px;
    margin-bottom: 45px;
}

.service-list dt{
    margin-bottom: 15px;
    font-size: 21px;
    font-weight: 500;
}

.service-list dt span{
    font-size: 16px;
    font-family: "Kanit", sans-serif;
    font-weight: 300;
    font-style: normal;
    line-height: 2;
}



/*==== vacate ====*/

.vacate{
    background-color: #005d24;
    color: #fff;
}

.vacate .contents{
    width: 100%;
    position: relative;
    padding-left: 6px;
    padding-right: 6px;
}

.vacate-desc{
    margin-bottom: 30px;
}

.vacate h3{
    margin-bottom: 15px;
    padding-left: 30px;
}

.vacate ul{
    padding-left: 45px;
}

.vacate li{
    list-style-type: "・";
    padding-left: 0.25em;
}

.example-pc{
    display: none;
}

.example-mob{
    color: #404040;
}

.example-mob ul{
    display: flex;
    flex-flow: row wrap;
    justify-content: flex-start;
    column-gap: 1em;
}

.example-mob li{
    width: 240px;
}

.vacate-img{
    width: 100%;
    margin-bottom: 60px;
    padding: 30px 0 0 0;
    border-radius: 12px;
    background-color: #fff;
    overflow: hidden;
}

.vacate-img img{
    width: 100%;
    display: block;
}



/*==== construction ====*/

.construction{
    width: 100%;
    max-width: 1200px;
    background-image: url(../img/image3.png);
    background-repeat: no-repeat;
    background-size: 100% auto;
    background-position: center top 270px;
    padding: 0;
    margin: 0 auto 60px;
}

.construction .container{
    padding-top: 90px;
    background-color: rgba(255, 255, 255, 0.8);
}

.construction .contents{
    padding-left: 6px;
    padding-right: 6px;
}

.const-desc{
    margin-bottom: 30px;
}

.const-list{
    padding-top: 30px;
}

.const-list li{
    margin-bottom: 45px;
    text-shadow: #bcd0bd 1px 1px 2px, #fff 0 0 4px, #fff 0 0 4px;
}

.const-list h3{
    margin-bottom: 15px;
    padding-left: 60px;
    line-height: 48px;
    background-repeat: no-repeat;
    background-size: 48px 48px;
    background-position: left top;
}

.const-list li:first-child h3{
    background-image: url(../img/icon2_1.svg);
}

.const-list li:nth-of-type(2) h3{
    background-image: url(../img/icon2_2.svg);
}

.const-list li:last-child h3{
    background-image: url(../img/icon2_3.svg);
}

.construction::after{
    content: "";
    background-color: red;
    display: block;
    width: 100%;
    height: 60px;
    background: linear-gradient(to bottom, rgba(255,255,255,0.8), #fff);
}


/*==== asbestos ====*/

.asbestos{
    position: relative;
}

.asbestos .contents{
    width: 100%;
    padding-left: 6px;
    padding-right: 6px;
    position: relative;
}

.asbestos-desc{
    margin-bottom: 15px;
}

.asbestos-point{
    padding: 30px;
    position: absolute;
    bottom: -420px;
    right: 0;
    z-index: 999;
}

.asbestos-point p{
    max-width: 360px;
    padding: 24px;
    background-color: #e4ece4f0;
    border-radius: 12px;
}

.asbestos-point span{
    display: block;
    font-size: 18px;
    font-weight: 500;
    line-height: 24px;
    margin-bottom: 24px;
}

.asbestos-point img{
    display: inline-block;
    vertical-align: bottom;
    width: 24px;
    height: 24px;
    margin-right: 12px;
}

.asbestos-img{
    width: 100%;
    min-height: 480px;
    background-image: url(../img/image4.png);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center top;
    position: relative;
}

/*==== area ====*/

.area{
    max-width: 1200px;
    margin: 90px auto;
    padding: 0;
    background-image: url(../img/image5.png);
    background-repeat: no-repeat;
    background-size: auto 60%;
    background-position: center bottom;
}

.area .container{
    background-color: rgba(255, 255, 255, 0.8);
}

.area .contents{
    padding: 18px 6px;
}

.area h3{
    margin-bottom: 24px;
}

.area h3::before{
    content: "■";
    display: inline-block;
    margin-right: 0.5em;
}

.content-area{
    margin-bottom: 45px;
}

.area p{
    margin-bottom: 1em;
}

.area ul{
    margin-bottom: 1em;
}

.area li{
    list-style-type: "・";
    margin-left: 1em;
}

.area h4{
    font-size: 18px;
    margin-bottom: 0.5em;
}

.area .contents{
    text-shadow: #bcd0bd 1px 1px 2px, #fff 0 0 4px, #fff 0 0 4px;
}

.area .contents div p:last-child{
    font-size: 14px;
}



/*==== ページフッター ====*/

/* お問合せ */
.inquiry-desc{
    max-width: 480px;
    padding: 0 6px;
    margin: 0 auto 60px;
}

.inquiry .contents{
    max-width: 1200px;
    padding: 0 6px;
}

.inquiry .contents div{
    flex: 1 1 auto;
    min-width: 320px;
    max-width: 480px;
    border: 3px solid #c9d9ca;
    border-radius: 9px;
    padding: 24px;
    margin-bottom: 18px;
    overflow: hidden;
}

.inquiry h3{
    margin-bottom: 12px;
}

.content-mail h3::before{
    content: url(../img/icon4_1.svg);
    display: inline-block;
    width: 24px;
    height: 24px;
    vertical-align: middle;
    margin-right: 0.5em;
}

.content-mail a{
    display: block;
    margin-bottom: 12px;
    font-size: 21px;
    font-weight: 500;
    color: #005d24;
    text-decoration: underline;
}

.content-company h3::before{
    content: url(../img/icon4_2.svg);
    display: inline-block;
    width: 30px;
    height: 30px;
    vertical-align: bottom;
    margin-right: 0.5em;
}

.content-company p{
    font-weight: 700;
    font-size: 18px;
    margin-bottom: 12px;
}

.content-company dt{
    font-weight: 500;
}

.content-company dd{
    margin-left: 1.5em;
    margin-bottom: 0.5em;
    position: relative;
}

.content-company dd span{
    display: none;
}

.content-company dd::before{
    content: "└";
    display: block;
    position: absolute;
    left: -1.5em;
    font-weight: 700;
}

/* copyright */

.copyright p{
    max-width: 1200px;
    margin: 0 auto 30px;
    padding: 30px 18px;
    border-top: 1px solid #e4ece4;
}

.copyright small{
    display: block;
    padding: 6px;
    text-align: center;
}



/*======== タブレット表示 ========*/

@media screen and (min-width: 480px){

    /*area*/
    .area{
        background-size: auto 75%;
    }

    /*お問合せ*/
    .inquiry .flex{
        column-gap: 24px;
        justify-content: center;
    }

    .content-company dd span{
        display: inline;
    }

}



/*======== 小PC表示 ========*/

@media screen and (min-width: 834px){

    .container{
        padding-left: 24px;
        padding-right: 24px;
    }

    h2{
        margin-bottom: 60px;
        font-size: 30px;
        text-align: left;
    }

    h3{
        font-size: 24px;
    }

    /*ページヘッダー*/
    .page-header, .page-header .inner{
        height: 90px;
        border-bottom: 1px solid #005d24;
    }

    .page-header .flex {
        align-items: center;
    }

    .logo-wrap{
        padding: 12px 0 0;
    }

    .logo, .logo img{
        height: 78px;
    }

    .menu nav{
        width: 480px;
        position: relative;
    }

    .menu nav button{
        display: none;
    }

    .menu nav .menu-list-wrap{
        display: block;
        text-align: right;
    }

    .menu nav .menu-list{
        white-space: nowrap;
    }

    .menu nav .menu-list li{
        display: inline-block;
        margin-left: 18px;
        vertical-align: middle;
    }

    .menu .instagram a{
        display: inline-block;
        padding: 6px;
        position: relative;
    }

    .menu .instagram a::after {
        content: "Instagram";
        position: absolute;
        bottom: -6px;
        right: -3px;
        font-size: 12px;
    }

    /*ファーストビュー*/
    .first-view{
        background-size: 40% auto;
        background-position: right top 30px;
    }

    .first-view::after{
        display: none;
    }

    .first-view .container{
        background-color: transparent;
    }

    .first-view .contents{
        width: 60%;
    }

    .first-view h1{
        text-align: left;
        font-size: 24px;
        font-weight: 400;
        line-height: 1.5;
    }

    .first-view h1 span{
        font-size: 30px;
    }

    .first-view h1 span:last-child{
        font-size: 42px;
    }

    .first-view .description p{
        max-width: 600px;
        margin-left: 0;
        padding: 0 12px 0 0;
        font-weight: 400;
    }

    .top-btns{
        justify-content: flex-start;
        column-gap: 30px;
    }

    .top-btns a{
        margin: 0;
    }

    /*about*/
    .about .contents{
        justify-content: flex-start;
    }

    /*service*/
    .service-list{
        column-gap: 36px;
    }

    /*vacate*/
    .vacate .contents{
        width: 60%;
        padding-left: 0;
        padding-right: 24px;
    }

    .example-pc{
        display: block;
    }

    .example-mob{
        display: none;
    }

    .vacate-img{
        width: 40%;
        margin: 0;
        padding: 15px 0 15px;
    }

    /*construction*/
    .construction{
        background-size: 40% auto;
        background-position: left center;
        margin-bottom: 0;
    }

    .construction::after{
        display: none;
    }

    .construction .container{
        background-color: transparent;
        justify-content: flex-end;
    }

    .construction .contents{
        width: 60%;
        padding: 30px 0 30px 24px;
    }

    .construction h2{
        margin-bottom: 30px;
    }

    .const-list h3{
        margin-bottom: 0;
    }

    .const-list p{
        padding-left: 60px;
    }

    /*asbeston*/
    .asbestos .contents{
        width: 60%;
        padding: 0 24px 0 0;
    }

    .asbestos h2{
        margin-bottom: 45px;
    }

    .asbestos-point{
        position: relative;
        top: 0;
        left: 0;
        padding: 30px 0 0;
    }

    .asbestos-point p{
        max-width: none;
        width: 100%;
        position: relative;
        padding-left: 72px;
        font-size: 18px;
    }

    .asbestos-point span{
        display: inline;
        margin-right: 0.5em;
        font-weight: 700;
    }

    .asbestos-point img{
        position: absolute;
        top: 27px;
        left: 36px;
    }

    .asbestos-img{
        width: 40%;
    }

    /*area*/
    .area{
        width: 95%;
        border-radius: 60px;
        background-size: cover;
        background-position: center;
        box-shadow: #ccc 0 2px 6px 0;
        overflow: hidden;
    }

    .area .container{
        padding: 120px 48px;
        background-color: rgba(250, 255, 252, 0.8);
    }

    .area h2{
        text-shadow: #bcd0bd 1px 1px 2px, #fff 0 0 4px, #fff 0 0 4px;
    }

    .area .contents{
        justify-content: space-between;
    }

    .content-area{
        width: 45%;
    }

    .content-recruit{
        width: 50%;
    }

    /*inquiry*/
    .inquiry-desc{
        max-width: none;
    }

    .inquiry .flex{
        justify-content: flex-start;
    }

    .content-mail h3::before{
        width: 36px;
        height: 36px;
        vertical-align: bottom;
    }

    .content-company h3::before{
        width: 36px;
        height: 36px;
    }
}


/*======== 大PC表示 ========*/

@media screen and (min-width: 1080px){

    html,body{
        font-size: 18px;
    }

    h2{
        font-size: 36px;
    }

    h3{
        font-size: 24px;
    }

    .menu nav{
        width: 600px;
    }

    .menu nav .menu-list li {
        margin-left: 30px;
    }

    .first-view{
        margin-top: 60px;
        background-size: contain;
        background-position: right center;
    }

    .first-view .contents{
        padding-bottom: 180px;
    }

    .first-view h1{
        font-size: 30px;
    }

    .first-view h1 span {
        font-size: 42px;
        padding: 6px;
    }

    .first-view h1 span:last-child {
        font-size: 48px;
    }

    .top-btns a {
        width: auto;
        height: 60px;
        font-size: 21px;
        line-height: 54px;
        padding: 0 30px;
    }

    .about{
        margin-top: 180px;
    }

    .about .contents {
        justify-content: space-between;
    }

    .service-desc{
        font-size: 21px;
    }

    .service-list {
        column-gap: 90px;
    }

    .service-list dt {
        font-size: 24px;
    }

    .service-list dt span{
        font-size: 21px;
    }

    .vacate-desc, .const-desc, .asbestos-desc{
        font-size: 21px;
    }

    .construction .container, .asbestos{
        padding-top: 120px;
    }

    .construction {
        background-position: left bottom;
    }

    .construction .contents{
        padding-left: 60px;
    }

    .asbestos .contents{
        padding-right: 60px;
    }

    .asbestos-point p{
        font-size: 20px;
        padding: 24px 30px 30px 72px;
    }

    .asbestos-point span{
        font-size: inherit;
        line-height: inherit;
    }

    .area h4 {
        font-size: 21px;
    }

    .area .contents div p:last-child {
        font-size: 16px;
    }

    .inquiry-desc{
        font-size: 21px;
    }

    .content-mail a{
        font-size: 30px;
        line-height: 2;
    }

}

@media screen and (min-width: 1320px){
    .page-header .flex{
        padding: 0 60px;
    }
}