@charset "utf-8";

/* ---------------------
Import file
--------------------- */
@import url("base.css");

/* ---------------------
Common style
--------------------- */

body{
	font-size:12px;
	color:#172051;
	font-weight: normal;
}

a,
a:link,
a:visited{
	outline : 0;
	color:#172051;
	text-decoration: none;
	outline:0;
	opacity:1.0;
	filter: alpha(opacity=100);
	-ms-filter: "alpha( opacity=100 )";
}

.uline a,
.uline a:link,
.uline a:visited{text-decoration: underline;}

a:hover, .uline a:hover{
	text-decoration: none;
	color: #666;
}


a.off:hover,
a:link img,
a:visited img{
	opacity:1.0;
	filter: alpha(opacity=100);
	-ms-filter: "alpha( opacity=100 )";
}

.mr7{margin-right:7px;}
.mr8{margin-right:8px;}
.pt1{padding-top:1px;}
.mt25{margin-top:25px;}
.mt60{margin-top:60px;}
.w950{width:950px;}
.w768{width:768px;}

/* ---------------------
common layout
--------------------- */
/*header*/
#header{
	position: relative;
	margin:0 auto;
	padding-top:8px;
}

h1{
	height: 87px;width: 228px;
	position: absolute;
	top: 0px;left: -7px;
	margin:0;
	padding:21px 22px 29px 26px;	
	z-index:10;
	background-image: url(../img/logobox.png);
	background-repeat: no-repeat;
	background-position: left top;
}
h1 a{
	background-image: url(../img/logo.gif);
	background-repeat: no-repeat;
	height: 87px;width: 228px;
	text-indent: -9999px;
	display: block;
	z-index:10;
}
#decoration{
	position: absolute;
	right: 43px;
	top: 8px;
	z-index:10;
}

.page{
	background-color: #c9e4f1;
	background-image: url(../img/bg_sec.gif);
	background-repeat: no-repeat;
	background-position: top center;
}

#headerbox{
	background-image: url(../img/bg_sec_headerbox.png);
	background-repeat: repeat-x;
	background-position: left top;
}

#header{
	width:950px;
	padding-top:103px;
	position: relative;
}



#header h2{padding-bottom:19px;}

#pan{margin-bottom:10px;padding-top:3px;}
#pan span{
	padding-right: 5px;
	padding-left: 5px;
}

#wrap{
	width: 950px;
	margin-right: auto;
	margin-left: auto;
}

.mainbox{
	width:678px;
	float:left;
	margin-right:15px;
	background-color:#fff;
}


#sidebar{
	width:257px;
	float:left;
	background-color:#fff;
}

/*global menu*/
#gmenu{
	width:690px;height:51px;
	padding:0px;
	margin: 0;
	position: absolute;
	top: 26px;
	right: 0px;
}

#gmenu li{
	float: left;
	height: 51px;
	background-image: url(../img/gmenu_line.gif);
	background-repeat: no-repeat;
	background-position: 0px 3px;
	padding-left: 1px;	
}

#gmenu li a,
#gmenu li a:link,
#gmenu li a:visited,
#gmenu li a:hover,
#gmenu li a:active{
	display: block;
	background-repeat: no-repeat;
	height: 51px;
	text-indent: -9999px;
	background-position: center center;
}

#gmenu #gm01{width:113px;padding-left:0;background:none;}
#gmenu #gm02{width:113px;}
#gmenu #gm03{width:113px;}
#gmenu #gm04{width:113px;}
#gmenu #gm05{width:113px;}
#gmenu #gm06{width:113px;}

#gmenu #gm01 a{width:113px;background-image: url(../img/gmenu01.gif);}
#gmenu #gm02 a{width:113px;background-image: url(../img/gmenu02.gif);}
#gmenu #gm03 a{width:113px;background-image: url(../img/gmenu03.gif);}
#gmenu #gm04 a{width:113px;background-image: url(../img/gmenu04.gif);}
#gmenu #gm05 a{width:113px;background-image: url(../img/gmenu05.gif);}
#gmenu #gm06 a{width:113px;background-image: url(../img/gmenu06.gif);}

.en_button2{
	padding: 0px;
	position: absolute;
	margin-top: -75px;
	margin-right: 0px;
	margin-bottom: 0px;
	margin-left: 884px;
	z-index: 999;
}

