@charset "UTF-8";

/* 基本色 */

/* 基本設定： フォントサイズ */
@media (max-width: 599px) {
:root {
	font-size: 14px;
}
}

@media (min-width: 600px) and (max-width: 799px) {
:root {
	font-size: 16px;
}
}

@media (min-width: 800px) {
:root {
	font-size: 18px;
}
}
body {
	font-size: 16px;
}
/* 基本設定： ページ全体 */
body {
	margin: 0;
	font-family: 'メイリオ', 'Hiragino Kaku Gothic Pro', sans-serif;
}
p, dd, dt {
	margin: 0;
}
img {
	max-width: 100%;
}
/* ヘッダー
------------------------------------------------------------ */
header {
	width: 100%;
	background-color: rgba(4,41,58,1);
}
.nohero header {
	position: static;
	border-bottom: solid 1px #ddd;
}
/* ヘッダーA: サイト名 */
.headA {
	display: inline-block;
	line-height: 70px;
	padding-top: 15px;
	padding-right: 20px;
	padding-left: 20px;
	padding-bottom: 10px;
	color: #fff;
	font-size: 24px;
	text-decoration: none;
}
/* ヘッダーB： ナビゲーションメニュー */
.headB ul {
	margin: 0;
	padding: 0;
	list-style: none;
}
.headB li:first-child {
	display: inline;
}
.headB a {
	display: block;
	padding: 10px 20px;
	color: #DBDBDB;
	font-size: 12px;
	text-decoration: none;
}
.headB a:hover {
	background-color: rgba(0,0,0,0.3);
}

/* 通常は日本語表示。ロールオーバーで英語に切り替え。 */
.headB a > span[lang=en] {
	display: inline;
}
.headB a > span[lang=ja] {
	display: none;
}
.headB a:hover > span[lang=en] {
	display: none;
}
.headB a:hover > span[lang=ja] {
	display: inline;
}

@media (min-width: 768px) {
header .container {
	display: flex;
	align-items: center;
	justify-content: space-between;
	max-width: 1000px;
	max-width: var(--large-width);
	margin-left: auto;
	margin-right: auto;
}
.headB ul {
	display: flex;
	flex-wrap: wrap;
	width: 350px;
}
.headB li {
	flex: 0 0 30%;
}
/*.headB li:first-child {
	display: none;
}
*/
	.headB a {
	display: inline-block;
	padding: 5px 10px;
	text-align: center;
	width: 90%;
}
}

