/* ==========================================================================
   #index_strength (日精の強み) セクション CSS
   ========================================================================== */

/* ベースリセット・変数定義（必要に応じて調整してください） */
:root {
  --color-text-dark: #333333;  /* メイン文字色 */
  --color-text-sub: #666666;   /* サブ文字色 */
  --font-family-base: "Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
}

/* 共通マージン・ユーティリティクラス */
.mb10 { margin-bottom: 10px !important; }
.mb15 { margin-bottom: 15px !important; }
.mb30 { margin-bottom: 30px !important; }
.mb45 { margin-bottom: 45px !important; }

/* --------------------------------------------------------
   全体共通・PC基準スタイル（1024px以上）
   -------------------------------------------------------- */
#index_strength {
    width: 100%;
    padding: 10px 0;
    background-color: #f7f7f7;
    font-family: var(--font-family-base);
    color: var(--color-text-dark);
    overflow: hidden;
}

#index_strength .content {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 4%;
}

/* 左右2カラムのグリッド・フレックスレイアウト */
#index_strength .inner.col2 {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

/* 左側：タイトルエリア */
#index_strength .index_h2 {
  flex: 0 0 300px; /* 横幅を固定気味に */
  font-size: 1.0rem;
  line-height: 1.4;
}
#index_strength .index_h2 .ja {
    display: block;
    font-size: 2.2rem;
    font-weight: 700;
    color: #cd0202;
    letter-spacing: 0.05em;
    margin-bottom: 5px;
}
#index_strength .index_h2 .en {
  display: block;
  font-size: 1.1rem;
  font-weight: 500;
  color: var(--color-text-sub);
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

/* 右側：テキストコンテンツエリア */
#index_strength .txt_box {
    flex: 1;
    border-left: 2px solid #b3b1ac;
    padding-left: 25px;
}

/* 導入の太字文 */
#index_strength .text {
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.6;
}



#index_strength .index_strength_txt p {
  font-size: 1.1rem;
  line-height: 1.8;
}

#index_strength .index_strength_p span {
    display: block;
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1.6;
    color: #fff;
    padding: 10px;
    background-color: #cd0202;
}

/* アニメーション表示用（JS等で.visibleが付与された際の制御用） */
#index_strength .visible {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

/* 結びの紹介文 */
#index_strength .txt {
  font-size: 1.05rem;
  line-height: 1.8;
  color: var(--color-text-dark);
}



/* --------------------------------------------------------
   PCサイズ対応（1024px以上）
   -------------------------------------------------------- */
@media screen and (min-width: 1024px) {
/* ==========================================================================
   3. 製品紹介カテゴリ一覧 (products-cat-sec)
   ========================================================================== */
.products-cat-sec {
  background: #ffffff;
  padding: 0px 10px;
}

.cat-grid {
    display: contents;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 25px;
}
.cat-card {
    background: #fff;
    overflow: hidden;
    transition: transform 0.3s ease;
    display: flex;
    border: 1px solid #e0e0e0;
    padding: 10px;
    border-radius: 6px;
    width: 85%;
    margin: 0 auto 20px;
}

.cat-card-img {
    height: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #888;
    font-size: 0.9rem;
}
.cat-card-body {
    padding: 5px 10px;
    text-align: center;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}
.cat-card-body h3 {
    font-size: 1.2rem;
    color: #222;
    margin-bottom: 10px;
    font-weight: bold;
}
.cat-card-body p {
    font-size: 1rem;
    color: #666;
    margin: 0 0 15px 0;
    flex-grow: 1;
    text-align: left;
}
.cat-card-body span {
    font-size: 14px;
    color: #666;
    margin: 0 0 15px 0;
    flex-grow: 1;
    text-align: left;
    font-weight: bold;
}

.btn-more {
    display: inline-block;
    background: #333;
    color: #fff!important;
    padding: 8px 24px;
    border-radius: 4px;
    text-decoration: none!important;
    font-size: 0.85rem;
    font-weight: bold;
    transition: background 0.2s;
    width: 50%;
    margin: 0 auto;
}

.btn-more:hover {
  box-shadow    : none;        /* カーソル時の影消去 */
  opacity       : 0.8;         /* カーソル時透明度 */
}

/* ==========================================================================
   4. 技術・工場情報 (products-info-sec)
   ========================================================================== */
.products-info-sec {
  padding: 20px;
  background: #f9f9f9;
}

.info-grid {
  display: flex;
  gap: 30px;
  margin: 0 auto;
}

.info-card {
  flex: 1;
  background: #fff;
  border: 1px solid #e0e0e0;
  padding: 10px;
  border-radius: 6px;
  text-align: center;
}

.info-card h4 {
  font-size: 1.15rem;
  color: #222;
  margin: 0 0 12px 0;
  border-bottom: 2px solid #c55a11;
  display: inline-block;
	font-weight: bold;
}

.info-card p {
    font-size: 0.82rem;
    color: #666;
    margin: 0 0 5px 0;
    text-align: left;
}

.link-arrow {
  color: #c55a11;
  text-decoration: none;
  font-weight: bold;
  font-size: 0.85rem;
}

.link-arrow:hover {
  text-decoration: underline;
}}