/*footer*/
#footerbox a{color:#fff;}
#footerbox a:hover{color:#666;}
#finfo a:hover{color: #8ec323;}
#fmenu a{
	color: #8ec323;
	text-decoration: underline;
	letter-spacing: 0.2em;
}

#footerbox{
	background-color:#172051;
	color:#fff;
	margin-top:53px;padding-bottom:35px;
}

#gotop_btm{
	width: 950px;
	margin-right: auto;
	margin-left: auto;
	position: relative;
}
#gotop_btm a{
	display:block;
	width:37px;
	height:57px;
	position: absolute;
	top: -18px;
	right:40px;
	background-image: url(../img/gotop.png);
	background-repeat: no-repeat;
	background-position: left center;
	text-indent: -9999px;
	z-index:10;
}
#gotop_btm a:hover{background-image: url(../img/gotop_ov.png);}

#footer{
	width: 950px;
	height:10.8em;
	line-height:140%;
	margin-right: auto;margin-left: auto;
	position: relative;
	background-image: url(../img/bg_footer_lines.gif);
	background-repeat: repeat-y;
	background-position: 503px 0px;
	padding: 40px 0 20px 0;
}

#footer h2{
	width:150px;
	background-image: url(../img/logo_blue.gif);
	background-repeat: no-repeat;
	text-indent: -9999px;
	height: 59px;
}
#finfo,#fmenu{line-height:140%;position: absolute;top: 40px;}
#finfo{
	width:273px;
	left: 230px;	
}


#fmenu{
	width:188px;
	left: 503px;
	margin-left: 16px;
	margin-top: -8px;	
}
#fmenu li{padding-bottom:7px;}


#copy{
	width:219px;
	position: absolute;
	right: 40px;
	bottom:20px;
	text-align:right;
}

/* ---------------------
mainbox
--------------------- */
.innerbox{
	border:1px solid #c5c7d4;
	border-top:none;

}

.gotop{text-align:right;padding:20px 22px 20px 0;}

.layout{margin-left:auto;margin-right:auto;}

.inbox01{padding-left:56px;padding-right:56px;width:564px;}
.inbox02{padding-left:35px;padding-right:0px;width:641px;}
.inbox03{
	padding-left:67px;
	padding-right:66px;
	width:543px;
}
.inbox04{
    margin-left: auto;
    margin-right: auto;
    width: 641px;
    text-align: center;
}

.inbox05{
	text-align: center;
	font-size: 0.9em;
	color: #333;
	padding: 100px;
	margin-top: 20px;
	margin-bottom: 50px;
	background-color: #fff;
    margin-left: auto;
    margin-right: auto;
    width: 641px;
    text-align: center;
}

.inbox50{padding-left:50px;padding-right:50px;}

.article{
	line-height:180%;

	text-indent: 1em;
}

/*headline*/
.hl_pct{
	line-height:0;font-size:1;
	padding-left:30px;
}
.hl_large{font-size:16px;font-weight:bold;}

/*sidebar*/
.hl_gmark{
	font-size: 19px;
	background-image: url(../img/gmark.gif);
	background-repeat: no-repeat;
	background-position: left center;
	background-color: #172051;
	color: #fff;
	padding:12px 0 12px 22px;
	margin:0;
}
.hl_gmark2{
	font-size: 19px;
	text-align: center;
	letter-spacing: 6px;
	background-repeat: no-repeat;
	background-position: left center;
	background-color: #172051;
	color: #fff;
	padding:12px 0 12px 0px;

}
ul.smenu01, ul.smenu02{
	background-image: url(../img/line_gray.gif);
	background-repeat: repeat-x;
	background-position: left top;
	margin-top: 20px;
	margin-right: 20px;
	margin-bottom: 60px;
	margin-left: 20px;
}

ul.smenu01 li{
	background-image: url(../img/line_gray.gif);
	background-repeat: repeat-x;
	background-position: left bottom;
	padding-top: 17px;
	padding-bottom: 17px;
}
ul.smenu02 li{
	background-image: url(../img/line_gray.gif);
	background-repeat: repeat-x;
	background-position: left bottom;
	padding-top: 16px;
	padding-bottom: 16px;
}

ul.smenu01 li a{
	font-size: 16px;
	background-image: url(../img/icon_maru.gif);
	background-repeat: no-repeat;
	background-position: 10px center;
	padding-left: 40px;
	padding-top: 3px;
	padding-bottom: 3px;
}
ul.smenu02 li a{
	background-image: url(../img/icon_maru.gif);
	background-repeat: no-repeat;
	background-position: 10px 0;
	padding:0;
	padding-left: 40px;
	display: block;	
}
ul.smenu02 li a img{padding:0;margin:0;}

