@charset "utf-8";
/* CSS Document */

/*----- ▼▼ 左コンテンツ ▼▼ -----*/

/*-- ▼ 製品カテゴリー ▼ --*/

#side_left{
	width: 240px;
	text-align: left;
	margin-right: 20px;
    float: left;
}

#side_navi{
	width: 240px;
	text-align: left;
	float: left;
}

#side_navi li.category1{
	list-style-type: none;
	width: 240px;
	height: 34px;
	margin: 0px 0px 6px 0px;
}

#side_navi li.category2{
	list-style-type: none;
	width: 240px;
	height: 34px;
	margin: 0px 0px 15px 0px;
}

/*----- ▼infoコンテンツ▼ -----*/

#info{
	width: 240px;
	margin-top: 20px;
	float: left;
}

/*----- SNSバナー -----*/

#sns {
	width: 240px;
	height: 70px;
	text-align: center;
	margin-top: 20px;
	float: left;
}

#sns #sns_y {
	width: 60px;
	height: 70px;
	float: left;
}

#sns #sns_y a:hover img {
    opacity: 0.6;
	transition: 0.3s ease-in-out;
}

#sns #sns_t {
	width: 60px;
	height: 70px;
	float: left;
}

#sns #sns_t a:hover img {
    opacity: 0.6;
	transition: 0.3s ease-in-out;
}

#sns #sns_i {
	width: 60px;
	height: 70px;
	float: left;
}

#sns #sns_i a:hover img {
    opacity: 0.6;
	transition: 0.3s ease-in-out;
}

#sns #sns_f {
	width: 60px;
	height: 70px;
	float: left;
}

#sns #sns_f a:hover img {
    opacity: 0.6;
	transition: 0.3s ease-in-out;
}

/*----- 展示会バナー -----*/

#biopharma_expo_2020 {
	width: 240px;
	height: 100px;
	text-align: center;
	background-color: #4e2581;
	margin-bottom: 10px;
	float: left;
}

#biopharma_expo_2020 a:hover img {
    filter: brightness(130%);
	transition: 0.3s ease-in-out;
}

/*----- カタログ 枠-----*/

#catalog_pc {
	width: 223px;
	padding: 10px 0px 10px 15px;
	border: 1px solid #ddd;
	margin-bottom: 15px;
	float: left;
}

#catalog {
	width: 223px;
	padding: 10px 0px 10px 15px;
	border: 1px solid #ddd;
	margin-bottom: 15px;
	float: left;
}

#catalog_contents {
	width: 235px;
	padding-left: 10px;
	float: left;
}

/*----- カタログ 内容-----*/

#catalog_pc .catalog_ask {
	width: 210px;
	font-size: 90%;
	font-weight: bold;
	text-align: center;
	float: left;
}

#catalog .catalog_ask {
	width: 210px;
	font-size: 90%;
	font-weight: bold;
	text-align: center;
	float: left;
}

#catalog_pc .catalog_pdf {
	width: 210px;
	font-size: 80%;
	font-weight: nomal;
	text-align: center;
	border-top: solid 1px #94000b;
	padding-top: 5px;
	float: left;
}

#catalog .catalog_pdf {
	width: 210px;
	font-size: 80%;
	font-weight: nomal;
	text-align: center;
	border-top: solid 1px #94000b;
	padding-top: 5px;
	float: left;
}

#catalog_pc:hover {
	border-color: #002887;
	transition: 0.3s ease-in-out;
}

#catalog:hover {
	border-color: #002887;
	transition: 0.3s ease-in-out;
}

#catalog_pc .catalog_ask a{
	color: #333333;
}

#catalog .catalog_ask a{
	color: #333333;
}

#catalog_pc .catalog_img {
	width: 210px;
	padding-top: 5px;
	float: left;
}

#catalog .catalog_img {
	width: 210px;
	padding-top: 5px;
	float: left;
}

#catalog_pc a:hover img {
    filter: brightness(85%);
	transition: 0.3s ease-in-out;
}

#catalog a:hover img {
    filter: brightness(85%);
    transition: 0.3s ease-in-out;
}

/*----- 問合せ 電話/FAX -----*/

#ask_tel {
	width: 240px;
	margin-bottom: 10px;
	float: left;
}

/*----- 問合せ フォーム -----*/

#ask_foam {
	width: 240px;
	margin-bottom: 10px;
	float: left;
}

/*----- 問合せ メール -----*/

#ask_mail {
	width: 240px;
	margin-bottom: 15px;
	float: left;
}

/*----- イプロス特設サイト -----*/

#ipros {
	width: 240px;
	margin-bottom: 15px;
	float: left;
	transition: 0.3s ease-in-out;
}

