@charset "UTF-8";

:root {
	/* カラー */
	--color-title: #243b53;
	/* タイトル */
	--color-text: #333;
	/* 本文 */
	--color-accent: #8e7448;
	/* 強調 */
	--color-decoration: #dcc7a1;
	/* 装飾 */
	--color-sub: #666;
	/* 補足 */
	--color-hoverbg: #ebf2f7;
	/* hover背景 */

	/* フォントサイズ */
	--font-size-h1: 3.6rem !important;
	--font-size-h2: 3.2rem;
	--font-size-h2page: 4.6rem;
	--font-size-h3: 2.8rem;
	--font-size-h4: 2.4rem;
	--font-size-normal: 1.8rem;
	--font-size-p: 1.6rem;
	--font-size-btn: 1.8rem;
	--font-size-sub-1: 1.6rem;
	--font-size-sub-2: 1.4rem;
}

body {
	min-width: 320px;
	width: 100%;
	margin: 0 auto;
	font-family: "Noto Sans", "Noto Sans JP", sans-serif;
	font-size: var(--font-size-normal);
	line-height: 1.7;
	color: var(--color-text);
	background-color: #fff;
}

*[id] {
	scroll-margin-top: 2.0rem;
}

a {
	text-decoration: none;
	color: var(--color-title);
}

a:hover {
	color: var(--color-accent);
	opacity: 1;
}

h1 {
	font-size: var(--font-size-h1) !important;
	font-weight: 700;
	color: var(--color-title);
}

h2 {
	font-size: var(--font-size-h2);
	font-weight: 600;
	color: var(--color-title);
}

#page h2 {
	font-size: var(--font-size-h2page);
	font-weight: 900;
	color: var(--color-title);
}

h2 span {
	display: block;
	font-size: var(--font-size-sub-1);
	color: var(--color-accent);
	font-weight: 400 !important;
}

h3 {
	font-size: var(--font-size-h3);
	font-weight: 600;
	color: var(--color-title);
}

.title {
	position: relative;
	padding-left: 40px;
	margin-bottom: 50px;
}

.title::before {
	background-image: url(../img/title.svg);
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	width: 35px;
	height: 35px;
	position: absolute;
	content: '';
	top: 60%;
	transform: translateY(-50%);
	left: 0;
}

.title h2 {
	line-height: 1;
	margin: 0;
	padding: 0;
}

#page .title::before {
	background-image: url(../img/title.svg);
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	width: 35px;
	height: 35px;
	position: absolute;
	content: '';
	top: 60%;
	transform: translateY(-50%);
	left: 0;
}

.title_line {
	margin-bottom: 24px;
}

.line {
	width: 100%;
	border-top: 1px solid var(--color-sub);
	margin-bottom: 40px;
}

.btn {
	width: 320px;
	background-color: var(--color-title);
	color: #fff;
	border-radius: 35px;
	padding: 10px 24px;
	display: block;
	margin: 0 0 0 auto;
	position: relative;
	text-align: center;
	z-index: 10;
	overflow: hidden;
	transition: color .4s ease;
	border: var(--color-title) solid 1px;
}

.btn::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: #fff;
	border-radius: 35px;
	transform: translateX(-100%);
	transition: transform .6s ease;
	z-index: -1;
}

.btn::after {
	background-image: url(../img/arrow-blue.svg);
	width: 24px;
	height: 24px;
	background-size: contain;
	background-position: center;
	background-repeat: no-repeat;
	position: absolute;
	content: '';
	right: 24px;
	top: 50%;
	transform: translateY(-50%);
	transition: transform .3s ease;
}

.btn:hover::before {
	transform: translateX(0);
}

.btn:hover {
	color: var(--color-title);
}

.btn:hover::after {
	transform: translate(6px, -50%);
	background-image: url(../img/arrow-white.svg);
}

.btn-white {
	width: 320px;
	background-color: #fff;
	border: var(--color-title) solid 1px;
	color: var(--color-title);
	border-radius: 35px;
	padding: 10px 24px;
	display: block;
	margin: 0 0 0 auto;
	position: relative;
	text-align: center;
	transition: color .4s ease;
	overflow: hidden;
	z-index: 10;
}

.btn-white::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: var(--color-title);
	border-radius: 35px;
	transform: translateX(-100%);
	transition: transform .6s ease;
	z-index: -1;
}

.btn-white::after {
	background-image: url(../img/arrow-white.svg);
	width: 24px;
	height: 24px;
	background-size: contain;
	background-position: center;
	background-repeat: no-repeat;
	position: absolute;
	content: '';
	right: 24px;
	top: 50%;
	transform: translateY(-50%);
	transition: transform .3s ease;
}

.btn-white:hover {
	background-color: var(--color-title);
	color: #fff;
}

.btn-white:hover::before {
	transform: translateX(0);
}

.btn-white:hover::after {
	transform: translate(6px, -50%);
	background-image: url(../img/arrow-blue.svg);
}

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

	.btn,
	.btn-white {
		margin: 0 auto;
		width: 250px;
		text-align: left;
	}
}

#top_service,
#top_company,
#top_reason,
#top_news,
#top_sustainability {
	padding: 75px clamp(40px, calc(100vw * 0.4762 - 560px), 240px) 75px;
}

@media screen and (max-width: 1000px) {
	#top_service {
		padding: 75px clamp(40px, calc(100vw * 0.4762 - 560px), 240px) 35px;
	}

	#top_company,
	#top_reason,
	#top_news,
	#top_sustainability {
		padding: 35px clamp(40px, calc(100vw * 0.4762 - 560px), 240px) 35px;
	}
}

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

	#top_service,
	#top_company,
	#top_reason,
	#top_news,
	#top_sustainability {
		padding: 30px clamp(16px, calc((100vw - 375px) * 0.090566 + 16px), 40px) 30px;
	}
}

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

	#top_service,
	#top_company,
	#top_reason,
	#top_news,
	#top_sustainability {
		max-width: 1920px;
		margin: 0 auto;
	}
}

/* -----header----- */
header {
	position: relative;
}

header.header-static {
	margin-bottom: 6.0rem;
}

.header {
	width: 100%;
	display: flex;
	justify-content: space-between;
	padding: 2.0rem 4.0rem 3rem;
	position: absolute;
	align-items: center;
	z-index: 999;
}

.site-header.header-static .header {
	position: relative !important;
}

.header_logo {
	/*width: clamp(280px, 30vw, 400px);*/
	width: 300px;
	height: auto;
	display: block;
}

.header_logo a img {
	aspect-ratio: 12 / 1;
	max-width: 300px;
	vertical-align: text-top;
}

.header_nav {
	display: flex;
	align-items: center;
}

.header_list {
	display: flex;
	align-items: center;
	background-color: rgba(255, 255, 255, 0.7);
	border-radius: 35px;
	padding: 0px 0 0 20px;
	height: 50px;
}

.header_list li {
	padding-right: 1.8rem;
}

.header_list li:last-child {
	padding-right: 0;
}

.header_list li a {
	font-size: var(--font-size-sub-1);
	color: var(--color-text);
	display: block;
	font-weight: 500;
	border-bottom: solid 2px rgba(255, 255, 255, 0);
}

.header_list li a:hover {
	color: var(--color-title);
	border-bottom: solid 2px var(--color-accent);
}

.header_btn {
	font-size: 16px;
	background-color: var(--color-title);
	border: var(--color-title) solid 1px;
	color: #fff;
	border-radius: 35px;
	padding: 10px 30px;
	margin: 0 1.8rem;
	display: flex;
	align-items: center;
	height: 50px;
	text-align: center;
}

.header_btn:hover {
	color: var(--color-title);
	background-color: #FFF;
}

.header-sp {
	display: flex;
	align-items: center;
}

.header_nav span.lang {
	font-weight: 700;
	font-size: 1.6rem;
	line-height: 1;
}

.header_nav span.lang span {
	border: solid 1px #999;
	display: inline-block;
	padding: 5px 8px;
}

#index .header_nav span.lang span {
	border: none;
	background-color: rgba(255, 255, 255, 0.7);
}

.header_nav span.lang a {
	color: #777;
	border: solid 1px #99999900;
	display: inline-block;
	padding: 5px 8px;
}

.sp-list,
.header_btn-2 {
	display: none;
}

@media screen and (max-width: 1600px) {
	.header {
		padding: 1.0rem 4.0rem 1rem;
	}
}

@media screen and (max-width: 1450px) {
	.header {
		padding: 10px 2.0rem;
	}

	.header_list li {
		padding-right: 1.2rem;
	}

	.header_btn {
		padding: 1.0rem 1.6rem;
		margin: 0 1.2rem;
	}
}

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

	/*@media screen and (max-width: 1271px) {*/
	.sp_nav {
		display: none;
	}
}

@media screen and (max-width: 1070px) {
	/*@media screen and (max-width: 1270px) {*/

	.header-sp {
		display: flex;
		align-items: center;
		gap: 10px;
		z-index: 9999;
		top: 20px;
	}

	.header-sp .header_btn {
		margin: 0;
	}

	.menu-btn {
		z-index: 9999;
		width: 50px;
		height: 50px;
		background-color: var(--color-title);
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		gap: 5px;
		cursor: pointer;
	}

	.menu-btn span {
		display: block;
		width: 30px;
		height: 3.5px;
		background-color: #fff;
		border-radius: 30px;
		transition: 0.3s;
	}

	.menu-btn.active span:nth-child(1) {
		transform: translateY(7px) rotate(45deg);
	}

	.menu-btn.active span:nth-child(2) {
		opacity: 0;
	}

	.menu-btn.active span:nth-child(3) {
		transform: translateY(-7px) rotate(-45deg);
	}

	.header_list {
		border-radius: unset;
	}
	
	.header_list li {
		padding-right: 0;
	}

	.sp_nav {
		display: block;
		position: fixed;
		top: 70px;
		right: -10px;
		z-index: 1000;
		width: 300px;
		height: auto;
		padding: 0px 10px 10px;
		background-color: #fff;
		box-sizing: border-box;
		transform: translateX(100%);
		transition: transform 0.4s ease;
		box-shadow: 0px 6px 7px #999;
		border-bottom-left-radius: 10px;
	}

	.sp_nav.active {
		transform: translateX(-10px);
		opacity: 1;
		position: absolute;
	}

	.header_list li:last-child {
		padding-right: 1.2rem;
	}


	/* header-sp 効果 */
	.header_list li a {
		display: block;
		font-size: 16px;
		font-weight: normal;
		color: var(--color-text);
		padding: 1.0rem 2.5rem 1.0rem 1.0rem;
		border-bottom: solid 1px #ccc;
		position: relative;
		transition: color .75s ease;
		z-index: 1;
		text-decoration: none;
		/*line-height: 1;*/
	}

	.header_list li a:hover {
		color: #fff;
		border-bottom: none;
	}

	.header_list li a:hover::before {
		transform: scaleX(1);
		transform-origin: left;
	}

	.header_list li a::before {
		position: absolute;
		top: 0;
		left: 0;
		content: '';
		display: block;
		width: 100%;
		height: 100%;
		background: #243B53;
		transform: scaleX(0);
		transform-origin: right;
		transition: all .5s ease;
		transition-property: transform;
		z-index: -1;
	}

	.header_list li a::after {
		position: absolute;
		right: 1.0rem;
		content: "\f105";
		font-weight: 900;
		font-family: "Font Awesome 5 Free";
		padding-top: .1rem;
		transition: color .1s ease;
	}

	.header_list li a[target]::after {
		content: "\f35d";
		font-weight: 900;
		font-family: "Font Awesome 5 Free";
		transition: color .25s ease;
		padding-left: 0.8rem;
		font-size: 1.2rem;
		vertical-align: text-bottom;
	}

	.header_list li a.pdf[target]::after {
		font-size: 1.4rem;
		font-weight: 400;
		content: "\f1c1";
		vertical-align: middle;
	}

	.menu-btn.active span:nth-child(1) {
		transform: translateY(8px) rotate(45deg);
	}

	.menu-btn.active span:nth-child(2) {
		opacity: 0;
	}

	.menu-btn.active span:nth-child(3) {
		transform: translateY(-8px) rotate(-45deg);
	}

	.sp-list {
		display: block;
	}

	.header_btn-2 {
		display: none;
	}

	.header_nav span.lang {
		display: none;
	}
}

@media screen and (max-width: 1024px) {
	header.header-static {
		margin-bottom: 3.0rem
	}
}

@media screen and (max-width: 640px) {
	.header {
		padding: 1.6rem;
	}

	.header_btn-2 {
		display: flex;
		margin: 20px 0 0;
	}

	.header_btn-1 {
		display: none;
	}

	.menu-btn {
		width: 35px;
		height: 35px;
	}

	.menu-btn span {
		width: 18px;
		height: 2px;
	}

	.sp_nav {
		top: 63px;
		padding: 0px 10px 20px;
	}

	.menu-btn.active span:nth-child(1) {
		transform: translateY(7px) rotate(45deg);
	}

	.menu-btn.active span:nth-child(2) {
		opacity: 0;
	}

	.menu-btn.active span:nth-child(3) {
		transform: translateY(-7px) rotate(-45deg);
	}

}

