@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・スマホ切り替え用
=========================================
*/
.sp_none {
display: none;
}
.max_w {
max-width: 100%;
}
/*
=========================================
	Base Layout
=========================================
*/
/*ALL and Smart Phone*/
.container{
	margin:0 auto;
	width:85%;
}
.container:after{
	content:"";
	display:block;
	clear:both;
}
#main{
	margin-bottom:20px;
}
.section{
	margin-bottom:30px;
}
.full{
	margin-left:-15px;
	margin-right:-15px;
}
/*
=========================================
	ヘッダー
=========================================
*/
#header{
	height:45px;
	margin-top:0;
	margin-bottom:10px;
}
.logo{
	
}
.logo img{
	max-width:140px;
	display:block;
}
#gnav {
		display: none;
	}

	#rwdMenuWrap {
		width: 100%;
		top:0;
		right:0;
		z-index: 9999;
		position:fixed;
	}

	#rwdMenuWrap #switchBtnArea {
		width: 100%;
		height: 56px;
		position: relative;
	}

	#rwdMenuWrap #switchBtnArea #switchBtn {
		top: 10px;
		right: 10px;
		width: 40px;
		height: 40px;
		display: block;
		background: #fff;
		position: absolute;
		border-radius: 5px;
	}

	#rwdMenuWrap #switchBtnArea #switchBtn span {
		left: 20%;
		width: 60%;
		height: 4px;
		display: block;
		position: absolute;
		background-color: #323333;
		border-radius: 5px;
		transition: all 0.2s linear;
	}
	#rwdMenuWrap #switchBtnArea #switchBtn span:nth-of-type(1) {
		top: 10px;
		-webkit-transform: rotate(0);
		transform: rotate(0);
	}
	#rwdMenuWrap #switchBtnArea #switchBtn span:nth-of-type(2) {
		top: 18px;
		-webkit-transform: scale(1);
		transform: scale(1);
	}
	#rwdMenuWrap #switchBtnArea #switchBtn span:nth-of-type(3) {
		bottom: 10px;
		-webkit-transform: rotate(0);
		transform: rotate(0);
	}

	#rwdMenuWrap #switchBtnArea #switchBtn.btnClose span:nth-of-type(1) {
		top: 18px;
		-webkit-transform: rotate(-45deg);
		transform: rotate(-45deg);
	}
	#rwdMenuWrap #switchBtnArea #switchBtn.btnClose span:nth-of-type(2) {
		-webkit-transform: scale(0);
		transform: scale(0);
	}
	#rwdMenuWrap #switchBtnArea #switchBtn.btnClose span:nth-of-type(3) {
		bottom: 18px;
		-webkit-transform: rotate(45deg);
		transform: rotate(45deg);
	}

	#rwdMenuWrap ul {
		width: 100%;
		display: none;
		
	}

	#rwdMenuWrap ul li {
		width: 100%;
		border-bottom: #aaa 1px solid;
		
	}

	#rwdMenuWrap ul li a {
		padding: 15px 20px;
		text-align: left;
		display: block;
		background: #464744;
		position: relative;
		color: #fff;
	}

	#rwdMenuWrap ul li a:after {
		content: '';
		margin-top: -4px;
		top: 50%;
		right: 15px;
		width: 8px;
		height: 8px;
		color: #fff;
		font-size: 1em;
		font-weight: bold;
		line-height: 1.2em;
		display: block;
		position: absolute;
		border-top: 2px solid #b0b0b0;
		border-right: 2px solid #b0b0b0;
		-webkit-transform: rotate(45deg);
		transform: rotate(45deg);
	}
#nav01,#nav02,#nav03,#nav04,#nav05{
	margin-top:-61px;
    padding-top:61px;
}

#header_link a{
	z-index: 9999;
	position:relative;
	width: 30%;
	display: block;
}
#visual .bx-controls {
	display:none;
}
#visual {
    margin-bottom: -30px;
}
.bx-viewport ul {
  transform: none !important;
  transition: none !important;
}

/*
=========================================
	イントロ
=========================================
*/
.intro_box01{
	width:100%;
	color:#fff;
	text-align:center;
}
.intro_color1{
	background-color:#2DA0D2;
}
.intro_color2{
	background-color:#EC8E25;
}
.intro_color3{
	background-color:#86BC43;
}
.intro_ph_area01{
	background:url(../images/intro_ph1.jpg) no-repeat center;
}
.intro_ph_area02{
	background:url(../images/intro_ph2.jpg) no-repeat center;
}
.intro_ph_area03{
	background:url(../images/intro_ph3.jpg) no-repeat center;
}


.intro_box01 h2{
	font-size:130%;
	font-weight:bold;
	text-align:center;
	padding:15px 0;
}
.intro_box01 p{
	font-size:90%;
	text-align:center;
	padding:15px 30px;
}
/* FV 全体 */
picture {
  display: block;
}

