@charset "utf-8";
/* CSS Document */
/*------------------------------------------
■ 基本設定
------------------------------------------*/
body{
	color:#000;
	font-size:14px;
	line-height:1.4;
	font-family: "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", Meiryo, メイリオ, Verdana, Arial, sans-serif;
}
a{
	color:#000;
	text-decoration:none;
}

img{
	border: 0;
	max-width:100%;/*フルードイメージ-コンテナ幅によって可変*/
	height:auto;
}
/*------------------------------------------
■ float対策
------------------------------------------*/
.fcl {zoom: 100%;}

.fcl:after {
content: " ";
clear: both;
height: 0;
display: block;
visibility: hidden;
}
/*
=========================================
  PC・スマホ切り替え用
=========================================
*/
.pc_none {display: none !important;}
.sp_none {}
/*
=========================================
	Base Layout
=========================================
*/
/*ALL and Smart Phone*/
.container{
	margin:0 auto;
	max-width:1200px;

}

#main{
	margin-bottom:50px;
}
.section{
	margin-bottom:100px;
}
.full{
	display: block;
	width: 100%;
	height: auto;
}
.br_pc{
	display:none;
}
/*
=========================================
	ヘッダー
=========================================
*/
#header{
	width:100%;
	height:80px;
	position:relative;
	z-index:9999;
}
.logo{
	float:left;
}
.nav_area{
	float:right;
}
.contact{
}
.contact_tel{
	float:right;
	font-weight:bold;
	font-size:230%;
	margin-right:30px;
	overflow:hidden;
	position:relative;
}
#icon01_01{
	color:#d9887a;
	border-bottom:1px solid #d9887a;
	font-size:27px;
	font-weight:bold;
	overflow:hidden;
	position:relative;
	margin-bottom:10px;
}
.contact_tel:before{
	content:"";
	display:inline-block;
	width:27px;
	height:20px;
	margin-right:8px;
	background:url(../images/icon_tel.png) no-repeat;
	background-size:contain;
	position:relative;
	bottom:1px;
}
.text_big{
	font-weight:bold;
	font-size:200%;
	margin-left:5px;
}
.contact_btn{
	margin-top:5px;
	width:220px;
	height:40px;
	float:right;
}
.contact_btn_dsn{
	background-color:#EC8E25;
	padding:12px 25px;
	font-weight:bold;
	font-size:20px;
	text-align:center;
	color:#fff;
	transition: all 0.3s linear;
}
.contact_btn_dsn:hover{
	background-color:#323333;
	color:#fff;
}
.contact_btn_dsn:before{
	content:"";
	display:inline-block;
	width:26px;
	height:20px;
	margin-right:12px;
	background:url(../images/icon_contact.png) no-repeat;
	background-size:contain;
	position:relative;
	bottom:-4px;
}
#gnav {
	height: 20px;
	margin-top: 30px;
	z-index: 10;
}
#gnav ul {
    display: flex;
    align-items: center; /* 上下中央揃え */
    list-style: none;
    padding: 0;
    margin: 0;
}

#gnav li {
    margin-right: 30px; /* 各メニューの間隔 */
}

#gnav li a {
    text-decoration: none;
    color: #000;
    font-weight: bold;
}

/* 「会社概要」の次にある要素を右端に寄せる */
#gnav li.nav-sns:first-of-type {
    margin-left: auto;
}

/* SNSアイコンのスタイル */
.nav-sns img {
    width: 32px; /* アイコンのサイズ */
    height: auto;
    display: block;
}

/* お問い合わせボタンのスタイル */
.nav-contact {
    margin-right: 0 !important; /* 右端の余白を消す */
}

.nav-contact a {
    display: flex;
    align-items: center;
    background-color: #004494; /* 濃い青色 */
    color: #ffffff !important;
    padding: 0 40px;
    font-size: 1em;
    transition: background-color 0.3s;
}

