/*
----------------------------------------
company
----------------------------------------
*/

.page-header {
	background: url( ../img/company/2x/header-bg.png ) center center / cover no-repeat;
}

.policy-box {
	padding: 75px 0 25px;
}

.policy-list {
	background: url( ../img/company/2x/policy-bg.png ) center bottom / 100% no-repeat;
	padding-bottom: 100px;
	margin-bottom: 30px;
}

.policy-list h3 {
	font-family: 'Noto Serif JP', serif;
	font-weight: normal;
	font-size: 3.4rem;
	letter-spacing: -1px;
	color: #1da1f2;
	text-align: center;
	margin: 30px 0 5px;
}

.policy-list h3 span {
	font-size: 2.8rem;
	position: relative;
	top: -2px;
	margin: 0 -2px;
}

.policy-list .list {
	justify-content: center;
	align-items: center;
}

.policy-list .list > div {
	margin: 0 30px;
}

.policy-list .list .flex {
	width: 280px;
	height: 280px;
	justify-content: center;
	align-items: center;
	background: url( ../img/company/2x/policy-cont-bg.png ) center center / contain no-repeat;
	font-size: 3rem;
	color: #1da1f2;
	text-align: center;
	line-height: 1.4;
	text-shadow:
		0 0 11px #fff,
		0 0 11px #fff;
}

.policy-box .read {
	letter-spacing: 1.5px;
	margin-bottom: 110px;
}

.policy-box .cont-ttl {
	background: url( ../img/company/2x/policy-ttl-bg.png ) center center / cover no-repeat;
	padding: 15.5rem 0 14.5rem;
	margin-bottom: 50px;
}

.policy-box .cont-ttl h3 {
	font-size: 3.8rem;
	line-height: 1.33;
	letter-spacing: 1px;
	text-shadow:
		0 0 31px #fff,
		0 0 31px #fff;
}

.policy-box .cont .heading-01 {
	padding-top: 10px;
	padding-bottom: 10px;
	line-height: 1.5;
	margin-bottom: 1.5rem;
}

.policy-box .cont p {
	margin-bottom: 35px;
	line-height: 2.15;
	letter-spacing: 1.1px;
}

.history-box {
	padding-bottom: 45px;
	margin-bottom: 75px;
	border-bottom: solid 1px #e5e5e5;
}

.history-box .history-list {
	max-width: 850px;
	margin: 30px auto 0;
}

.history-box .history-list dt {
	width: 115px;
	color: #1da1f2;
	font-size: 2rem;
	line-height: 1.5;
}

.history-box .history-list dd {
	width: calc( 100% - 115px );
	padding: 0 0 45px 40px;
	line-height: 2.2;
	position: relative;
}

.history-box .history-list dd::before {
	content: '';
	width: 4px;
	background: #e6e6e6;
	position: absolute;
	top: 14px;
	bottom: 0;
	left: -2px;
}

.history-box .history-list dd:last-of-type::before {
	display: none;
}

.history-box .history-list dd::after {
	content: '';
	width: 12px;
	height: 12px;
	border: solid 8px #1da1f2;
	border-radius: 50%;
	background: #fff;
	position: absolute;
	top: 0;
	left: -14px;
}

.history-box .history-list dd p {
	margin-top: -5px;
	font-size: 1.8rem;
}

.vision-box {
	margin-bottom: 95px;
}

.vision-box h3 {
	font-size: 2.6rem;
	font-weight: normal;
	text-align: center;
	letter-spacing: 1.2px;
	color: #1da1f2;
	margin: 15px 0;
}

.vision-box .vision-list {
	justify-content: center;
	align-items: center;
	padding: 15px 0 225px;
	background: url( ../img/company/2x/vision-bg.png ) center bottom / 100% no-repeat;
}

.vision-box .vision-list .flex {
	width: 420px;
	height: 420px;
	border: solid 2px rgba( 29, 161, 242, .5 );
	border-radius: 50%;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	font-size: 1.8rem;
	line-height: 1.7;
	color: #444;
	background: rgba( 255, 255, 255, .5 );
	padding-top: 6px;
}

.vision-box .vision-list > div:first-child {
	position: relative;
	right: -30px;
	z-index: 9;
}

.vision-box .vision-list > div:nth-child( 2 ) .flex {
	background: #1da1f2;
	border: solid 2px #1da1f2;
	color: #fff;
}