picture img {
  width: 100%;
  height: auto;
  display: block;
}


/*
=========================================
	企業理念
=========================================
*/
.text_box01{
	width:90%;
}
.text_box01_title{
	font-size:150%;
	font-weight:bold;
	text-align:center;
	margin-bottom:10px;
}
.text_box01_text{
	font-size:90%;
	text-align:center;
}

.president{
	margin-bottom:20px;
	margin-top:20px;
}
.president_left{
	float:left;
	width:30%;
	margin-right:3%;
}
.president_right{
	float:right;
	width:67%;
}
.president_name{
	font-size:110%;
	font-weight:bold;
	margin-bottom:5px;
}
.president_text{
	font-size:90%;
}
/*
=========================================
	column3_box
=========================================
*/
.title_bar{
	font-size:150%;
	color:#000;
	font-weight:bold;
	padding:8px 0;
	margin-bottom:20px;
	text-align:center;
}
.title_bar span{
	font-size: 60%;
	display: inline-block;
	margin-bottom: 0.5em;
	color: #004097;
}
/* 下線（グラデーションライン） */
.title_bar::after {
  content: "";
  display: block;
  width: 60%;
  height: 3px;
  margin: 4px auto 0;
  background: linear-gradient(
    to right,
    rgba(242, 209, 99, 0),
    #004097 50%,
    rgba(242, 209, 99, 0)
  );
}
.column3_box{
	margin-bottom:20px;
	padding-bottom:20px;
	border-bottom:1px solid #CBCBCB;
	text-align:center;
}
.column3_box img{
	width:50%;
}
.column3_box:last-child{
	border-bottom:none;
}
.column3_title{
	font-size:120%;
	font-weight:bold;
	text-align:center;
	margin:5px 0;
}
.column3_text{
	font-size:90%;
}
/*
=========================================
	carousel
=========================================
*/
.carousel_box{
	padding:20px 0;
	background-color:#fff;
	width: 85vw!important;
}
.carousel_box img{
	width:85%;
	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;
  align-items: flex-start;
  flex-direction: column;
}
.rsc_reverse {
  display: flex;
  flex-direction: column;
}
.rsc_property {
  padding-top: 30px;
}
.rsc_box .bx-wrapper {
  max-width: 85vw!important;
}
.rsc_box .bx-pager {
	display: none;
}
.rsc_title {
  font-size: 150%;
  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: 130%;
  color: #000;
  margin: 0 0 30px;
  text-align: left;
}
.rsc_txt {
  font-size: 100%;
  line-height: 1.8em;
}
/*
=========================================
	business
=========================================
*/
.business {
  background-color: #e9f1fc;
  padding: 60px 0;
  margin-bottom: -50px; 
}
.business_wrap {
  display: flex;
  align-items: flex-start;
  margin: 30px auto 0;
  flex-direction: column;
}
.business_txt {
  background: #fff;
  padding: 20px;
}
.business_txt_revers {
  background: #fff;
  padding: 20px;
}
.business_txt p {
  margin-bottom: 1em;
  line-height: 2em;
}
.business_title {
  font-size: 120%;
  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: 40px auto 30px;
  background-color: #004494;
  padding: 12px 25px;
  font-weight: bold;
  font-size: 14px;
  text-align: center;
  color: #fff;
  text-decoration: none;
  transition: all 0.3s linear;
}

/* ホバー時の演出（おまけ） */
.sns_btn:hover {
    background-color: #003370;
    color: #fff;
}

/*
=========================================
	column1_box
=========================================
*/
.column1_box{
	margin:0 auto 15px;
	padding:8px;
	background-color:#fcf9e0;
}
.column1_inner{
	border:3px solid #fff;
	padding:15px;
}
.column1_left{
	text-align:center;
}
.column1_left img{
	border-radius: 75px;
	max-width:40%;
}
.column1_right{
}
.column1_title{
	font-size:120%;
	font-weight:bold;
	border-bottom:1px solid #333;
	padding-bottom:10px;
	margin-bottom:10px;
	text-align:center;
}
.column1_text{
	font-size:90%;
		text-align:center;

}
.square{
	color:#EC8E25;
	margin-right:10px;
}
/*
=========================================
	company
=========================================
*/
.company {
    padding: 30px 0 60px;
}
.company_title{
	font-size:180%;
	margin-top:10px;
}
.company_table{
	font-size : 90%;
	margin:20px auto;
	width:90%
}
.company_table dt{
	float:left;
	clear:both;
	width:25%;
	padding-top: 20px;
	padding-bottom:20px;
	padding-right:10px;
	border-bottom: #f2d163 1px solid;
}
.company_table dd{
	width:80%;
	margin-left:25%;
	padding-top: 20px;
	padding-bottom:20px;
	padding-left:10px;
	border-bottom: #f2d163 1px solid;
}
.company_ph_area img{
	margin-right:1%;
	margin-bottom:5px;
	width:48%;
}
.company_ph_area img:nth-child(even){
	margin-right:0;
}
.map_area{
	position: relative;
	padding-bottom: 70%;
	padding-top: 30px;
	height: 0;
	overflow: hidden;
}
#map{
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
/* ==========================================
   スマートフォン用（画面幅768px以下）
   ========================================== */