/*table*/
.info_tb th, .info_tb td{line-height:140%;}
.info_tb td{padding-bottom:20px;}
.info_tb th.navy{color: #172051;}


/* ---------------------
company
--------------------- */
.ptb30{padding-top:30px;padding-bottom:30px;}

dl.linksite{padding-bottom:50px;}

.linksite dt{font-size:20px;padding:30px 0 10px 0;}
.linksite dd{padding:0;margin:0;line-height:140%;}

/*access*/
.accessbox{
	padding:30px 67px 0px 66px;
	margin-bottom:20px;
	width:543px;
	position: relative;
	/*height: 230px;*/
}
.w303{width:303px;}

.btn_gmap{
	position: absolute;
	right: 66px;
	bottom: 0px;
}

/*follow menu*/
#company #sidebar{float:none;}
#followmenu{
	position: relative;float:left;
}

/* ---------------------
contact
--------------------- */
.fm_min{font-family:Arial, Helvetica, sans-serif;}
.onebox{
	width:768px;
	padding:40px 90px;
	margin:0 auto;
	background-color:#fff;
}
#contact .onebox{color:#043459;}

.separate{
	border-top:4px solid #8ec323;
	margin-top:90px;
	padding-top:15px;
	text-align:center;
}

.w656{
	width:656px;
	padding:30px 55px;
}

.maru{font-family : 'ＭＳ Ｐゴシック', Arial, sans-serif;}

#contact .tel{
	font-size: 18px;
	font-weight: bold;
}

.contact_tb{
	border-collapse:separate;
	width:766px;
	border:none;
	border-spacing:0 3px;
	margin-right: auto;
	margin-left: auto;
}

.contact_tb th.mainth{
	width:152px;
	background-color: #043459;
	text-align: center;
	padding-right:0px;
	color: #FFFFFF;
	vertical-align: top;
	padding:10px 0 10px 10px;
}

.contact_tb th.need{
	width: 32px;padding:10px;background-color: #043459;
}

.contact_tb td.maintd{width:545px;padding-left:7px;}
.contact_tb td div{
	border:1px solid #c0ccd5;
	width:523px;
	padding:10px;
	color:#959595;
}
.contact_tb td div p{padding:5px 0;}

.contact_tb table.ckbox{margin-left:0px;}
.contact_tb table.ckbox th, .contact_tb table.ckbox td{
	vertical-align: middle;
	color: #172051;
}

.contact_tb table.ckbox td{
	padding-right: 15px;
	padding-left: 5px;
	text-align: left;	
}
.contact_tb input, .contact_tb textarea, .contact_tb select{
	border:1px solid #c0ccd5;
}
.contact_tb input.text{
	padding:3px;
	width:240px;
}
.contact_tb input.long{width:430px;}
.contact_tb textarea{
	width:520px;min-height:80px;height:80px;
	border:1px solid #c0ccd5;
	resize: vertical;
	font-size:12px;
}
.contact_tb select{
	padding:3px 0;
}
.contact_tb select .hl{color:#959595;}

.submitbtn:hover{
	opacity:0.8;
	filter: alpha(opacity=80);
	-ms-filter: "alpha( opacity=80 )";
}
#contact .privacy{
	margin-top: 55px;
	padding-top: 23px;
	padding-right: 30px;
	padding-bottom: 34px;
	padding-left: 30px;
	border: 1px solid #043459;
}
#contact .privacy2{
	font-size: 18px;
	text-align: center;
	margin-bottom: 20px;
}
#contact .privacy3{
	font-size: 11px;
	margin-bottom: 25px;
}
#contact .need2{
	float: left;
	margin-right: 20px;
	padding-top: 3px;
}
#contact .privacy4{
	margin-right: auto;
	margin-left: auto;
	width: 195px;
	font-size: 15px;
}

/* ---------------------
recruit
--------------------- */
#recruit .onebox{color:#043459;}
.recruit_head{
	width:950px;

	background-color: #FFFFFF;
	margin: 0 auto;
	padding:0;padding-top: 20px ;
	text-align: center;
	
}