.nav-contact a:hover {
    background-color: #003370; /* ホバー時に少し暗く */
}

/* アイコン（メールマーク）を擬似要素で入れる場合（任意） */
.nav-contact a::before {
    content: '✉'; /* もしWebフォント等があればここを調整 */
    margin-right: 10px;
    font-size: 2em;
}
#header .fixbar {
  position: absolute;
  width: 100%;
  top: 0px;
  
}
#header.fixed .fixbar {
  position: fixed;
  top: 0px;
  
}
.fixbar{
	height:80px;
	border-bottom:2px solid #fff;
	background-color:#fff;
	box-shadow: 0px 3px 3px rgba(0,0,0,0.1);
  -webkit-box-shadow: 0px 3px 3px rgba(0,0,0,0.1);
  -moz-box-shadow: 0px 3px 3px rgba(0,0,0,0.1);
  
}
.header_inner{
	width: 100%;
	margin: 0 auto;
	max-width: 1500px;
}
/*
=========================================
	ビジュアル
=========================================
*/
#visual{
    overflow:hidden;
    position:relative;
    width:100%;
}

.visual_inner{
    position:relative;
    left:50%;
    width:4500px;
    margin-left:-2250px;
	background: url(../images/back01.jpg);
	background-size: contain;
}
.visual_inner li {
    width:1500px;
}
#slideFilterL, #slideFilterR {
    position:absolute;
    top:0;
    width:1500px;
    height:600px;
    opacity:0.8;
    filter:alpha(opacity=80);
    -ms-filter:"alpha( opacity=80 )";
    background:#fff;
}
#slideFilterL {
    left:0;
}
#slideFilterR {
    right:0;
}
#visual .bx-controls {
	display:none;
}
/*
=========================================
	イントロ
=========================================
*/
.intro_box01{
	width:33.33333%;
	height:260px;
	float:left;
	color:#fff;
	position: relative;
	overflow: hidden;
	text-align:center;
}
.intro_hover{
	position: absolute;
	top: -100%;
	left: 0;
	z-index: 2;
	width: 100%;
	height: 100%;
	-webkit-transition: .5s;
	transition: .5s;
	opacity: 1;
	text-align:center;
	background: rgba(70,71,68,.9);
}

.intro_box01:hover .intro_hover {
	top: 0;
	left: 0;
}
.intro_hover img{
	margin-top:60px;
}
.intro_hover p{
	text-align:center;
	font-family: 'Bree Serif', serif;
	font-size:120%;
}
.intro_color1{
	background-color:#2DA0D2;
}
.intro_color2{
	background-color:#EC8E25;
}
.intro_color3{
	background-color:#86BC43;
}

.intro_box01 h2{
	font-size:130%;
	font-weight:bold;
	text-align:center;
	padding:15px 0;
}
.intro_text{
	font-size:90%;
	text-align:center;
	padding:15px 30px;
}
/*
=========================================
	企業理念
=========================================
*/
.text_box01{
	width:50%;
}
.text_box01_title{
	font-size:200%;
	font-weight:bold;
	text-align:center;
	margin-bottom:10px;
}
.text_box01_text{
	font-size:100%;
	text-align:center;
	line-height:2em;
	letter-spacing:0.2em;
}
.president{
	margin-top:30px;
}
.president_left{
	float:left;
	width:25%;
	margin-right:3%;
	margin: 0;
	padding: 0;
	background: #fff;
	overflow: hidden
}

.president_right{
	float:right;
	width:72%;
}
.president_name{
	font-size:120%;
	font-weight:bold;
	margin-bottom:10px;
}