#ipros a:hover img {
    filter: brightness(90%);
	transition: 0.3s ease-in-out;
}

/*----- ファームテクジャパン WEB展示場 -----*/

#pharmtech {
	width: 240px;
	margin-bottom: 10px;
	float: left;
	transition: 0.3s ease-in-out;
}

#pharmtech a:hover img {
    filter: brightness(90%);
	transition: 0.3s ease-in-out;
}

/*----- 採用情報 -----*/

#job_info {
	width: 240px;
	margin-bottom: 15px;
	float: left;
}

/*-- ▼ シリーズ ▼ --*/

#s_navi {
	border: solid 1px #c0c0c0;
	font-size: 70%;
}

#s_navi a:hover {
    color: #34a23d;
    border-left: 5px solid #34a23d;
}

#s_navi a.slink_no {
    color: #34a23d;
    border-left: 5px solid #34a23d;
	background-color: #f0f0f0;
}

#s_navi a {
    display: block;
	width: 213px;
	border-bottom: 1px dotted #c0c0c0;
    margin: 0;
	padding: 5px 10px;
    color: #555555;
	font-weight: normal;
    border-left: 5px solid #ddd;
    text-decoration: none;
}

/*----- ▼▼ 右コンテンツ ▼▼ -----*/

/*-- 右枠 --*/

#side_right {
	float: right;
	width: 740px;
	text-align: left;
}

/*-- シリーズ名 --*/

#type {
  width: 100%;
  max-width: 740px;
  margin-bottom: 20px;
}

.product_name h1 {
	margin-top: 20px;
	border-bottom: 2px solid #34a23d;
	display: block;
	padding-left: 10px;
	text-align: left;
}

.product_model {
	font-size: 200%;
	font-weight: bold;
	color: #333;
}

.product_series {
	font-size: 160%;
	font-weight: 500;
	color: #333;
	display: block;
}

.product_category {
	margin-top: 5px;
	font-size: 90%;
	font-weight: normal;
	color: #5d6a75;
	display: block;
	padding-right: 10px;
	text-align: right;
}

@media screen and (max-width: 718px) {
#type {
    float: none;
    width: 100%;
    max-width: 100%;
    margin-bottom: 10px;
 }
	
#side_right {
    float: none;
    width: 100%;
 }
	
#p_contents,
#spec01,
#spec02,
#spec03,
#spec04,
#spec05,
#spec06,
#spec07,
#spec08,
#spec09,
#spec10,
#spec11,
#spec12,
#kanren,
.custom_contents {
    width: 100% !important;
    float: none !important;
    overflow: hidden;
}
	
.product_name h1 {
	margin-top: 20px;
	border-bottom: 2px solid #34a23d;
	display: block;
	padding-left: 10px;
	text-align: left;
 }
	
.product_model {
	font-size: 160%;
	font-weight: bold;
	color: #333;
}

.product_series {
	font-size: 120%;
	font-weight: 500;
	color: #333;
	display: block;
}
	
.product_category {
	margin-top: 5px;
	font-size: 85%;
	font-weight: normal;
	color: #5d6a75;
	display: block;
	padding-right: 10px;
	text-align: right;
 }
}

/* PC・タブレットでは通常表示 */

.table-scroll {
  width: 100%;
  overflow-x: visible;
}

/* スマホ時のみテーブルを横スクロール */

@media screen and (max-width: 718px) {
.table-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    width: 100%;
}
	
table#price,
table#st_type,
table#cth_type,
table#ctl_type {
    width: 710px;   /* テーブルが全カラム見切れる幅 */
    min-width: 600px;
  }
}

/* スマホ時のみテーブルを横スクロール ここまで*/

/* スクロール案内メッセージを左下の外に */

.scroll-info-st {
  margin-top: 2px;
  margin-left: 0;
  font-size: 90%;
  color: #007e5c;   /* ST系 */
  background: rgba(255,255,255,0.95);
  display: block;
  padding: 2px 8px 2px 5px;
  border-radius: 0 6px 0 0;
  text-align: center;
}

.scroll-info-cth {
  margin-top: 2px;
  margin-left: 0;
  font-size: 90%;
  color: #0057b7;   /* CTH系 */
  background: rgba(255,255,255,0.95);
  display: block;
  padding: 2px 8px 2px 5px;
  border-radius: 0 6px 0 0;
  text-align: center;
}

.scroll-info-ctl {
  margin-top: 2px;
  margin-left: 0;
  font-size: 90%;
  color: #7350aa;   /* CTL系 */
  background: rgba(255,255,255,0.95);
  display: block;
  padding: 2px 8px 2px 5px;
  border-radius: 0 6px 0 0;
  text-align: center;
}

