@charset "utf-8";

/*============================
代表挨拶
============================*/
#message .flex {
    align-items: center;
}

#message .photo {
    width: 640px;
    position: relative;
}

#message .photo::before {
    content: "";
    background: url(../../images/common/illust_dot_circle.png) no-repeat center center;
    background-size: 100%;
    width: 270px;
    height: 270px;
    display: block;
    position: absolute;
    top: 0;
    right: 0;
}

#message .photo::after {
    content: "";
    background: url(../../images/common/illust_border_circle.png) no-repeat center center;
    background-size: 100%;
    width: 160px;
    height: 160px;
    display: block;
    position: absolute;
    bottom: 0;
    right: 0;
}

#message .photo .photo_inner {
/*    border-radius: 5px 50% 50% 5px;*/
    overflow: hidden;
}

#message .photo .photo_inner img {
    width: 100%;
}

#message .text {
    width: 360px;
}

#message .name {
    text-align: right;
    font-size: 16px;
    font-weight: bold;
}

@media only screen and (max-width: 768px) {

    #message .flex {
        display: block;
    }

    #message .photo {
        width: 100%;
        margin-bottom: 20px;
    }

    #message .photo::before {
        width: 100px;
        height: 100px;
    }

    #message .photo::after {
        width: 80px;
        height: 80px;
    }

    #message .photo .photo_inner img {
        width: 100%;
    }

    #message .text {
        width: 100%;
    }

}

/*============================
企業理念
============================*/

#philosophy {
    padding: 0;
}

#philosophy .inner {
    background: #f3fafe;
    padding: 90px 60px 100px;
    position: relative;
}

/*木*/
#philosophy .inner::before {
    content: "";
    background: url(../images/philosophy/tree.png) no-repeat center center;
    background-size: 100%;
    width: 200px;
    height: 255px;
    display: block;
    position: absolute;
    bottom: 0;
    right: 50px;
}

/*鳥*/
#philosophy .inner::after {
    content: "";
    background: url(../images/philosophy/bird.png) no-repeat center center;
    background-size: 100%;
    width: 90px;
    height: 108px;
    display: block;
    position: absolute;
    top: 77px;
    right: 268px;
}

#philosophy .inner .text {
    width: 740px;
	font-size: 18px;
	font-weight: 700;
}

#philosophy .inner .text .detail:not(:last-child) {
	margin-bottom: 20px;
}

#philosophy .inner .text h3 {
    font-size: 26px;
    font-weight: 700;
    margin-bottom: 5px;
}

@media only screen and (max-width: 768px) {

    #philosophy .inner {
        padding: 25px 20px 80px;
    }

    /*木*/
    #philosophy .inner::before {
        content: "";
        background: url(../images/philosophy/tree.png) no-repeat center center;
        background-size: 100%;
        width: 60px;
        height: 77px;
        display: block;
        position: absolute;
        bottom: 0;
        right: 0px;
        left: 0;
        margin: 0 auto;
    }

    /*鳥*/
    #philosophy .inner::after {
        content: "";
        background: url(../images/philosophy/bird.png) no-repeat center center;
        background-size: 100%;
        width: 30px;
        height: 54px;
        display: block;
        position: absolute;
        top: 10px;
        right: 20px;
    }

    #philosophy .inner .text {
        width: 100%;
		font-size: 16px;
    }
	
	#philosophy .inner .text .detail:not(:last-child) {
		border-bottom: 1px solid #e2e2e2;
		padding-bottom: 20px;
	}

    #philosophy .inner .text h3 {
        font-size: 18px;
    }
}

/*============================
会社情報
============================*/

#company_info .inner {
    position: relative;
}

#company_info .inner::before {
    content: "";
    background: url(../../images/common/company/illust_company_right.png) no-repeat center center;
    background-size: 100%;
    width: 247px;
    height: 129px;
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    z-index: -1;
}

table.info tbody {
    width: 500px;
    display: block;
}

table.info ul li {
	margin-bottom: 10px;
}

@media only screen and (max-width: 768px) {

    #company_info .inner::before {
        content: "";
        background: url(../../images/common/company/illust_company_right.png) no-repeat center center;
        background-size: 100%;
        width: 124px;
        height: 65px;
        display: block;
        position: absolute;
        top: 0;
        right: 0;
    }

    table.info tbody {
        width: 100%;
    }
}

/*============================
沿革
============================*/
#history {
    background: #f3fafe;
}

#history .inner {
    position: relative;
    overflow: visible;
}

#history .inner::after {
    content: "";
    background: url(../images/history/mark.png) no-repeat center center;
    background-size: 100%;
    width: 300px;
    height: 307px;
    position: absolute;
    right: 0;
    bottom: -50px;
}

#history .flex .box {
    width: 500px;
    font-weight: 700;
    position: relative;
    z-index: 1;
}

#history .flex .box::after {
    content: "";
    width: 1px;
    height: 100%;
    background: #67c612;
    position: absolute;
    left: 116px;
    top: 0;
    z-index: -1;
}

#history .flex .box dl {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    margin-bottom: 40px;
    position: relative;
    z-index: 2;
    background-color: transparent;
}

#history .flex .box dl dt {
    width: 116px;
    font-size: 40px;
    color: #2ca5df;
    position: relative;
}

#history .flex .box dl dt::before {
    content: "";
    width: 13px;
    height: 13px;
    border-radius: 50%;
    background: #009b83;
    display: block;
    position: absolute;
    top: 28px;
    right: -7px;
    z-index: 10;
}

#history .flex .box dl dd {
    width: 355px;
    margin-left: 25px;
    font-size: 18px;
}

#history .flex .box dl dd span {
	display: block;
	margin-top: 10px;
}

#history .flex .box .photo {
    width: 280px;
    border-radius: 5px;
    overflow: hidden;
    margin-bottom: 5px;
}

#history .flex .box .photo img {
    width: 100%;
}

/*線の上下の調整*/

#history .flex .box.right dl:first-child {
    margin-top: 10px;
}

#history .flex .box dl:last-child {
    margin-bottom: 10px;
}

@media only screen and (max-width: 768px) {

    #history .inner::after {
        width: 150px;
        height: 154px;
        bottom: -25px;
    }

    #history .flex .box {
        width: 100%;
    }

    #history .flex .box::after {
        left: 80px;
    }

    #history .flex .box dl {
        margin-bottom: 20px;
    }

    #history .flex .box dl dt {
        width: 80px;
        font-size: 24px;
    }

    #history .flex .box dl dt::before {
        width: 10px;
        height: 10px;
        top: 16px;
        right: -5px;
    }

    #history .flex .box dl dd {
        width: calc(100% - 110px);
        margin-left: 18px;
        font-size: 16px;
    }

    #history .flex .box .photo {
        width: 100%;
    }
}