/*
=========================================
	column3_box
=========================================
*/
.title_bar{
  font-size: 200%;
  color: #000;
  font-weight: bold;
  margin: 0 auto 30px;
  text-align: center;
}
.title_bar span{
  font-size: 50%;
  display: inline-block;
  margin-bottom: 20px;
  color: #004097;
}
/* 下線（グラデーションライン） */
.title_bar::after {
  content: "";
  display: block;
  width: 340px;
  height: 3px;
  margin: 12px auto 0;
  background: linear-gradient(
    to right,
    rgba(242, 209, 99, 0),
    #004097 50%,
    rgba(242, 209, 99, 0)
  );
}
.column3_box{
	float:left;
	width:33.3333%;
	border-right:1px solid #CBCBCB;
	padding-right:3%;
	padding-left:3%;
}
.column3_box:last-child{
	border-right:none;
}
.column3_box:first-of-type{
}
.column3_title{
	font-size:130%;
	font-weight:bold;
	text-align:center;
	margin:10px 0;
}
.column3_text{
	font-size:90%;
}
/*
=========================================
	carousel
=========================================
*/

.carousel_box{
	padding:20px 0;
	background-color:#fff;
	width: 470px !important;
}
.carousel_box img{
	width:420px;
	margin:0 auto;
}
.carousel_title{
	font-size:130%;
	font-weight:bold;
	text-align:center;
	margin:10px 0;
	padding:0 20px;
}
.carousel_text{
	font-size:90%;
	text-align:center;
	padding:0 20px;
}
.rsc_box {
  display: flex;
  gap: 40px;              /* 間隔は好みで */
  align-items: flex-start;
  padding: 0 100px;
}
.rsc_reverse {
  display: flex;
  flex-direction: row-reverse;
}
.rsc_property {
  flex: 0 0 50%;
  padding-top: 30px;
}
.rsc_box .bx-wrapper {
  flex: 0 0 50%;
  max-width: 470px!important;
}
.rsc_box .bx-pager {
	display: none;
}
.rsc_title {
  font-size: 180%;
  color: #000;
  font-weight: bold;
  margin: 0 0 20px;
  text-align: left;
}
.rsc_title::after {
  content: "";
  display: block;
  width: 340px;
  height: 3px;
  margin: 12px 0 0;
  background: linear-gradient(
    to right,
    #bf1c20 0,
    #bf1c20 60px,
    rgba(191, 28, 32, 0) 60px,
    rgba(191, 28, 32, 0) 63px,
    #f2d163 63px,
    rgba(242, 209, 99, 0) 100%
  );
}
.address {
  font-size: 150%;
  color: #000;
  margin: 0 0 30px;
  text-align: left;
}
.rsc_txt {
  font-size: 100%;
  line-height: 1.8em;
}
/*
=========================================
	business
=========================================
*/
.business {
  background-color: #e9f1fc;
  padding:  120px 0;
  margin-bottom: -50px;
}
.business_wrap {
  display: flex;
  align-items: flex-start;
  gap: 0;                 /* ← 重なりたいので gap は 0 */
  position: relative;     /* ← 重なり用 */
  max-width: 1000px;
  margin: 120px auto 0;
}

/* 左：画像 */
.business_img {
  flex: 0 0 50%;
  position: relative;
  z-index: 2;             /* ← 写真を手前に */
}
.business_img {
  transform: translateY(-30px); /* ← 上にずらす */
}
.business_img_revers {
  margin-left: -30px!important;
  margin-right: 0!important;
}

/* 少し重ねたい場合（右に食い込ませる） */
.business_img {
  margin-right: -60px; /* ← テキスト側に被せる */
}

/* 右：テキスト */
.business_txt {
  flex: 0 0 56%;
  position: relative;
  z-index: 1;
}
.business_txt {
  background: #fff;
  padding: 40px 40px 40px 60px;
  height: 300px;
}
.business_txt_revers {
  background: #fff;
  padding: 40px 60px 40px 40px!important;
  height: 300px;
}
.business_txt p {
  margin-bottom: 1em;
  line-height: 2em;
}
.business_title {
  font-size: 180%;
  color: #000;
  font-weight: bold;
  margin: 0 0 20px;
  text-align: left;
  line-height: 1.4;
}
.business_title span {
  font-size: 60%;
  color: #000;
  font-weight: bold;
  margin: 0 0 20px;
  text-align: left;
  line-height: 1.4;
}
.dots {
  color: #004097!important;
  vertical-align: middle; /* ← 文字の上下中央 */
  margin-right: 6px; 
}
.sns_btn {
  display: block;
  width: fit-content;
  margin: 60px auto 0;
  background-color: #004494;
  padding: 12px 25px;
  font-weight: bold;
  font-size: 20px;
  text-align: center;
  color: #fff;
  text-decoration: none;
  transition: all 0.3s linear;
}