/* PC・タブレットでは非表示、スマホ時のみ表示 */

@media screen and (min-width: 718px) {
  .scroll-info-st,
  .scroll-info-cth,
  .scroll-info-ctl {
    display: none;
  }
}

/* スクロール案内メッセージを左下の外に ここまで*/

/*-- ▼▼シリーズ詳細▼▼ --*/

#p_contents {
	width: 710px;
	padding: 0px 15px 0px 15px;
	float: left;
}

/*-- ▼spec01▼ --*/

#spec01 {
	width: 710px;
	margin-bottom: 30px;
	float: left;
}

#p_photo {
	width: 710px;
    text-align: center;
	float: left;
}

#feature {
	width: 710px;
	float: left;
}

#p_copy {
	font-size: 110%;
	font-weight: bold;
	color: #333;
	display: block;
	margin-bottom: 5px;	
	text-align: left;
}

#feature1 {
	width: 710px;
	margin-bottom: 40px;
	float:left;
}

#feature1 p.comment {
	font-size: 90%;
	line-height: 1.7em;
	color: #333;
	text-align: left;
}

.comment_p {
	font-size: 100%;
	font-weight: 500;
	line-height: 1.7em;
	color: #333;
	text-align: left;
	margin-bottom: 10px;
}

.comment_p::before {
	font-size: 100%;
	font-weight: 500;
	content: "■";
	margin-right: 3px;
}

#feature2 {
	width: 710px;
	float: left;
}

#feature2 p.comment {
	font-size: 90%;
	line-height: 1.5em;
	color: #333;
    text-align: left;
}

.dot-red {
	font-size: 90%;
	color: #91001a;
	margin-right: 3px;
	margin-left: 10px;
}

#feature3 {
  width: 710px;
  margin: 0 auto 50px auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 30px 30px;
}

#feature3 > div {
  width: 340px;
  box-sizing: border-box;
  text-align: center;
  margin-bottom: 0 !important; /* 念のため */
}

#spec01 #color-box {
	width: 710px;
	margin-bottom: 40px;
	float: left;
}

#spec01 #color-box .color-box_title {
	font-size: 70%;
	line-height: 1.5em;
	color: #333;
	padding-left: 15px;
	display: block;
}

#spec01 #color-box ul {
	display: block;
	overflow: hidden;
	clear: both;
	width: 695px;
	background: #fff;
	margin-bottom: 10px;
	margin-left: 10px;
}

#spec01 #color-box li {
	border: 2px solid #c0c0c0;
	margin-right: 10px;
	float:left;	
}

#spec01 #color-box li a {
	display:block;
	height:75px;
	overflow:hidden;
}

/*-- ▼spec02▼ --*/

#spec02 {
	width: 710px;
	margin-bottom: 30px;
	float: left;
}

#draw {
	width: 710px;
	float: left;
}

/*-- ▼spec03▼ --*/

#spec03 {
	width: 710px;
	margin-bottom: 20px;
	float: left;
}

/* PC/スマホ共に左寄せで統一する場合 */
.table_title, .table_title1, .sub_info {
    text-align: left !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.table_title {
	font-size: 100%;
	font-weight: 500;
	line-height: 1.5em;
	color: #333;
	display: block;
}

.table_title::before {
	font-size: 100%;
	font-weight: 500;
	content: "■";
	margin-right: 3px;
}

.table_title .sub_info{
	font-size: 90%;
	font-weight: 400;
	line-height: 1.5em;
	color: #333;
}

#price-caption {
	text-align: left;
	margin-bottom: 10px;
}

.caption-list {
  margin: 0;
  padding: 0 0 0 18px;
  list-style: disc;
}

.caption-list li {
  font-size: 90%;
  color: #FF3300;
  margin-bottom: 2px;
}

@media screen and (max-width: 718px) {
  .caption-list li {
    font-size: 9px;
  }
}

/*-- テーブル--*/

table#price {
	width: 710px;
	border: 0;
	white-space: nowrap;
	border-bottom: 1px solid #00a84d;
	border-collapse: collapse;
}

table#price th,
table#price td {
	font-size: 90%;
	font-weight: normal;
	padding: 8px 4px;
	text-align: center;
}

table#price tr#index {
	background: #00a84d;
	color:#FFF;
}

table#price tr#unit {
	background: #00a84d;
	color:#FFF;
}

table#price tr#index td.lid {
	font-size: 70%;
}

table#price tr.color_back {
	background: #ecf4d9;
}

table#price th.model {
	padding-left: 20px;
    padding-right: 10px;
	text-align: left;
}

