/*
----------------------------------------
sustainability
----------------------------------------
*/

.page-header {
	background: url( ../img/sustainability/2x/header-bg.png ) center center / cover no-repeat;
	height: 600px;
	-js-display: flex;
	display: -ms-flex;
	display: -webkit-flex;
	display: flex;
	align-items: center;
}

.page-header .wrap {
	max-width: 1400px;
	padding: 60px 30px;
	margin-top: auto;
	text-align: right;
	font-style: italic;
}

.page-header .wrap .mov-ttl {
	display: inline-block;
	text-align: left;
}

.page-header .en {
	margin: 0 0 5px 10px;
}

.page-header h1 {
	font-size: 5.6rem;
	line-height: 1.3;
	letter-spacing: 0;
	margin: 0;
}

/* info-box */

.info-box {
	margin: 5.8rem 0;
}

.info-box .info-wrap .img {
	width: 50%;
	padding: 0 85px 0 0;
}

.info-box .info-wrap .txt {
	width: 50%;
	padding-top: 4.5rem;
}

.info-box .info-wrap .mov-ttl {
	font-size: 4.2rem;
	line-height: 1.5;
	margin-bottom: 2.5rem;
}

.info-box .info-wrap .read {
	font-size: 1.7rem;
	line-height: 2.4;
	letter-spacing: .8px;
}

.info-box .info-wrap .name {
	text-align: right;
	margin-top: 3.3rem;
	font-size: 1.5rem;
	letter-spacing: .8px;
}

.info-box .info-wrap .name img {
	display: inline-block;
	margin-top: 1.2rem;
}

.news-box {
	padding: 5rem 0 0;
	margin-bottom: 5.5rem;
	background: #fff;
	position: relative;
}

.news-box::before {
	content: '';
	display: block;
	height: 115px;
	background: #fafafa;
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
}

.news-box .wrap {
	position: relative;
	z-index: 99;
}

.news-box .news-list {
	margin: 4.2rem 0 3.6rem;
	text-align: center;
}

.news-box .news-list ul {
	display: inline-block;
	width: 100%;
	max-width: 820px;
	margin: 0 auto;
	text-align: left;
}

.news-box .news-list a {
	font-size: 1.7rem;
	align-items: center;
	flex-wrap: nowrap;
	white-space: nowrap;
	padding: 1.3rem 0;
}

.news-box .news-list a .time {
	width: 12rem;
	letter-spacing: .8px;
	color: #666;
}

.news-box .news-list a .cat {
	display: inline-block;
	font-size: 1.4rem;
	font-weight: 500;
	color: #fff;
	background: #8fc31f;
	padding: 1px 16px;
	margin-right: 2rem;
	border-radius: 15px;
}

.news-box .news-list a .ttl {
	flex: 1;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.news-box .news-list a .ttl span {
	color: #545454;
	border-bottom: solid 1px #545454;
	line-height: 1.7;
	letter-spacing: 1.2px;
	padding: 2px 1rem 2px 0;
	transition: all .2s;
}

.news-box .btn-02 {
	transform: translateY( 50% );
}

.sus-box {
	padding: 5.5rem 0 0;
}

.sus-box .read {
	text-align: center;
	margin: 20px 0 70px;
	line-height: 2.4;
	letter-spacing: .8px;
}

.block-list .block-03 .img + .wrap .txt {
	min-height: 640px;
}

.sus-box .sus-mes {
	margin-top: 9.8rem;
	padding: 9rem 0 9.4rem;
	background: url( ../img/sustainability/2x/sustainability-bg.png ) center center / cover no-repeat;
}

.sus-box .sus-mes .wrap {
	max-width: 1310px;
	padding: 0 30px;
}

.sus-box .sus-mes .box {
	max-width: 485px;
}

.sus-box .sus-mes h2 {
	font-size: 4.2rem;
	line-height: 1.4;
	margin-bottom: 1.5rem;
}

.sus-box .sus-mes .read {
	font-size: 1.5rem;
	line-height: 2.5;
	text-align: left;
	margin: 0;
}

.activity-box {
	padding: 12.2rem 0 9.6rem;
}

.activity-box .sdgs-mark {
	margin: 4.8rem 0 2.6rem;
	line-height: 1;
}

.activity-box .info .read {
	line-height: 2.4;
	letter-spacing: 1px;
	margin: 3rem 0;
}

.activity-box .info .btn-02 {
	text-align: center;
}

.bnr-set-box .bnr-set-01 .bnr {
	width: 50%;
}

.bnr-set-box .bnr-set-01 .bnr a {
	padding: 102px 20px 126px;
}

.bnr-set-box .bnr-set-01 .bnr-01 a::after {
	background: url( ../img/sustainability/2x/bnr-csr-bg.png ) center center / cover no-repeat;
}

.bnr-set-box .bnr-set-01 .bnr-02 a::after {
	background: url( ../img/sustainability/2x/bnr-diversity-bg.png ) center center / cover no-repeat;
}

.bnr-set-box .bnr-set-01 .ttl h2 {
	font-size: 3.6rem;
	letter-spacing: 1px;
	margin-bottom: 4px;
}

.bnr-set-box .bnr-set-01 .read {
	max-width: 570px;
	font-size: 1.6rem;
	letter-spacing: .8px;
	text-align: justify;
	margin: 3rem auto 0;
	text-align: left;
}

.bnr-set-box .bnr-set-01 .more span {
	margin-top: 3rem;
}


/*
----------------------------------------
1500
----------------------------------------
*/

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

	.page-header h1 {
		font-size: 5rem;
	}

	.block-list .block-03 .img + .wrap .txt {
		min-height: initial;
	}

}