@media screen and (max-width: 420px) {
	.header_logo {
		width: 230px;
	}

	.header_logo a img {
		vertical-align: middle;
	}
}

/* -----fv----- */
#fv {
	width: 100%;
	aspect-ratio: 1920 / 1000;
}

#fv .fv {
	width: 100%;
	height: 100%;
	background-image: url(../img/fv.png);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	position: relative;
}

#fv .fv .fv_box {
	width: 100%;
	background-color: rgba(255, 255, 255, 0.7);
	display: flex;
	justify-content: space-between;
	position: absolute;
	bottom: 0;
	left: 0;
	padding: clamp(18px, 2.5vw, 75px) clamp(40px, calc(100vw * 0.4762 - 560px), 240px);
}

#fv .fv_box h1 {
	line-height: 1;
}

#fv .fv_box .fv_text {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

#fv .fv_box .fv_text p {
	margin-bottom: 30px;
	text-align: justify;
}

#fv .fv_box_relocate,
#fv .fv-sp {
	display: none;
}

@media screen and (min-width: 1920px) {
	#fv .fv .fv_box {
		padding-left: calc(240px + (100vw - 1920px) / 2) !important;
		padding-right: calc(240px + (100vw - 1920px) / 2) !important;
	}
}

@media screen and (max-width:1050px) {
	#fv .fv .fv_box {
		display: none;
	}

	#fv .fv_box_relocate {
		width: 100%;
		background-color: rgba(255, 255, 255, 0.7);
		display: flex;
		justify-content: space-between;
		flex-direction: column;
		bottom: 0;
		left: 0;
		padding: 40px clamp(40px, calc(100vw * 0.4762 - 560px), 240px) 0;
	}

	#fv .fv-sp {
		display: block;
		width: 100%;
		height: 550px;
		overflow: hidden;
	}

	#fv .fv-sp img {
		display: block;
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: center center;
	}

	#fv .fv_box_relocate .fv_text p {
		margin: 25px 0;
	}

	#fv .fv {
		display: none;
	}
}

@media screen and (max-width:640px) {
	.header {
		position: static;
	}

	#fv .fv_box_relocate>h1 {
		font-size: 2.8rem !important;
	}

	#fv .fv_box_relocate {
		padding: 30px clamp(16px, calc((100vw - 375px) * 0.090566 + 16px), 40px) 5rem;
	}

	#fv .fv-sp {
		height: 400px;
	}
}

/* -----service----- */
#top_service .service_item {
	display: flex;
	justify-content: left;
	width: 100%;
	margin-bottom: 75px;
}

#top_service .service_item .service_img {
	width: 35%;
	max-width: 550px;
	max-height: 367px;
	height: auto;
	aspect-ratio: 3 / 2;
	position: relative;
	display: block;
	margin: auto 0;
}

#top_service .service_item .service_img img {
	width: 100%;
	height: auto;
	position: relative;
	z-index: 2;
}

#top_service .service_item .service_img::after {
	width: 100%;
	aspect-ratio: 3 / 2;
	position: absolute;
	content: '';
	background-color: var(--color-decoration);
	top: 20px;
	left: 20px;
	z-index: 1;
}

#top_service .service_item .service_txt {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: left;
	margin: auto 0 auto 60px;
}

#top_service .service_item .service_txt h3 {
	margin: 0 auto 24px 0;
}

#top_service .service_item .service_txt p {
	text-align: justify;
}

@media screen and (max-width:1200px) {
	#top_service .service_item .service_txt>h3 {
		font-size: 2.4rem;
		margin-bottom: 10px;
	}

	#top_service .service_item .service_txt {
		margin-left: 45px;
	}

	#top_service .service_item .service_img::after {
		top: 10px;
		left: 10px;
	}
}

@media screen and (max-width:950px) {
	#top_service .service_grid {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 50px 30px;
		margin-bottom: 40px;
	}

	#top_service .service_item {
		flex-direction: column;
		margin-bottom: 0;
	}

	#top_service .service_item .service_img {
		width: 100%;
	}

	#top_service .service_item .service_txt {
		margin: 25px auto 0;
	}
}

@media screen and (max-width:640px) {
	#top_service .service_item .service_txt>h3 {
		font-size: 18px;
	}
}

@media screen and (max-width:550px) {
	#top_service .service_grid {
		grid-template-columns: 1fr;
	}
}

/* -----company----- */
#top_company .company {
	display: flex;
}

#top_company .company .company_photo {
	width: 40%;
	height: 500px;
	position: relative;
}

#top_company .company .company_photo .company_img-1 {
	width: clamp(230px, calc((100vw - 798px) * 0.0558 + 230px), 325px);
	aspect-ratio: 2 / 3;
	position: absolute;
	top: 10%;
	right: 0;
}

#top_company .company .company_photo .company_img-1 img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 30px;
}

#top_company .company .company_photo .company_img-2 {
	max-width: 300px;
	min-width: 230px;
	aspect-ratio: 3 / 2;
	position: absolute;
	right: 40%;
	top: 60%;
}

#top_company .company .company_photo .company_img-2 img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 30px;
}

#top_company .company .company_txt {
	flex: 1;
	margin-left: 150px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

#top_company .company .company_txt .company_list {
	max-width: 600px;
}

#top_company .company .company_txt .company_list li {
	border-bottom: var(--color-sub) solid 1px;
	position: relative;
}

/* 企業情報ボタン効果 */
#top_company .company .company_txt .company_list li a {
	display: block;
	font-size: var(--font-size-btn);
	color: var(--color-text);
	padding: 24px 46px 24px 16px;
	border-bottom: solid 1px #ccc;
	position: relative;
	transition: color .75s ease;
	z-index: 1;
	text-decoration: none;
	/*line-height: 1;*/
}

#top_company .company .company_txt .company_list li a:hover {
	color: #fff;
}

#top_company .company .company_txt .company_list li a:hover::before {
	transform: scaleX(1);
	transform-origin: left;
}

#top_company .company .company_txt .company_list li a::before {
	position: absolute;
	top: 0;
	left: 0;
	content: '';
	display: block;
	width: 100%;
	height: 100%;
	background: #243B53;
	transform: scaleX(0);
	transform-origin: right;
	transition: all .5s ease;
	transition-property: transform;
	z-index: -1;
}

#top_company .company .company_txt .company_list li a::after {
	width: 24px;
	height: 24px;
	position: absolute;
	content: "";
	background-image: url(../img/arrow-white.svg);
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	top: 50%;
	right: 16px;
	transform: translateY(-50%);
}

#top_company .company .company_txt .company_list li a:hover::after {
	background-image: url(../img/arrow-blue.svg);
}

#top_company .company .company_txt .company_list li a[target]::after {
	content: "";
	width: 24px;
	height: 24px;
	position: absolute;
	content: "";
	background-image: url(../img/arrow-white.svg);
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	top: 50%;
	right: 16px;
	transform: translateY(-50%);
}

#top_company .company .company_txt .company_list li a[target]:hover::after {
	background-image: url(../img/arrow-blue.svg);
}

#top_company .company .company_txt .company_btn .btn-white {
	width: auto !important;
	max-width: 320px;
	margin: 3rem 0 0 auto;
}

@media screen and (max-width:1440px) {
	#top_company .company .company_txt {
		margin-left: 45px;
	}

	#top_company .company .company_txt .company_list {
		margin-bottom: 45px;
	}
}

@media screen and (max-width:1000px) {
	#top_company .company .company_photo {
		width: 50%;
	}

	#top_company .company .company_photo .company_img-2 {
		left: 0;
	}
}

@media screen and (max-width:768px) {
	#top_company .company {
		gap: 2.7rem;
		justify-content: space-between;
		align-items: center;
	}

	#top_company .company .company_photo {
		width: 40%;
		height: 43vh;
		overflow: hidden;
		border-radius: 18px;
	}

	#top_company .company .company_photo .company_img-1 {
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		height: 100%;
	}

	#top_company .company .company_photo .company_img-2 {
		display: none;
	}

	#top_company .company .company_txt {
		margin: auto;
	}

	#top_company .company .company_txt .company_list {
		max-width: none;
	}

	#top_company .company .company_txt .company_list .company_item {
		padding: 12px;
	}

	#top_company .company .company_txt .company_list .company_item::after {
		width: 18px;
		height: 18px;
	}
}

@media screen and (max-width:420px) {
	#top_company .company .company_txt .company_list li a {
		padding: 16px 30px 16px 8px;
		font-size: 1.6rem;
	}

	#top_company .company .company_txt .company_list li a::after {
		width: 18px;
		height: 18px;
		right: 8px;
	}

	#top_company .company .company_txt .company_list li a[target="_blank"]::after {
		width: 18px;
		height: 18px;
		right: 8px;
	}
}


/* -----reason----- */
#top_reason .reason_txt {
	width: 60%;
	margin-left: auto;
	margin-bottom: 40px;
	text-align: justify;
}

#top_reason .reason_item {
	width: 100%;
	height: 280px;
	border-radius: 55px 55px 165px 55px;
	position: relative;
	overflow: hidden;
	padding: 24px 75px;
	margin-bottom: 40px;
	display: flex;
	align-items: center;
}

#top_reason .reason_item::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: url(../img/reason1.png);
	background-size: cover;
	background-position: center;
	opacity: 0.5;
}

#top_reason .reason_item>* {
	position: relative;
	z-index: 1;
}

#top_reason .reason_item p {
	font-size: 60px;
	font-weight: 700;
	color: #fff;
	text-shadow: 2px 0 var(--color-title), -2px 0 var(--color-title), 0 2px var(--color-title), 0 -2px var(--color-title), 1px 1px var(--color-title), -1px -1px var(--color-title), 1px -1px var(--color-title), -1px 1px var(--color-title);
}

#top_reason .reason_btn {
	display: flex;
}

#top_reason .reason_btn .reason_btn-white {
	z-index: 10;
	margin-left: 24px;
}

@media screen and (max-width:1050px) {
	#top_reason .reason_txt {
		margin: 0 0 40px;
		width: 100%;
	}

	#top_reason .reason_item p {
		font-size: 4rem;
	}

	#top_reason .reason_item {
		width: 100%;
		height: 230px;
	}
}

@media screen and (max-width:768px) {
	#top_reason .reason_item {
		border-radius: 40px 40px 120px;
	}

	#top_reason .reason_item {
		height: 180px;
		padding-left: 30px;
	}

	#top_reason .reason_item p {
		font-size: 3.2rem;
	}
}

@media screen and (max-width:500px) {
	#top_reason .reason_item {
		height: 130px;
		margin-bottom: 3rem;
	}

	#top_reason .reason_item p {
		font-size: 20px;
	}

	#top_reason .reason_txt {
		margin-bottom: 3rem;
	}

	#top_reason .reason_btn {
		flex-direction: column;
	}

	#top_reason .reason_btn .reason_btn-white {
		margin: 3rem auto 0;
	}
}

/* -----news----- */
#top_news .news {
	display: flex;
	justify-content: space-between;
	width: 100%;
	gap: 30px;
}

#top_news .news_list .news_item a,
#top_news .news_list .news_item span.blank {
	display: flex;
	margin-bottom: 24px !important;
	align-items: center;
}

#top_news .news_list .news_item a:last-child {
	margin-bottom: 0;
}

#top_news .news_list .news_item a[target] .news_article::after {
	content: "\f35d";
	font-weight: 900;
	font-family: "Font Awesome 5 Free";
	transition: color .25s ease;
	padding-left: 1.4rem;
	color: #999;
}

#top_news .news_list .news_item a.pdf[target] .news_article::after {
	font-weight: 400;
	content: "\f1c1";
}

#top_news .news_list .news_item .news_img {
	width: 200px;
	aspect-ratio: 3 / 2;
}

#top_news .news_list .news_item .news_img img {
	width: 100%;
	height: 100%;
	border-radius: 18px;
}

#news .news_list .news_item .news_txt {
	flex: 1;
	margin-left: 24px;
}

#news .news_list .news_item .news_txt .news_add {
	display: flex;
}

#news .news_list .news_item .news_txt .news_add span {
	padding: .2rem 1.0rem;
	margin-left: 1.0rem;
	border-radius: 35px;
	color: #fff;
	font-size: var(--font-size-sub-2);
	display: flex;
	align-items: center;
	justify-content: center;
}

#news .news_list .news_item .news_txt .news_add span.cate.tab1 {
	background: #243B53;
}

#news .news_list .news_item .news_txt .news_add span.cate.tab2 {
	background: #a79472;
}

#news .news_list .news_item .news_txt .news_add span.cate.tab3 {
	background: #a96d70;
}

#news .news_list .news_item .news_txt .news_add time {
	font-size: var(--font-size-sub-1);
}