.vision-box .vision-list > div:last-child {
	position: relative;
	left: -30px;
	z-index: 9;
}

.vision-box .vision-list h4 {
	display: inline-block;
	width: 224px;
	font-size: 3rem;
	font-weight: normal;
	color: #1da1f2;
	padding: 14px 10px;
	margin: 0 0 30px;
	position: relative;
}

.vision-box .vision-list h4::before,
.vision-box .vision-list h4::after {
	content: '';
	width: 10px;
	border: solid 2px rgba( 29, 161, 242, .5 );
	position: absolute;
	top: 0;
	bottom: 0;
}

.vision-box .vision-list h4::before {
	border-right: none;
	left: 0;
}

.vision-box .vision-list h4::after {
	border-left: none;
	right: 0;
}

.vision-box .vision-list > div:nth-child( 2 ) h4 {
	color: #fff;
}

.vision-box .vision-list > div:nth-child( 2 ) h4::before,
.vision-box .vision-list > div:nth-child( 2 ) h4::after {
	border-color: rgba( 255, 255, 255, .5 );
}

.overview-box .ttl-01 {
	margin-bottom: 25px;
}

.overview-box .table-01 {
	margin-bottom: 60px;
}

.overview-box .table-01 td .flex {
	align-items: center;
}

.overview-box .map-btn {
	width: 300px;
	margin-left: 45px;
}

.overview-box .map-btn a {
	font-size: 1.6rem;
	padding: 11px;
}

.overview-box .table-01 td {
	padding: 34px 40px;
}

.overview-box .table-01 td.list {
	padding: 24px 40px;
}

.overview-box .list-01 li {
	margin: 12px 0;
}

.overview-box + .bnr-l {
	margin-bottom: 100px;
}


/*
----------------------------------------
1300
----------------------------------------
*/

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

	.vision-box .vision-list {
		padding: 15px 0 180px;
	}

	.vision-box .vision-list .flex {
		width: 380px;
		height: 380px;
	}

}


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

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

	.policy-list {
		padding-bottom: 60px;
	}

	.policy-list h3 {
		font-size: 3rem;
	}

	.policy-list h3 span {
		font-size: 2.4rem;
	}

	.policy-list .list > div {
		margin: 0 15px;
	}

	.policy-list .list .flex {
		width: 260px;
		height: 260px;
		font-size: 2.4rem;
	}

	.policy-box .cont-ttl {
		padding: 10.5rem 0 9.5rem;
	}

	.policy-box .cont-ttl h3 {
		font-size: 3.2rem;
	}

	.vision-box .vision-list .flex {
		width: 320px;
		height: 320px;
		font-size: 1.4rem;
	}

	.vision-box .vision-list h4 {
		width: 180px;
		font-size: 2.4rem;
		margin: 0 0 20px;
	}

	.vision-box .vision-list > div:first-child {
		right: -20px;
	}

	.vision-box .vision-list > div:last-child {
		left: -20px;
	}

}