/* --------------------------------------------------------
   タブレットサイズ対応（1023px以下）
   -------------------------------------------------------- */
@media screen and (max-width: 1023px) {
  #index_strength {
    padding: 30px 0;
  }

  #index_strength .inner.col2 {
    gap: 10px;
  }

  #index_strength .index_h2 {
    flex: 0 0 220px;
  }

  #index_strength .index_h2 .ja {
    font-size: 1.8rem;
  }

  #index_strength .text {
    font-size: 1.15rem;
  }

  #index_strength .index_strength_p span {
    font-size: 1.2rem;
  }
	/* ==========================================================================
   3. 製品紹介カテゴリ一覧 (products-cat-sec)
   ========================================================================== */
.products-cat-sec {
  background: #ffffff;
  padding: 0px 10px;
}
.cat-grid {
    display: contents;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 25px;
}
.cat-card {
    background: #fff;
    overflow: hidden;
    transition: transform 0.3s ease;
    display: flex;
    border: 1px solid #e0e0e0;
    padding: 10px;
    border-radius: 6px;
    width: 85%;
    margin: 0 auto 20px;
}

.cat-card-img {
    height: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #888;
    font-size: 0.9rem;
}
.cat-card-body {
    padding: 5px 10px;
    text-align: center;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}
.cat-card-body h3 {
    font-size: 1.2rem;
    color: #222;
    margin-bottom: 10px;
    font-weight: bold;
}
.cat-card-body p {
    font-size: 1rem;
    color: #666;
    margin: 0 0 15px 0;
    flex-grow: 1;
    text-align: left;
}
	.cat-card-body span {
    font-size: 14px;
    color: #666;
    margin: 0 0 15px 0;
    flex-grow: 1;
    text-align: left;
    font-weight: bold;
}

.btn-more {
    display: inline-block;
    background: #333;
    color: #fff!important;
    padding: 8px 24px;
    border-radius: 4px;
    text-decoration: none!important;
    font-size: 0.85rem;
    font-weight: bold;
    transition: background 0.2s;
    width: 50%;
    margin: 0 auto;
}
.btn-more:hover {
  box-shadow    : none;        /* カーソル時の影消去 */
  opacity       : 0.8;         /* カーソル時透明度 */
}
	/* ==========================================================================
   4. 技術・工場情報 (products-info-sec)
   ========================================================================== */
.products-info-sec {
  padding: 20px;
  background: #f9f9f9;
}

.info-grid {
  display: flex;
  gap: 30px;
  margin: 0 auto;
}

.info-card {
  flex: 1;
  background: #fff;
  border: 1px solid #e0e0e0;
  padding: 10px;
  border-radius: 6px;
  text-align: center;
}

.info-card h4 {
  font-size: 1.15rem;
  color: #222;
  margin: 0 0 12px 0;
  border-bottom: 2px solid #c55a11;
  display: inline-block;
	font-weight: bold;
}

.info-card p {
    font-size: 0.82rem;
    color: #666;
    margin: 0 0 5px 0;
    text-align: left;
}

.link-arrow {
  color: #c55a11;
  text-decoration: none;
  font-weight: bold;
  font-size: 0.85rem;
}


.link-arrow:hover {
  text-decoration: underline;
}

}


/* --------------------------------------------------------
   スマートフォン対応（767px以下）
   -------------------------------------------------------- */