table#price td.u_price {
	padding-right: 5px;
	text-align: center;
}

/*-- ▼spec07▼ --*/

#spec07 {
	width: 690px;
	margin-bottom: 30px;
	border: solid 1px #999999;
	/*--角丸--*/
	border-radius:10px;
	background-color: #ffffee;
	padding: 10px 10px 10px 10px;
	float: left;
}

#spec07 p.comment {
	font-size: 90%;
	line-height: 1.5em;
	color: #333;
    padding-left: 1em;
	text-indent: -1em;
}

#spec07 h2.comment {
	font-size: 90%;
	font-weight: 500;
	line-height: 1.5em;
	color: #333;
    padding-left: 1em;
	text-indent: -1em;
}

#spec07 h2.comment::before {
	font-size: 90%;
	font-weight: 500;
	content: "■";
	margin-right: 3px;
}

/*----- カスタマイズ導入事例 ボックス -----*/

.archive_plus .comment_p {
  display: block;
  width: 100%;                  /* 横幅いっぱいに */
  padding: 10px 15px;           /* 内側余白 */
  margin: 0 0 20px;             /* 下余白で本文と分ける */
  background: linear-gradient(to right, #0b2239, #1e3a5f); 
  color: #fff;                  /* 文字は白で映えるように */
  font-size: 1.2em;
  font-weight: 700;
  border-radius: 6px;           /* 角を少し丸めてモダンに */
  letter-spacing: 0.05em;
}

.archive_plus {
  width: 100%;
  max-width: 740px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px 10px;
}

.pickup_contents {
  height: 100%;
  box-sizing: border-box;
  background: #fff;
  border: 1px solid #fff;
  padding: 14px 10px 18px 10px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  transition: box-shadow 0.2s, border-color 0.2s;
}

.pickup_contents:hover {
  border-radius: 0px 0px 8px 8px;
  box-shadow: 0 4px 15px rgba(44, 104, 202, 0.20);
}

@media screen and (max-width: 718px) {
  .pickup_contents {
    border-radius: 0px 0px 8px 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.10);
    transition: box-shadow 0.2s;
  }
  .pickup_link:active .pickup_contents,
  .pickup_link:hover .pickup_contents {
    border-radius: 0px 0px 8px 8px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.25);
  }
}

.pickup_img {
  width: 100%;
  margin-bottom: 10px;
  text-align: center;
}

.pickup_img img {
  width: 100%;
  height: auto;
  display: block;
  border: 1px solid #cccccc;
}

.pickup_comment{
	width: 100%;
	font-size: 80%;
	line-height: 1.8em;
	color: #333;	
	float: left;
}

.pickup_comment p {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  text-overflow: ellipsis;
}

.category_tab {
  margin-bottom: 8px;
}

/*----- 7 カスタム容器・8 コンビネーション容器 -----*/

.feature1_07 {
	width: 100%;
    background-color: rgba(114, 68, 168, 0.7);
	border-radius: 0px 0px 5px 5px;
	margin-bottom:10px; 
	float:left;
}

.feature2_12 {
	width: 100%;
	font-size: 90%;
	color: #333;
	font-weight: bold;
	float:left;
}

/*----- カテゴリー名 -----*/

.custom_no {    
    font-size: 80%;
    font-weight: 400;
    color: #fff;
    line-height: 2em;
	margin-left: 0;
    text-align: center;
}

/*----- 新製品名 -----*/

.pickup_name {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.4;
  max-height: calc(1.8em * 3);
}

/* スマホ時（max-width: 718px） 横2列表示に切替 */
@media screen and (max-width: 718px) {
  .archive_plus {
    width: 100% !important;
    max-width: 740px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(2, 1fr); /* 2列 */
    gap: 20px 10px;
    padding: 0 10px !important;
    box-sizing: border-box;
  }
 .category_tab {
    padding-left: 10px !important;
  }
}

/*----- カスタマイズ導入事例 ボックス ここまで -----*/

/*  製品グループ　サイドナビ  */
:root{
  --sn-border:#e5e5e5;
  --sn-text:#222;
  --sn-muted:#666;
  --sn-active:#94000B;     /* 使わないが残してOK（将来用） */
  --sn-bg:#fff;
  --sn-summary-bg:#fafafa;
}

#s_navi.sidenav{
  margin:0;
  padding:0;
  list-style:none;
  font-size:14px;
  color:var(--sn-text);
}

/* グループ */
#s_navi .sn-group{
  border:1px solid var(--sn-border);
  border-radius:10px;
  background:var(--sn-bg);
  margin-bottom:10px;
  overflow:hidden;
}