/* スマホでは縦並びにする */
.profile-container {
    display: block;      /* flexを解除して縦並びに */
    padding: 0 20px;
	margin-top: 60px;
}

.profile-image {
    width: 200px;        /* 写真を小さく */
    margin: 0 auto 30px; /* 中央寄せにして下に余白 */
}

.profile-image img {
    border-left: none;
    padding-left: 0;
    border-top: 4px solid #004494; /* ラインを上に移動 */
    padding-top: 15px;
}

.profile-content {
    text-align: center;  /* テキストを中央寄せ */
}

/* テキスト部分 */
.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;
}

    /* 2. 会社概要テーブルの調整 */
    .company-info-table th,
    .company-info-table td {
        display: block;          /* テーブルを縦にバラす */
        width: 100% !important;
        box-sizing: border-box;
    }

    .company-info-table th {
        background-color: #f0f4f8; /* 項目名を少し強調 */
        padding: 8px 15px;
        border-bottom: none;
    }

    .company-info-table td {
        padding: 10px 15px 20px; /* 下に余白を持たせる */
    }

    /* 取引先リストの調整 */
    .client-list {
        font-size: 14px;         /* 文字を少し小さく */
    display: flex;
    flex-wrap: wrap;
    gap: 8px 15px; /* 縦横の間隔 */
}
.client-list span{
    margin-right: 5px;
}
.client-list span::after {
    content: " /"; /* 区切り線を入れる（お好みで） */
    color: #ccc;
}

.client-list span:last-child::after {
    content: ""; /* 最後の項目の後は区切り線を消す */
}
    /* 3. 主な業務（画像付き）の調整 */
    /* もし3つの業務を並べている場合はここを調整 */
    .services-container {
        display: block;
    }

    .service-item {
        margin-bottom: 40px;
    }
    
    /* 4. SNSボタンの調整 */
    .sns_btn {
        width: 70%;              /* スマホではボタンを押しやすく幅広に */
        font-size: 14px;
        padding: 15px 10px;
    }
    .sns_btn:visited {
        color: #fff;
    }
/*
=========================================
	問い合わせフォーム
=========================================
*/
.form_inner{
	width:85%;
	margin:0 auto;
}
.form_btn_dsn{
	background-color:#004097;
	transition: all 0.3s linear;
	color:#fff;
	width: 200px;
	height: 50px;
	margin-top: 40px;
	font-weight: bold;
}
.form_btn_dsn:hover{
	background-color:#003370;
	color:#fff;
}
#contact {
	padding: 60px 0 100px;
	margin-bottom: -20px;
}
/*
=========================================
	ぺージトップへ
=========================================
*/
.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: 15px;
    text-decoration: none;
    padding: 5px 10px;
	border-radius:5px;
	filter:alpha(opacity=50);
    -moz-opacity: 0.5;
    opacity: 0.5;
}
.page_top a:hover {
    display: block;
    background-color: #888;
    text-align: center;
    color: #fff;
    font-size: 15px;
    text-decoration: none;
    padding: 5px 10px;
	filter:alpha(opacity=50);
    -moz-opacity: 0.5;
    opacity: 0.5;
}
/*
=========================================
	フッター
=========================================
*/
.footer_inner{
	width:100%;
	margin:0 auto;
}
.footer_top{
	background-color:#464744;
	padding:0 0 20px 0;
	color:#fff;
}

.footer_nav li{
	border-bottom:1px solid #7f8080;
	padding:10px 30px;
	font-size:90%;
	text-align: center;
	width:100%;
}
.footer_nav li a{
	color:#fff;
	display: block;
	text-align: center;
}
.footer_nav li a:hover{
	text-decoration:underline;
}

.footer_logo{
	text-align:center;
	width:90%;
	margin:20px auto 0;
	padding: 20px 0;
}
.footer_logo img{
	width:50%;
}
.footer_logo p{
	text-align:center;
	font-size:90%;
	
}
.footer_bottom{
	background-color:#000;
}
.footer_bottom p{
	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;           /* マウスを乗せたら少し薄くする（カッコいい演出） */
}

/* --- お知らせ・スタッフ募集セクション (SP) --- */
.news-recruit {
    margin: 30px 0;
    padding: 20px;
    display: block; /* 縦並びに変更 */
    border: 1px solid #e0e0e0;
    background-color: #fafafa;
}

.news-label {
    display: inline-block; /* ラベルの幅を文字に合わせる */
    background: #00469b;
    color: #fff;
    padding: 4px 12px;
    font-size: 13px;
    font-weight: bold;
    margin-bottom: 15px; /* 下の本文との間隔 */
}

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

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

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