/*
----------------------------------------
1400
----------------------------------------
*/

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

	.page-header {
		height: 40vw;
	}

	.page-header .wrap {
		padding: 20px 30px;
	}

	.page-header h1 {
		font-size: 4.5rem;
	}

	.info-box .info-wrap .img {
		width: 45%;
		padding: 0 30px 0 0;
	}

	.info-box .info-wrap .txt {
		width: 55%;
	}

	.info-box .info-wrap .mov-ttl {
		font-size: 3.2rem;
	}

}


/*
----------------------------------------
1200
----------------------------------------
*/

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

	.news-box::before {
		height: 105px;
	}

	.info-box .info-wrap .img {
		padding: 0 20px 0 0;
	}

	.info-box .info-wrap .txt {
		padding-top: 20px;
	}

	.info-box .info-wrap .read {
		font-size: 1.6rem;
		line-height: 2;
	}

	.info-box .info-wrap .mov-ttl {
		font-size: 2.8rem;
	}

	.bnr-set-box .bnr-set-01 .bnr a {
		padding: 60px 20px;
	}

	.bnr-set-box .bnr-set-01 .ttl h2 {
		font-size: 2.8rem;
	}

	.bnr-set-01 .smile img {
		width: 100px;
	}

	.sus-box .sus-mes h2 {
		font-size: 3.6rem;
	}

}


/*
----------------------------------------
768
----------------------------------------
*/

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

	.page-header {
		height: 500px;
		background: url( ../img/sustainability/sp/header-bg-sp.png ) top left 40% / cover no-repeat;
		padding: 10px;
	}

	.page-header .wrap {
		padding: 70px 0;
		margin-top: auto;
	}

	.page-header .wrap .mov-ttl {
		display: block;
		text-align: center;
	}

	.page-header h1 {
		font-size: 3rem;
	}

	.ttl-02 .jp {
		font-size: 2.4rem;
	}

	.info-box {
		margin: 2rem 0 1rem;
	}

	.info-box .info-wrap .mov-ttl {
		font-size: 2.4rem;
		text-align: center;
	}

	.info-box .info-wrap {
		flex-direction: column;
	}

	.info-box .info-wrap .img {
		width: 100%;
		padding: 0;
		line-height: .5;
		margin-bottom: 20px;
		text-align: center;
	}

	.info-box .info-wrap .img img {
		width: 100%;
		height: auto;
		border-radius: 10px;
	}

	.info-box .info-wrap .txt {
		width: 100%;
		padding: 0;
	}

	.info-box .info-wrap .txt .mov-ttl {
		display: none;
	}

	.info-box .info-wrap .read {
		font-size: 1.5rem;
	}

	.info-box .info-wrap .name {
		margin-top: 20px;
		font-size: 1.3rem;
	}

	.info-box .info-wrap .name img {
		height: 24px;
	}

	.news-box {
		padding: 3rem 0 0;
	}

	.news-box::before {
		height: 70px;
	}

	.news-box .ttl-02 .jp {
		margin-bottom: 15px;
	}

	.news-box .news-list {
		margin: 1rem 0;
	}

	.news-box .news-list a {
		flex-wrap: wrap;
		padding: 1rem 0;
	}

	.news-box .news-list a .time {
		width: auto;
		margin-right: 10px;
		font-size: 1.4rem;
	}

	.news-box .news-list a .cat {
		font-size: 1.2rem;
		padding: 0 10px;
		border-radius: 12px;
	}

	.news-box .news-list a .ttl {
		flex: auto;
		width: 100%;
		margin-bottom: 5px;
	}

	.news-box .news-list a .ttl span {
		font-size: 1.6rem;
	}

	.sus-box {
		padding: 2rem 0 0;
	}

	.sus-box .ttl-02 .jp {
		margin-bottom: 15px;
	}

	.sus-box .read {
		text-align: left;
		margin: 0 0 30px;
	}

	.sus-box .sus-mes {
		background: url( ../img/sustainability/sp/sustainability-bg-sp.png ) center top / 100% no-repeat;
		margin-top: 3rem;
		padding: 73.5vw 0 3rem;
	}

	.sus-box .sus-mes .wrap {
		padding: 0 20px;
	}

	.sus-box .sus-mes .box {
		max-width: initial;
		width: 100%;
	}

	.sus-box .sus-mes h2 {
		font-size: 2.1rem;
		text-align: center;
	}

	.sus-box .sus-mes .read {
		font-size: 1.5rem;
		line-height: 1.8;
	}

	.activity-box {
		padding: 4rem 0;
	}

	.activity-box .sdgs-mark {
		margin: 3rem 0;
	}

	.activity-box .ttl-01.jp-txt .mov-txt {
		font-size: 2.1rem;
		letter-spacing: 0;
	}

	.activity-box .info .read {
		margin: 2rem 0;
	}

	.bnr-set-box .bnr-set-01 .bnr {
		width: 100%;
	}

	.bnr-set-box .bnr-set-01 .bnr a {
		padding: 25px 20px 40px;
	}

	.bnr-set-box .bnr-set-01 .ttl h2 {
		font-size: 2.4rem;
	}

	.bnr-set-box .bnr-set-01 .read {
		font-size: 1.4rem;
		margin: 1.5rem 0 0;
	}

	.bnr-set-box .bnr-set-01 .more span {
		margin-top: 2rem;
	}

}


/*
----------------------------------------
hover
----------------------------------------
*/

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

	.news-box .news-list a:hover .ttl span {
		color: #8fc31f;
		border-bottom: solid 1px #8fc31f;
	}

}