/* 見出し（ベーシックと同じバランス） */
#s_navi .sn-summary{
  cursor:pointer;
  user-select:none;
  padding:10px 34px 10px 14px; /* 右に矢印ぶんの余白を確保 */
  font-weight:700;
  background:var(--sn-summary-bg);
  display:block;              /* ← flexは使わずテキスト幅でレイアウト */
  position:relative;          /* ← 矢印を右固定するための基準 */
  line-height:1.4;
}

/* 矢印（小さめ・右端固定） */
#s_navi .sn-summary::after{
  content:"";
  position:absolute;
  right:14px;                 /* ← 一定の右余白で固定 */
  top:50%;
  transform:translateY(-50%) rotate(135deg);
  width:8px; height:8px;      /* ベーシック同等サイズ */
  border-top:2px solid var(--sn-muted);
  border-right:2px solid var(--sn-muted);
  transition:transform .2s ease;
}

/* 開いたときの矢印 */
#s_navi .sn-group[open] .sn-summary::after{
  transform:translateY(-50%) rotate(-45deg);
}

/* リスト */
#s_navi .sn-list{
  margin:6px 0 10px;
  padding:0 10px 8px;
  list-style:none;
}
#s_navi .sn-list li{ margin:0; padding:0; }

/* リンク */
#s_navi .sn-list a{
  display:block;
  padding:8px 10px;
  margin:0 2px;
  text-decoration:none;
  color:var(--sn-text);
  border-radius:8px;
  transition:background .15s ease, color .15s ease;
}

/* Hover / visited / 現在ページは同じ（薄いグレー） */
#s_navi .sn-list a:hover,
#s_navi .sn-list a:visited,
#s_navi .sn-list a.is-active{
  background:#f4f6fa !important;
  color:var(--sn-text) !important;
  font-weight:700;
}

/* モバイル微調整 */
@media screen and (max-width: 718px) {
  #s_navi .sn-summary{
    padding:12px 36px 12px 14px; /* 右固定のまま少し広めに */
  }
  #s_navi .sn-list a{ padding:10px 12px; }
}

/* （削除推奨の旧ルール：現在ページを赤にする）
#s_navi .sn-list a.is-active{
  color:#fff;
  background: var(--sn-active);
  font-weight:700;
}
*/

/* --- 自動ナンバリング（カテゴリ & 製品） --- */

/* 全体：カテゴリ用カウンタを初期化 */
#s_navi.sidenav{
  counter-reset: sn-group;
}

/* 各カテゴリ（details）ごとに group++、製品番号はカテゴリ内で 01 から */
#s_navi .sn-group{
  counter-increment: sn-group;
  counter-reset: sn-item;
}

/* カテゴリ見出しの左に「01. 」の付番 */
#s_navi .sn-summary::before{
  content: counter(sn-group, decimal-leading-zero) ". ";
  margin-right: 4px;
  color: var(--sn-muted);
  font-weight: 700;
}

/* 各アイテムでカウンタ加算 */
#s_navi .sn-list li{
  counter-increment: sn-item;
}

/* リンク本体：絶対配置は使わない（重なり対策） */
#s_navi .sn-list a{
  display: inline-block;     /* blockでも可。好みで */
  padding-left: 0;           /* 旧: 番号用の左パディングは不要 */
  position: static;          /* 旧: absolute を無効化 */
  text-decoration: none;
}

/* アイテム番号：テキストの“前”にインラインで表示（固定幅で折返し揃え） */
#s_navi .sn-list a::before{
  content: counter(sn-item, decimal-leading-zero) ". ";
  display: inline-block;
  width: 2.4em;              /* 番号桁ぶんの幅。2.2〜2.8emで調整可 */
  margin-right: .2em;
  color: var(--sn-muted);
  font-weight: 700;
}

/* Hover / visited / 現在ページ（既存ルールを活かす場合はそのまま） */
#s_navi .sn-list a:hover,
#s_navi .sn-list a:visited,
#s_navi .sn-list a.is-active{
  background:#f4f6fa !important;
  color:var(--sn-text) !important;
  font-weight:700;
}

/* --- モバイル微調整（absolute前提の旧ルールは削除） --- */
@media screen and (max-width: 718px) {
  /* 見出しのクリック領域は既存のまま広げる */
  #s_navi .sn-summary{
    padding:12px 36px 12px 14px;
  }
  /* 行間を少し広めに */
  #s_navi .sn-list a{
    padding:10px 12px;
  }
  /* 番号幅を気持ち広げて視認性UP（任意） */
  #s_navi .sn-list a::before{
    width: 2.6em;
  }
}