@media screen and (max-width: 767px) {
  #index_strength {
    padding: 10px 0px 20px;
  }

  /* 2カラムから1カラム（縦並び）へスイッチ */
  #index_strength .inner.col2 {
    flex-direction: column;
    gap: 10px;
  }

  #index_strength .index_h2 {
    flex: none;
    width: 100%;
  }

  #index_strength .index_h2 .ja {
    font-size: 1.6rem;
  }

  #index_strength .index_h2 .en {
    font-size: 0.95rem;
  }

  #index_strength .text {
    font-size: 1.05rem;
    margin-bottom: 25px !important;
  }

  /* スマホ用の余白クラス（smb = Sp Margin Bottom） */
  .smb25 {
    margin-bottom: 25px !important;
  }

  #index_strength .index_strength_txt p {
    font-size: 0.95rem;
  }

  #index_strength .index_strength_p span {
    font-size: 1.05rem;
    margin-bottom: 10px !important;
  }

  #index_strength .txt {
    font-size: 0.95rem;
    line-height: 1.7;
  }
  
  /* スマホでの改行（brタグ）を無効化して自然に折り返させる */
  #index_strength .txt br {
    display: none;
  }
/* ==========================================================================
   3. 製品紹介カテゴリ一覧 (products-cat-sec)
   ========================================================================== */
.products-cat-sec {
  background: #ffffff;
  padding: 0px 10px;
}

.cat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 25px;
}

.cat-card {
    background: #fff;
    overflow: hidden;
    transition: transform 0.3s ease;
    display: flex;
    flex-direction: column;
    border: 1px solid #e0e0e0;
    padding: 10px;
    border-radius: 6px;
}

.cat-card-img {
  height: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #888;
  font-size: 0.9rem;
}

.cat-card-body {
    padding: 5px 10px;
    text-align: center;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}
.cat-card-body h3 {
    font-size: 1rem;
    color: #222;
    font-weight: bold;
}
.cat-card-body p {
    font-size: 0.85rem;
    color: #666;
    margin: 0 0 15px 0;
    flex-grow: 1;
    text-align: left;
}

	.cat-card-body span {
    font-size: 0.75rem;
    color: #666;
    margin: 0;
    flex-grow: 1;
    text-align: left;
    font-weight: bold;
}
	.cat-card-body span.title{display: block;}
	
.btn-more {
    display: inline-block;
    background: #333;
    color: #fff!important;
    padding: 8px 24px;
    border-radius: 4px;
    text-decoration: none!important;
    font-size: 0.85rem;
    font-weight: bold;
    transition: background 0.2s;
}

.btn-more:hover {
  box-shadow    : none;        /* カーソル時の影消去 */
  opacity       : 0.8;         /* カーソル時透明度 */
}
	/* ==========================================================================
   4. 技術・工場情報 (products-info-sec)
   ========================================================================== */
.products-info-sec {
  padding: 20px;
  background: #f9f9f9;
}

.info-grid {
  display: flex;
  gap: 30px;
  margin: 0 auto;
}

.info-card {
  flex: 1;
  background: #fff;
  border: 1px solid #e0e0e0;
  padding: 10px;
  border-radius: 6px;
  text-align: center;
}

.info-card h4 {
  font-size: 1.15rem;
  color: #222;
  margin: 0 0 12px 0;
  border-bottom: 2px solid #c55a11;
  display: inline-block;
	font-weight: bold;
}

.info-card p {
    font-size: 0.82rem;
    color: #666;
    margin: 0 0 5px 0;
    text-align: left;
}

.link-arrow {
  color: #c55a11;
  text-decoration: none;
  font-weight: bold;
  font-size: 0.85rem;
}

.link-arrow:hover {
  text-decoration: underline;
}
	
	
}


/* ==========================================================================
   5. レスポンシブ対応 (SP用)
   ========================================================================== */
.sp-only {
  display: none;
}

@media (max-width: 768px) {
  .sp-only {
    display: block;
  }
  
  .strength-flex {
    flex-direction: column;
    gap: 40px;
  }

  .strength-title-col {
    flex: none;
    width: 100%;
    position: static;
  }

  .strength-title-col .en-title {
    font-size: 2rem;
    margin-bottom: 5px;
  }

  .strength-title-col .jp-title {
    font-size: 1.35rem;
    border-left-width: 3px;
    padding-left: 10px;
  }

  .strength-content-col {
    width: 100%;
  }

  .strength-content-col .main-catch {
    font-size: 1.2rem;
  }

  .index_strength_p {
    font-size: 0.85rem;
    line-height: 1.7;
    margin-bottom: 30px;
  }

  .mb15 {
    margin-bottom: 10px;
  }

  .strength-item {
    padding: 18px 20px;
    gap: 15px;
  }

  .strength-item .item-title {
    font-size: 0.95rem;
  }

  /* 下部工場情報エリア */
  .info-grid {
    flex-direction: column;
  }
}