#news .news_list .news_item .news_txt .news_article {
	margin-top: 10px;
	text-align: justify;
}

@media screen and (max-width:1050px) {
	#top_news .news {
		flex-direction: column-reverse;
	}

	#top_news .news_list {
		width: 100%;
	}
}

@media screen and (max-width:550px) {
	#top_news .news_list .news_item .news_img {
		display: none;
	}

	#news .news_list .news_item .news_txt {
		margin-left: 0;
	}
}

/* -----sustainability----- */
#top_sustainability {
	width: 100%;
	display: flex;
	justify-content: center;
}

#top_sustainability a {
	width: 80%;
}

#top_sustainability .sustainability {
	height: auto;
	width: 100%;
	display: flex;
	gap: 5rem;
	justify-content: center;
	border-radius: 35px;
	border: var(--color-accent) solid 1px;
	background-color: #fff;
}

#top_sustainability .sustainability .sustainability_img {
	height: auto;
	width: 40%;
	top: 0;
	left: 0;
	border-radius: 35px 35px 165px 35px;
	overflow: hidden;
}

#top_sustainability .sustainability .sustainability_img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: right 20% top 0;
}

#top_sustainability .sustainability .sustainability_box {
	flex: 1;
	margin: auto 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 2.5rem;
	padding: 2rem 3rem 2rem 0;
}

#top_sustainability .sustainability .sustainability_box .sustainability_title {
	margin: 0;
}

#top_sustainability .sustainability .sustainability_box .sustainability_txt {
	margin: 0;
	text-align: justify;
}

#top_sustainability .sustainability .sustainability_box .top_sustainability-btn {
	display: block;
	margin: -2.5rem 0 0 auto;
	width: 3.2rem;
	height: 3.2rem;
}

@media screen and (max-width:1100px) {
	#top_sustainability a {
		width: 100%;
	}

	#top_sustainability .sustainability .sustainability_img {
		width: 50%;
	}
}

@media screen and (max-width:768px) {
	#top_sustainability {
		margin-bottom: 5rem;
		display: block;
	}

	#top_sustainability .sustainability {
		height: auto;
		width: 100%;
		flex-direction: column;
		gap: 2.0rem;
	}

	#top_sustainability .sustainability .sustainability_img {
		width: 100%;
		height: 30vw;
		min-height: 180px;
	}

	#top_sustainability .sustainability .sustainability_img img {
		object-position: center;
	}

	#top_sustainability .sustainability .sustainability_box {
		padding: 0 3.2rem 3.2rem 3.2rem;
		width: 100%;
		gap: 1.5rem;
	}

	#top_sustainability .sustainability .sustainability_box .top_sustainability-btn {
		margin: -1.5rem 0 0 auto;
	}

	#top_sustainability .sustainability .sustainability_box .top_sustainability-btn img {
		transform: translateY(5px);
	}
}

@media screen and (max-width: 450px) {
	#top_sustainability .sustainability .sustainability_box {
		flex-direction: column;
		justify-content: center;
		padding: 0 1.6rem 2.4rem 1.6rem;

	}
}

/* -----recruit----- */
#recruit {
	margin: 75px 0;
	position: relative;
}

#recruit .recruit_photo {
	width: 100%;
	height: 750px;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: space-between;
	position: relative;
	z-index: 1;
}

#recruit .recruit_photo .recruit_gallery {
	height: 100%;
	overflow: hidden;
	display: flex;
	gap: 35px;
}

#recruit .recruit_photo .recruit_gallery .recruit_column {
	width: 50%;
	display: flex;
	flex-direction: column;
	gap: 20px;
}

#recruit .recruit_photo .recruit_gallery .recruit_column-1 {
	justify-content: center;
}

#recruit .recruit_photo .recruit_gallery .recruit_column-2 {
	justify-content: center;
}

#recruit .recruit_photo .recruit_gallery .recruit_column img {
	width: 250px;
	aspect-ratio: 2 / 3;
	border-radius: 35px;
	object-fit: cover;
}

#recruit .recruit_photo::after {
	position: absolute;
	content: '';
	background: color-mix(in srgb, var(--color-title) 50%, transparent);
	width: 100%;
	height: 100%;
	z-index: 2;
}

#recruit .recruit_txt {
	display: flex;
	flex-direction: column;
	gap: 30px;
	justify-content: center;
	align-items: center;
	text-align: center;
	position: absolute;
	z-index: 3;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

#recruit .recruit_txt .recruit_title {
	font-size: var(--font-size-h2);
}

#recruit .recruit_txt .recruit_title h2 {
	line-height: 1;
	margin: 0;
	color: #fff;
}

#recruit .recruit_txt .recruit_title span {
	font-size: var(--font-size-sub-1);
	color: #fff;
}

#recruit .recruit_txt p {
	color: #fff;
}

#recruit .recruit_txt .recruit_btn {
	margin: 0 auto;
	padding: 10px 24px;
}

@media screen and (max-width:1440px) {
	#recruit .recruit_photo .recruit_gallery .recruit_column img {
		width: clamp(140px, calc((100vw - 768px) * 0.0893 + 140px), 200px);
	}

	#recruit .recruit_photo .recruit_gallery {
		gap: 20px;
	}

	#recruit .recruit_photo .recruit_gallery .recruit_column {
		gap: 10px;
	}

	#recruit .recruit_photo {
		height: 500px;
	}
}

@media screen and (max-width:768px) {
	#recruit .recruit_photo .recruit_gallery .recruit_column-1 {
		display: none;
	}
}

@media screen and (max-width:500px) {
	#recruit .recruit_photo .recruit_gallery .recruit_column img {
		width: 115px;
	}

	#recruit .recruit_photo {
		height: 400px;
	}
}


/* -----footer----- */
footer {
	background-color: var(--color-title);
	position: relative;

	a {
		text-decoration: none;
		color: var(--color-text);
	}

	.white-area {
		margin-top: 7.5rem;
		background-color: #fff;
		width: 80%;
		margin-left: 20%;
		border-radius: 6vw 0 0 6vw;
		padding: 4vw;
	}

	.footer_logo {
		display: flex;
		justify-content: space-between;
		align-items: center;
		margin-bottom: 6.0rem;

		.logo {
			width: 365px;
			height: auto;
			display: block;
		}

		.footer_btn {
			margin: 0 0 0 2.0rem;
			background: var(--color-title);
			color: #fff;
			border-radius: 8px;
			font-size: 16px;
			line-height: 1;
			padding: 12px 30px 12px 12px;
			position: relative;

			&:after {
				background-image: url(../img/arrow-blue.svg);
				width: 16px;
				height: 16px;
				background-position: center;
				background-repeat: no-repeat;
				position: absolute;
				content: '';
				right: 8px;
				top: 50%;
				transform: translateY(-50%);
				transition: transform .3s ease;
			}
		}
	}

	.footer-container {
		display: flex;
		gap: 30px;
	}

	.box {
		display: grid;
		width: 100%;
		gap: 30px;
		align-items: flex-start;
	}

	.cate {
		font-size: 2.1rem;
		font-weight: 700;
		margin-bottom: 1.6rem;
		padding-left: 30px;
		list-style: none;

		&.shikaku {
			position: relative;

			&::before {
				content: '■';
				width: 1.6rem;
				position: absolute;
				left: 0;
			}
		}
	}

	.sub li {
		a {
			line-height: 1.6;
			display: block;
			font-size: var(--font-size-sub-1);
			color: var(--color-text);
			padding: 4px 3.5vw 4px 8px;
			border-bottom: solid 1px #ccc;
			position: relative;
			transition: color .75s ease;
			z-index: 1;
			text-decoration: none;
			word-break: break-all;

			&:hover {
				color: #fff;
			}

			&:hover::before {
				transform: scaleX(1);
				transform-origin: left;
			}

			&::before {
				position: absolute;
				top: 0;
				left: 0;
				content: '';
				display: block;
				width: 100%;
				height: 100%;
				background: #243B53;
				transform: scaleX(0);
				transform-origin: right;
				transition: all .5s ease;
				transition-property: transform;
				z-index: -1;
			}

			&::after {
				content: "→";
				color: var(--color-text);
				font-size: var(--font-size-sub-2);
				position: absolute;
				top: 50%;
				right: 1vw;
				margin: auto 0;
				width: 18px;
				height: 18px;
				background-position: center;
				background-repeat: no-repeat;
				background-size: contain;
				transform: translateY(-50%);
			}

			&:hover::after {
				color: #fff;
			}
		}

		a[target]::after {
			content: "\f35d";
			font-weight: 900;
			font-family: "Font Awesome 5 Free";
			transition: color .25s ease;
			padding-left: 0.8rem;
			font-size: 1.2rem;
			vertical-align: text-bottom;
		}

		a.pdf[target]::after {
			font-size: 1.4rem;
			font-weight: 400;
			content: "\f1c1";
			vertical-align: middle;
		}
	}

	.footer-box {
		display: flex;

		span {
			position: absolute;
			color: #fff;
			rotate: -180deg;
			right: calc(80% + 20px);
			bottom: 100px;
			font-size: 14px;
			white-space: nowrap;
			writing-mode: vertical-rl;

			span {
				position: relative;
				right: 0;
				bottom: 0;
				writing-mode: sideways-lr;
			}
		}
	}
}

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

		.white-area {
			width: 90%;
			margin-left: 10%;
		}

		.footer_logo {
			flex-flow: column;
			margin-bottom: 0rem;

			.logo {
				width: 60%;
				min-width: 226px;
				margin: 0 auto 20px;
			}

			.footer_btn {
				margin: 0 auto 25px;
				font-size: 14px;

				img {
					width: 16px;
					height: 16px;
				}
			}
		}

		.footer-box span {
			right: calc(90% + 10px);
		}
	}
}

@media screen and (min-width: 641px) {
	footer .cate-box summary {
		pointer-events: none;
		cursor: default;

		&::-webkit-details-marker {
			display: none;
		}
	}

	footer .copyright {
		display: none;
	}
}

@media screen and (max-width: 640px) {
	footer {
		padding-top: 25px;
		padding-left: 25px;

		.white-area {
			width: 100%;
			margin: 0 0 0 auto;
			right: 0;
		}

		.footer-container {
			display: block;
		}

		.box {
			display: block;
		}

		.cate {
			font-size: 16px;
			margin-bottom: 0;
			padding-left: 0;
			height: 50px;
			display: flex;
			align-items: center;
			position: relative;
			border-bottom: 1px solid #CACACA;
			cursor: pointer;

			&.shikaku {
				margin-bottom: 0.6rem;
				padding-left: 4rem;

				&::before {
					text-align: right;
					left: 15px;
				}
			}

			&::-webkit-details-marker {
				display: none;
			}

			&::after {
				content: "";
				width: 10px;
				height: 10px;
				border-right: 3px solid #243b53;
				border-bottom: 3px solid #243b53;
				position: absolute;
				right: 28px;
				top: 50%;

				transform: translateY(-70%) rotate(45deg);
				transition: transform 0.3s;
			}
		}

		/* 開いたとき */
		details[open] .cate::after {
			transform: translateY(-30%) rotate(225deg);
		}

		.sub {
			padding: 10px 0;
			border-bottom: 1px solid #CACACA;
		}

		.sub li {
			border-bottom: none;
			min-height: 35px;

			a {
				display: flex;
				align-items: center;
				width: 100%;
				height: 100%;
				padding: 4px 30px 4px 8px;
			}

			&::after {
				font-size: var(--font-size-sub-1);
				right: 25px;
				top: 50%;
				bottom: auto;
				transform: translateY(-50%);
				margin: auto;
			}
		}

		.footer-sub {
			margin: 18px 0 0;
			padding: 0;
			border-bottom: none;

			li {
				height: 35px;
				position: relative;
				margin-left: 0px;

				/*&::after {
					content: "→";
					color: #243B53;
					font-size: 16px;
					position: absolute;
					right: 25px;
					top: 50%;
					transform: translateY(-50%);
				}*/

				a {
					display: flex;
					align-items: center;
					width: 100%;
					height: 100%;
					color: #243d53;
					font-size: 14px;
					font-weight: 500;
					border-bottom: none;
				}
			}
		}

		.footer-box {
			span {
				display: none;
			}
		}

		.copyright {
			padding: 13px 0;
			color: #fff;
			text-align: center;
			font-size: 10px;
			margin-left: -25px;
		}
	}
}

@media screen and (max-width: 380px) {
	footer .copyright {
		font-size: 10px;
	}
}


