@charset "UTF-8";
/*--------------------------------------------------
【更新履歴】
2020.1.28 ：マニュアル作成にあたり内容整理。
2019.5.29 ：メインイメージ・ヘッダー・フッターの記述を整理、最適化。
2019.4.10 ：単位の混在を整理。
2018.11.29：不要な要素などを削除。
2018.05.24：	共通要素の色とBGの設定を分離せず一か所にまとめるようにしました。
2018.05.17：	更新履歴の項を追加。メディアクエリに印刷時の記述を追加。
			@media screen and ~~ -> @media print, screen and~~

目次
・基本ルール
・ベースレイアウト
	└ヘッダー・ナビゲーション・メインイメージ・コンテンツ・フッター
・コンテンツ部分の共通スタイル
・サイト全体で使う共通スタイル
・ページ個別のスタイル
	└index,about,contactなど

■normalize.cssについて
各ブラウザ特有のズレなどをリセットするためのCSSです。
こちらは編集しないで下さい。
全てのスタイルはstyle.cssで指定して下さい。

■メディアクエリについて
記述例：
ウィンドウサイズが600px以上（PC）のCSSを指定する場合
@media print, screen and (min-width: 600px) {
	header {
		font-size: 1.5rem;
	}
	header p {
		color: red;
	}
}

■本番公開前のクリーンアップ
下記のようなクリーンアップサービスなどを使用して
コメントや不要な改行を削除して下さい。
https://csscompressor.com/
--------------------------------------------------*/
/*--------------------------------------------------
	基本ルール
--------------------------------------------------*/
/*font-sizeはremで指定しています。15px=1.5rem。*/
html {
	font-size: 62.5%;
}
body {
	font-size: 18px;
	font-size: 1.8rem;
	font-family: "Noto Serif JP","游ゴシック体","Yu Gothic",YuGothic,"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","メイリオ",Meiryo,Osaka,"ＭＳ Ｐゴシック","MS P Gothic",sans-serif;
	font-weight: 400;/*細めのフォントを見やすくする。デザイン次第で不要なら削除。*/
	line-height: 1.7;
	color: #32393d;
}
table {
	table-layout: fixed;/*IE11*/
	border-collapse: collapse;
	border-spacing: 0;
}
p, h1, h2, h3, h4, h5, h6, ul, li, ol, dl, dt, dd, figure {
	margin: 0;
	padding: 0;
}
ul, li, ol, dl, dt, dd {
	list-style: none;
}
a {
}
a:hover {
	text-decoration: none;
}
strong {
	font-weight: bold;
}
figure {
	margin-block: 0em;
	margin-inline: 0em;
}
img {
	margin: 0;
	vertical-align: middle;
	border: none;
}
@media screen and (-webkit-min-device-pixel-ratio: 0) and (min-resolution: .001dpcm) {
	body {
		image-rendering: -webkit-optimize-contrast;
	}
}
/*--------------------------------------------------
	ヘッダー部分レイアウト
--------------------------------------------------*/
/*
以下、ヘッダーロゴ～ナビゲーションがPC時ブラウザ幅に拡張されるレイアウト
*/
/*ヘッダー*/
header {
	position: relative;
	background: linear-gradient(180deg,rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0) 50%);
}
header .hdr_bar {
	padding: 8px 16px 0;
	margin-bottom: 10px;
	box-sizing: border-box;
}
header .hdr_bar p {
	margin: 0;
	line-height: 1.4;
	color: #fff;
	opacity: 0.7;
	font-size: 1.3rem;
}
header .hdr_box {
	position: absolute;
	width: 100%;
}
header .hdr_box .hdr_box_logo {
	width: 54%;
	margin-left: 16px;
}
header .hdr_box .hdr_box_logo a {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
}
header .hdr_box .hdr_box_logo img {
	display: block;
	width: 100%;
	height: auto;
}
/*------------------------------------------------*/
/*SP表示時のナビゲーションのレイアウト*/
header .navbtn {
	position: absolute;
	top: 38px;
	right: 0;
	display: flex;
	z-index: 999;
}
header .navbtn {
	width: 70px;
	height: 70px;
}
header .navbtn {
	text-indent: -7777px;
	overflow: hidden;
	background-position: center;
	background-size: 50%;
	background-repeat: no-repeat;
}
header .navbtn {
	background-image: url("../img/ico_navbtn.png");
}
header .hdr_contact .tel {
	display: none;
}
/*一定距離スクロールすると電話・メニューボタンがページ右上に固定されるようにする*/
.fixed .navbtn {
	position: fixed;
	top: 0;
	right: 0;
}
/*ナビゲーション本体2※適宜1とコメントアウトで切り替えて下さい*/
header .navbtn.navopen {
	border-left: none;
	background-color: inherit;
	background-image: url("../img/ico_navbtn-close.png");
	z-index: 1000;
}
nav {
	position: fixed;
	width: 86vw;
	height: 100%;
	padding: 88px 40px 72px;
	box-sizing: border-box;
	top: 0;
	right: 0;
	z-index: 900;
	transform: translateX(100vw);
	transition: all 0.4s cubic-bezier(0.38, 0, 0.25, 1);
	background: rgba(43,133,191,0.95);
}
nav.navopen {
	position: fixed;
	overflow: scroll;
	transform: translateX(0);
	transition: all 0.4s cubic-bezier(0.38, 0, 0.25, 1);
	z-index: 900;
}
nav ul {
}
nav ul li {
	border-bottom: 1px solid #53a7de;
}
nav ul li a {
	display: block;
	width: 100%;
	height: 100%;
	padding: 16px 0 18px;
	text-decoration: none;
	color: #fff;
}
/*SP表示時のナビゲーションのレイアウト終わり*/
/*------------------------------------------------*/
@media print, screen and (min-width: 600px) {
	header {
		display: block;
	}
	header .hdr_bar {
		padding: 10px 16px 0;
	}
	header .hdr_box {
		/* display: flex; */
		/* flex-flow: wrap; */
		/* justify-content: space-between; */
		margin: 0 auto;
		box-sizing: border-box;
	}
	header .hdr_box .hdr_box_logo {
		width: 256px;
	}
	header .hdr_box .hdr_box_logo a {
		width: 100%;
		height: 100%;
	}
	header .hdr_box .hdr_box_logo a:hover {
		opacity: 0.8;
	}
	header .hdr_box .hdr_box_logo img {
		position: relative;
		width: 100%;
		height: auto;
		max-width: 100%;
		max-height: inherit;
		top: 0;
		left: 0;
		transform: none;
	}
	header .hdr_contact {
		position: absolute;
		top: 0;
		right: 40px;
	}
	header .hdr_contact .tel {
		position: relative;
		display: block;
		width: 308px;
		height: 110px;
		background: url(../img/bg_tel-header.svg) 0 0/100% auto no-repeat;
	}
	header .hdr_contact .tel a {
		display: block;
		width: 100%;
		height: 100%;
		padding: 24px 0 0 34px;
		box-sizing: border-box;
		transition: all 0.4s cubic-bezier(0.38, 0, 0.25, 1);
	}
	header .hdr_contact .tel a img {
		width: 236px;
		height: auto;
	}
	header .hdr_contact .tel a:hover {
		opacity: 0.7;
		transition: all 0.4s cubic-bezier(0.38, 0, 0.25, 1);
	}
	header .navbtn {
		display: none;
	}
	.fixed .hdr_contact {
	}
	.fixed .navbtn {
		position: relative;
	}
}
@media print, screen and (min-width: 600px) {
	nav {
		width: auto;
		height: inherit;
		padding: 0;
		position: absolute;
		top: 48px;
		right: 342px;
		transform: none;
		transition: none;
		border-radius: 0;
		background: none;
	}
	nav ul {
		text-align: right;
		font-size: 0;
	}
	nav ul li {
		display: inline-block;
		margin-right: 32px;
		box-sizing: border-box;
		border-bottom: 0;
		font-size: 1.6rem;
	}
	nav ul li:first-child {
	}
	nav ul li.contact {
		display: none;
	}
	nav ul li a {
		height: auto;
		padding: 0 0 6px;
		font-weight: 500;
	}
	nav ul li a:hover,
	nav ul li.current a {
		background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1 1" preserveAspectRatio="none"><path fill="%23fff" d="M0.000,0.000 L32.000,0.000 L32.000,32.000 L0.000,32.000 L0.000,0.000 Z" /></svg>');
		background-position: bottom 0.5em left 50%;
		background-size: 94% 1px;
		background-repeat: no-repeat;
	}
}
@media print, screen and (max-width: 1149px) and (min-width: 600px) {
	/*スクリーンサイズ1150px以下の挙動*/
	nav {
		width: auto;
		top: 100px;
		left: 20px;
		right: auto;
	}
	nav ul li {
		margin-right: 24px;
	}
}
/*メインイメージ*/
.mainimg {
	width: 100%;
}
.mainimg .mainimg_inner {
	position: relative;
	height: 400px;
	background-image: url("../img/mainimage.jpg");
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
	z-index: -1;
}
@media print, screen and (min-width: 600px) {
	.mainimg .mainimg_inner {
		height: 280px;
	}
}