/* ホバー時の演出（おまけ） */
.sns_btn:hover {
    background-color: #003370;
    color: #fff;
}
.sns_btn:visited {
    color: #fff;
}
/*
=========================================
	column1_box
=========================================
*/
.column1_box{
	width:80%;
	margin:0 auto 20px;
	padding:8px;

	background-color:#fcf9e0;
}
.column1_inner{
	border:3px solid #fff;
	padding:20px;
}
.column1_left{
	float:left;
	width:16%;
	margin-right:4%;
}
.column1_left img{
	border-radius: 75px;
	max-width:150px;
}
.column1_right{
	float:left;
	width:80%;
}
.column1_title{
	font-size:130%;
	font-weight:bold;
	border-bottom:1px solid #333;
	padding-bottom:10px;
	margin-bottom:10px;
}
.column1_text{
	font-size:100%;
	line-height:1.8em;
}
.square{
	color:#EC8E25;
	margin-right:10px;
}
/*
=========================================
	company
=========================================
*/
.company{
    padding: 120px 0;
}
.company-info-table {
    width: 100%;
    border-collapse: collapse;
    margin: 20px 0;
    font-size: 16px;
    border-top: 1px solid #ddd;
}

.company-info-table th, 
.company-info-table td {
    padding: 15px;
    border-bottom: 1px solid #ddd;
    line-height: 1.6;
}

.company-info-table th {
    width: 25%;
    background-color: #f9f9f9;
    text-align: left;
    font-weight: bold;
    color: #333;
    vertical-align: top;
}

/* 取引先リストを横に並べてスッキリさせる */
.client-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 15px; /* 縦横の間隔 */
}

.client-list span::after {
    content: " /"; /* 区切り線を入れる（お好みで） */
    color: #ccc;
    margin-left: 10px;
}

.client-list span:last-child::after {
    content: ""; /* 最後の項目の後は区切り線を消す */
}

.profile-section {
    padding: 60px 20px;
    background-color: #fff;
}

.profile-container {
    max-width: 900px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 40px;
}

/* 写真部分 */
.profile-image {
    flex: 1;
    max-width: 350px;
}

.profile-image img {
    width: 100%;
    height: auto;
    border-radius: 4px; /* わずかに角を丸く */
    box-shadow: 10px 10px 0px #004494; /* ロゴのネイビーでアクセント */
}

/* テキスト部分 */
.profile-text {
    flex: 1.5;
}

.subtitle {
    color: #e67e22; /* ロゴのオレンジをアクセントに */
    font-weight: bold;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-bottom: 5px;
}

.name {
    font-size: 32px;
    margin-bottom: 20px;
    color: #333;
    border-bottom: 2px solid #eee;
    padding-bottom: 10px;
}

.name span {
    font-size: 16px;
    color: #888;
    margin-left: 15px;
    font-weight: normal;
}

.biography p {
    line-height: 1.8;
    margin-bottom: 15px;
    color: #444;
    text-align: justify;
}