/* -----side----- */
#side {
	.smenu-hp {
		box-sizing: border-box;
		background: rgb(246, 241, 232);
		border-radius: 40px;
		padding: 25px;
		width: 300px;
		text-align: center;

		p {
			font-size: 2.4rem;
			color: #243b53;
			font-weight: bold;
			text-align: center;
			margin-bottom: .6rem;
		}

		a {
			color: var(--color-text);
			display: block;
			align-content: center;
			padding: .8rem 2.0rem .8rem 0;
			font-size: var(--font-size-sub-1);
			width: 100%;
		}
	}

	#js__nav>a {
		margin: 0 auto;
		text-align: center;
		color: #FFF;
		background: var(--color-title);
		border-radius: 8px;
		padding: 10px;
		display: inline-block;
		margin-bottom: 25px;
	}

	#js__nav #sideNav {
		list-style: none;
		padding-left: 0;
		text-align: left;

		li a {
			display: block;
			border-bottom: solid 1px rgba(36, 59, 83, 0.3);
			position: relative;
			min-height: 5.5rem;
			width: 100%;

			&::after {
				position: absolute;
				right: 0;
				top: 50%;
				transform: translateY(-50%);
				content: "\f105";
				font-size: 1.8rem;
				font-family: 'Font Awesome 7 Free';
				font-weight: 900;
				line-height: 1;
				margin-right: 0;
				color: var(--color-sub);
			}
		}
	}
}

@media screen and (max-width: 1024px) {
	#side .smenu-hp {
		display: none;
	}
}

@media screen and (max-width: 1023px) {
	#side {
		background: none;
		border-radius: 0;
		padding: 0;
		width: 0;
		position: absolute;
		right: 0;
		top: 30px;

		.smenu-hp {
			display: block;
			z-index: 80;
			height: auto;
			transform: translateX(115%);
			transition: transform 0.4s ease;
			position: fixed;
			top: 205px;
			right: 0;
			box-sizing: border-box;

			&.active {
				transform: translateX(0);
				position: absolute;
				top: 80px;
				right: 0;
			}
		}

		.side-sp {
			right: 4.0rem;
			position: absolute;

			&.active {
				transform: translateX(0);
			}
		}

		.side-sp .side-btn {
			z-index: 90;
			width: 50px;
			height: 50px;
			background-color: var(--color-accent);
			display: flex;
			flex-direction: column;
			justify-content: center;
			align-items: center;
			gap: 5px;
			cursor: pointer;

			span {
				display: block;
				width: 30px;
				height: 3.5px;
				background-color: #fff;
				border-radius: 30px;
				transition: 0.3s;
			}

			&.active span:nth-child(1) {
				transform: translateY(8px) rotate(45deg);
			}

			&.active span:nth-child(2) {
				opacity: 0;
			}

			&.active span:nth-child(3) {
				transform: translateY(-8px) rotate(-45deg);
			}
		}
	}
}

@media screen and (max-width: 800px) {
	#side {
		.side-sp {
			right: 1.6rem;

			.side-btn {
				width: 35px;
				height: 35px;

				span {
					width: 18px;
					height: 2px;
				}

				&.active span:nth-child(1) {
					transform: translateY(7px) rotate(45deg);
				}

				&.active span:nth-child(2) {
					opacity: 0;
				}

				&.active span:nth-child(3) {
					transform: translateY(-7px) rotate(-45deg);
				}
			}
		}
	}
}

@media screen and (max-width: 640px) {
	#side {
		top: 0;
	}
}

/* -----breadcrumbs----- */
#breadcrumbs {
	margin: 0 auto 3rem;
	width: 100%;
	max-width: 1410px;
	padding: 0 4.0rem;
}

#breadcrumbs ol {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	align-items: center;
}

#breadcrumbs ol li {
	display: flex;
	align-items: center;
	font-size: var(--font-size-sub-2);
	color: var(--color-sub);
	line-height: 1;
	padding: .5rem 0;
	white-space: normal;
}

#breadcrumbs ol li:last-child {
	flex: 1 1 0;
	min-width: 0;
	overflow: hidden;
}

#breadcrumbs ol li:last-child span {
	display: block;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

#breadcrumbs ol li a {
	padding: 0;
}

nav#breadcrumbs ol li:before {
	content: "\f105";
	padding: 0 1.5rem;
	font-size: var(--font-size-sub-2);
	font-family: 'Font Awesome 5 Free';
	font-weight: 900;
	line-height: 1;
}

nav#breadcrumbs ol li:first-child:before {
	content: "";
	padding: 0;
}

nav#breadcrumbs ol li a {
	color: var(--color-sub);
	display: flex;
	align-items: center;
}

@media screen and (max-width: 800px) {
	#breadcrumbs {
		padding: 0 1.6rem;
	}
}

/* -----#content共通----- */
#content {
	position: relative;
	margin: 0 auto;
	width: 100%;
	max-width: 1410px;
	padding: 0rem 4.0rem 10.0rem;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
}

#content #main {
	width: calc(100% - 300px - 5.0rem);
	max-width: 990px;
}

#content.nos #main {
	width: 100%;
	max-width: inherit;
}

#content #main section {
	margin-bottom: 10rem;
}

#content #main section:last-of-type {
	margin-bottom: 0rem;
}

#content #main p {
	text-align: justify;
}

#content #main *+p {
	margin-top: 1.6rem;
}

#content #main *+h2,
#content #main *+h3,
#content #main *+h4,
#content #main *+h5 {
	margin-top: 4.0rem;
}

#content #main h2 {
	margin-bottom: 5.0rem;
	line-height: 1.2;
}

#content #main h2 br {
	display: none;
}

#content #main h3 {
	font-weight: 700;
	margin-bottom: 3.0rem;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	line-height: 1;
}

#content #main h3.center {
	display: block;
	padding-left: 0;
}

#content #main h3.center:before {
	display: none;
}

#content #main h4 {
	font-size: 2.4rem;
	color: var(--color-title);
	font-weight: 500;
	margin-bottom: 1rem;
	line-height: 1;
}

#content #main h5 {
	font-size: 2.1rem;
	margin-bottom: 2.1rem;
	line-height: 1;
	display: flex;
}

#content #main h5:before {
	content: "";
	border-left: solid 4px var(--color-title);
	margin-right: 1.6rem;
	font-size: 1.7rem;
}

#content #main #tab {
	display: flex;
	flex-wrap: wrap;
}

#content #main a.link,
#content #main a.ulink {
	display: table;
	padding: 1.0rem 0 1.0rem 2.0rem;
	position: relative;
	transition: color .25s ease;
	z-index: 1;
	margin-right: 2.0rem;
}

#content #main a.link::before {
	left: 0;
	content: "\f105";
	font-weight: 900;
	font-family: "Font Awesome 5 Free";
	padding-top: .1rem;
	transition: color .25s ease;
	position: absolute;
}

#content #main a.ulink::before {
	left: 0;
	content: "\f107";
	font-weight: 900;
	font-family: "Font Awesome 5 Free";
	padding-top: .1rem;
	transition: color .25s ease;
	position: absolute;
}

#content #main #tab a.ulink {
	display: inline-block;
}

#content #main a.link[target]::after {
	content: "\f35d";
	font-weight: 900;
	font-family: "Font Awesome 5 Free";
	transition: color .25s ease;
	padding-left: 0.8rem;
	font-size: 1.2rem;
	vertical-align: text-bottom;
}

#content #main a.link.pdf[target]::after {
	font-size: 1.4rem;
	font-weight: 400;
	content: "\f1c1";
	vertical-align: middle;
}

#content #main dl.table {
	border-top: solid 1px var(--color-title);
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
}

#content #main dl.table>dt {
	background: rgba(36, 59, 83, 0.7);
	color: #fff;
	border: solid 1px var(--color-title);
	border-top: none;
	padding: 2.0rem;
	width: 267px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
}

#content #main dl.table>dd {
	padding: 2.0rem;
	border-right: solid 1px var(--color-title);
	border-bottom: solid 1px var(--color-title);
	width: calc(100% - 267px);
	word-break: break-all;
}

#content #main dl.table.pv>dt {
	width: 400px;
}

#content #main dl.table.pv>dd {
	width: calc(100% - 400px);
}

@media screen and (max-width: 1024px) {
	#content #main {
		width: 100%;
		max-width: none;
	}
}

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

	/*1000px以下の時*/
	#content #main h2 {
		padding-right: 68px;
	}

	#content #main dl.table>dt {
		width: 190px;
	}

	#content #main dl.table>dd {
		width: calc(100% - 190px);
	}

	#content #main dl.table.pv>dt {
		width: 400px;
	}

	#content #main dl.table.pv>dd {
		width: calc(100% - 400px);
	}
}

@media screen and (max-width: 800px) {
	#content #main dl.table.pv>dt {
		padding: 1.2rem 1.2rem 1.2rem 1.2rem;
		width: 100%;
		margin-bottom: 0rem;
	}

	#content #main dl.table.pv>dd {
		padding: 1.2rem;
		border-left: solid 1px #ccc;
		width: 100%;
	}

	#content {
		padding: 0rem 1.6rem 8rem;
	}
}

@media screen and (max-width: 640px) {
	#content #main h2 {
		font-size: 2.6rem;
		padding-right: 46px;
		margin-bottom: 3.0rem;
	}

	#content #main h3 {
		font-size: 2.4rem;
	}

	#content #main h4 {
		font-size: 2.1rem;
	}

	#content #main h5 {
		font-size: 1.8rem;
	}

	#content #main h2:after {
		border: solid 3px #148ecf;
		width: 4.0rem;
		margin-top: 2rem;
	}

	#content #main dl.table>dt {
		padding: 1.2rem 1.2rem 1.2rem 1.2rem;
		width: 100%;
		margin-bottom: 0rem;
	}

	#content #main dl.table>dd {
		padding: 1.2rem;
		border-left: solid 1px var(--color-title);
		width: 100%;
	}
}

#content #main .customer_btn {
	margin: 10rem auto 0;
}

#content #main .customer_btn a.btn {
	margin: 0 auto;
}


/*service_ 共通*/
main#service #main h4 {
	display: flex;
	align-items: center;
}

main#service #main h4 span {
	margin-top: -3px;
}

main#service #main h4 span.num {
	font-size: var(--font-size-h1);
	font-weight: 700;
	color: var(--color-title);
	margin-right: 2.0rem;
	position: relative;
	margin-bottom: 3px;
	max-width: 90px;
}

main#service #main h4:first-of-type span.num::before {
	content: '01.';
}

main#service #main h4:nth-of-type(2) span.num::before {
	content: '02.';
}

main#service #main h4:nth-of-type(3) span.num::before {
	content: '03.';
}

main#service #main h4:nth-of-type(4) span.num::before {
	content: '04.';
}

main#service #main h4:nth-of-type(5) span.num::before {
	content: '05.';
}

main#service #main h4:nth-of-type(6) span.num::before {
	content: '06.';
}

main#service #main p.lead {
	font-size: 2.1rem;
	color: var(--color-accent);
	font-weight: 600;
}

main#service #main img {
	margin-top: 1.6em;
	width: 100%;
	max-width: 895px;
	height: auto;
}

@media screen and (max-width: 640px) {
	main#service #main h4 span {
		margin-top: -4px;
	}

	main#service #main h4 span.num {
		font-size: 5.0rem;
		margin-right: 1.2rem;
		padding-right: 2.4rem;
		margin-bottom: 4px;
		min-width: 73px;
	}
}

main#service #main #feature h4 {
	border-bottom: 1px solid var(--color-sub);
	padding-bottom: 1.0rem;
	margin-bottom: 3.0rem;
}

main#service #main .box {
	margin: 1.6rem 1.6rem 0;
	padding: 1.4rem 2.0rem;
	border: solid 1px #ccc;
	background: #f2f2f2;
}

main#service #main .box.red {
	color: #ff0707;
	border: solid 1px #ff0707;
	background: rgb(255 255 255 / 50%);
}

main#service #main .box h4 {
	margin: 2.7rem 0 1.2rem;
	font-size: 1.8rem;
}

#page#service #main .box h4:first-of-type {
	margin: 0 0 1.2rem;
}

main#service #main .box p {
	margin-top: 0;
}

main#service #main .imgbox {
	margin-top: 3.0rem;
	padding: 3.0rem;
	background: rgb(220 199 161 / 25%);
	border-radius: 20px;
}

#main#service #main .imgbox p {
	font-size: 1.8rem;
	margin: 0 0 2.0rem;
	font-weight: 500;
}

#page #service #main .imgbox .boxtitle {
	color: #fff;
	background: #8e7448;
	font-size: 1.8rem;
	display: inline-block;
	padding: 0.4rem 2.0rem;
	border-radius: 18px;
	margin: 2.0rem 0 1.0rem;
	line-height: 1.5;
	font-weight: normal;
}

#page #service #main .imgbox .boxtitle:first-of-type {
	margin: 0 0 1.0rem;
}

#page #service #main .imgbox .boxtitle+ul {
	margin-top: 0 !important;
}

#page #content .asof {
	text-align: right;
	margin-bottom: .6rem;
}

#page #content p.name {
	text-align: right;
	margin-top: 4.0rem;
}

#page #content p.name span {
	font-size: 2.7rem;
	font-family: 'Noto Serif JP', serif;
	font-weight: 500;
}

#page #content #main #vision .vision_txt {
	margin-top: 4rem;
}