/*--------------------------------------------------
	コンテンツ部分レイアウト
--------------------------------------------------*/
/*ここではコンテンツ部分のベースレイアウトのみ決める。本文のスタイル設定は「コンテンツ部分の共通スタイル」の項で行う*/
.wrapper {
	box-sizing: border-box;
}
.wrapper .content {
}
.wrapper .content main {padding: 32px 0 0;}
.wrapper .content .side {
}
.wrapper .content .side ul {
}
.wrapper .content .side li {
	margin: 0 0 8px;
}
.wrapper .content .side li a {
	display: block;
	width: 100%;
	height: 100%;
	padding: 32px 8px;
	box-sizing: border-box;
	background: #fff;
}
@media print, screen and (min-width: 600px) {
	.wrapper {
	}
	.wrapper .content {
		margin: 0 auto;
	}
	.wrapper .content main {
		/*order:2;を右に置きたい要素に設定する*/
	}
	.wrapper .content .side {
		width: 240px;
		padding: 0;
		box-sizing: border-box;
	}
	.wrapper .content .side ul {
		width: 100%;
	}
	.wrapper .content .side li {
		margin: 0 0 16px;
	}
}
/*フッター*/
footer {
	background: url('../img/bg_contact.png')top -16px left -24px/1400px auto;
}
footer .ftr_box {
	padding: 48px 16px;
}
footer .ftr_box .ftr_box_info {
	margin-bottom: 56px;
}
footer .ftr_box .ftr_box_info .logo {
	width: 60%;
	margin: 24px auto 24px;
}
footer .ftr_box .ftr_box_info .logo a:hover {
	opacity: 0.7;
}
footer .ftr_box .ftr_box_info .logo img {
	width: 100%;
	height: 100%;
}
footer .ftr_box .ftr_box_info address {
	margin: 0 0 16px;
	font-style: normal;
}
footer .ftr_box .ftr_box_info address ul {
	display: flex;
	flex-flow: wrap;
	justify-content: space-between;
}
footer .ftr_box .ftr_box_info address ul li.add {
	width: 100%;
	margin-bottom: 4px;
	font-size: 1.4rem;
}
footer .ftr_box .ftr_box_info address ul li.tel,
footer .ftr_box .ftr_box_info address ul li.fax {
	/* width: 50%; */
}
footer .ftr_box .ftr_box_info address ul li.tel img,
footer .ftr_box .ftr_box_info address ul li.fax img {
	width: auto;
	height: 7vw;
}
footer .ftr_box .ftr_box_info address ul li.mail {
	width: 100%;
	margin-top: 8px;
	box-sizing: border-box;
	border: 1px solid #94a2a5;
}
footer .ftr_box .ftr_box_info address ul li.mail a {
	display: block;
	width: 100%;
	height: 100%;
	padding: 16px 0;
	box-sizing: border-box;
	text-indent: -7777px;
	background: url(../img/mail_footer.png)top 50% left 50%/60% auto no-repeat;
}
footer .ftr_box .ftr_box_info address ul li:hover a {
	opacity: 0.7;
}
footer .ftr_box .ftr_box_map iframe {
	width: 100%;
	aspect-ratio: 1 / 0.776
}
footer .ftr_nav {
	padding: 24px 0;
	color: #fff;
	border-top: 4px solid #f4d73e;
	background: #2b85bf;
}
footer .ftr_nav ul {
	display: none;
}
footer .ftr_nav .copy {
	font-size: 1.5rem;
	font-weight: normal;
	text-align: center;
}
@media print, screen and (min-width: 600px) {
	footer .ftr_box {
		width: 1008px;
		padding: 100px 0;
		margin: 0 auto;
		display: flex;
		flex-flow: wrap;
		justify-content: space-between;
	}
	footer .ftr_box .ftr_box_info {
		width: 462px;
	}
	footer .ftr_box .ftr_box_info .logo {
	}
	footer .ftr_box .ftr_box_info .logo img {
		height: auto;
	}
	footer .ftr_box .ftr_box_info address ul li.add {
		font-size: 1.5rem;
	}
	footer .ftr_box .ftr_box_info address ul li.tel,
	footer .ftr_box .ftr_box_info address ul li.fax {
		width: inherit;
	}
	footer .ftr_box .ftr_box_info address ul li.tel img,
	footer .ftr_box .ftr_box_info address ul li.fax img {
		width: auto;
		height: 32px;
	}
	footer .ftr_box .ftr_box_info address ul li.mail {
		margin-top: 16px;
	}
	footer .ftr_box .ftr_box_map {
		width: 500px;
	}
	footer .ftr_nav {
		padding: 32px 0 16px;
		margin: 0 auto;
	}
	footer .ftr_nav ul {
		display: block;
		width: 1008px;
		padding-bottom: 32px;
		margin: 0 auto 16px;
		font-size: 0;
		text-align: center;
		border-bottom: 1px solid #3d97d1;
	}
	footer .ftr_nav ul li {
		display: inline-block;
		padding: 0 16px;
		font-size: 1.5rem;
	}
	footer .ftr_nav ul li a {
		color: #fff;
	}
	footer .ftr_box .copy {
		width: 100%;
		text-align: center;
	}
}
/*--------------------------------------------------
	コンテンツ部分の共通スタイル
--------------------------------------------------*/
section {
	margin: 0 0 24px;
}
section h2 {
	position: relative;
	margin: 0 0 16px;
	color: #2b85bf;
	font-size: 7vw;
	font-weight: 900;
	text-align: center;
}
section h2::before {
	content: '';
	display: block;
	width: 24vw;
	aspect-ratio: 1 / 1.02;
	box-sizing: border-box;
	position: absolute;
	top: -12vw;
	left: 10px;
	background: url('../img/square.png') 0 0/100% auto no-repeat;
}
section h2 span {
	background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1 1" preserveAspectRatio="none"><path fill="%232b85bf" d="M0.000,0.000 L32.000,0.000 L32.000,32.000 L0.000,32.000 L0.000,0.000 Z" /></svg>');
	background-position: bottom 0.1em left 50%;
	background-size: 96% 1px;
	background-repeat: no-repeat;
}
section .sec_content {
}
section .sec_content h3 {
	margin: 0 0 16px;
}
section .sec_content p,
section .sec_content ul,
section .sec_content ol,
section .sec_content dl {
	margin-bottom: 16px;
}
section .sec_content table {
	width: 100%;
	margin: 0 0 16px;
}
section .sec_content table caption {
	padding: 10px;
	font-size: 1.6rem;
	font-weight: bold;
	background-color: #b6b3b8;
}
section .sec_content table th,
section .sec_content table td {
}
section .sec_content table th {
}
@media print, screen and (min-width: 600px) {
	section h2 {
		margin-bottom: 32px;
		font-size: 4.8rem;
	}
	section h2::before {
		width: 186px;
		top: -48px;
		left: calc(50% - 504px);
	}
	section .sec_content {
		padding: 0;
	}
}
/*--------------------------------------------------
	サイト全体で使う共通スタイル
--------------------------------------------------*/
/*floatした子要素を内包する親要素にclass="clear"を
付与することでfloatを解除します。*/
.clear::after {
	content: " ";
	display: block;
	clear: both;
}
/*ページトップ*/
.pagetop {
}
/*ページャー※WP用。不要なら削除*/
/*ページャー*/
ul.pagination {
	margin: 16px 0 0;
	text-align: center;
}
ul.pagination .page_num {
	display: none;
}
ul.pagination li {
	display: inline-block;
	margin: 0 2px;
	border: 1px solid #d9dcde;
}
ul.pagination li.current {
	padding: 4px 8px;
}
ul.pagination li:hover,
ul.pagination li.current {
	color: #fff;
	background: #202a56;
	border: 1px solid #202a56;
}
ul.pagination li a {
	display: block;
	width: 100%;
	height: 100%;
	box-sizing: border-box;
	padding: 4px 8px;
	color: #202a56;
	text-decoration: none;
}
ul.pagination li:hover a {
	color: #fff;
}
@media print, screen and (min-width: 600px) {
}
/*--------------------------------------------------
	ページ個別のスタイル
--------------------------------------------------*/
/*-------------------------------------------index*/
#index .mainimg .mainimg_inner p {
	position: absolute;
	top: 60%;
	left: 50%;
	translate: -50% -50%;
	width: 8em;
	margin: 0 auto;
	font-size: 7vw;
	line-height: 1.3;
	text-align: justify;
	text-shadow: 0 0 10px rgba(73, 87, 86, 1),0 0 20px rgba(73, 87, 86, 1);
	color: #fff;
	font-weight: 700;
}
#index .s1 {
	margin-bottom: 48px;
}
#index .s1 .sec_content {
	padding: 0 16px;
}
#index .s1 ul {
	display: flex;
	flex-flow: wrap;
	justify-content: space-between;
}
#index .s1 ul li {
	position: relative;
	width: calc(calc(100% - 32px) / 3);
	aspect-ratio: 1 / 1;
	margin-bottom: 16px;
	font-size: 3.6vw;
	line-height: 1.3;
	text-align: center;
	border-radius: 50%;
	background: #faeda9;
}
#index .s1 ul li span {
	display: block;
	width: 100%;
	position: absolute;
	top: 50%;
	left: 50%;
	translate: -50% -50%;
}
#index .s2 {
	position: relative;
	margin-bottom: 0;
	z-index: 0;
}
#index .s2::before {
	content: '';
	display: block;
	width: 24vw;
	aspect-ratio: 1 / 1.02;
	box-sizing: border-box;
	position: absolute;
	top: -6vw;
	right: 10px;
	background: url('../img/square.png') 0 0/100% auto no-repeat;
	z-index: 1;
}
#index .s2 ul {
	display: flex;
	flex-flow: wrap;
	justify-content: space-between;
	margin-bottom: 0;
}
#index .s2 ul li {
	position: relative;
	width: calc(100% / 3);
	height: 60vw;
	background-position: top 0 left 0;
	background-size: auto 100%;
	background-repeat: no-repeat;
}
#index .s2 ul li.type1 {
	background-image: url(../img/index/bg_menu01.jpg);
}
#index .s2 ul li.type2 {
	background-image: url(../img/index/bg_menu02.jpg);
}
#index .s2 ul li.type3 {
	background-image: url(../img/index/bg_menu03.jpg);
}
#index .s2 ul li span {
	position: absolute;
	bottom: 0;
	display: block;
	width: 100%;
	height: 40%;
	padding: 20% 0;
	box-sizing: border-box;
	color: #fff;
	font-weight: 500;
	font-size: 3.6vw;
	line-height: 1.4;
	text-align: center;
	background-color: rgba(154,146,106,0.9);
}
@media print, screen and (min-width: 600px) {
	#index .mainimg .mainimg_inner {
		height: 690px;/*indexのメインイメージの高さ(PC用)*/
	}
	#index .mainimg .mainimg_inner p {
		top: 55%;
		width: 16em;
		font-size: 5.2rem;
		text-align: center;
		& br {
			display: none;
		}
	}
	#index .s1 ul {
		margin: 0 calc(50% - 270px);
	}
	#index .s1 ul li {
		width: calc(calc(100% - 48px) / 3);
		font-size: 2.0rem;
	}
	#index .s2::before {
		width: 186px;
		right: calc(50% - 504px);
	}
	#index .s2 ul li {
		height: 44vw;
	}
	#index .s2 ul li span {
		padding-top: 6vw;
		font-size: 2.2vw;
	}
}
/*----------------------------------------business*/
#business .s1 .sec_content {
	padding: 0 16px;
}
#business .s1 p {
	margin-bottom: 32px;
}
#business .s1 .businesstype {
	display: flex;
	flex-flow: wrap;
	justify-content: space-between;
}
#business .s1 .businesstype dl {
	width: calc(50% - 16px);
	margin-bottom: 32px;
}
#business .s1 .businesstype dl dt {
	padding: 0 0 4px 8px;
	margin-bottom: 6px;
	box-sizing: border-box;
	font-size: 2.0rem;
	font-weight: 500;
	line-height: 1.5;
	border-left: 12px solid #2b85bf;
	border-bottom: 1px solid #d5dfe6;
}
#business .s1 .businesstype dl dd {
	padding-left: 12px;
	margin-left: 8px;
	line-height: 1.6;
	font-size: 1.6rem;
	background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" preserveAspectRatio="none"><path fill="%23d5dfe6" d="M5.0,0.0 C7.761,0.0 10.0,2.238 10.0,5.0 C10.0,7.761 7.761,10.0 5.0,10.0 C2.238,10.0 0.0,7.761 0.0,5.0 C0.0,2.238 2.238,0.0 5.0,0.0 Z" /></svg>');
	background-position: top 0.4em left 0;
	background-size: 6px 6px;
	background-repeat: no-repeat;
}
#business .s2 {
	background: url(../img/business/bg_business.jpg) top 0 left 50%/cover no-repeat;
}
#business .s2 .sec_content {
	padding: 48px 16px;
}
#business .s2 h3 {
	font-size: 4.6vw;
	color: #2b85bf;
}
#business .s2 p {
	padding-right: 30%;
	font-size: 1.7rem;
}
#business .s3 .sec_content {
	position: relative;
	padding: 0 16px;
	z-index: 0;
}
#business .s3 .sec_content::before {
	content: '';
	display: block;
	width: 24vw;
	aspect-ratio: 1 / 1.02;
	box-sizing: border-box;
	position: absolute;
	top: 0;
	right: 10px;
	background: url('../img/square.png') 0 0/100% auto no-repeat;
	z-index: 0;
}
#business .s3 h3 {
	padding: 20px 0;
	color: #2b85bf;
	text-align: center;
	font-size: 5vw;
	background: url(../img/business/ico_type.png)top 0 left 20%/auto 100% no-repeat;
}
#business .s3 .typewrapper {
	position: relative;
	margin-top: -20px;
	z-index: 1;
}
#business .s3 .typewrapper .type figure {
	margin-bottom: 8px;
}
#business .s3 .typewrapper .type figure img {
	width: 100%;
	height: auto;
	border-radius: 6px;
}
#business .s3 .typewrapper .type dl dt {
	font-weight: 500;
	text-align: center;
}
#business .s3 .typewrapper .type dl dd {
	font-size: 1.6rem;
	line-height: 1.5;
}
@media print, screen and (min-width: 600px) {
	#business .s1 {
		width: 1008px;
		margin: 0 auto 32px;
	}
	#business .s1 .sec_content {
		padding: 0;
	}
	#business .s1 p {
		margin: 0 160px 56px;
	}
	#business .s1 .businesstype {
		padding: 0 62px;
	}
	#business .s1 .businesstype dl {
		width: calc(calc(100% - 64px) / 3);
	}
	#business .s1 .businesstype dl dt {
		font-size: 2.4rem;
	}
	#business .s1 .businesstype dl dd {
		font-size: 1.7rem;
	}
	#business .s2 {
	margin-bottom: 56px;
	}
	#business .s2 .sec_content {
		width: 1008px;
		margin: 0 auto;
		padding: 56px 60px;
		box-sizing: border-box;
	}
	#business .s2 h3 {
		font-size: 4.0rem;
	}
	#business .s2 p {
		padding-right: 40%;
		font-size: 1.8rem;
	}
	#business .s3 {
		width: 1008px;
		padding-bottom: 72px;
		margin: 0 auto;
	}
	#business .s3 .sec_content {
		padding: 0;
	}
	#business .s3 .sec_content::before {
		width: 186px;
		top: -40px;
		right: calc(50% - 536px);
	}
	#business .s3 h3 {
		font-size: 3.2rem;
		background-position: top 0 left 34%;
	}
	#business .s3 .typewrapper {
		display: flex;
		flex-flow: wrap;
		justify-content: space-between;
	}
	#business .s3 .typewrapper .type {
		width: calc(calc(100% - 32px) / 3);
	}
	#business .s3 .typewrapper .type figure {
		margin-bottom: 16px;
	}
	#business .s3 .typewrapper .type dl dt {
		margin-bottom: 10px;
		font-size: 2.0rem
	}
	#business .s3 .typewrapper .type dl dd {
		font-size: 1.8rem;
		line-height: 1.7;
	}
}
/*-------------------------------------------works*/
#works .s1 {
	margin-bottom: 56px;
}
#works .s1 .sec_content {
	padding: 0 16px;
}
#works .s1 p {
	margin-bottom: 32px;
}
#works .s1 .works {
	margin-bottom: 32px;
}
#works .s1 .works h3 {
	padding: 0 0 4px 8px;
	margin-bottom: 16px;
	box-sizing: border-box;
	font-size: 2.0rem;
	font-weight: 500;
	line-height: 1.5;
	border-left: 12px solid #2b85bf;
	border-bottom: 1px solid #d5dfe6;
}
#works .s1 .works ul {
	display: flex;
	flex-flow: wrap;
	justify-content: space-between;
}
#works .s1 .works ul li {
	width: calc(calc(100% - 10px) / 2);
	margin-bottom: 10px;
}
#works .s1 .works ul li img {
	width: 100%;
	height: auto;
	border-radius: 6px;
}
@media print, screen and (min-width: 600px) {
	#works .s1 {
		width: 1008px;
		margin: 0 auto 32px;
	}
	#works .s1 .sec_content {
		padding: 0;
	}
	#works .s1 p {
		margin: 0 160px 56px;
	}
	#works .s1 .workswrapper {
		display: flex;
		flex-flow: wrap;
		justify-content: space-between;
	}
	#works .s1 .workswrapper .works {
		width: calc(calc(100% - 32px) / 2);
	}
}
/*-----------------------------------------company*/
#company .s1 {
	margin-bottom: 56px;
}
#company .s1 .sec_content {
	padding: 0 16px;
}
#company .s1 p {
	margin-bottom: 32px;
}
#company .s1 h3 {
	padding: 0 0 4px 8px;
	margin-bottom: 32px;
	box-sizing: border-box;
	font-size: 2.0rem;
	font-weight: 500;
	line-height: 1.5;
	border-left: 12px solid #2b85bf;
	border-bottom: 1px solid #d5dfe6;
}
#company .s1 table th,
#company .s1 table td {
	padding: 12px 16px 16px;
	box-sizing: border-box;
	font-size: 1.6rem;
	line-height: 1.5;
}
#company .s1 table th {
	width: 30%;
	font-weight: 300;
	text-align: left;
	border-bottom: 1px solid #fff;
	background: #edf5fa;
}
#company .s1 table td {
	border-bottom: 1px solid #d4e5f0;
}
#company .s1 table tr:last-of-type td {
	border-bottom: 0;
}
#company .s2 {
	margin-bottom: 56px;
}
#company .s2 .sec_content {
	position: relative;
	padding: 56px 16px 48px;
	margin-top: -16px;
	background: url('../img/company/bg_area.jpg') top 0 left 50%/cover no-repeat;
	z-index: 0;
}
#company .s2 .sec_content::before {
	content: '';
	display: block;
	width: 24vw;
	aspect-ratio: 1 / 1.02;
	box-sizing: border-box;
	position: absolute;
	bottom: -8vw;
	right: 10px;
	background: url('../img/square.png') 0 0/100% auto no-repeat;
}
#company .s2 h3 {
	position: relative;
	color: #2b85bf;
	text-align: center;
	z-index: 1;
}
@media print, screen and (min-width: 600px) {
	#company .s1 {
		width: 1008px;
		margin: 0 auto 32px;
	}
	#company .s1 .sec_content {
		padding: 0;
	}
	#company .s1 p {
		margin: 0 160px 56px;
	}
	#company .s1 h3 {
		margin: 0 62px 48px;
	}
	#company .s1 table {
		width: 70%;
		margin: 0 auto 88px;
		box-sizing: border-box;
	}
	#company .s1 table th {
		width: 20%;
	}
	#company .s2 {
		margin-bottom: 90px;
	}
	#company .s2 .sec_content {
		padding: 56px calc(50% - 356px) 48px;
	}
	#company .s2 .sec_content::before {
		width: 186px;
		bottom: -48px;
		right: calc(50% - 504px);
	}
}