@charset "utf-8";
.contents_wrap_inner {
		padding-left: 0;
		padding-right: 0;
}
h3.company_hd {
		font-family: "dnp-shuei-mgothic-std", sans-serif;
		font-weight: 600;
		font-style: normal;
		font-size: 40px;
		letter-spacing: 0.03em;
		color: #675943;
		margin-left: 120px;
}
h3.company_hd span {
		position: relative;
		display: inline-block;
}
h3.company_hd span::after {
		content: '';
		display: block;
		position: absolute;
		top: calc(50% - 6px);
		left: -30px;
		width: 15px;
		height: 15px;
		background: #EB564D;
}
/* =============== */
.philosophy_text_line {
		position: relative;
}
.philosophy_text_line .philosophy_text_wrap {
		position: absolute;
		top: -75px;
		left: 0;
		width: 100%;
		overflow: hidden;
}
.philosophy_text {
		width: 1365px;
		margin: 0 auto;
}
.philosophy_text img {
		width: 100%;
		height: auto;
}
.philosophy_section {
		padding-bottom: 350px;
}
.philosophy_inner {
		max-width: 1080px;
		margin: 0 auto;
		position: relative;
		padding-top: 170px;
		padding-left: 30px;
		padding-right: 30px;
}
.philosophy_caption {
		background: #fff;
		max-width: 605px;
		border-radius: 80px 0 80px 0;
		padding: 85px 60px;
		box-sizing: border-box;
}
.philosophy_caption p {
		line-height: 2.4;
}
.philosophy_caption .company_hd {
		margin-left: 30px;
		margin-bottom: 35px;
}
.philosophy_inner .philosophy_figure {
		position: absolute;
		top: 0;
		right: -140px;
		width: 700px;
}
.philosophy_figure img {
		width: 100%;
		height: auto;
		border-radius: 80px 0 80px 0;
}
.message_section {
		padding-bottom: 240px;
}
.message_text_line {
		position: relative;
}
.message_text_line .message_text_wrap {
		position: absolute;
		top: -140px;
		left: 0;
		width: 100%;
}
.message_text {
		width: 1000px;
		margin: 0 auto;
}
.message_text img {
		width: 100%;
		height: auto;
}
.message_inner {
		max-width: 1080px;
		margin: 0 auto;
		padding-left: 30px;
		padding-right: 30px;
}
.message_hd_center {
		display: flex;
		justify-content: center;
		margin: 0 0 50px;
}
.message_hd_center h3.company_hd {
		margin: 0;
}
.message_photo {
		margin: 0 0 70px;
		position: relative;
}
.message_photo img {
		width: 100%;
		height: auto;
		border-radius: 100px;
}
.message_photo .sign_block {
		position: absolute;
		right: 0;
		bottom: 0;
		background: #fff;
		padding: 20px 60px;
		border-radius: 40px 0 0 0;
}
.message_caption p {
		line-height: 3;
}
.executive_text_line {
		position: relative;
}
.executive_text_line .executive_text_wrap {
		width: 100%;
		position: absolute;
		top: -100px;
		left: 0;
}
.executive_text {
		width: 1510px;
		margin: 0 auto;
}
.executive_text img {
		width: 100%;
		height: auto;
}
.executive_section {
		padding-bottom: 380px;
}
.executive_section .company_hd {
		margin-left: 30px;
		margin-bottom: 40px;
}
.executive_inner {
		max-width: 1080px;
		margin: 0 auto;
		position: relative;
		z-index: 5;
		padding-left: 30px;
		padding-right: 30px;
}
.executive_caption {
		max-width: 970px;
		border-radius: 80px;
		background: #fff;
		padding: 60px;
		box-sizing: border-box;
}
.executive_txt {
		line-height: 2.0;
		margin: 0 0 1.5em;
		max-width: 450px;
}
.name_flex {
		display: flex;
		align-items: center;
}
.name_company {
		font-size: 18px;
		margin: 0 0 5px;
}
.name_hdr {
		font-size: 14px;
}
.history_section {
		padding-left: 30px;
		padding-right: 30px;
}
.history_text_line {
		position: relative;
}
.sign_block {
		margin-top: 4em;
		padding-left: 60px;
		position: relative;
}
.sign_block::before {
		content: '';
		display: block;
		position: absolute;
		top: 0;
		left: 0;
		width: 34px;
		height: 34px;
		background: url("../images/pagetitle_dot.png") no-repeat 0 0;
		background-size: 34px;
}
.name_jp {
		font-size: 20px;
		margin-right: 35px;
}
.name_en {
		font-size: 15px;
}
.history_text_line .history_text_wrap {
		position: absolute;
		top: -108px;
		left: 0;
		width: 100%;
}
.executive_inner .executive_photo {
		width: 490px;
		position: absolute;
		top: 155px;
		right: 0;
}
.executive_photo img {
		width: 100%;
		height: auto;
		border-radius: 100px 0 100px 0;
}
.history_text_wrap .history_text {
		width: 900px;
		margin: 0 auto;
}
.history_text img {
		width: 100%;
		height: auto;
}
.history_col {
		max-width: 1100px;
		margin: 0 auto 330px;
		box-sizing: border-box;
		min-height: 500px;
		background: #fff;
		border-radius: 50px;
		padding: 60px 130px 150px;
		z-index: 10;
}
.history_gr {
		position: relative;
}
.history_gr::before, .history_gr::after {
		content: '';
		display: block;
		position: absolute;
		width: 1px;
		left: 9px
}
.history_gr::before {
		top: 44px;
		height: calc(100% - 82px);
		background: #F77E0B;
}
.history_gr::after {
		background: url("../images/history_line.png") repeat-y 0 0;
		height: 100px;
		bottom: -50px;
}
.history_hd_center {
		display: flex;
		justify-content: center;
		margin: 0 0 60px;
}
.history_hd_center h3.company_hd {
		margin-left: 0;
}
.history_gr dl {
		display: flex;
		align-items: center;
}
.history_gr dl dt {
		width: 120px;
		font-family: "dnp-shuei-mgothic-std", sans-serif;
		font-weight: 600;
		font-style: normal;
		font-size: 20px;
		color: #675943;
		padding-left: 60px;
		position: relative;
		line-height: 1.6;
}
.history_gr dl dt::before {
		content: '';
		display: block;
		position: absolute;
		top: calc(50% - 8px);
		left: 0;
		width: 18px;
		height: 18px;
		background: #F77E0B;
}
.history_gr dl:first-child dd {
		border-top: 1px solid #F4D48E;
}
.history_gr dl dd {
		flex: 1;
		border-bottom: 1px solid #F4D48E;
		padding: 35px 0;
}
.overview_bg {
		height: 660px;
		background: url("../images/overview_bg_pc.jpg") no-repeat right center;
		background-size: cover;
		border-radius: 120px 120px 0 0;
}
@media(max-width: 1200px) {
		.overview_bg {
				border-radius: 100px 100px 0 0;
		}
}
@media(max-width: 960px) {
		.overview_bg {
				border-radius: 80px 80px 0 0;
		}
}
@media(max-width: 767px) {
		.overview_bg {
				border-radius: 60px 60px 0 0;
		}
}
.overview_catch_wrap {
		height: 170px;
		margin: 0 0 65px;
		position: relative;
		overflow: hidden;
		z-index: 10;
		top: -74px;
}
.overview_catch_wrap .overview_catch_line {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		z-index: 10;
}
.overview_catch {
		width: 1150px;
		margin: 0 auto;
}
.overview_catch img {
		width: 100%;
		height: auto;
}
.overview_title_wrap {
		max-width: 1080px;
		margin: 0 auto;
		height: 660px;
		display: flex;
		align-items: center;
}
.companyprofile_gr {
		max-width: 800px;
		margin: 0 auto;
		padding-left: 30px;
		padding-right: 30px;
}
.companyprofile_gr dl {
		display: flex;
}
.companyprofile_gr dt {
		padding: 35px 0;
		width: 170px;
		margin-right: 8px;
		border-bottom: 1px solid #F77E0B;
		line-height: 1.8;
		padding-left: 30px;
		box-sizing: border-box;
		font-weight: bold;
		color: #675943;
		display: flex;
		align-items: center;
}
.companyprofile_gr dd {
		padding: 35px 0;
		flex: 1;
		border-bottom: 1px solid #F4D48E;
		line-height: 1.8;
		padding-left: 30px;
}
.companyprofile_gr dl:first-child dt {
		border-top: 1px solid #F77E0B;
}
.companyprofile_gr dl:first-child dd {
		border-top: 1px solid #F4D48E;
}
.companyprofile_gr a {
		color: #EB564D;
		text-decoration: underline;
}
@media (hover: hover) {
		.companyprofile_gr a:hover {
				color: #EB564D;
				text-decoration: none;
		}
}
.companyprofile_gr dd th {
		font-weight: normal;
		text-align: left;
		white-space: nowrap;
		padding-right: 1em;
}
.companyprofile_gr dd ol {
		padding-left: 1.5em;
}
.companyprofile_gr dd ol li {
		line-height: 1.6;
		margin: 0 0 5px;
}
.companyprofile_gr dd ol li:last-child {
		margin-bottom: 0;
}
.privacy_flex {
		display: flex;
		align-items: center;
}
.privacy_flex .privacy_mark {
		width: 60px;
		margin-left: 10px;
}
.privacy_flex .privacy_mark img {
		width: 100%;
		height: auto;
}
/* ================ */
.access_section {
		padding-top: 200px;
}
.access_text_line {
		position: relative;
}
.access_text_wrap {
		max-width: 1080px;
		margin: 0 auto;
		position: relative;
		background: red;
}
.access_text_wrap .access_text {
		width: 835px;
		position: absolute;
		top: -105px;
		left: 0;
}
.access_title_wrap .access_text {
		width: 835px;
}
.access_text img {
		width: 100%;
		height: auto;
}
.access_title_wrap {
		max-width: 1080px;
		margin: 0 auto 50px;
}
.map_wrap {
		max-width: 1080px;
		margin: 0 auto 60px;
		display: flex;
		padding-left: 30px;
		padding-right: 30px;
}
.map_figure {
		width: 390px;
		margin-right: 25px;
}
.map_figure img {
		width: 100%;
		height: auto;
		border-radius: 40px 0 0 40px;
}
.map_iframe {
		flex: 1;
}
.map_iframe p {
		width: 100%;
		height: 100%;
		margin: 0;
		padding: 0;
}
.map_iframe iframe {
		width: 100%;
		height: 100%;
		border-radius: 0 40px 40px 0;
}
.map_title_wrap {
		max-width: 1080px;
		margin: 0 auto 10px;
		display: flex;
		padding-left: 30px;
		padding-right: 30px;
}
.access_col {
		background: #fff;
		max-width: 770px;
		margin: 0 auto;
		padding: 60px 20px;
		border-radius: 40px;
}
.access_col_inner {
		display: flex;
		justify-content: center;
}
.access_col_inner dl {
		display: flex;
		margin: 0 0 15px;
}
.access_col_inner div dl:last-child {
		margin-bottom: 0;
}
.access_col_inner dl dt, .access_col_inner dl dd {
		line-height: 1.8;
}
.access_col_inner dl dt img {
		width: 25px;
		height: 25px;
		border-radius: 6px;
		margin-right: 10px;
}
@media(max-width: 2300px) {
		.overview_bg {
				height: 660px;
				background: url("../images/overview_bg_mid.jpg") no-repeat right center;
				background-size: cover;
		}
}
@media(max-width: 1400px) {
		.overview_bg h3.company_hd {
				margin-left: 60px;
		}
}
@media(max-width: 1200px) {
		.philosophy_inner {
				padding-top: 13vw;
		}
		.philosophy_inner .philosophy_figure {
				right: 30px;
				width: 55%;
		}
		.philosophy_caption {
				max-width: inherit;
				width: 50%;
				padding: 40px 60px;
				box-sizing: border-box;
		}
		.history_col {
				padding: 40px 40px 80px;
		}
		.executive_caption {
				padding: 60px;
		}
		.executive_inner .executive_photo {
				width: 45%;
				top: 137px;
		}
		.executive_txt {
				width: 50%;
				max-width: inherit;
		}
		h3.company_hd {
				font-size: 26px;
		}
		/* */
		.philosophy_text {
				width: 1090px;
		}
		.philosophy_section {
				padding-bottom: 200px;
		}
		.message_text {
				width: 800px;
		}
		.message_text_line .message_text_wrap {
				top: -100px;
		}
		.executive_text {
				width: 1200px;
		}
		.history_text_wrap .history_text {
				width: 720px;
		}
		.overview_bg {
				height: 500px;
				background: url(../images/overview_bg_mid.jpg) no-repeat right center;
				background-size: cover;
		}
		.overview_title_wrap {
				height: 500px;
		}
		.overview_catch {
				width: 920px;
		}
		.overview_catch_wrap {
				top: -60px;
				margin-bottom: 0;
		}
		.access_text_wrap .access_text {
				width: 668px;
				top: -95px;
		}
}
@media(max-width: 960px) {
		.philosophy_caption .company_hd {
				font-size: 24px;
				margin-bottom: 20px;
		}
		.philosophy_caption {
				padding: 40px;
		}
		.philosophy_caption p {
				line-height: 2;
		}
		.message_photo {
				margin: 0 0 40px;
		}
		.message_caption p {
				line-height: 2.2;
		}
		.executive_caption {
				padding: 60px 40px;
		}
		.executive_txt {
				line-height: 2;
				margin: 0 0 0.75em;
		}
		.executive_inner .executive_photo {
				width: 55%;
				top: 137px;
				right: -80px;
		}
		.history_col {
				margin-bottom: 220px;
		}
}
@media(max-width: 930px) {
		.philosophy_inner .philosophy_figure {
				right: 30px;
				width: calc(53% - 30px);
		}
}
@media(max-width: 840px) {
		.overview_bg {
				height: 400px;
				background: url(../images/overview_bg_mid.jpg) no-repeat right center;
				background-size: cover;
		}
		.overview_title_wrap {
				height: 400px;
		}
		h3.company_hd {
				margin-left: 60px;
		}
		.history_gr dl dt {
				width: 100px;
				font-size: 18px;
		}
		.history_gr dl dd {
				padding: 25px 0;
		}
		.access_col {
				padding-top: 30px;
				padding-bottom: 30px;
				margin-left: 30px;
				margin-right: 30px;
		}
}
@media(max-width: 767px) {
		.philosophy_section {
				padding-bottom: 120px;
		}
		.philosophy_text {
				width: 610px;
		}
		.philosophy_inner {
				padding-left: 30px;
				padding-right: 30px;
		}
		.philosophy_text_line .philosophy_text_wrap {
				top: -5px
		}
		.philosophy_caption .company_hd {
				font-size: 20px;
				margin-bottom: 15px;
		}
		.philosophy_inner .philosophy_figure {
				position: static;
				right: 0;
				width: 100%;
		}
		.philosophy_figure img {
				border-radius: 60px 0 0 0;
		}
		.philosophy_caption {
				max-width: inherit;
				width: 100%;
				padding: 25px;
				box-sizing: border-box;
				border-radius: 0 0 60px 0;
		}
		.philosophy_caption p br {
				display: none;
		}
		.message_text {
				width: 450px;
		}
		.message_text_line .message_text_wrap {
				top: -40px;
		}
		.message_photo {
				margin: 0;
		}
		.message_photo img {
				border-radius: 60px 0 0 0;
		}
		.message_hd_center {
				margin: 0 0 30px;
		}
		.message_photo .sign_block {
				position: static;
				position: relative;
				top: inherit;
				left: inherit;
				right: inherit;
				bottom: inherit;
				margin-top: 0;
				padding: 20px 20px 20px 45px;
				border-radius: 0 0 60px 0;
				margin-bottom: 20px;
		}
		.sign_block::before {
				top: 15px;
				left: 15px;
				width: 20px;
				height: 20px;
				background: url(../images/pagetitle_dot.png) no-repeat 0 0;
				background-size: 20px;
		}
		.name_flex {
				display: block;
		}
		.name_company {
				font-size: 16px;
				margin: 0 0 5px;
		}
		.name_en {
				font-size: 12px;
		}
		.name_jp {
				font-size: 18px;
				margin-right: 0;
		}
		.message_caption p {
				line-height: 2;
		}
		.executive_text {
				width: 680px;
		}
		.executive_text_line .executive_text_wrap {
				top: -52px;
		}
		.executive_inner .executive_photo {
				position: static;
				width: 100%;
		}
		.executive_photo img {
				border-radius: 60px 0 0 0;
		}
		.executive_caption {
				padding: 20px;
				border-radius: 0 0 60px 0;
		}
		.executive_caption .sign_block {
				margin-top: 2em;
				padding-left: 30px;
		}
		.executive_caption .sign_block::before {
				top: -5px;
				left: 0px;
		}
		.executive_txt {
				width: 100%;
		}
		.history_section {
				padding-left: 30px;
				padding-right: 30px;
		}
		.history_text_wrap .history_text {
				width: 400px;
		}
		.history_text_line .history_text_wrap {
				top: -60px;
		}
		.history_col {
				padding: 20px 20px 40px;
				margin-bottom: 180px;
		}
		.history_gr::before {
				top: 14px;
		}
		.history_gr dl {
				display: block;
				padding-left: 25px;
				padding-bottom: 30px;
		}
		.history_gr dl dt {
				width: auto;
				font-size: 18px;
				padding-left: 0;
		}
		.history_gr dl dt br, .companyprofile_gr dt br {
				display: none;
		}
		.history_gr dl dt::before {
				top: calc(50% - 3px);
				left: -22px;
				width: 14px;
				height: 14px;
		}
		.history_gr dl:first-child dd {
				border-top: none;
		}
		.history_gr dl dd {
				flex: 1;
				border-bottom: none;
				padding: 0;
		}
		.companyprofile_gr {
				padding-left: 30px;
				padding-right: 30px;
		}
		.companyprofile_gr dl {
				display: block;
		}
		.companyprofile_gr dt {
				padding: 15px 0 0;
				width: 100%;
				padding-left: 0;
				border-bottom: none;
				font-weight: 700;
				font-size: 17px;
		}
		.companyprofile_gr dl:first-child dt {
				border-top: 1px solid #F4D48E;
		}
		.companyprofile_gr dl:first-child dd {
				border-top: none !important;
		}
		.companyprofile_gr dd {
				padding: 5px 0 15px;
		}
		h3.company_hd {
				font-size: 22px;
		}
		.access_title_wrap {
				padding-left: 30px;
				padding-right: 30px;
				margin-bottom: 30px;
		}
		h3.company_hd {
				margin-left: 30px;
		}
		.map_wrap {
				margin: 0 auto 40px;
				display: block;
				padding-left: 30px;
				padding-right: 30px;
		}
		.map_figure {
				width: 100%;
				margin: 0 0 20px;
		}
		.map_figure img {
				border-radius: 20px;
		}
		.map_iframe iframe {
				width: 100%;
				height: 300px;
				border-radius: 20px;
		}
		.map_title_wrap {
				margin: 0 auto 10px;
				display: block;
				padding-left: 30px;
				padding-right: 30px;
		}
		.access_col {
				margin: 0 30px;
				padding: 20px;
				border-radius: 20px;
		}
		.message_section, .executive_section {
				padding-bottom: 120px;
		}
		.overview_bg {
				height: 54vw;
				background: url(../images/overview_bg_sp.jpg) no-repeat right center;
				background-size: cover;
		}
		.overview_catch_wrap .overview_catch_line {
				top: 28px;
				left: -9px;
		}
		.overview_bg {
				position: relative;
		}
		.overview_bg .overview_title_wrap {
				position: absolute;
				top: 0;
				left: 0;
				width: 100%;
				height: 34vw;
		}
		.overview_catch_wrap {
				margin-bottom: -80px;
		}
		.overview_catch {
				width: 500px;
		}
		.access_section {
				padding-top: 120px;
		}
		.history_gr::before {
				height: calc(100% - 100px);
		}
		.history_gr::after {
				height: 100px;
				bottom: 0px;
		}
		.access_text_wrap .access_text {
				width: 368px;
				top: -35px;
		}
}