#page #content .map {
	border: solid 1px var(--color-decoration);
	margin-top: 2.4rem;
	height: 352px;
}

#page #content #main .company_history-2column {
	display: flex;
	width: 100%;
	gap: 3rem;
}

#page #content #main .company_history-2column div {
	width: 50%;
	height: auto;
}

#page #content #main .company_history-2column .table dt {
	width: 130px;
	align-items: flex-start;
	padding: 20px 10px;
}

#page #content #main .company_history-2column .table dd {
	width: calc(100% - 130px);
}

#page #content #main .hitory_tab {
	display: none;
}

/*@media screen and (max-width: 1440px) and (min-width: 1024px),
screen and (max-width: 800px) {
	#page #content #main .company_history-2column {
		flex-direction: column;
	}

	#page #content #main .company_history-2column div {
		width: 100%;
	}

	#page #content #main .company_history-2column .table dt {
		width: 190px;
	}

	#page #content #main .company_history-2column .table dd {
		width: calc(100% - 190px);
	}

	#page #content #main .hitory_tab {
		display: flex;
	}
}*/

@media screen and (max-width: 640px) {
	#page #content #main .company_history-2column {
		flex-direction: column;
	}

	#page #content #main .company_history-2column div {
		width: 100%;
	}

	#page #content #main .company_history-2column .table dt {
		padding: 1.2rem 1.2rem 1.2rem 1.2rem;
		width: 100% !important;
		margin-bottom: 0rem;
	}

	#page #content #main .company_history-2column .table dd {
		padding: 1.2rem;
		border-left: solid 1px var(--color-title);
		width: 100% !important;
	}

	#page #content #main .hitory_tab {
		display: flex;
	}

}

#page #content #main #company .company_img,
#page #content #main #vision .vision_img,
#page #message .vision_img,
#page #content #main #sustainability .sustainability_img {
	width: 100%;
	height: 320px;
	top: 0;
	left: 0;
	border-radius: 35px 35px 165px 35px;
	overflow: hidden;
}



#page #content #main #company .company_img img,
#page #content #main #vision .vision_img img,
#page #message .vision_img img,
#page #content #main #sustainability .sustainability_img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

#page #content #main #company .company_img,
#page #content #main #vision .vision_img img,
#page #message .vision_img img {
	min-height: 180px;
}

#page #content #main #vision .vision_img,
#page #message .vision_img {
	position: relative;
}

#page #content #main #vision .vision_img p,
#page #message .vision_img p {
	position: absolute;
	top: 50%;
	left: 5%;
	transform: translateY(-50%);
	z-index: 2;
	margin: 0;
	color: #333;
	font-size: 2.2rem;
}

#page #content #main #vision .vision_img::after,
#page #message .vision_img::after {
	position: absolute;
	content: "";
	background-image: url(../img/compan_vision-2.png);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	z-index: 2;
	top: 60%;
	right: 8%;
	transform: translateY(-60%);
	width: 260px;
	height: 100%;
}

#page #content #main #vision .vision_img .spBr_vision,
#page #message .vision_img .spBr_vision {
	display: none;
}

#page #content #main #company .company_txt {
	margin-top: 4rem;
}

#page #content #main #company .company_txt span {
	margin-bottom: 2rem;
	font-size: 2rem;
	text-align: center;
	display: block;
}

#page #content #main #company_list .company_grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	width: 100%;
	gap: 50px 30px;
}

#page #content #main #company_list .company_grid .company_item {
	width: 100%;
	height: auto;
}

#page #content #main #company_list .company_grid .company_item .company_list_img {
	display: block;
	width: 100%;
	max-height: 265px;
	border-radius: 16px;
	overflow: hidden;
	aspect-ratio: 3 / 2;
}

#page #content #main #company_list .company_grid .company_item .company_list_img img {
	object-fit: cover;
	width: 100%;
	display: block;
	aspect-ratio: 3 / 2;
}

#page #content #main #company_list .company_grid .company_item h3 {
	position: relative;
}

#page #content #main #company_list .company_grid .company_item h3::after {
	position: absolute;
	content: '';
	background-image: url(../img/arrow-white.svg);
	background-position: center;
	background-size: contain;
	background-repeat: no-repeat;
	top: 50%;
	right: 30px;
	transform: translateY(-50%);
	width: 20px;
	height: 20px;
}

#page #content #main #company_list .company_grid .company_list_img {
	overflow: hidden;
	margin-bottom: 2rem;
}

#page #content #main #company_list .company_grid .company_list_img img {
	display: block;
	width: 100%;
	transition: transform .8s ease;
}

#page #content #main #company_list .company_grid a:hover .company_list_img img {
	transform: scale(1.1);
	opacity: 0.9;
}

#page #content #main #company_list .company_grid .company_item>h3 {
	padding-bottom: 10px;
	transition: color 1s ease;
}

#page #content #main #company_list .company_grid a:hover .company_item>h3 {
	color: #3b6a8f;
}

#page #content #main #company_list .company_grid .company_item a {
	display: block;
	width: 100%;
}

#page #content #main #company_list .company_grid .company_item h3 {
	width: 100%;
	margin: 0;
}

#page #content #main #company_list .company_grid .company_item .company_add {
	width: 100%;
	height: 100px;
	margin-bottom: 3rem;
	display: flex;
	align-items: center;
	padding-left: 18px;
	border: var(--color-title) solid 1px;
	border-radius: 16px;
	transition: transform .5s ease;
	overflow: hidden;
	position: relative;
}

#page #content #main #company_list .company_grid .company_item a:last-child .company_add {
	margin-bottom: 0;
}

#page #content #main #company_list .company_grid .company_item .company_add::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: var(--color-title);
	border-radius: 16px;
	transform: translateX(-100%);
	transition: transform .6s ease;
	z-index: -1;
}

#page #content #main #company_list .company_grid .company_item .company_add:hover::before {
	transform: translateX(0);
}

#page #content #main #company_list .company_grid .company_item .company_add:hover,
#page #content #main #company_list .company_grid .company_item .company_add:hover h3 {
	color: #FFF;
}

#page #content #main #company_list .company_grid .company_item:last-child .company_add:hover h3::after {
	background-image: url(../img/arrow-blue.svg);
}

#page #content #main .drugdiscoveryimg {
	display: block;
	margin: 0 auto;
	max-width: 100%;
	width: auto;
	height: auto;
}


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

	#page #content #main #vision .vision_img,
	#page #content #main #company .company_img,
	#page #content #main #sustainability .sustainability_img {
		height: 25vw;
		min-height: 180px;
		/*border-radius: 25px 25px 120px 25px;*/
	}

	#page #content #main #company_list h3 {
		font-size: 2rem;
	}

	#page #content #main #vision .vision_img p,
	#page #message .vision_img p {
		font-size: 1.8rem;
		/*width: 60%;*/
	}
}

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

	#page #content #main #vision .vision_img .spBr_vision,
	#page #message .vision_img .spBr_vision {
		display: block;
	}

	#page #content #main #vision .vision_img p,
	#page #message .vision_img p {
		/*margin-right: 5rem;*/
	}
}

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

	#page #content #main #vision .vision_img .spBr_vision,
	#page #message .vision_img .spBr_vision {
		display: none;
	}

	#page #content #main #vision .vision_img p,
	#page #message .vision_img p {
		/*margin-right: 3.5rem;*/
	}
}

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

	#page #content #main #vision .vision_img::after,
	#page #message .vision_img::after {
		right: 15%;
		width: 150px;
	}
}

@media screen and (max-width: 768px) {
	#page #content #main #company_list .company_grid {
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		gap: 30px;
		padding: 0 50px;
	}

	#page #content #main #company .company_txt span {
		font-size: 2rem;
	}
}

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

	#page #content #main #vision .vision_img p,
	#page #message .vision_img p {
		/*margin-right: 5rem;*/
	}
}

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

	#page #content #main #sustainability .sustainability_img {
		height: 180px;
	}

	#page #content #main #vision .vision_img p,
	#page #message .vision_img p {
		font-size: 1.8rem;
		left: 10%;
		/*width: 55%;*/
	}

	#page #content #main #vision .vision_img .spBr_vision,
	#page #message .vision_img .spBr_vision {
		display: block;
	}

}

@media screen and (max-width: 600px) {
	#page #content #main #company_list .company_grid {
		padding: 0;
	}
}

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

	#page #content #main #vision .vision_img p,
	#page #message .vision_img p {
		font-size: 1.6rem;
		left: 6%;
	}

	#page #content #main #vision .vision_img::after,
	#page #message .vision_img::after {
		right: 10%;
		width: 130px;
	}
}

/*company_organization*/
#page #content .construction {}

#page #content .construction ul {
	margin: 0;
	padding: 0;
	position: relative;
}

#page #content .construction ul li {
	position: relative;
	padding-top: 10px;
}

#page #content .construction ul li::before {
	content: "";
	display: block;
	position: absolute;
	top: 29px;
	height: 0;
	border-top: solid 1px #999;
}

#page #content .construction ul li:not(:last-child)::after {
	content: "";
	display: block;
	position: absolute;
	top: 29px;
	height: 100%;
	border-left: solid 1px #999;
}

#page #content .construction ul.third li:not(:last-child)::after {
	left: -5.495%;
}

#page #content .construction ul.fourth li:not(:last-child)::after {
	left: -12.35%;
}

#page #content .construction li span {
	display: inline-block;
	width: 100%;
	padding: 10px 5px;
	text-align: center;
	line-height: 1.2;
	border-radius: 5px;
	background: var(--color-title);
	color: #fff;
}

#page #content .construction li span.first {
	width: 28.38%;
}

#page #content .construction ul.second span {
	background: var(--color-accent);
}

#page #content .construction li.first ul.second span {
	border-top: solid 1px #e5f6ff;
	background: var(--color-title);
}

#page #content .construction ul.third span {
	background: var(--color-decoration);
	width: 44.508%;
}

#page #content .construction ul.fourth span {
	background: var(--color-sub);
	width: 100%;
}

#page #content .construction ul li span.blank {
	height: 20px;
	padding: 0;
	border: none;
	border-bottom: solid 1px #999;
	border-radius: 0;
	background: none !important;
	vertical-align: top;
}

#page #content .construction li span.first {
	position: relative;
	margin-bottom: 15px;
}

#page #content .construction li.first span.first {
	margin-bottom: 0;
}

#page #content .construction li:not(.first) span.first::after {
	content: "";
	display: block;
	position: absolute;
	bottom: -15px;
	left: 5.91%;
	height: 15px;
	border-left: solid 1px #999;
}

#page #content .construction li span.mbn::after {
	border-left: none !important;
}

#page #content .construction li.first div ul.second {
	padding-bottom: 10px;
}

#page #content .construction li.first div ul.second li::before {
	left: -12.13%;
	width: 12.13%;
}

#page #content .construction div {
	display: flex;
}

#page #content .construction div ul {}

#page #content .construction div ul.second {
	width: 31%;
	margin-left: 1.677%;
	padding-left: 3.352%;
}

#page #content .construction div ul.second::after {
	content: "";
	display: block;
	position: absolute;
	top: 0px;
	left: 0px;
	height: 100%;
	border-left: solid 1px #999;
}

#page #content .construction li:not(.first) div:last-of-type ul.second::after {
	height: 29px;
}

#page #content .construction div ul.second li::before {
	left: -12.3%;
	width: 12.3%;
}

#page #content .construction div ul.third {
	width: 68.57%;
	padding-left: 6.705%;
}

#page #content .construction div ul.third::before {
	left: 30px;
}

#page #content .construction div:first-of-type ul.third::before {
	top: 29px;
}

#page #content .construction div:last-of-type ul.third::before {
	height: 29px;
}

#page #content .construction div ul.third>li {
	display: flex;
	align-items: flex-start;
}

#page #content .construction div ul.third>li::before {
	left: -5.495%;
	width: 5.495%;
}

#page #content .construction div ul.third>li:first-child::before {
	left: -10.99%;
	width: 10.99%;
}

.construction div ul.third>li:last-child::before {
	bottom: 0;
	height: auto;
	background-color: #fff;
}

#page #content .construction ul.third div {
	width: 55.5%;
}

#page #content .construction div ul.fourth {
	width: 100%;
	padding-left: 19.805%;
}

#page #content .construction ul.fourth::before {}

#page #content .construction div ul.fourth li {}

#page #content .construction div ul.fourth li::before {
	left: -12.345%;
	width: 12.345%;
}

#page #content .construction div ul.fourth li:first-child {
	padding-top: 0;
}

#page #content .construction div ul.fourth li:first-child::before {
	top: 19px;
	left: -24.69%;
	width: 24.69%;
}

#page #content .construction div ul.fourth li:first-child::after {
	top: 19px;
	height: 150%;
}

#page #content .construction div ul.fourth li:last-child::before {
	bottom: 0;
	height: auto;
	background-color: #fff;
}

