@import url('https://fonts.googleapis.com/css2?family=Josefin+Sans:wght@500;600;700&display=swap');

.forPC{
    display: block;
}
.forSP{
    display: none;
}
@media screen and (max-width: 767px) {
    .forPC{
        display: none;
    }
    .forSP{
        display: block;
    }
}
.his{
    font-family: 'Josefin Sans', sans-serif;
}
.sml{
    font-size:.7em;
}
.large{
    font-size:1.4em;
}
.note{
    text-indent: -1em;
    margin-left: 1em;
}
.sekisui50th.pageHeader{
    padding-bottom:50px;
}
.logo_50th svg{
    fill:#008870;
}
@media screen and (max-width: 767px) {
    .sekisui50th.pageHeader{
        padding:0 10px 30px;
    }
    .logo_50th {
        width:30%;
        margin: 0 auto;
    }
    .pageHeader h1{
        font-size:2rem;
    }
}
.main-visual-wrp{
    position: relative;
    text-align: center;
}
.main-visual-wrp .main-title{
    display: block;
    width:30%;
    height:100%;
    position: absolute;
    top:0;
    right:0;
    background-color:rgba(255,255,255,.8);
    padding:3em;
    z-index: 10;
}
.main-visual-wrp .main-title img{
    height:100%;
    width:auto;
}
.slide{
    position: relative;
}
.slideimg{
    width:100%;
    height: 0;
    padding-bottom:40%;
    position:relative;
}
.mainContent figure.slideimg img{
    font-family: "object-fit: cover;";
    width:100%;
    height:100%;
    object-fit: cover;
    position: absolute;
    top:0;
    left:0;
}
@media screen and (max-width: 767px) {
    .main-visual-wrp .main-title{
        width:35%;
        padding:0;
    }
    .slideimg{
        width:100%;
        height: 0;
        padding-bottom:60%;
        position:relative;
    }
}
.slide-dots{
    position: absolute;
    bottom:10px;
    right:15px;
    display: flex;
    justify-content: center;
    z-index:12;
}
.slide-dots li{
    display: block;
    background-color:#000;
    border-radius: 100%;
    width: 12px;
    height:12px;
    margin:.5em;
    opacity:.5;
    cursor: pointer;
}
.slide-dots .slick-active{
    opacity:1;
}
.slide-dots li button{
    opacity:0;
    border:none;
    font-size: 0;
    line-height: 0;
    display: block;
    width: 12px;
    height: 12px;
    cursor: pointer;
    color: transparent;
    border: 0;
    outline: none;
    background: transparent;
}
.history-gnavi{
    position: sticky;
    top:100px;
    z-index:99;
}
@media screen and (max-width: 767px) {
    .history-gnavi{
        top:70px;
    }
}
.history-gnavi ul{
    width:100%;
    margin:0 auto;
    justify-content: space-between;
}
.history-gnavi ul li{
    width:33.33%;
}
.history-gnavi ul li a{
    display: block;
    border:1px solid #ccc;
    background-color:#f9f9f9;
    font-size:1.2em;
    padding:1em;
    color:#000;
    text-align: center;
    transition: all .3s ease;
}
.history-gnavi ul li a:hover{
    background-color:#008871;
    color:#fff;
}
@media screen and (max-width: 767px) {
    .history-gnavi ul li a{
        font-size:.9em;
        line-height: 1.5;
    }
}
.anniversary {
    margin-bottom: 3em;
}
.anniversary  .anniversary-lead{
    width:100%;
    text-align: center;
    padding:60px 10px 100px;
}
.anniversary .title{
    font-size:5em;
    line-height: 1.3;
    font-weight:800;
    letter-spacing: .025em;
    text-indent: -.2em;
}
.anniversary  .anniversary-lead .copy{
    font-size:2em;
    margin-bottom:.75em;
}
.anniversary  .anniversary-lead .subcopy{
    font-size:1.5em;
}
.anniversary figcaption{
    display: block;
    text-align: center;
    font-size:1.2em;
    padding:1em 0;
}
@media screen and (max-width: 767px) {
    .anniversary .title{
        font-size:2.5em;
    }
    .anniversary  .anniversary-lead{
        padding:30px 10px 60px;
    }
    .anniversary  .anniversary-lead .copy{
        font-size:1.5em;
    }
    .anniversary  .anniversary-lead .subcopy{
        font-size:1.8rem;
    }
    .anniversary figcaption{
        font-size:1em;
    }
    .anniversary .slide-dots{
        position: static;
    }
}
.project{
    text-align: center;
    background-color:#f9f9f9;
}
.project .arrowBg{
    height:auto;
    max-height: 100%;
    padding:50px 0 100px;
    background:linear-gradient(0deg, #83c7ef, #008871);
}
.project .project4icon{
    display: block;
    width:170px;
    margin:1em auto 2em;
}
.project .project4icon img{
    width:100%;
}
.project .project-title{
    display: inline-block;
    font-size:2.4em;
    margin-bottom: 1em;
    border:3px double;
    padding:.2em 1em;
}
.project .arrowBg .lead{
    font-size:1.5em;
    line-height:1.8;
    margin-bottom: 1em;
}
@media screen and (max-width: 767px) {
    .project .project4icon{
        width:120px;
    }
    .project .project-title{
        font-size:1.4em;
    }
    .project .arrowBg .lead{
        font-size:1.1em;
        line-height:1.8;
        margin-bottom: 1em;
    }
}
.projects4{
    width:100%;
    max-width:1200px;
    justify-content: space-around;
    margin:5em auto 6em;
    position:relative;
}
.projects4:after {
	top: 115%;
	left: 50%;
	border: solid transparent;
	content: "";
	height: 0;
	width: 0;
	position: absolute;
	pointer-events: none;
    border-color: rgba(0, 136, 113, 0);
	border-top-color:#008871;
	border-width: 30px;
	margin-left: -30px;
}
.mainContent .project .arrowBg::after{
    background: -webkit-gradient(linear, left bottom, right top, color-stop(50%, #f9f9f9), color-stop(50.1%, transparent)) left bottom/51% 100% no-repeat, -webkit-gradient(linear, right bottom, left top, color-stop(50%, #f9f9f9), color-stop(50.1%, transparent)) right bottom/51% 100% no-repeat;
    background: linear-gradient(to right top, #f9f9f9 50%, transparent 50.1%) left bottom/51% 100% no-repeat, linear-gradient(to left top, #f9f9f9 50%, transparent 50.1%) right bottom/51% 100% no-repeat;
    z-index: 2;
}
.projects4 .pro{
    width:22%;
    border:3px solid;
    padding:1em;
    text-align: center;
}
.projects4 .num{
    width:40%;
    margin: 1em auto;
}
.projects4 .pro p{
    font-size:1.3em;
    line-height: 1.5;
    padding-bottom: .5em;
}
.project h3{
    display: block;
    text-align: center;
    font-size:2em;
    line-height: 1.8;
    margin-top:2em;
    padding-bottom: 3em;
}
@media screen and (max-width: 767px) {
    .projects4{
        flex-wrap: wrap;
        padding:0 1em;
    }
    .projects4:after {
        top: 105%;
    }
    .projects4 .pro{
        width:48%;
        border:2px solid;
        margin-bottom: .5em;
    }
    .projects4 .pro p{
        font-size:1em;
    }
    .project h3{
        font-size:1.5em;
        margin-bottom: 2em;
    }
}

/* history */
.history-navi {
	position: fixed;
	z-index: 3;
	transition: transform .4s ease;
}

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

	.history-navi {
		top: 250px;
		right: 2%;
		transform: translateX(180%);
	}

	.history-navi.on {
		transform: translateX(0);
	}

	.history-navi ul {
		border-right: 1px solid #ccc;
	}
}
@media screen and (max-width:767px) {
    .history-navi{
        display: none;
    }
}

.history-navi li {
	position: relative;
    font-size: .87em;
}

.history-navi li::after {
	content: '';
	display: block;
	width: 1em;
	height: 1em;
	background-color: #888;
	border-radius: 100%;
	position: absolute;
	top: calc(50% - .5em);
	right: -.4em;
	transition: background .3s ease;
}

.history-navi li a {
	display: block;
	text-align: right;
	padding: 1em;
	color: #222;
	transition: color .3s ease;
}

.history-navi li:hover a,
.history-navi li.on a {
	color: #008871;
}

.history-navi li:hover::after,
.history-navi li.on::after {
	background-color: #008871;
}

.historyProminence{
    margin-top: 2px;
    background-color:#f3f3f4;
}
.historyProminence .lead{
    padding:50px 0 20px;
    text-align: center;
}
.historyProminence .lead .copy{
    font-size: 2.5rem;
    line-height: 1.3;
    margin-bottom: .5em;
    letter-spacing: .025em;
}
.historyProminence .historyHeader h2{
    font-size:3.6em;
    padding: 0;
    letter-spacing: 0;
    margin-bottom: .5em;
}
@media screen and (max-width: 767px) {
    .historyProminence .lead .copy{
        font-size: 2.1rem;
    }
    .historyProminence .historyHeader h2{
        font-size:2.4em;
    }
}
.historyProminence .since{
    display: inline-block;
    font-size: 2.5rem;
    padding: 0;
    letter-spacing: 0;
    position: relative;
    margin-bottom: .5em;
}
.historyProminence .since::before,
.historyProminence .since::after{
    display: block;
    content: '';
    width:2em;
    height:2px;
    background-color: #008871;
    position: absolute;
    top:calc(50% - 1px);
}
@media screen and (max-width: 767px) {
    .historyProminence .since{
        font-size:2em;
    }
}
.historyProminence .since::before{
    left:-3em;
}
.historyProminence .since::after{
    right:-3em;
}
.history-title{
    font-size: 2.5rem;
    text-indent: -.1em;
}
@media screen and (max-width: 767px) {
    .history-title{
        font-size:2em;
    }
}
.historyProminence .subcopy{
    font-size: 1.4rem;
    margin-bottom: 3em;
}
.mainContent .arrowBg.historyHeader{
    /* background-color:#f3f3f4; */
    background-color:#000;
}
.mainContent .arrowBg.historyHeader::after{
    background: linear-gradient(to right top, #f3f3f4 50%, transparent 50.1%) left bottom/51% 100% no-repeat,
                linear-gradient(to left top, #f3f3f4 50%, transparent 50.1%) right bottom/51% 100% no-repeat;

}
@media screen and (max-width: 767px) {
    .historyProminence .subcopy{
        font-size: 1.25rem;
    }
}
.arrowBg.historyHeader .title .year{
    font-size: 7rem;
    line-height: 1;
    font-weight:600;
}
.arrowBg.historyHeader .title h2{
    display: inline-block;
    font-size: 1.4rem;
    border:3px solid;
    padding:.25em 2em;
}

@media screen and (max-width: 767px) {
    .mainContent .arrowBg.historyHeader{
        height:200px;
        cursor: pointer;
        transition: all .3s ease;
    }
    .mainContent .arrowBg.historyHeader.on{
        height:240px;
    }
    .arrowBg.historyHeader .title .year{
        font-size:5em;
        line-height:1;
        margin-bottom: 0;
        margin-top:-.75em;
    }
    .arrowBg.historyHeader .title h2{
        font-size:1.2em;
        padding:.25em .75em;
    }
}
.arrowBg.historyHeader{
    margin: 0 auto 5%;
}
.history{
    display: block;
    width:100%;
    max-width:1280px;
    padding:40px 10px;
    margin:0 auto;
}
@media screen and (max-width: 767px) {
    .history{
        visibility: hidden;
        height:0;
        padding:0 10px;
        opacity: 0;
        transition: all .5s ease;
        overflow: hidden;
    }

    .history.on{
        visibility: visible;
        opacity: 1;
        padding:20px 10px;
        height:auto;
    }
}
.history .flex{
    display: flex;
    justify-content: space-between;
    flex-wrap:wrap;
    position: relative;
}

.history .year-area{
    font-size: 3.1rem;
    line-height: 1;
    width:30%;
    position:relative;
    text-align: right;
    padding-bottom:60px;
    padding-right: 40px;
}
.history .year-area span.his{
    display: block;
    width:100%;
    margin-top: .15em;
}
.history .year-area::before{
    content: '';
    width:3px;
    height:100%;
    position: absolute;
    top:0;
    right:-2px;
    background-color:#999;
}
.history .year-area:not(.year-empty)::after{
    content: '';
    width:14px;
    height:14px;
    background-color:#999;
    border-radius: 100%;
    position: absolute;
    top:16px;
    right:-8px;
}
@media screen and (max-width: 767px) {
    .history .year-area{
        font-size:2.5em;
        width:100%;
        text-align: center;
        padding-bottom:0;
        padding-right:0;
        margin: .5em 0;
    }
    .history .year-area::before{
        display: none;
    }
    .history .year-area::after{
        display: none;
    }
}
.history .year-area ul{
    width:70%;
    font-size: .95rem;
    line-height: 1.5;
    border:1px solid #999;
    padding:1em;
    text-align: left;
    margin-top:2em;
    margin-left:auto;
    margin-right:-1em;
    margin-bottom: 1em;
    position: relative;
    background-color:#fff;
}
.history .year-area ul::after{
    content: '';
    display: block;
    width: 1.6rem;
    height:1px;
    background-color:#999;
    position: absolute;
    top:50%;
    right: -1.6rem;
}
.history .year-area ul li{
    list-style: disc;
    margin-left: 1.5em;
    padding: .25em 0;
}
@media screen and (max-width: 767px) {
    .history .year-area ul{
        width:100%;
        font-size: .9rem;
        padding:1em;
        text-align: left;
        margin-top:1em;
        margin-left:0;
        margin-right:0;
    }
    .history .year-area ul::after{
        display: none;
    }
}
.history .comment-area{
    width:36%;
    padding-left: 40px;
    padding-right: 90px;
    padding-bottom:60px;
}
.history .comment-area p{
    font-size: 1.05rem;
    padding-top: .3em;
    line-height: 1.6;
    margin-bottom: 1em;
}
@media screen and (max-width: 767px) {
    .history .comment-area p{
        font-size: 1.2rem;
    }
}
.history .comment-area.box2{
    width:70%;
    padding-right:0;
}

@media screen and (max-width: 767px) {
    .history .comment-area,
    .history .comment-area.box2{
        font-size:1em;
        width:100%;
        padding:0 20px 20px;
    }

}

.history .photo-area{
    width:34%;
    padding-bottom:60px;
    margin-bottom: 1rem;
}
.history .photo-area figcaption{
    display: block;
    margin-top:.5em;
}
.history .mbtm30{
    margin-bottom: 30px !important;
}
.history .mtop10{
    margin-top: 10px !important;
}
.history .mtop20{
    margin-top: 20px !important;
}
.history .mtop30{
    margin-top: 30px !important;
}
.history .photo-area .w60{
    width:60%;
    margin: 0 auto;
}
@media screen and (max-width: 767px) {
    .history .photo-area{
        width:70%;
        margin-left:auto;
        margin-right:auto;
        margin-bottom:20px;
        padding-bottom:0;
    }
}
.history .columns-3{
    width:100%;
    display: flex;
    justify-content: space-between;
}
.history .columns-3 figure{
    width:32%;
}
.history .frame{
    border:1px solid #ccc;
}
.chart-box{
    width:67%;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    margin-bottom: 60px;
    background-color:#fff;
    padding:1.5em;
}
.comment-area .column{
    display: block;
    font-size:.9em;
    width:100%;
}
.comment-area .column p{
    padding-left:1.5em;
    position: relative;
    display: block;
    font-size: .95rem;
}
@media screen and (max-width: 767px) {
    .comment-area .column p{
        font-size: 1.1rem;
    }
}
.comment-area .column p::before{
    content:'';
    display: inline-block;
    width: .9em;
    height: .9em;
    border:5px solid #008871;
    border-radius: 100%;
    margin-right:.5em;
    position: absolute;
    top:.7em;
    left:0;
}
.chart-box .chart-title{
    font-size: 1.15em;
    width:36%;
    padding:.5em 1.5em 0 0;
}
.chart-box .chart-title h4{
    font-size:1em;
    line-height: 1.4;
    margin-bottom:1em;
    padding-left:1.2em;
    position: relative;
}
.chart-box .chart-title h4::before{
    content:'';
    display: inline-block;
    width:3px;
    height:100%;
    background-color:#008871;
    position: absolute;
    top:0;
    left:0;
}
.chart-box .chart-title p{
    margin-bottom: 1em;
    line-height: 1.5;
}
.chart-box .chart-img{
    width:64%;
    border:1px solid #ccc;
}
@media screen and (max-width: 767px) {
    .chart-box{
        width: 90%;
        margin:1em auto;
        flex-wrap: wrap;
    }
    .chart-box .chart-title,
    .chart-box .chart-img{
        width:100%;
        padding:0;font-size: 1.3em;
    }
}
.future{
    width:100%;
    height: 580px;
    overflow: hidden;
    position: relative;
}
.future .futureImg{
    width: 100%;
    height:100%;
    position:absolute;
    top:0;
    left:0;
    z-index:0;
}
.future .futureImg img{
    font-family: "object-fit: cover;";
    width:100%;
    height:100%;
    object-fit: cover;
}
.future .lead-wrp {
    width: 100%;
    position: absolute;
    top: 50%;
    left: 0;transform: translateY(-50%);;
}
.future .lead-wrp p{
    display: block;
    text-align: center;
    font-size: 1.6em;
    margin-bottom: .5em;
}
@media screen and (max-width: 767px) {
    .future{
        height:100vh;
        max-height:500px;
    }
    .future .flex{
        flex-wrap: wrap;
        margin:3em auto 2em;
    }
    .future .logo_nls{
        width:60%;
        margin:2em auto 0;
    }
    .future .lead-wrp{
        width:100%;
    }
    .future .lead-wrp p{
        font-size: 1.2em;
        text-align: center;
        padding:0;
    }
}