@charset "UTF-8";

/************************************************************/
/* 基本設定 */
/************************************************************/
@media ( min-width: 768px ) {
	a,
	a img {
		transition: all 0.3s 0s ease;
	}
}
@media ( max-width: 767px ) {
	body {
		font-size: 14px;
		font-size: 1.4rem;
	}
	.br_pc {
		display: none;
	}
}
@media ( min-width: 768px ) {
	body {
		font-size: 18px;
		font-size: 1.8rem;
	}
	.br_sp {
		display: none;
	}
}
figure,
figcaption {
	margin: 0;
	padding: 0;
}

/************************************************************/
/* フォント設定 */
/************************************************************/
.noto_sans {
	font-family: 'Noto Sans JP', sans-serif;
}
.noto_serif {
	font-family: 'Noto Serif JP', serif;
}





/************************************************************/
/* ヘッダー */
/************************************************************/
#header > .container {
	padding: 0;
}
#header .header_logo {
	margin: 0 auto;
}
#header .header_link {
	display: none;
}
#header .header_link p {
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 18px;
	font-size: 1.8rem;
	line-height: 1.2;
	margin: 0 .5rem;
}
#header .header_link p a,
#header .header_link p a:link,
#header .header_link p a:visited {
	color: #fff;
}
@media ( max-width: 767px ) {
	#header .header_logo {
		max-width: 18rem;
		padding: 1rem 0;
	}
}
@media ( min-width: 768px ) {
	#header .header_head {
		display: flex;
		justify-content: space-between;
		padding-left: 16rem;
	}
	#header .header_logo {
		max-width: 272px;
		padding: 2rem 0;
	}
	#header .header_link {
		display: flex;
		justify-content: flex-end;
		margin: 0 2rem;
	}
	#header .header_link p a {
		background-color: #80BFE1;
		color: #fff;
		border-radius: 0 0 5px 5px;
		display: flex;
		justify-content: center;
		align-items: center;
		text-decoration: none;
		margin: 0;
		padding: .5em 0 .4em;
		width: 15rem;
	}
	#header .header_link p a:hover {
		opacity: .8;
	}
}
#header .menu {
	background-color: #007FC5;
}
#header .menu nav ul li {
	font-size: 18px;
	font-size: 1.8rem;
	line-height: 1.2;
	border-bottom: 1px dotted rgba(255, 255, 255, 0.6);
}
#header .menu nav ul li a,
#header .menu nav ul li a:link,
#header .menu nav ul li a:visited {
	color: #fff;
}
@media ( max-width: 767px ) {
	#header .menu nav ul li a {
		padding: .8em;
	}
}
@media ( min-width: 768px ) {
	#header .menu nav ul li {
		border-bottom: none;
	}
	#header .menu nav ul li a {
		border-top: solid 3px #007FC5;
		border-bottom: solid 3px #007FC5;
		padding: 1.5rem .5rem;
	}
	#header .menu nav a:hover {
		background-color: #28B8F7;
		border-top: solid 3px #28B8F7;
		border-bottom: solid 3px #28B8F7;
	}
}
#header .menu nav ul.navi_sub {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: center;
	margin: 1em 0 0;
}
#header .menu nav ul.navi_sub li {
	font-size: 14px;
	font-size: 1.4rem;
	border: none;
	max-width: 12em;
	margin-bottom: 1em;
}
#header .menu nav ul.navi_sub li a {
	border: 1px solid rgba(255, 255, 255, 0.6);
	border-radius: 5px;
	margin: 0 .5em;
	padding: .8em;
}
@media ( min-width: 768px ) {
	#header .menu nav ul.navi_sub {
		display: none;
	}
}
@media ( max-width: 767px ) {
	#open,
	#close {
		top: 1.3rem;
		right: 1.3rem;
		width: 3.4rem;
	}
	#open img, 
	#close img {
		border-radius: 3px;
	}
}
@media print {
	#open, #close {
		display: none !important;
	}
}