@media screen and (max-width: 640px) {
	#page #content .construction li span {
		padding: 5px;
		font-size: 1.4rem;
	}

	#page #content .construction ul li span.blank {
		height: 13px;
	}

	#page #content .construction ul li {
		padding-top: 5px;
	}

	#page #content .construction ul li::before {
		top: 17px;
	}

	#page #content .construction ul li:not(:last-child)::after {
		top: 18px;
	}

	#page #content .construction li span.first {
		margin-bottom: 10px;
	}

	#page #content .construction li:not(.first) span.first::after {
		bottom: -10px;
		left: 5.4%;
		height: 10px;
	}

	#page #content .construction li.first div ul.second {
		padding-bottom: 5px;
	}

	#page #content .construction li:not(.first) div:last-of-type ul.second::after {
		height: 18px;
	}

	#page #content .construction li.first div ul.second li::before {
		left: -5.2%;
		width: 5.2%;
	}

	#page #content .construction div ul.second {
		margin-left: 1.703%;
		padding-left: 1.533%;
	}

	#page #content .construction div ul.second li::before {
		left: -5.27%;
		width: 5.27%;
	}

	#page #content .construction div ul.third {
		padding-left: 3.063%;
	}

	#page #content .construction div ul.third>li::before {
		left: -2.37%;
		width: 2.37%;
	}

	#page #content .construction div ul.third>li:first-child::before {
		left: -4.74%;
		width: 4.74%;
	}

	#page #content .construction ul.third li:not(:last-child)::after {
		left: -2.37%;
	}

	#page #content .construction div:first-of-type ul.third::before {
		top: 21px;
	}

	#page #content .construction div ul.fourth {
		padding-left: 8.54%;
	}

	#page #content .construction div ul.fourth li::before {
		left: -4.67%;
		width: 4.67%;
	}

	#page #content .construction div ul.fourth li:first-child::before {
		top: 12px;
		left: -9.335%;
		width: 9.335%;
	}

	#page #content .construction ul.fourth li:not(:last-child)::after {
		left: -4.67%;
	}

	#page #content .construction div ul.fourth li:first-child::after {
		top: 12px;
	}

	#page #service #main .imgbox {
		padding: 1.4rem;
	}
}

@media screen and (max-width:480px) {
	.spBr {
		display: none;
	}
}

#page #service #main .blur {
	/*画像ぼかし用クラス*/
	display: block;
	position: relative;
}

#page #service #main .blur::after {
	position: absolute;
	display: block;
	content: '';
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	box-shadow: inset 0 0 10px 10px #fff;
}

#page #service #main .blur img {
	margin: auto;
}

#page #service #main .flexbox {
	display: flex;
	flex-wrap: wrap;
}

@media screen and (max-width: 640px) {
	#page #service #main .flexbox {
		display: block;
	}
}

#page #service #main .flexbox .flexcontent {
	width: 50%;
	margin-bottom: 70px;
	padding-right: 40px;
}

@media screen and (max-width: 640px) {
	#page #service #main .flexbox .flexcontent {
		width: 100%;
	}
}

#page #service #main .featureflex {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-start;
}

#page #service #main .featureflex .flexbox {
	padding: 5px;
	margin-bottom: 30px;
}

#page #service #main .featureflex .flexbox:first-child {
	width: 58%;
}

#page #service #main .featureflex .flexbox:last-child {
	width: 40%;
	text-align: center;
}

@media screen and (max-width: 640px) {
	#page #service #main .featureflex .flexbox:first-child {
		width: 100%;
	}

	#page #service #main .featureflex .flexbox:last-child {
		width: 100%;
	}
}

/* 動画 */
/* ------------------------------------------------------------------------ */

.video {
	height: 0;
	padding-bottom: 56.25%;
	margin-top: 3.0rem;
	overflow: hidden;
	position: relative !important;
}

.video video {
	position: absolute !important;
	top: 0;
	left: 0;
}

video {
	width: 100%;
	height: 100%;
	border: solid 1px #ccc;
	vertical-align: bottom;
}

.videoBox {
	width: 100%;
	max-width: 850px;
	margin: auto;
	padding-bottom: 3rem;
}

.service_qualitylead .video {
	margin-top: 0;
}

#page #service #main .detailflex {
	display: flex;
	flex-wrap: wrap;
}

#page #service #main .detailflex .flexcontent {
	width: 33%;
	padding-right: 40px;
	margin-bottom: 70px;
}

#page #service #main .detailflex .flexcontent:nth-child(3n) {
	padding-right: 0;
}

@media screen and (max-width: 640px) {
	#page #service #main .detailflex .flexcontent {
		width: 100%;
	}
}

#page #service #main .detailflex2 {
	display: flex;
	flex-wrap: wrap;
}

#page #service #main .detailflex2>li {
	width: 50%;
}

@media screen and (max-width: 640px) {
	#page #service #main .detailflex2>li {
		width: 100%;
	}
}

#page #service #main table {
	border-collapse: collapse;
	border-spacing: 0;
	width: 100%;
}

#page #service #main table tr {
	border: 1px solid var(--color-title);
}

#page #service #main table th {
	border: 1px solid var(--color-title);
	background-color: rgba(36, 59, 83, 0.7);
	color: #fff;
	padding: 2rem;
}

#page #service #main table td {
	border: 1px solid var(--color-title);
	padding: 2rem;
}

#page #service #main .scroll {
	overflow-x: auto;
}

#page #service #main .scroll table {
	white-space: nowrap;
}

#page #service #main .scroll table tr {
	border: 1px solid var(--color-title);
}



@media screen and (max-width: 640px) {
	#page #service #main .scroll table th {
		padding: 1rem;
		font-size: 1.2rem;
	}

	#page #service #main .scroll table td {
		padding: 1rem;
		font-size: 1.2rem;
	}
}

#page #service #main .sdw {
	/*shadow用クラス*/
	width: 65%;
	display: block;
	height: auto;
	margin: 3rem auto 5rem;
	box-shadow: 5px 5px 10px -3px rgba(0, 0, 0, .3);
	border-radius: 8px;
}

#page #service ul.graph {
	display: flex;
	justify-content: space-between;
	margin-top: 3.0rem;
	padding: 3.0rem;
	/*background: rgb(96 164 192 / 25%);*/
	background: rgba(220, 199, 161, 0.25);
	border-radius: 20px;
}

#page #service ul.graph p {
	text-align: center;
	font-size: 1.8rem;
	font-weight: bold;
}

#page #service #main .imgbox .label {
	color: #fff;
	background: var(--color-accent);
	font-size: 1.8rem;
	display: inline-block;
	padding: 0.4rem 2.0rem;
	border-radius: 18px;
	margin: 2.0rem 0 1.0rem;
	line-height: 1.5;
	font-weight: normal;
}

#page #service #main .imgbox .label:first-of-type {
	margin: 0 0 1.0rem;
}

#page #service #main .imgbox .label+ul {
	margin-top: 0 !important;
}

#page #service #main .adj {
	/*.adj、、、画像調整用クラス*/
	width: 65%;
	height: auto;
	margin: auto;
	margin-top: 0;
	margin-bottom: 15%;
	display: block;
}

@media screen and (max-width: 640px) {
	#page #service #main .adj {
		width: 92%;
	}
}



/* サステナビリティ */
#page #content #main #sustainability .sustainability_img {
	margin-bottom: 4rem;
}

#page #sustainability #content #main h4 span.num {
	font-size: var(--font-size-h4);
	font-weight: 700;
	color: var(--color-title);
	margin-right: 1.0rem;
	position: relative;
	margin-bottom: 3px;
	max-width: 90px;
}

#page #sustainability #content #main h4:first-of-type span.num::before {
	content: '01.';
}

#page #sustainability #content #main h4:nth-of-type(2) span.num::before {
	content: '02.';
}

#page #sustainability #content #main h4:nth-of-type(3) span.num::before {
	content: '03.';
}

#page #sustainability #content #main h4:nth-of-type(4) span.num::before {
	content: '04.';
}

#page #sustainability #content #main h4:nth-of-type(5) span.num::before {
	content: '05.';
}

#page #sustainability #content #main h4:nth-of-type(6) span.num::before {
	content: '06.';
}

#page #sustainability #content #main h4:nth-of-type(7) span.num::before {
	content: '07.';
}

#page #sustainability #content #main h4:nth-of-type(8) span.num::before {
	content: '08.';
}

#page #sustainability #content #main #feature h4 {
	border-bottom: 1px solid var(--color-sub);
	padding-bottom: 1.0rem;
	margin-bottom: 3.0rem;
}

#page #sustainability #content #main .dot {
	counter-reset: li;
	margin-bottom: 1em;
	margin-top: 1em;
}

#page #sustainability #content #main h3 {
	padding-left: 3.56rem;
}

#page #sustainability #content #main h3::before {
	content: "";
	position: absolute;
	border-top: solid 4px #8e7448;
	width: 2.4rem;
	margin-left: -3.56rem;
}

#page #content #main #sustainability .table .lstyle2 {
	margin-top: 0;
}

#page #content #main #sustainability .table .lstyle2>li::before {
	border-left-color: #243b53;
	top: 50%;
	transform: translateY(-50%);
}

/* プライバシーポリシー */

#page #privacy-policy #content #main h3 {
	padding-left: 3.56rem;
}

#page #privacy-policy #content #main h3::before {
	content: "";
	position: absolute;
	border-top: solid 4px #8e7448;
	width: 2.4rem;
	margin-left: -3.56rem;
}

#page #service #main .adj_bnr {
	/*バナーラップ*/
	background-color: #eef9ff;
	display: flex;
	align-items: center;
}


@media screen and (max-width: 500px) {
	#page #service #main .adj_bnr {
		display: block;
	}
}

#page #service #main .adj_bnr a {
	width: 30%;
}

#page #service #main .adj_bnr a img {
	padding: 20px;
	margin-bottom: auto;
	margin-top: auto;
}

#page #service #main .adj_bnr span {
	width: 70%;
	display: inline-block;
	margin-right: auto;
	margin-left: auto;
	padding-right: 20px;
}

@media screen and (max-width: 500px) {
	#page #service #main .adj_bnr a {
		width: 60%;
	}
}

@media screen and (max-width: 500px) {
	#page #service #main .adj_bnr span {
		display: block;
		width: 90%;
		margin-right: auto;
		margin-left: auto;
		padding-bottom: 20px;
		padding-right: 0px;

	}
}

/* サイトマップ */

#page #sitemap #content .flex {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-around;
	align-items: flex-start;
}

#page #sitemap #content .flex .box {
	width: 47.5%;
}

#page #sitemap #content .flex .box:nth-of-type(n+3) {
	margin-top: 3.0rem;
}

#page #sitemap #content .flex .box ul.sub {
	padding: 2.0rem 1.0rem 0;
}

#page #sitemap #content .flex .box ul.sub+ul {
	margin-top: 2.0rem;
}

#page #sitemap #content div li span {
	margin-top: 2.6rem;
	margin-bottom: 0.4rem;
	display: block;
	border-left: solid 3px #243B53;
	line-height: 1;
	padding-left: 0.8rem;
}

#page #sitemap #content .box:nth-of-type(2) ul:first-of-type li:first-of-type span {
	margin-top: 10px;
}

#page #sitemap #content div li a {
	display: block;
	color: #333;
	padding: 1.0rem 2.5rem 1.0rem 1.0rem;
	border-bottom: solid 1px #ccc;
	position: relative;
	transition: color .75s ease;
	z-index: 1;
	/*line-height: 1;*/
}

#page #sitemap #content div li a:hover {
	color: #fff;
}

#page #sitemap #content div li a:hover::before {
	transform: scaleX(1);
	transform-origin: left;
}

#page #sitemap #content div li a::before {
	position: absolute;
	top: 0;
	left: 0;
	content: '';
	display: block;
	width: 100%;
	height: 100%;
	background: #243B53;
	transform: scaleX(0);
	transform-origin: right;
	transition: all .5s ease;
	transition-property: transform;
	z-index: -1;
}

#page #sitemap #content div li a::after {
	position: absolute;
	right: 1.0rem;
	content: "\f105";
	font-weight: 900;
	font-family: "Font Awesome 5 Free";
	padding-top: .1rem;
	transition: color .1s ease;
}

#page #sitemap #content div li a[target]::after {
	content: "\f35d";
	font-weight: 900;
	font-family: "Font Awesome 5 Free";
	transition: color .25s ease;
	padding-left: 0.8rem;
	font-size: 1.2rem;
	vertical-align: text-bottom;
}

#page #sitemap #content div li a.pdf[target]::after {
	font-size: 1.4rem;
	font-weight: 400;
	content: "\f1c1";
	vertical-align: middle;
}

#page #sitemap #content div li.h3 a {
	font-size: 2.7rem;
	padding-right: 5.0rem;
	border-bottom: solid 1px #999;
}

#page #sitemap #content div li.h3 span {
	font-size: 2.7rem;
	border-bottom: solid 1px #999;
	margin-top: 0;
	margin-bottom: 0;
	display: block;
	border-left: none;
	line-height: inherit;
	padding: 1.0rem 2.5rem 1.0rem 1.0rem;
}