.map_area{
	margin:30px auto;
	width:1200px;
}
#map{
	width:1200px;
	height:500px;
	margin:0 auto;
}
/*
=========================================
	問い合わせフォーム
=========================================
*/
.form_inner{
	max-width:700px;
	margin:0 auto;
}
.form_btn_dsn{
	background-color:#004097;
	transition: all 0.3s linear;
	color:#fff;
	width: 240px;
	height: 60px;
	margin-top: 40px;
	font-weight: bold;
}
.form_btn_dsn:hover{
	background-color:#003370;
	color:#fff;
}
#contact {
	padding: 120px 0 200px;
	margin-bottom: -100px;
}
/*
=========================================
	ぺージトップへ
=========================================
*/
.page_top {
    display: none;
    position: fixed;
    bottom: 30px;
    right: 15px;
}
.page_top a {
    display: block;
    background-color: #888;
    text-align: center;
    color: #fff;
    font-size: 20px;
    text-decoration: none;
    padding: 7px 13px;
	border-radius:5px;
	
}
.page_top a:hover {
    display: block;
    background-color: #888;
    text-align: center;
    color: #fff;
    font-size: 20px;
    text-decoration: none;
    padding: 7px 13px;
	filter:alpha(opacity=50);
    -moz-opacity: 0.5;
    opacity: 0.5;
}
/*
=========================================
	フッター
=========================================
*/
.footer_inner{
	width:1200px;
	margin:0 auto;
}
.footer_top{
	background-color:#464744;
	padding:30px 0;
	color:#fff;
}
.footer_nav{
}
.footer_nav ul{
	text-align: center;
}
.footer_nav li{
	display: inline;
	border-right:1px solid #fff;
	padding:0 30px;
	font-size:90%;
}
.footer_nav li a{
	color:#fff;
}
.footer_nav li a:hover{
	text-decoration:underline;
}
.footer_nav li:first-child{
	border-left:1px solid #fff;
}
.footer_logo{
	text-align:center;
	margin-bottom:20px;
}
.footer_logo p{
	text-align:center;
	font-size:90%;
}
.footer_bottom{
	background-color:#000;
}
.footer_bottom p{
	width:1200px;
	margin:0 auto;
	text-align:center;
	padding:30px 0;
	font-size:90%;
	color:#fff;
}
.social-links {
  display: flex;          /* 横並びにする魔法の呪文 */
  align-items: center;    /* 縦位置を中央に揃える */
  gap: 16px;              /* アイコン同士の隙間（好みに合わせて調整） */
  justify-content: center;
  margin-bottom: 20px;
}
.sns-container .social-links {
  display: flex;          /* 横並びにする魔法の呪文 */
  align-items: center;    /* 縦位置を中央に揃える */
  gap: 16px;              /* アイコン同士の隙間（好みに合わせて調整） */
  justify-content: left;
  margin-bottom: 20px;
}
.social-links a img {
  width: 30px;            /* ここで画像のサイズを指定（小さくする） */
  height: auto;           /* 縦横比を固定 */
  transition: 0.3s;       /* ふわっと変化させるアニメーション */
}
.footer_nav .social-links a img {
  filter: brightness(0) invert(1);
}
.social-links a:hover img {
  opacity: 0.7;           /* マウスを乗せたら少し薄くする（カッコいい演出） */
}

/* お知らせ・スタッフ募集セクション */
.news-recruit {
    margin: 40px 0;
    padding: 25px;
    border: 1px solid #e0e0e0;
    display: flex;
    align-items: flex-start;
    background-color: #fafafa; /* ほんの少しグレーにして表と区別 */
}

.news-label {
    background: #00469b; /* ロゴやボタンに近い青 */
    color: #fff;
    padding: 4px 12px;
    font-size: 14px;
    font-weight: bold;
    margin-right: 20px;
    flex-shrink: 0;
}

.news-content {
    flex-grow: 1;
}

.recruit-title {
    font-weight: bold;
    font-size: 18px;
    margin-bottom: 10px;
    color: #333;
}

.recruit-text {
    font-size: 15px;
    line-height: 1.6;
    color: #666;
}

.recruit-text a {
    color: #00469b;
    text-decoration: underline;
    font-weight: bold;
}

.recruit-text a:hover {
    text-decoration: none;
}