/*
----------------------------------------
1000
----------------------------------------
*/

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

	.policy-list h3 {
		line-height: 1.6;
	}

	.policy-list h3 .sp {
		display: inline;
	}

	.policy-list .list > div {
		margin: 0 10px;
	}

	.policy-list .list .flex {
		width: 220px;
		height: 220px;
		font-size: 2.2rem;
	}

	.policy-box .read {
		margin-bottom: 60px;
	}

	.policy-box .cont-ttl {
		padding: 8.5rem 0 7.5rem;
		margin-bottom: 30px;
	}

	.policy-box .cont-ttl h3 {
		font-size: 3rem;
	}

	.policy-box .cont p {
		margin-bottom: 30px;
		letter-spacing: 0;
	}

	.history-box .history-list dd h3 {
		font-size: 2.4rem;
		margin: -5px 0 10px;
	}

	.history-box .history-list dd {
		padding: 0 0 40px 45px;
	}

	.vision-box {
		margin-bottom: 60px;
	}

	.vision-box h3 {
		line-height: 1.6;
	}

	.vision-box .sp {
		display: inline;
	}

	.vision-box .vision-list {
		padding: 15px 0 120px;
	}

	.vision-box .vision-list h4 {
		width: 150px;
		font-size: 2.2rem;
		margin: 0 0 10px;
		padding: 10px;
	}

	.vision-box .vision-list .flex {
		width: 250px;
		height: 250px;
	}

	.overview-box .map-btn {
		width: 220px;
		margin-left: 20px;
	}

	.map-btn a {
		padding-right: 30px;
		font-size: 1.6rem;
	}

	.overview-box + .bnr-l {
		margin-bottom: 60px;
	}

}


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

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

	.policy-box {
		padding: 30px 0 15px;
	}

	.policy-list {
		padding-bottom: 40px;
		margin-bottom: 20px;
		background: url( ../img/company/2x/policy-bg.png ) center bottom / 768px no-repeat;
	}

	.policy-list h3 {
		font-size: 2rem;
		margin: 15px 0;
	}

	.policy-list h3 span {
		font-size: 1.8rem;
	}

	.policy-list .list > div:first-child {
		width: 100%;
		margin: 0 0 -15px;
	}

	.policy-list .list .flex {
		width: 150px;
		height: 150px;
		font-size: 1.8rem;
		margin: 0 auto;
	}

	.policy-box .read {
		font-size: 1.4rem;
		margin-bottom: 40px;
	}

	.policy-box .cont-ttl {
		padding: 3rem 0;
		margin-bottom: 20px;
	}

	.policy-box .cont p {
		font-size: 1.4rem;
		margin-bottom: 20px;
	}

	.policy-box .cont-ttl h3 {
		font-size: 2.2rem;
	}

	.history-box {
		padding-bottom: 30px;
		margin-bottom: 40px;
	}

	.history-box .history-list {
		margin: 20px 0 0;
	}

	.history-box .history-list .flex {
		flex-direction: column;
	}

	.history-box .history-list dt {
		width: 100%;
		font-size: 1.8rem;
		padding-left: 3rem;
		margin-bottom: 10px;
	}

	.history-box .history-list dd {
		width: 100%;
		padding: 0 0 2rem 3rem;
	}

	.history-box .history-list dd::after {
		width: 8px;
		height: 8px;
		border: solid 6px #1da1f2;
		top: -33px;
		left: 0;
	}

	.history-box .history-list dd::before {
		top: -20px;
		bottom: -20px;
		left: 8px;
	}

	.history-box .history-list dd p {
		font-size: 1.6rem;
		line-height: 1.6;
	}

	.vision-box {
		margin-bottom: 40px;
	}

	.vision-box h3 {
		font-size: 1.9rem;
		letter-spacing: 0;
		margin: 15px 0 10px;
	}

	.vision-box .vision-list {
		background: url( ../img/company/2x/vision-bg.png ) center bottom / 850px no-repeat;
		padding: 10px 0 80px;
	}

	.vision-box .vision-list .flex {
		width: 180px;
		height: 180px;
		font-size: 1.3rem;
		line-height: 1.4;
		letter-spacing: ;0;
		padding: 0;
		margin: 0 auto;
	}

	.vision-box .vision-list h4 {
		width: 110px;
		font-size: 1.7rem;
		margin: 0 0 5px;
		padding: 5px;
	}

	.vision-box .vision-list h4::before,
	.vision-box .vision-list h4::after {
		width: 5px;
	}

	.vision-box .vision-list > div:first-child {
		right: -4px;
		order: 2;
	}

	.vision-box .vision-list > div:nth-child( 2 ) {
		width: 100%;
		text-align: center;
		order: 1;
		margin-bottom: -30px;
	}

	.vision-box .vision-list > div:last-child {
		left: -4px;
		order: 3;
	}

	.table-01 th {
		font-size: 1.4rem;
	}

	.table-01 td {
		font-size: 1.6rem;
	}

	.overview-box .table-01 {
		margin-bottom: 20px;
	}

	.overview-box .table-01 td .flex {
		flex-direction: column;
		align-items: flex-start;
	}

	.overview-box .map-btn {
		width: 100%;
		margin: 15px 0 0;
	}

	.overview-box .table-01 td .list-01 {
		font-size: 1.5rem;
		letter-spacing: 0;
	}

	.overview-box .table-01 td .list-01 li{
		margin-bottom: 5px;
	}

	.overview-box .table-01 td .list-01 li::before {
		top: 10px;
	}

	.overview-box .table-01 td,
	.overview-box .table-01 td.list {
		padding: 15px 20px;
	}

	.bnr-l a.bnr-l-ys p::after {
		width: 16px;
		height: 16px;
		background: url( ../img/common/2x/icon-link-03.png ) center center / 16px no-repeat;
		margin-left: 6px;
		transform: translateY( 1px );
	}

}