.recruit_btmbox{
	width:768px;
	background-image: url(../img/line_gray2.gif);
	background-repeat: repeat-y;
	background-position: 377px 0px;
	margin-top: 30px;
	margin-bottom: 60px;
}
.recruit_l{float:left;width:377px;}
.recruit_r{
	float:right;
	width:346px;
	padding-left: 45px;
}
#recruit .tel{
	font-size: 18px;
	font-weight: bold;
}

/* ---------------------
privacy
--------------------- */
#privacy h4{
	font-size: 18px;
	letter-spacing: 2px;
	border-bottom-width: 1px;
	border-bottom-style: solid;
	border-bottom-color: #1a1a6e;
	margin-bottom: 15px;
	padding-bottom: 9px;
	margin-top: 45px;
}
#privacy .pink{
	color: #ba129c;
	text-decoration: underline;
}
#privacy .text2{
	line-height: 2.2em;
	text-align: right;
	margin-top: 45px;
	margin-bottom: 25px;
}

.font15{
	font-size: 15px;
}
.font18{
	font-size: 18px;
}

.font17{
	font-size: 17px;
}
.font20{
	font-size: 20px;
}

/**
plistbox
*/  

 .plbox h7{
  font-size: 19px;
  line-height:50px;
  padding-bottom:50px;
  font-weight: bold;
 }
 .plbox h3{
  font-size: 16px;
 }
 .plbox h6{
  font-size: 14px;
  line-height:30px;
  padding-left: 30px;
  padding-bottom: 14px;
 }


 .hl_navy {
	width: 650px;
    font-size: 16px;
    color: #fff;
    background-color: #172051;
    padding: 12px 0 12px 22px;
}

.plistbox {
    float: left;
    width: 298px;
    border: 1px solid #c5c7d4;
    position: relative;
    padding: 0;
    background-image: url(/img/dec_kado.png);
    background-repeat: no-repeat;
    background-position: right top;
    padding: 15px 10px 10px 10px;
    margin-bottom: 15px;
}
.plistbox h3 {
    font-size: 16px;
    font-weight: bold;
    height: 2.2em;
}
.plistbox .catch {
    padding-top: 13px;
    color: #727272;
    line-height: 140%;
    font-size: 14px;
}
.plistbox .pct {
    float: left;
    margin-right: 8px;
}
#privacy .flink li {
	display: inline-block;
}
#privacy .sdgs table {
	background-color: #22304f;
}

/* ベーススタイル */
body {
  font-family: sans-serif;
  margin: 0;
  padding: 0;
  background-color: #fff;
  color: #333;
}

.container {
  max-width: 960px;
  margin: 0 auto;
  padding: 2rem;
}

.page-title {
  font-size: 1.8rem;
  margin-bottom: 1rem;
  border-bottom: 2px solid #ccc;
  padding-bottom: 0.5rem;
}

.notice {
  background-color: #f5f5f5;
  padding: 1rem;
  border-radius: 8px;
  margin-bottom: 2rem;
  font-size: 0.95rem;
}

/* ボタンエリア（Flexbox） */
.button-area {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: center;
}

.btn img {
  width: 100%;
  max-width: 280px;
  height: auto;
  border-radius: 10px;
  transition: transform 0.3s ease;
}

.btn img:hover {
  transform: scale(1.05);
}

/* ヘッダー・フッターは必要に応じて調整 */
.site-header, .site-footer {
  background-color: #003366;
  color: white;
  text-align: center;
  padding: 1rem;
}


.page-header {
  text-align: center;
  margin-bottom: 20px;
}

.breadcrumb {
  font-size: 0.9em;
  margin-top: 8px;
}

.content-wrapper {
  max-width: 950px;
  margin: 0 auto;
  background: #fff;
  padding: 20px;
  box-sizing: border-box;
}

.info-message {
  text-align: center;
  font-size: 0.9em;
  color: #333;
  margin-bottom: 20px;
}

.btn-list {
  display: flex;
  justify-content: center;
  gap: 20px;
}

.btn img {
  display: block;
  width: 265px;
  height: 60px;
  transition: filter 0.3s ease;
}

.btn-blue img:hover {
  filter: brightness(1.1);
}

.btn-gray img:hover {
  filter: brightness(0.9);
}

.button-area.btn-list {
  display: flex;
  gap: 1rem;             /* ボタン間の横スペース */
  justify-content: center; /* 中央寄せ */
  flex-wrap: nowrap;     /* 折り返さない */
}