#page #sitemap #content div li.h4 a {
	font-size: 2.1rem;
	padding-right: 5.0rem;
}

#page #sitemap #content div li.h3 a::after,
#page #sitemap #content div li.h4 a::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	margin: auto 0;
	padding-top: 0;
	padding-left: 0;
	right: 1.1rem;
	width: 28px;
	height: 6px;
	transition: all .75s ease;
	background-color: #333;
	-webkit-mask-image: url(../img/icon_next.svg);
	mask-image: url(../img/icon_next.svg);
}

#page #sitemap #content div li.h3 a:hover::after,
#page #sitemap #content div li.h4 a:hover::after {
	background-color: #fff;
}

@media screen and (max-width: 640px) {
	#page #sitemap #content .flex .box {
		width: 100%;
	}

	#page #sitemap #content .flex .box+.box {
		margin-top: 2.0rem;
	}

	#page #sitemap #content .flex .box:nth-of-type(2) ul.sub:first-of-type {
		padding: 0.0rem 1.0rem 0;
	}

	#page #sitemap #content .box:nth-of-type(2) ul:first-of-type li:first-of-type span {
		margin-top: 2.6rem;
	}
}

/* ニュース */
#page #news #content #main ul.tab {
	border-top: none;
	border-bottom: solid 1px #999;
	padding-bottom: 2rem;
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
}

#page #news #content #main ul.tab li span {
	display: block;
	cursor: pointer;
	position: relative;
	padding: .8rem 2.0rem;
	color: var(--color-text);
	border-radius: 10rem;
	border: solid 1px #ccc;
}

#page #news #content #main ul.tab li.active span {
	color: #fff;
	background-color: #243B53;
}

#page #news #content #main ul.tab li:nth-child(2).active span {
	background: #243B53;
}

#page #news #content #main ul.tab li:nth-child(3).active span {
	background: #a79472;
}

#page #news #content #main ul.tab li:nth-child(4).active span {
	background: #a96d70;
}

#page #news #content #main ul.tab li:hover span {
	border: solid 1px #243B53;
}

#page #news #content #main ul.tab li:nth-child(2):hover span {
	border: solid 1px #243B53;
}

#page #news #content #main ul.tab li:nth-child(3):hover span {
	border: solid 1px #a79472;
}

#page #news #content #main ul.tab li:nth-child(4):hover span {
	border: solid 1px #a96d70;
}

/*#page #news #content #main ul.tab li span::after {
	display: block;
	position: absolute;
	left: 0;
	bottom: -1px;
	width: 100%;
	height: 3px;
	background-color: #DCC7a1;
	opacity: 0;
	transition: opacity 0.3s;
	content: "";
}

#page #news #content #main ul.tab li:nth-child(2) span::after {
	background: #243B53;
}
#page #news #content #main ul.tab li:nth-child(3) span::after {
	background: #a79472;
}
#page #news #content #main ul.tab li:nth-child(4) span::after {
	background: #a96d70;
}
#page #news #content #main ul.tab li span:hover::after {
	opacity: 1;
}*/

#page #news #content #main .news_list {
	margin-bottom: 3.0rem;
	padding-bottom: 1px;
}

#page #news #content #main ul.news_list li {
	border-bottom: solid 1px #999;
	animation: fadeIn 1.5s ease 0s backwards;
}

@keyframes fadeIn {
	0% {
		opacity: 0;
	}

	100% {
		opacity: 1;
	}
}

#news ul.news_list li.hide {
	display: none;
}

#page #news #content #main ul.news_list li span.blank,
#page #news #content #main ul.news_list li a {
	padding: 1.5rem 0;
	color: #333;
	display: flex;
}

#page #news #content #main ul.news_list li a:hover {
	background: rgba(220, 199, 161, 0.25);
}

/*#page #news #content #main ul.news_list li p {
	margin-top: 0 !important;
	padding: 0 2.0rem;
}*/

#page #news #content #main ul.news_list li a[target] .news_article::after {
	content: "\f35d";
	font-weight: 900;
	font-family: "Font Awesome 5 Free";
	transition: color .25s ease;
	padding-left: 1.4rem;
	color: #999;
}

#page #news #content #main ul.news_list li a.pdf[target] .news_article::after {
	font-weight: 400;
	content: "\f1c1";
}

@media screen and (max-width: 640px) {
	#page #news #content #main ul.tab li span {
		padding: .8rem 1.0rem;
		font-size: var(--font-size-sub-1);
	}

}

@media screen and (max-width: 390px) {
	#page #news #content #main ul.tab li {
		width: calc(50% - .25rem);
	}

}

/*company_philosophy*/
#page #content #philosophyBox {
	text-align: center;
	padding: 2.8rem 3.0rem;
}

#page #content #philosophyBox h4 {
	color: #243b53;
	padding-bottom: 1.2rem;
	margin: 3.6rem 0 1.6rem;
	border-bottom: dotted 1px #8E7448;
}

#page #content #philosophyBox p {
	margin-top: 0;
	text-align: center;
	font-size: 2.1rem;
	line-height: 1.8;
}

#page #content #philosophyBox p strong {
	color: #243b53;
}

#page #content #philosophyBox .table-plain {
	text-align: left;
}

#page #content #philosophyBox .table-plain th {
	text-align: right;
	font-weight: bold;
	width: 20%;
	white-space: nowrap;
	padding: .5rem 2.0rem .5rem 0;
	vertical-align: baseline;
}

#page #content #philosophyBox .table-plain td {
	padding: .5rem 0;
}

#page #content #philosophyKensyo dl {
	margin-top: 3.0rem;
}

#page #content #philosophyKensyo dt {
	margin-bottom: 1.2rem;
	border-bottom: dotted 1px #ccc;
	padding-bottom: .8rem;
	font-size: 1.8rem;
}

#page #content #philosophyKensyo dt strong {
	font-weight: 400;
	margin-right: .8rem;
	color: #243b53;
}

#page #content #philosophyKensyo dd {}

#page #content #philosophyKensyo .right {
	text-align: right;
	margin-top: 5.0rem;
}

/* TOPpage decoration */
#fv {
	position: relative;
}

#fv::after {
	content: "";
	position: absolute;
	top: 500px;
	left: 0;
	width: 100%;
	height: 100%;
	background-image: url("../img/decoration-line_heart.png");
	background-repeat: no-repeat;
	background-size: contain;
	background-position: center;
	z-index: 0;
	pointer-events: none;
}

#top_service {
	position: relative;
}

#top_service::after {
	content: "";
	position: absolute;
	top: 850px;
	left: 0;
	width: 100%;
	height: 100%;
	background-image: url("../img/decoration-line_building.png");
	background-repeat: no-repeat;
	background-size: contain;
	background-position: center;
	z-index: 0;
	pointer-events: none;
}

#top_reason {
	position: relative;
}

#top_reason::after {
	content: "";
	position: absolute;
	top: 450px;
	left: 0;
	width: 100%;
	height: 100%;
	background-image: url("../img/decoration-line_tree.png");
	background-repeat: no-repeat;
	background-size: contain;
	background-position: center;
	z-index: 0;
	pointer-events: none;
}

#top_sustainability {
	position: relative;
	margin-bottom: 10rem;
}

#top_sustainability::after {
	content: "";
	position: absolute;
	top: 175px;
	left: 0;
	width: 100%;
	height: 100%;
	background-image: url("../img/decoration-line.png");
	background-repeat: no-repeat;
	background-size: contain;
	background-position: center;
	z-index: 0;
	pointer-events: none;
}

#top_sustainability>* {
	position: relative;
	z-index: 1;
}

@media screen and (max-width:1600px) {
	#fv::after {
		top: 250px;
	}
}

@media screen and (max-width:1050px) {
	#fv::after {
		top: 100px;
	}

	#top_service::after {
		top: 780px;
	}

	#top_reason::after {
		top: 330px;
	}
}

@media screen and (max-width:640px) {
	#fv::after {
		top: 10%;
		transform: translateY(-10%);
		z-index: 999;
	}

	#top_service::after {
		top: 600px;
	}

	#top_reason::after {
		top: 300px;
	}

	#top_sustainability {
		margin-bottom: 5rem;
	}

	#top_sustainability::after {
		top: 0;
	}
}

@media screen and (max-width:550px) {
	#top_service::after {
		top: 1150px;
	}
}

@media screen and (max-width:500px) {
	#fv::after {
		top: 70px;
	}

}

/* サービスTOP */

#service_list .service_item {
	display: flex;
	justify-content: left;
	width: 100%;
	margin-bottom: 75px;
}

#service_list .service_item .service_img {
	width: 35%;
	max-width: 550px;
	max-height: 367px;
	height: auto;
	aspect-ratio: 3 / 2;
	position: relative;
	display: block;
	margin: auto;
}

#service_list .service_item .service_img img {
	max-width: 100%;
	height: auto;
	position: relative;
	z-index: 2;
	display: block;
	margin: 0 auto !important;
}

#service_list .service_item .service_img::after {
	width: 100%;
	aspect-ratio: 3 / 2;
	position: absolute;
	content: '';
	background-color: var(--color-decoration);
	top: 20px;
	left: 20px;
	z-index: 1;
}

#service_list .service_item .service_txt {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: left;
	margin: auto 0 auto 60px;
}

#service_list .service_item .service_txt h3 {
	margin: 0 auto 24px 0;
}

#service_list .service_item .service_txt p {
	text-align: justify;
}

#service_list h4 {
	display: block !important;
	text-align: center;
}

#service_list h4 span {
	font-size: var(--font-size-sub-2);
}

#service_list .service_exam {
	display: flex;
	gap: 30px;
	width: 100%;
	margin-top: 3rem;
}

#service_list .service_exam .service_list-title {
	font-size: 2rem !important;
	margin-bottom: 3rem !important;
}

#service_list .service_exam li {
	width: 33%;
	padding: 30px 20px;
	display: flex;
	flex-direction: column;
	background: rgb(246, 241, 232);
	border-radius: 18px;
}

#service_list .service_exam li>p {
	font-size: 1.6rem !important;
	display: block;
	margin: 0 0 2rem !important;
}

#service_list .service_exam li {
	display: flex;
	transition: transform .3s ease, box-shadow .3s ease;
}

#service_list .service_exam li a {
	transition: transform .3s ease, box-shadow .3s ease !important;
	display: flex;
	flex-direction: column;
	height: 100%;
}

#service_list .service_exam li>a>.service_list-title {
	height: 35px;
	margin: 0 !important;
}

#service_list .service_exam li:hover p {
	color: var(--color-title) !important;
}

#service_list .service_exam li:hover {
	transform: translateY(-5px);
	box-shadow: 0 8px 20px rgba(36, 59, 83, .5);
}

#service_list .service_box {
	margin: 7rem auto;
}

@media screen and (max-width:1200px) {
	#service_list .service_item .service_txt>h3 {
		font-size: 2.4rem;
		margin-bottom: 10px;
	}

	#service_list .service_item .service_txt {
		margin-left: 45px;
	}

	#service_list .service_item .service_img::after {
		top: 10px;
		left: 10px;
	}
}

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

	#service_list .service_item {
		flex-direction: column;
		margin-bottom: 0;
	}

	#service_list .service_item .service_img {
		width: auto;
		margin-bottom: 3rem;
	}


	#service_list .service_item .service_txt {
		margin: 25px auto 0;
	}

	#service_list .service_exam {
		flex-direction: column;
	}

	#service_list .service_exam li {
		width: 100%;
	}
}

@media screen and (max-width:640px) {
	#service_list .service_item .service_txt>h3 {
		font-size: 18px;
	}
}

@media screen and (max-width:550px) {
	#service_list .service_grid {
		grid-template-columns: 1fr;
	}
}


/* 私たちの想いTOP */
#page #main #philosophy_fv {
	margin-top: 2.0rem;
}

#page #main #philosophy_fv .philosophy_fv_txt {
	position: relative;
	background-color: #FFF;
	border-top: var(--color-decoration) solid 2px;
	border-bottom: var(--color-decoration) solid 2px;
	height: 650px;
	padding: 0 clamp(40px, calc(100vw * 0.4762 - 560px), 240px);
	display: flex;
	align-items: center;
	overflow: hidden;
}

#page #main #philosophy_fv .philosophy_fv_txt>div {
	width: 60%;
	position: relative;
	z-index: 3;
}

#page #main #philosophy_fv h1 {
	line-height: 1;
	margin-bottom: 4rem;
}

#page #main #philosophy_fv p {
	text-align: justify;
}

#page #main #philosophy_fv .philosophy_fv_txt::before {
	position: absolute;
	content: "";
	top: 0;
	right: -15%;
	height: 100%;
	width: 70%;
	background: url(../img/FV.png) center center / cover no-repeat;
	z-index: 1;
}