/************************************************************/
/* フッター */
/************************************************************/
#footer {
	color: #000;
	background-color: transparent;
	padding-bottom: 0;
}
/************************************************************/
/* フッターイメージ */
#footer #footer_image {
	background-image: url("../img/common/blue_sky_and_clouds.jpg");
	background-position: center top;
	background-repeat: no-repeat;
	background-size: cover;
}
#footer #footer_message {
	color: #fff;
}
#footer #footer_message .footer_message__hl {
	line-height: 1;
	margin: 0;
	padding: 0;
}
#footer #footer_message .footer_message__text {
	font-family: 'Noto Serif JP', serif;
	line-height: 2;
	margin: 0;
	padding: 0;
	text-shadow: 1px 1px 3px #000;
}
@media ( max-width: 767px ) {
	#footer {
		padding-top: 10rem;
	}
	#footer #footer_image {
		padding: 5rem 0;
	}
	#footer #footer_message .footer_message__hl {
		text-align: center;
		margin: 0 0 0.8em;
		padding: 0;
	}
	#footer #footer_message .footer_message__hl img {
		max-width: 24rem;
	}
	#footer #footer_message .footer_message__text {
		text-align: center;
	}
}
@media ( min-width: 768px ) {
	#footer {
		padding-top: 12rem;
	}
	#footer #footer_message {
		display: flex;
		align-items: center;
		justify-content: space-between;
		width: 100%;
		padding: 5rem 0;
	}
	#footer #footer_message .footer_message__hl {
		width: 48%;
		text-align: center;
	}
	#footer #footer_message .footer_message__hl img {
		max-width: 420px;
	}
	#footer #footer_message .footer_message__text {
		font-size: 21px;
		font-size: 2.1rem;
		width: 48%;
	}
}
/************************************************************/
/* フッター　会社情報 */
#footer .footer_logo {
	max-width: 340px;
	margin: 0 auto 3rem;
	padding-top: 3rem;
}
#footer .footer_address {
	color: #000;
	line-height: 1.4;
	text-align: center;
	margin: 0;
	padding: 0;
}
#footer .footer_address p {
	margin: 0;
	padding: 0;
}
#footer .footer_address span {
	display: inline-block;
	margin: 0 .5em;
}
@media ( max-width: 767px ) {
	#footer .footer_logo {
		max-width: 30rem;
	}
	#footer .footer_address {
		font-size: 13px;
		font-size: 1.3rem;
	}
}
@media ( min-width: 768px ) {
	#footer .footer_logo {
		max-width: 340px;
	}
	#footer .footer_address {
		font-size: 16px;
		font-size: 1.6rem;
	}
}
/************************************************************/
/* フッター　お問い合わせ */
#footer .footer_contact {
	margin: .5em 0 0;
}
#footer .footer_contact p {
	line-height: 1.4;
	text-align: center;
	margin: 0;
	padding: 0;
}
#footer .footer_contact a {
	color: #000;
	display: inline-block;
}
@media ( max-width: 767px ) {
	#footer .footer_contact p {
		font-size: 13px;
		font-size: 1.3rem;
	}
}
@media ( min-width: 768px ) {
	#footer .footer_contact p {
		font-size: 16px;
		font-size: 1.6rem;
	}
	#footer .footer_contact p a:hover {
		color: #28B8F7;
	}
}





/************************************************************/
/* 著作権表記 */
/************************************************************/
.copyright p {
	font-size: 12px;
	font-size: 1.2rem;
	text-align: center;
	margin: 0;
	padding: 1.5em;
}
@media ( max-width: 767px ) {
}
@media ( min-width: 768px ) {
}





/************************************************************/
/* ページの先頭へ */
/************************************************************/
#gotop {
	position: fixed;
	z-index: 999;
}
#gotop a {
	background-color: rgba(0, 127, 197, 0.8);
	border-radius: 2px;
	color: #666;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 0;
	text-align: center;
	text-decoration: none;
	width: 6rem;
	height: 6rem;
}
#gotop a:hover {
	opacity: 0.8;
}
#gotop a span {
	display: none;
}
#gotop a::before {
	content: '';
	border: 0;
	border-top: solid 2px #fff;
	border-right: solid 2px #fff;
	position: absolute;
	top: 50%;
	margin-top: -4px;
	transform: rotate(-45deg);
}
@media ( max-width: 767px ) {
	#gotop {
		bottom: 1.2rem;
		right: 1.2rem;
	}
	#gotop a {
		width: 3.4rem;
		height: 3.4rem;
	}
	#gotop a::before {
		width: 1.4rem;
		height: 1.4rem;
	}
}
@media ( min-width: 768px ) {
	#gotop {
		bottom: 2rem;
		right: 2rem;
	}
	#gotop a {
		width: 60px;
		height: 60px;
	}
	#gotop a::before {
		width: 24px;
		height: 24px;
	}
}