/* ヘッダーC： トグルボタン */
@media (max-width: 767px) {
/* 小さい画面用の設定 */
header .container-small {
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.headB {
	display: none;
}
.headC {
	margin-right: 20px;
	padding: 0;
	border: none;
	outline: none;
	background: none;
	font-size: 28px;
	opacity: 0.8;
	cursor: pointer;
}
.headC:hover {
	opacity: 0.3;
}
.headC .fa-white {
	color: #fff;
}

}

@media (min-width: 768px) {
/* 大きい画面用の設定 */
.headC {
	display: none;
}
.headB {
	display: block !important;
}
}

/* フッター
------------------------------------------------------------ */
footer {
	color: #eee;
	background-color: rgba(4,41,58,1);
}
footer .container {
	padding: 40px 20px;
}

@media (min-width: 768px) {
footer .container {
	display: flex;
	flex-wrap: wrap;
	max-width: 1000px;
	margin-left: auto;
	margin-right: auto;
}
.footA {
	flex: 0 0 40%;
}
.footB {
	flex: 0 0 60%;
}
.footC {
	flex: 0 0 100%;
}
}
	
/* フッターA： サイト情報 */
.footA {
	margin-bottom: 30px;
}
.footA h2 {
	margin-top: 0;
	margin-bottom: 10px;
	font-size: 30px;
	letter-spacing: 0.2em;
	width: 90%;
}
.footA p {
	margin-top: 0;
	margin-bottom: 0;
	font-size: 14px;
}
.footA a {
	color: inherit;
	text-decoration: none;
}
/* フッターB： フッターメニュー */
.footB div {
	margin-bottom: 20px;
}
.footB h3 {
	margin-top: 0;
	margin-bottom: 10px;
	border-bottom: solid 1px currentColor;
	font-size: 14px;
}
.footB ul {
	margin: 0;
	padding: 0;
	list-style: none;
}
.footB a {
	display: block;
	padding: 5px;
	color: inherit;
	font-size: 12px;
	text-decoration: none;
}
.footB a:hover {
	background: #062028;
}

@media (min-width: 768px) {
.footB {
	display: flex;
}
.footB div {
	flex: 1;
}
.footB div:not(:first-child) {
	margin-left: 40px;
}
}
	
/* フッターC： コピーライト */
.footC {
	font-size: 12px;
	text-align: left;
	font-family: 'Open Sans', sans-serif;
}
/* フッターD： SNSメニュー */
.footD {
	margin-top: 20px;
}
.footD ul {
	display: flex;
	margin: 0;
	padding: 0;
	list-style: none;
}
.footD a {
	display: block;
	margin-right: 8px;
	padding: 0;
	color: inherit;
	font-size: 16px;
	text-decoration: none;
	border: solid 1px currentColor;
	width: 2em;
	line-height: 2em;
	border-radius: 50%;
	text-align: center;
}
.footD a:hover {
	background-color: rgba(4,41,58,1);
}
/* コンテンツ共通設定
------------------------------------------------------------ */
/*スマホ表示には改行削除*/
.br-sp {
	display: none;
}

/*iosのリンク２回タップバグ対応*/
/*@media screen and(max-width:640px){
	a {
		pointer-events: none;
	}
}*/
/*	
h2 {
	padding-bottom: .5em;
	border-bottom: 1px solid #ccc;
}
h2:first-letter {
	margin-right: .1em;
	font-size: 1.5em;
}
*/

@media (min-width: 768px) {
/*スマホ表示には改行削除*/
.br-sp {
	display: block;
}
}
/* ヒーローイメージ */
.cat_img {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 280px;
	background-image: url(img/bg_blue.jpg);
	background-position: center;
	background-repeat: repeat;
	color: #eee;
	;
	text-align: center;
	padding: 0 20px;
}
/*
.cat_img .compact {
	height: 450px;
	min-height: 0;
	background-image: linear-gradient(rgba(0,0,0,0.1), rgba(0,0,0,0.1)), url(img/balloon.jpg);
}
*/

.cat_img .subcontainer {
	position: absolute;
	bottom: 3px;
	right: 5%;
	width: 20%;
	min-width: 100px;
	max-width: 242px;
}

/*奇数行*/
.con_odd {
	color: #333333;
	padding: 0 20px 40px 20px;
	background: #f9f9f9;
}
/*偶数行*/
.con_add {
	background-image: url(img/bg_blue.jpg);
	color: #eee;
	padding: 0 20px 40px 20px;
}

/* トップページ
------------------------------------------------------------ */
/*.top h1 {
	margin-bottom: 10px;
	vertical-align:bottom;
}

.top h1+p {
	text-align: right;
}*/
/* トップページコンテンツB： ナビ */
.top .conB .container {
	padding-top: 80px;
	padding-bottom: 20px;
}
.top .conB .text {
	/*padding-left: 20px;
	padding-right: 20px;*/
	padding-bottom: 60px;
	text-align: center;
}
.top .conB h2 {
	margin-top: 0;
	margin-bottom: 10px;
	font-size: 20px;
}
.top .conB p {
	margin-top: 0;
	margin-bottom: 20px;
	font-size: 14px;
	line-height: 1.8;
	opacity: 0.8;
}
.top .conB a {
	color: #5D9AB2;
	text-decoration: none;
}
.top .conB a:hover {
	text-decoration: underline;
}
.top .conB .icon {
	display: inline-block;
	margin-bottom: 20px;
	font-size: 40px;
	width: 2em;
	line-height: 2em;
	border-radius: 50%;
	text-align: center;
	background-color: #ddd;
	color: #fff;
}

.top .conC a {
	color: #ddd;
	text-decoration: underline;
}

@media (min-width: 768px) {
.top .cat_img {
	height: 500px;
}
/*.top h1 {
	margin-bottom: 20px;
}*/
.top .conB .container {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	max-width: 900px;
	margin-left: auto;
	margin-right: auto;
}
.top .conB .text {
	flex: 0 0 50%;
}
	
}
/* コンテンツC： 概要（画像＋テキスト） */
.top .conC {
	background-image: url(img/bg_blue.jpg);
	color: #ddd;
}
.top .conC .container {
	background-image: url(img/top_news_img.png);
	background-position: center 60px;
	background-repeat: no-repeat;
	padding: 270px 0 0 0;
}
.top .conC h2 {
	margin-top: 0;
	margin-bottom: 10px;
	font-size: 20px;
	text-align: center;
}
.top .conC p {
	margin-top: 0;
	margin-bottom: 20px;
	font-size: 14px;
	line-height: 1.8;
	opacity: 0.8;
}
.top .conC .photo {
	min-height: 200px;
	padding: 20px 40px;
	text-align: center;
}
.top .conC .text {
	padding: 20px;
	text-align: center;
}
.top .conC dt {
	line-height: 1.8;
}
.top .conC dd {
	line-height: 1.8;
	padding-bottom: 10px;
}

@media (min-width: 768px) {
.top .conC .container {
	display: flex;
	max-width: 1000px;
	margin-left: auto;
	margin-right: auto;
}
.top .conC h2 {
	text-align: left;
}
.top .conC .photo {
	flex: 1;
	padding: 20px;
	text-align: left;
}
.top .conC .text {
	flex: 1;
	padding: 30px 20px 30px 0;
}
.top .conC dt {
	clear: left;
	float: left;
	width: 110px;
	line-height: 1.8;
}
.top .conC dd {
	padding-left: 120px;
	line-height: 1.8;
}
}
/* コンテンツD： 概要（画像＋テキスト：逆配置） */
.conD .container {
	padding-top: 2px;
}
.conD .text {
	padding: 20px;
}
.conD h2 {
	margin-top: 0;
	margin-bottom: 10px;
	font-size: 20px;
}
.conD p {
	margin-top: 0;
	margin-bottom: 20px;
	font-size: 14px;
	line-height: 1.8;
	opacity: 0.8;
}

@media (min-width: 768px) {
.conD .container {
	display: flex;
	flex-direction: row-reverse;
	max-width: 1000px;
	margin-left: auto;
	margin-right: auto;
	padding-top: 40px;
	padding-bottom: 40px;
}
.conD .photo {
	flex: 0 0 400px;
}
.conD .text {
	flex: 1;
	padding: 50px;
}
}
/* トップページ以外共通設定
------------------------------------------------------------ */
body:not(.top) .cat_img .subcontainer {
	visibility: hidden;
}
body:not(.top) section h2 {
	margin-top: 0;
	padding-top: 50px;
	margin-bottom: 30px;
	font-size: 30px;
	text-align: center;
	line-height: 1.1;
}
body:not(.top) section h2 span {
	font-size: 15px;
	display: block;
	margin-top: 10px;
}
body:not(.top) .text, body:not(.top) .photo {
	text-align: center;
}
body:not(.top) .map {
	padding: 0;
}
body:not(.top) .map .container {
	display: block;
	max-width: 100%;
}
.map iframe {
	width: 100%;
	height: 400px;
	vertical-align: bottom;
}
.map p {
	padding: 0 20px 20px 20px;
	text-align: left;
}

p.ja, p.en {
	margin-bottom: 20px;
}

.en {
	font-size: 14px;
}

@media (min-width: 768px) {
body:not(.top) section .container {
	display: flex;
	max-width: 900px;
	margin-left: auto;
	margin-right: auto;
}
	
body:not(.top) section .noneflex {
display: block;
}
	
body:not(.top) .cat_img .subcontainer {
	visibility: visible;
	/*opacity: 0.3;*/
	max-width: 533px;
}
	body:not(.top) section h2 span {
		display: inline;
		margin-left: 20px;
		margin-top: 0;
	}
.map p {
	text-align: center;
}
}
/* 会社概要
------------------------------------------------------------ */
.tbl-common01 {
	width: 100%;
	margin: 0 auto;
}
.tbl-common01 dt {
	float: none;
	background: #062028;
	padding: 10px 20px;
}
.tbl-common01 dd {
	padding: 15px 20px;
}


	.aboutus .con1 h3 {
		font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", "sans-serif";
		font-size: 20px;
		margin-bottom: 20px;
		font-weight: bold;
	}
	
	.aboutus .con1 p.desc {
		line-height: 1.5;
		text-align: center;
		margin-bottom: 40px;
	}
	
	.aboutus .con1 p {
		max-width: 650px;
		margin: 0 auto;
			text-align: justify; /* 両端揃え */
	text-justify: inter-ideograph; /* 両端揃えの種類 */
	}

.aboutus .con2 {
	padding: 0;
}

@media (min-width: 768px) {
.aboutus .cat_img {
	height: 450px;
	background-image: url(img/aboutus_back.png),url(img/bg_blue.jpg);
	background-position: right bottom,center;
	background-repeat: no-repeat,repeat;
}
	
	.aboutus .con1 h3 {
		font-size: 35px;
		font-weight: normal;
	}
	
	.aboutus .con1 p.desc {
		font-size: 20px;
	}
	
.aboutus .cat_img h1 img {
	width: 259px;
}

.aboutus .con1 .photo {
	flex: 1;
	min-height: 200px;
	text-align: center;
}
	

.aboutus .con2 h2 {
	margin-bottom: 10px;
}
.aboutus .con2 .text {
	flex: 1;
	text-align: left;
}
.tbl-common01 {
	width: 80%;
}
.tbl-common01 dt, .tbl-common01 dd {
	padding: 25px 5px;
}
.tbl-common01 dt {
	clear: both;
	float: left;
	text-align: right;
	width: 170px; /* 幅を指定 */
	background: none;
}
.tbl-common01 dd {
	padding-left: 200px; /* dtの分、左にpaddingを取る */
	border-bottom: 1px dashed #B8B8B8;
}
.tbl-common01 dd:last-child {
	border-bottom: none;
}
}
/* 経営者略歴
------------------------------------------------------------ */
.aboutceo h3 {
	margin: 10px 0;
}
.aboutceo .con1 p {
	text-align: left;
}
.aboutceo .con2 p {
	margin-top: 0;
	margin-bottom: 30px;
	text-align: left;
}
.aboutceo .con2 p:last-child {
	margin-bottom: 0;
}

@media (min-width: 768px) {
.aboutceo .cat_img {
	height: 450px;
	background-image: url(img/aboutceo_back.png),url(img/bg_blue.jpg);
	background-position: right bottom,center;
	background-repeat: no-repeat,repeat;
}
	
.aboutceo .cat_img h1 img {
	width: 333px;
}

.aboutceo .con1 .photo {
	flex: 2;
	padding: 0 20px 0 0;
}
.aboutceo .con1 .text {
	flex: 3;
	padding: 50px 0 0 0;
	text-align: left;
}
.aboutceo .con2 .text {
	flex: 1;
	text-align: left;
}
.aboutceo .con2 p {
	text-align: justify; /* 両端揃え */
	text-justify: inter-ideograph; /* 両端揃えの種類 */
}
}
/* 業務内容
------------------------------------------------------------ */
.whatwedo .container p {
	margin: 10px 0 20px 0;
}
.whatwedo .container p:last-child {
	margin-bottom: 10px 0 0 0;
}

@media (min-width: 768px) {
.whatwedo .cat_img {
	height: 450px;
	background-image: url(img/whatwedo_back.png),url(img/bg_blue.jpg);
	background-position: right center,center;
	background-repeat: no-repeat,repeat;
}
	
.whatwedo .photo {
	flex: 1;
}
	
	.whatwedo .con3 .photo img.last {
		margin: 50px 0;
	}
	
.whatwedo .photo img {
/* box-shadow */
box-shadow:2px 1px 6px 0px #444;
-moz-box-shadow:2px 1px 6px 0px #444;
-webkit-box-shadow:2px 1px 6px 0px #444;
}
	
.whatwedo .container p {
	margin-bottom: 10px 0 0 0;
}
}
/* お問い合わせページ: 問い合わせ先
------------------------------------------------------------ */
.contact_box {
	margin-bottom: 20px;
	padding: 20px;
	/*border: solid 1px #ddd;*/
	text-align: center;
	background: #fff;
	box-shadow: 0 2px 2px 0 rgba(0,0,0,0.16), 0 0 0 1px rgba(0,0,0,0.08);
	border-radius: 2px;
}
.contact_box:last-child {
	margin-bottom: 0;
}
.contact_box span {
	display: inline-block;
	margin-bottom: 15px;
	font-size: 2.2rem;
	width: 2em;
	line-height: 2em;
	border-radius: 50%;
	text-align: center;
	background-color: rgba(4,41,58,1);
	color: #fff;
}
/*
.contact_box dl {
	margin: 0 auto;
}

.contact_box dt {
	width: 50px;
	clear: left;
	float: left;
	margin-right: 10px;
	padding-left: 10px;
}

.contact_box dd {
	float: left;
}
*/

.contact .con1 {
	padding: 0 20px 1px 20px;/*下向きの１pxは子要素がはみ出してしまう現象の対策のため間違いではない*/
}
.contact .con3 {
	padding: 0 0 20px 0;
}

@media (min-width: 768px) {
.contact .cat_img {
	height: 450px;
	background-image: url(img/contact_back.png),url(img/bg_blue.jpg);
	background-position: right center,center;
	background-repeat: no-repeat,repeat;
}
	
.contact .cat_img h1 img {
	width: 259px;
}

.contact_box {
	flex: 1;
	margin-right: 20px;
	margin-bottom: 0;
}
.contact_box p, .contact_box address {
	margin: 5px 0 10px;
	line-height: 1.4;
}
}

body.other section h2 {
	margin-top: 0;
	padding-top: 50px;
	margin-bottom: 30px;
	font-size: 25px;
	text-align: center;
	line-height: 1.1;
}

body.other section h2 span {
	font-size: 15px;
	display: block;
	margin-top: 10px;
}

body.other section h3 {
	font-size: 16px;
	font-weight: bold;
	margin-bottom: 10px;
}

body.other section h1 {
	margin-top: 0;
	padding-top: 50px;
	margin-bottom: 30px;
	font-size: 30px;
	text-align: center;
	line-height: 1.1;
	letter-spacing: 5px;
	border-bottom: 1px double #272727;
	padding-bottom: 30px;
}

body.other section h1 span {
	font-size: 15px;
	display: block;
	margin-top: 10px;
}

@media (min-width: 768px) {
	body.other section h1 span,
	body.other section h2 span{
		display: inline;
		margin-left: 20px;
		margin-top: 0;
	}
}

.footB li a {
	display: inline-block;
}