.btn-margin, .btn-margin2 {
  background-color: #dcecff; /* 薄い水色：お好みで調整 */
  padding: 40px 40px;       /* ボタン周りの余白 */
  border-radius: 4px;       /* 角丸お好みで */
  display: inline-block;    /* 幅をボタンサイズに合わせる */
  transition: background-color 0.3s ease;
}

.btn-margin2 {
  background-color: #ececec; /* もう一つは薄いグレー */
}

/*SDGs*/
.flink ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center; /* ここで中央揃え */
}

.flink ul li {
  margin-right: 7px;
}


/* スマホ対応 */
@media screen and (max-width: 768px) {
  .btn-list {
    flex-direction: column;
    align-items: center;
  }

  .btn img {
    width: 90vw;
    height: auto;
  }
}

/* ============================================
   アクセス情報セクション用スタイル定義
   ============================================ */
.access-section {
	margin-bottom: 40px;
	padding-bottom: 0;
	border-bottom: none;
}

/* アクセスボックスコンテナ */
.access-section .accessbox {
	margin-bottom: 30px;
	padding-bottom: 30px;
	border-bottom: 1px solid #ddd;
	clear: both;
	overflow: auto;
}

.access-section .accessbox:last-child {
	border-bottom: none;
	margin-bottom: 0;
	padding-bottom: 0;
}

/* 上部：施設情報エリア（従来スタイル） */
.access-container {
	display: flex;
	gap: 30px;
	align-items: flex-start;
	margin-bottom: 20px;
	width: 100%;
}

/* 左側：会社イメージ */
.access-left {
	flex: 0 0 250px;
	min-width: 250px;
}

.access-image {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 4px;
	overflow: hidden;
}

/* 右側：テキスト情報・Google Mapリンク */
.access-right {
	flex: 1;
	min-width: 320px;
}

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

.facility-info {
	font-size: 16px;
	line-height: 1.8;
	color: #555;
	margin-bottom: 15px;
}

.facility-info p {
	margin: 5px 0;
}

/* Googleマップリンクボタンスタイル */
.google-map-link {
	display: inline-block;
	margin-top: 10px;
}

.google-map-link img {
	display: block;
	max-width: 100%;
	height: auto;
	transition: opacity 0.3s ease;
}

.google-map-link:hover img {
	opacity: 0.8;
}

/* 下部：アクセスマップ全幅エリア */
.access-map-full {
	display: block;
	text-decoration: none;
	cursor: pointer;
	width: 100%;
	overflow: hidden;
	border-radius: 4px;
	margin-top: 20px;
	clear: both;
}

.access-map-full img {
	width: 100%;
	height: auto;
	display: block;
	border: 2px solid #4CAF50;
	box-sizing: border-box;
	transition: transform 0.3s ease, filter 0.3s ease;
}

.access-map-full:hover img {
	transform: scale(1.01);
	filter: brightness(0.95);
	border-color: #45a049;
}
  .line {
    height: 1px;          /* 太さ */
    width: 80%;           /* 長さ */
    background-color: #CCC; /* 色 */
    border: none;         /* デフォルトの枠を消す */
    margin: 20px auto;    /* 余白＆中央寄せ */
  }

  /* ============================================
   アクセス情報テキスト
   ============================================ */
.access-info-text {
	margin-top: 20px;
	padding: 15px;
	background-color: #f9f9f9;
	border-left: 4px solid #4CAF50;
	border-radius: 4px;
	font-size: 16px;
	line-height: 1.8;
	color: #555;
}

.access-info-text p {
	margin: 10px 0;
}

.access-info-text strong {
	color: #172051;
	font-weight: bold;
}

.bus-note {
	display: block;
	font-size: 16px;
	color: #ff6b6b;
	font-weight: bold;
	margin: 5px 0;
}

.bus-link-info {
	margin-top: 15px;
	padding-top: 10px;

}

/* ============================================
   外部リンクスタイル（SVGアイコン付き）
   ============================================ */
.external-link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: #4CAF50;
	text-decoration: none;
	border-bottom: 1px solid #4CAF50;
	transition: all 0.3s ease;
	word-break: break-all;
	padding-bottom: 2px;
}

.external-link:hover {
	color: #45a049;
	border-bottom-color: #45a049;
}

.external-link:hover .external-icon {
	stroke: #45a049;
	transform: translate(2px, -2px);
}

/* 外部リンクSVGアイコン */
.external-icon {
	display: inline-block;
	width: 16px;
	height: 16px;
	stroke: #4CAF50;
	flex-shrink: 0;
	transition: all 0.3s ease;
}