/************************************************************/
/* 共通設定 */
/************************************************************/
#contents_main {
	margin: 0;
}
/************************************************************/
/* ヘッダー */
#contents_main #cat_header,
#contents_main #cat_header .cat_header__sp {
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}
/************************************************************/
/* ヘッダーイメージ */
/************************************************************/
/* 当社の特徴 */
#feature #contents_main #cat_header,
#feature #contents_main #cat_header .cat_header__sp {
	background-image: url("../img/feature/header_feature.jpg");
}
/************************************************************/
/* SDGs */
#sdgs #contents_main #cat_header,
#sdgs #contents_main #cat_header .cat_header__sp {
	background-image: url("../img/sdgs/header_sdgs.png");
}
@media ( max-width: 767px ) {
	#sdgs #contents_main #cat_header,
	#sdgs #contents_main #cat_header .cat_header__sp {
		background-color: #00337C;
		background-position: center top 1.2rem;
		background-size: auto 95%;
	}
}
/************************************************************/
/* 製作実績 */
#prodct #contents_main #cat_header,
#prodct #contents_main #cat_header .cat_header__sp {
	background-image: url("../img/prodct/header_prodct.jpg");
}
/************************************************************/
/* 会社概要 */
#company #contents_main #cat_header,
#company #contents_main #cat_header .cat_header__sp {
	background-image: url("../img/company/header_company.jpg");
}
/************************************************************/
/* 主要設備 */
#facility #contents_main #cat_header,
#facility #contents_main #cat_header .cat_header__sp {
	background-image: url("../img/facility/header_facility.jpg");
}
/************************************************************/
/* 採用情報 */
#recruit #contents_main #cat_header,
#recruit #contents_main #cat_header .cat_header__sp {
	background-image: url("../img/recruit/header_recruit.jpg");
}
/************************************************************/
/* トピックス */
#topics #contents_main #cat_header,
#topics #contents_main #cat_header .cat_header__sp,
/* 新着情報 */
#news #contents_main #cat_header,
#news #contents_main #cat_header .cat_header__sp,
/* お問い合わせ */
#contact #contents_main #cat_header,
#contact #contents_main #cat_header .cat_header__sp,
/* その他 */
#other #contents_main #cat_header,
#other #contents_main #cat_header .cat_header__sp  {
	background-image: url("../img/topics/header_topics.jpg");
}
/************************************************************/
/* メインタイトル */
/************************************************************/
#contents_main #cat_header h1 {
	color: #fff;
	font-family: 'Noto Serif JP', serif;
	font-weight: 600;
	text-align: center;
	letter-spacing: .1em;
	width: 100%;
	margin: 0;
	padding: .05em 0 .15em;
}
@media ( max-width: 767px ) {
	#contents_main #cat_header {
		background-image: none;
		margin-bottom: 6rem;
	}
	#contents_main #cat_header .cat_header__sp {
		display: flex;
		justify-content: center;
		align-items: flex-end;
		height: 12rem;
	}
	#contents_main #cat_header h1 {
		background-color: rgba(0, 51, 124, 1);
		font-size: 2.2rem;
	}
}
@media ( min-width: 768px ) {
	#contents_main #cat_header {
		display: flex;
		justify-content: center;
		align-items: flex-end;
		height: 300px;
		margin-bottom: 60px;
	}
	#contents_main #cat_header .cat_header__sp {
		background-image: none;
	}
	#contents_main #cat_header h1 {
		background-color: rgba(0, 51, 124, 0.6);
		font-size: 32px;
		font-size: 3.2rem;
	}
}
/************************************************************/
/* 見出し */
/************************************************************/
/* h2 */
#contents_main .contents_hl2 {
	background-color: #f2f2f2;
	border: 1px solid #ccc;
	font-size: 24px;
	font-size: 2.4rem;
	font-weight: normal;
	line-height: 1.2;
	text-align: center;
	margin: 0 0 2rem;
	padding: .3em;
}
@media ( max-width: 767px ) {
	#contents_main .contents_hl2 {
		font-size: 2.1rem;
	}
}
@media ( min-width: 768px ) {
	#contents_main .contents_hl2 {
		font-size: 24px;
		font-size: 2.4rem;
	}
}
/************************************************************/
/* h3 */
#contents_main .contents_hl3 {
	background-color: #999;
	color: #fff;
	font-size: 18px;
	font-size: 1.8rem;
	font-weight: bold;
	line-height: 1.2;
	text-align: center;
	margin: 0 0 1rem;
	padding: .3em;
}
@media ( max-width: 767px ) {
}
@media ( min-width: 768px ) {
}
/************************************************************/
/* 本文 */
#contents_main .contents_lead {
	margin-bottom: 6rem;
}
#contents_main .contents_lead p {
	font-size: 18px;
	font-size: 1.8rem;
	line-height: 2;
}
#contents_main .contents_lead p {
	font-size: 18px;
	font-size: 1.8rem;
	line-height: 2;
}
/************************************************************/
/* 正方形画像が2点横並びのパターン */
@media ( min-width: 768px ) {
	#contents_main .row.col2__photo_square .col:first-of-type figure {
		width: 84%;
		margin-left: auto;
	}
	#contents_main .row.col2__photo_square .col:last-of-type figure {
		width: 84%;
		margin-right: auto;
	}
}
/************************************************************/
/* PC用画像とSP用画像の表示分け */
@media ( max-width: 767px ) {
	#contents_main .figure_pc {
		display: none;
	}
}
@media ( min-width: 768px ) {
	#contents_main .figure_sp {
		display: none;
	}
}
/************************************************************/
/* ボタン */
/* ボタン　標準 */
#contents_main .btn {
	text-align: center;
}
#contents_main .btn a {
	background-color: #28B8F7;
	border: 2px solid #28B8F7;
	border-radius: 5px;
	border-radius: .5rem;
	color: #fff;
	display: block;
	font-family: 'Noto Sans JP', sans-serif;
	line-height: 1.2;
	text-align: center;
	margin: 0 auto;
	margin-top: 20px;
	margin-top: 2rem;
}
@media ( max-width: 767px ) {
	#contents_main .btn a {
		font-size: 1.8rem;
		padding: .8em;
	}
}
@media ( min-width: 768px ) {
	#contents_main .btn a {
		font-size: 24px;
		font-size: 2.4rem;
		padding: .6em;
	}
	#contents_main .btn a:hover {
		background-color: #fff;
		color: #28B8F7;
	}
}
/************************************************************/
/* ボタン　Sサイズ */
#contents_main .btn_s {
	text-align: center;
}
#contents_main .btn_s a {
	background-color: #28B8F7;
	border: 1px solid #28B8F7;
	border-radius: 3px;
	border-radius: .3rem;
	color: #fff;
	display: block;
	font-family: 'Noto Sans JP', sans-serif;
	line-height: 1.2;
	text-align: center;
	margin: 0 auto;
}
@media ( max-width: 767px ) {
	#contents_main .btn_s a {
		font-size: 1.6rem;
		padding: .4em 1em;
	}
}
@media ( min-width: 768px ) {
	#contents_main .btn_s a {
		font-size: 18px;
		font-size: 1.4rem;
		padding: .2em 1em;
	}
	#contents_main .btn_s a:hover {
		background-color: #fff;
		color: #28B8F7;
	}
}
/************************************************************/
/* PDFボタン */
#contents_main #top_btn .col {
	position: relative;
}
#contents_main #top_btn a {
	background-color: #B30B00;
	border: 2px solid #B30B00;
	border-radius: 5px;
	color: #fff;
	display: inline-block;
	font-family: 'Noto Sans JP', sans-serif;
	line-height: 1.2;
	margin: 0;
	padding: .4em 1em;
	position: absolute;
	top: -50px;
	right: 0;
}
@media ( max-width: 767px ) {
	#contents_main #top_btn a {
		top: -4.5rem;
		left: 0;
		margin: auto;
		width: fit-content;
	}
}
@media ( min-width: 768px ) {
	#contents_main #top_btn a:hover {
		background-color: #fff;
		color: #B30B00;
	}
}
/************************************************************/
/* 写真の上余白設定 */
@media ( max-width: 767px ) {
	#contents_main .photoset .col {
		margin-top: 1rem;
	}
}
@media ( min-width: 768px ) {
	#contents_main .photoset .col {
		margin-top: 40px;
		margin-top: 4rem;
	}
}
/************************************************************/
/* テーブル */
/************************************************************/
/* 共通 */
#contents_main table {
	border-collapse: collapse;
	margin: 0;
	padding: 0;
}
#contents_main table th,
#contents_main table td {
	border: none;
	text-align: left;
	line-height: 1.4;
	margin: 0;
	padding: 0;
	vertical-align: top;
}
@media ( max-width: 767px ) {
}
@media ( min-width: 768px ) {
}
/************************************************************/
/* 基本 */
#contents_main table.table_base {
	border-top: 1px solid;
	border-bottom: 1px solid;
	width: 100%;
}
#contents_main table.table_base tr:first-of-type th,
#contents_main table.table_base tr:first-of-type td {
	border-top: none;
}
#contents_main table.table_base th {
	font-weight: bold;
}
#contents_main table.table_base td {
	font-weight: normal;
}
@media ( max-width: 767px ) {
	#contents_main table.table_base {
		border-top: 1px solid;
		border-bottom: 1px solid;
		width: 100%;
	}
	#contents_main table.table_base > tbody > tr > th,
	#contents_main table.table_base > tbody > tr > td {
		display: block;
	}
	#contents_main table.table_base th {
		border-top: 1px dotted #666;
		font-weight: bold;
		padding: .5em 0 .1em;
	}
	#contents_main table.table_base td {
		font-weight: normal;
		padding: .1em 0 .5em;
	}
}
@media ( min-width: 768px ) {
	#contents_main table.table_base th,
	#contents_main table.table_base td {
		border-top: 1px dotted #666;
		padding: .5em 1em;
	}
}
/************************************************************/
/* 役員 */
#contents_main table.table_member th,
#contents_main table.table_member td {
	border: none;
	font-weight: normal;
	padding: 0 1em 0 0;
}
@media ( max-width: 767px ) {
}
@media ( min-width: 768px ) {
}