#page #main #philosophy_fv .philosophy_fv_txt::after {
	position: absolute;
	content: "";
	top: 0;
	left: 0;
	height: 100%;
	width: 75%;
	background: linear-gradient(to right,
			#fff 70%, rgba(255, 255, 255, 0) 100%);
	z-index: 2;
}

#page #main #philosophy_fv .philosophy_fv_txt>* {
	position: relative;
	z-index: 3;
}

#page #main #philosophy_fv h1 span {
	font-size: var(--font-size-normal);
}

#page #main #philosophy_fv .philosophy_fv_txt div {
	width: 60%;
}

@media screen and (max-width: 1000px) {
	#page #main #philosophy_fv .philosophy_fv_txt::before {
		right: -115px;
		width: 70%;
		background: url(../img/FV.png) center center / cover no-repeat;
		z-index: 1;
	}

	#page #main #philosophy_fv .philosophy_fv_txt>div {
		width: 50%;
	}
}

@media screen and (max-width: 800px) {
	#page #main #philosophy_fv h1 {
		font-size: var(--font-size-h2) !important;
	}

	#page #main #philosophy_fv .philosophy_fv_txt {
		position: relative;
		height: 650px;
		min-height: 500px;
		padding: 0 1.6rem;
		display: block;
	}

	#page #main #philosophy_fv .philosophy_fv_txt::before {
		width: 100%;
		height: auto;
		aspect-ratio: 1920 / 1067;
		right: 0;
		top: 0;
	}

	#page #main #philosophy_fv .philosophy_fv_txt::after {
		width: 100%;
		height: auto;
		aspect-ratio: 1920 / 1067;
		top: 0;
		left: 0;
		background: linear-gradient(to top,
				#fff 0%,
				rgba(255, 255, 255, 0) 50%);
	}

	#page #main #philosophy_fv .philosophy_fv_txt>div {
		position: absolute;
		z-index: 3;
		left: 4.0rem;
		bottom: 4.0rem;
		width: calc(100% - 8.0rem);
		height: auto;
	}
}


#page #main #philosophy_vision .philosophy_vision-flex {
	display: flex;
	padding: 5rem clamp(40px, calc(100vw * 0.4762 - 560px), 240px) 10rem;
	gap: 5%;
	height: 100%;
}

#page #main #philosophy_vision .philosophy_vision-flex .philosophy_vision-img {
	display: block;
	margin: auto;
	width: 45%;
	border-radius: 135px 30px 135px 30px;
	overflow: hidden;
}

#page #main #philosophy_vision .philosophy_vision-flex .philosophy_vision-img img {
	object-fit: cover;
	width: 100%;
	height: auto;
}

#page #main #philosophy_vision .philosophy_vision-flex .philosophy_vision-txt {
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

#page #main #philosophy_vision .philosophy_vision-flex .philosophy_vision-txt .philosophy_vision-misson {
	margin-bottom: 6rem;
}

#page #main #philosophy_vision .philosophy_vision-flex .philosophy_vision-txt .philosophy_vision-vision {
	text-align: end;
	margin-bottom: 6rem;
}

#page #main #philosophy_vision .philosophy_vision-flex .philosophy_vision-txt .philosophy_vision-vision h2 {
	width: auto;
}

#page #main #philosophy_vision .philosophy_vision-flex .philosophy_vision-txt .philosophy_vision-vision>div {
	position: relative;
	display: inline-block;
}

#page #main #philosophy_vision .philosophy_vision-flex .philosophy_vision-txt .philosophy_vision-vision h2 {
	position: relative;
	margin: 0;
	padding-left: 45px;
}

#page #main #philosophy_vision .philosophy_vision-flex .philosophy_vision-txt .philosophy_vision-vision h2::before {
	content: '';
	position: absolute;
	left: 0;
	top: 50%;
	width: 35px;
	height: 35px;
	transform: translateY(-50%);
	background: url(../img/title.svg) center / contain no-repeat;
}

#page #main #philosophy_vision .philosophy_vision-flex .philosophy_vision-txt .philosophy_vision-vision p {
	font-size: 2.4rem;
	font-weight: 600;
}

#page #main #philosophy_vision .philosophy_vision-flex .philosophy_vision-txt .philosophy_vision-value .disc>li {
	margin-bottom: 0;
}

#page #main #philosophy_vision .title {
	margin-bottom: 1rem;
}

#page #main #philosophy_vision .philosophy_vision-flex .philosophy_vision-txt .philosophy_vision-vision .brSp {
	display: none;
}

@media screen and (max-width: 1200px) {
	#page #main #philosophy_vision .philosophy_vision-flex .philosophy_vision-txt .philosophy_vision-vision p {
		font-size: 2.2rem;
	}

	#page #main #philosophy_vision .philosophy_vision-flex .philosophy_vision-txt .philosophy_vision-vision .brSp {
		display: block;
	}

	#page #main #philosophy_vision .philosophy_vision-flex .philosophy_vision-img {
		height: 500px;
		margin: auto;
	}

	#page #main #philosophy_vision .philosophy_vision-flex .philosophy_vision-img img {
		height: 100%;
		width: 100%;
		object-fit: cover;
		object-position: 68% center;
	}
}

@media screen and (max-width: 800px) {
	#page #main #philosophy_vision .philosophy_vision-flex .philosophy_vision-txt .philosophy_vision-vision .brSp {
		display: none;
	}

	#page #main #philosophy_vision h2,
	#page #main #management-philosophy h2,
	#page #main #philosophyKensyo h2 {
		font-size: 2.8rem !important;
	}

	#page #main #philosophy_vision .title::before,
	#page #main #management-philosophy .title::before,
	#page #main #philosophyKensyo .title::before {
		width: 25px;
		height: 25px;
	}

	#page #main #philosophy_vision .philosophy_vision-flex .philosophy_vision-txt .philosophy_vision-vision h2::before {
		width: 25px;
		height: 25px;
	}

	#page #main #philosophy_vision .philosophy_vision-flex {
		flex-direction: column;
		padding: 5rem 1.6rem;
	}

	#page #main #philosophy_vision .philosophy_vision-flex .philosophy_vision-txt .philosophy_vision-misson {
		margin-bottom: 3rem;
	}

	#page #main #philosophy_vision .philosophy_vision-flex .philosophy_vision-txt .philosophy_vision-vision {
		margin-bottom: 3rem;
	}

	#page #main #philosophy_vision .philosophy_vision-flex .philosophy_vision-img {
		width: 80%;
		margin-bottom: 3rem;
		height: auto;
	}

	#page #main #philosophy_vision .philosophy_vision-flex .philosophy_vision-img img {
		height: auto;
		width: 100%;
	}
}

@media screen and (max-width: 540px) {
	#page #main #philosophy_vision .philosophy_vision-flex .philosophy_vision-txt .philosophy_vision-vision .brSp {
		display: block;
	}
}

@media screen and (max-width: 500px) {
	#page #main #philosophy_fv .philosophy_fv_txt>div {
		left: 2.0rem;
		bottom: 2.0rem;
		width: calc(100% - 4.0rem);
	}

	#page #main #philosophy_vision .philosophy_vision-flex .philosophy_vision-img {
		width: 100%;
	}
}


#page #main #management-philosophy {
	padding: 5rem clamp(40px, calc(100vw * 0.4762 - 560px), 240px) 5rem !important;
}

#page #main #management-philosophy .philosophy_box {
	text-align: center;
}

#page #main #management-philosophy .line-dotted {
	width: 100%;
	border-top: var(--color-decoration) dotted 1px;
	margin: 2rem auto;
}

#page #main #management-philosophy .philosophy_box strong {
	color: var(--color-title);
}

#page #main #management-philosophy .philosophy_box div:first-child {
	margin-top: 6rem;
}

#page #main #management-philosophy .philosophy_box .management-philosophy_item {
	margin-bottom: 6rem;
}

#page #main #management-philosophy .philosophy_box .management-philosophy_item:last-child {
	margin-bottom: 0;
}

#page #main #management-philosophy .philosophy_box table {
	width: 90%;
	margin: 0 auto;
	border-collapse: separate;
	border-spacing: 10px 0;
	max-width: 1105px;
}

#page #main #management-philosophy .philosophy_box table .philosophy_table-title {
	width: 200px;
}

#page #main #management-philosophy .philosophy_box table th {
	width: 130px;
	padding-right: 20px;
	font-weight: 600;
	color: var(--color-title);
	text-align: right;
	vertical-align: top;
}

#page #main #management-philosophy .philosophy_box table td {
	text-align: left;
}

@media screen and (max-width: 800px) {
	#page #main #management-philosophy {
		padding: 5rem 1.6rem 0;
	}

	#page #main #management-philosophy .philosophy_box .management-philosophy_item h3 {
		font-size: 2.4rem;
	}

	#page #main #management-philosophy .philosophy_box table {
		width: 100%;
		display: block;
	}
}

@media screen and (max-width: 500px) {
	#page #main #management-philosophy .philosophy_box table tr {
		display: flex;
		flex-direction: column;
		margin-bottom: 2rem;
	}

	#page #main #management-philosophy .philosophy_box table th,
	#page #main #management-philosophy .philosophy_box table .philosophy_table-title {
		width: 100%;
		padding-right: 0;
		text-align: center;
		margin-bottom: 1rem;
	}

	#page #main #management-philosophy .philosophy_box table td {
		text-align: justify;
	}
}

#page #main #philosophyKensyo {
	padding: 5rem clamp(40px, calc(100vw * 0.4762 - 560px), 240px) 5rem;
}

#page #main #philosophyKensyo dl {
	margin-bottom: 3rem;
}

#page #main #philosophyKensyo dl dt {
	border-bottom: var(--color-title) solid 1px;
	color: var(--color-title);
	font-size: 2rem;
	font-weight: 600;
	padding-bottom: 1.5rem;
	margin-bottom: 1.5rem;
}

#page #main #philosophyKensyo span.num {
	font-weight: 700;
	color: var(--color-title);
	margin-right: 2.0rem;
	position: relative;
	margin-bottom: 3px;
	max-width: 90px;
}

#page #main #philosophyKensyo .philosophyKensyo_txt {
	margin: 5rem 0;
}

#page #content.notfound {
	display: block;
	width: 100%;
}

/* サービスから探す */
#page .service {}

#page .service #wrap {
	max-width: inherit;
	padding: 0;
}

#page .service .controls {
	margin: 0 auto 2.0rem;
	width: 100%;
}

#page .service .controls div {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: .64rem;
}

#page .service .controls div button {
	/*width: calc(33% - .16em);*/
	padding: 1.0rem 1.0rem;
	/*margin-bottom: 0.64rem;*/
	background: #fff;
	color: #666;
	border: solid 2px #666;
	cursor: pointer;
	font-family: 'Noto Sans Japanese', 'Noto Sans JP', helvetica, arial, 'hiragino kaku gothic pro', 'ヒラギノ角ゴ ProN W3', 'Meiryo', 'Osaka', sans-serif;
	font-weight: 500;
	-webkit-transition: 0.5s ease-in-out;
	transition: 0.5s ease-in-out;
}

#page .service .controls div button:hover {
	background: #999;
	color: #fff;
	border: solid 2px #999;
}

#page .service .controls div button.active {
	color: #fff;
	border: solid 2px #666 !important;
	background: #666 !important;
}

#page .service .controls div button:focus {
	outline: 0 none;
}

#page .service .controls div button.blank {
	background: none;
	border: none;
	cursor: unset;
	height: 0;
	padding: 0;
	margin: 0;
}

#page .service .container {
	margin-bottom: 2.4rem;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
}

#page .service .container .mix,
#page .service .container .gap {
	display: inline-block;
	width: calc(100% / 4);
}

#page .service .container .mix {
	display: none;
}

#page .service .container .mix a {
	font-size: 1.6rem;
	position: relative;
	text-align: center;
	text-decoration: none;
	display: block;
	border: solid 2px #243b53;
	margin: 2px;
	padding: 50% 2rem 0;
	background: #243b53;
	overflow: hidden;
	color: #fff;
}

#page .service .container .mix a span {
	display: block;
	width: 100%;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	padding: 0 1.0rem;
	line-height: 1.2;
}

#page .service .container .mix a span.no {
	position: absolute;
	color: #fff;
	font-size: 7.0rem;
	font-weight: bold;
	opacity: 0.15;
}

#page .service .container .mix a:hover {
	background: #fff;
	color: #243b53;
	font-weight: 500;
}

#page .service .container .mix a:hover span.no {
	color: #243b53;
}

#page .service a.btn {
	margin-top: 2.0rem;
}

@media screen and (max-width: 640px) {
	#page .service .controls {
		margin: 0 auto 2.0rem;
	}

	#page .service .controls div {
		grid-template-columns: repeat(2, 1fr);
	}

	#page .service .container .mix,
	#page .service .container .gap {
		width: 33.333333%;
	}

	#page .service .container .mix a span {
		font-size: 1.4rem;
		padding: 0 .5rem;
	}
}

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

	#page .service .container .mix,
	#page .service .container .gap {
		width: 50%;
	}
}