@charset "UTF-8";
/*
Theme Name: 製品ページスタイル
Description: 製品ページ用CSS（お知らせページと同じレイアウト）
*/

/* ========================================
   カラー変数
======================================== */
:root {
  --blue: #004597;
  --black: #373737;
  --navy: #1f262d;
  --dblue: #32517b;
  --lgray: #d3d3d3;
  --bluegreen: #136a8a;
  --gold: #c0994b;
}

.container.grid-container {
  max-width: unset;
}
/* ========================================
   製品ページレイアウト
======================================== */
.post-type-archive-product .site-content,
.tax-product_category .site-content,
.single-product .site-content,
.single-application .site-content,
.post-type-archive-application .site-content {
  display: block;
}
.product-container {
  width: 100%;
  display: flex;
  flex-direction: row-reverse;
  margin: 0 auto;
}
.product-main-wrapper {
  width: 70%; /*サイドバー30%*/
  flex-grow: 1;
}
.product-main {
  min-width: 0;
  padding-bottom: 5em;
  margin: 1em 3em;
}

.product-article {
  background: #fff;
  padding: 2em 0;
  border-radius: 6px;
}
.product-article .grid-2 {
  grid-template-columns: 2fr 3fr;
  align-items: flex-start;
}
/* ========================================
   製品ページ共通ヘッダー
======================================== */

.product-header {
  position: relative;
}

h1.product-title {
  position: absolute;
  top: 50%;
  left: 5%;
  transform: translateY(-50%);
  font-size: 2em;
  line-height: 1.2;
}

.product-header img {
  height: 210px;
  object-fit: cover;
}

h1.product-title .english-title {
  font-family: "Jost", sans-serif;
  font-weight: 600;
  font-size: 1.5em;
  background: linear-gradient(to left, #004597 0%, #32517b 50%, #1b1f23 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}
h1.product-title .english-title.single-product-title {
  font-size: 1em;
}
h1.product-title .japanese-title {
  color: var(--blue);
  font-size: 0.6em;
  margin-left: 0.2em;
}
.single-application h1.product-title .japanese-title {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1em;
}

article.product-article h2 {
  font-family: sans-serif;
  font-size: 1.5em;
  padding: 0.5em 0.7em;
  border-left: 5px solid var(--navy);
  border-bottom: 1px solid #a0a9b6;
  background-color: #f2f2f2;
  color: var(--navy);
  margin-top: 3em;
  margin-bottom: 1.5em;
}

/* ========================================
   製品画像の背景
======================================== */

/* 詳細ページのアイキャッチ画像 */
.product-image {
  text-align: center;
  position: relative;
  overflow: hidden;
}

.product-image img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
}

.product-image:not(.system-product) img {
  max-height: 300px;
  object-fit: contain;
}
/* ========================================
   製品コンテンツ
======================================== */
.product-content {
  line-height: 1.9;
  margin-bottom: 50px;
  color: var(--black);
  font-size: 16px;
  /* max-width: 1000px; */
  margin: 0 auto;
  padding: 5%;
}

.product-content .main {
  padding: 0;
}

.product-content p {
  margin-bottom: 1.5em;
}

/* セクション見出し */
/* .product-content h2 {
  font-size: 2em;
  margin: 40px 0 20px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--blue);
  color: var(--blue);
} */

/* ========================================
   製品説明
======================================== */
.description-text {
  line-height: 1.9;
  color: var(--black);
  font-size: 16px;
}
/*=================================
製品個別ページ仕様テーブル
===================================*/
.spec-table-wrapper {
  overflow-x: scroll;
  scrollbar-width: thin;
  scrollbar-color: #888 #f1f1f1;
}

.spec-table-wrapper {
  overflow-x: scroll;
  overflow-y: hidden;
  scrollbar-width: auto;
  scrollbar-color: #a8c7d7 #e1e1e1;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 5px; /* スクロールバーの余白 */
}

/* スクロールバー本体 */
.spec-table-wrapper::-webkit-scrollbar {
  height: 14px;
  -webkit-appearance: none;
  display: block;
}

/* スクロールバーの背景 */
.spec-table-wrapper::-webkit-scrollbar-track {
  background: #f0f0f0;
  border-radius: 7px;
  margin: 0 10px; /* 両端に余白 */
}

/* スクロールバーのつまみ */
.spec-table-wrapper::-webkit-scrollbar-thumb {
  background: #a8c7d7;
  border-radius: 7px;
  border: 2px solid #f0f0f0;
  min-width: 30px; /* 最小幅を設定 */
}

/* ホバー時 */
.spec-table-wrapper::-webkit-scrollbar-thumb:hover {
  background: #a8c7d7;
}

/* アクティブ時 */
.spec-table-wrapper::-webkit-scrollbar-thumb:active {
  background: #a8c7d7;
}

.spec-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 0; /* wrapperにmarginを移動 */
  background: #fff;
  min-width: 600px; /* 最小幅を設定してスクロールを促す */
}

.spec-table caption {
  font-size: 1.2em;
  font-weight: bold;
  padding: 0.5em 1em;
  background: #e9f1f8;
  border: 1px solid #eee;
  text-align: left;
}

.spec-table th,
.spec-table td {
  padding: 12px 15px;
  border: 1px solid #eee;
  text-align: left;
  vertical-align: top;
  width: fit-content;
  min-width: 130px; /* 最小幅を設定 */
  white-space: nowrap; /* テキストの折り返しを防ぐ */
}

.spec-table th {
  background: #f0f4f6;
  font-weight: bold;
}

.spec-table td {
  background: #fff;
}

.spec-table tr:hover {
  background: #f9f9f9;
}

/* 改行が必要な場合のクラス */
.spec-table .allow-wrap {
  white-space: normal;
}

.note {
  font-size: 0.9em;
  color: #666;
  font-style: italic;
}

.quantity {
  text-align: center;
  font-weight: bold;
}

/* スマホ対応 */
@media (max-width: 768px) {
  .spec-table th,
  .spec-table td {
    min-width: 100px;
    padding: 8px 10px;
    font-size: 0.8em;
  }
}
/* ========================================
   YouTube動画
======================================== */
.product-video {
  margin-bottom: 40px;
  padding-bottom: 40px;
}

.video-wrapper {
  position: relative;
  padding-bottom: 56.25%; /* 16:9 */
  height: 0;
  overflow: hidden;
  border-radius: 6px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.video-wrapper iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/* ========================================
   仕様書画像
======================================== */
.product-spec {
  margin-bottom: 40px;
}

.spec-image {
  padding: 0;
  text-align: center;
  max-width: 350px;
}

.spec-image img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
  box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px;
  cursor: pointer;
  transition: transform 0.3s ease;
}

.spec-image img:hover {
  transform: scale(1.02);
}

.spec-caption {
  margin-top: 10px;
  font-size: 14px;
  color: #666;
  text-align: center;
}

.spec-thumb {
  cursor: zoom-in;
}

.spec-dialog {
  border: none;
  padding: 0;
  max-width: 90vw;
  max-height: 90vh;
}

.spec-dialog img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.dialog-close {
  position: absolute;
  top: 10px;
  right: 14px;
  font-size: 24px;
  background: none;
  border: none;
  cursor: pointer;
}

/* ========================================
   一覧ページのサムネイル画像
======================================== */
.product-item-thumbnail {
  position: relative;
  width: 100%;
  padding-top: 95%;
  border-radius: 6px;
  overflow: hidden;
  margin: 15px 0;
  background: radial-gradient(ellipse at center top, rgba(255, 255, 255, 0.4) 0%, rgba(255, 255, 255, 0.2) 30%, rgba(255, 255, 255, 0) 60%),
    linear-gradient(to bottom, var(--dblue) 0%, var(--navy) 50%, var(--navy) 100%);
}

.product-item-thumbnail img {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  max-width: 85%;
  max-height: 85%;
  width: auto;
  height: auto;
  object-fit: contain;
  transition: all 0.3s ease;
  filter: drop-shadow(0 8px 16px rgba(0, 0, 0, 0.3));
}

.product-item:hover .product-item-thumbnail img {
  transform: translate(-50%, -50%) scale(1.05);
  filter: drop-shadow(0 12px 24px rgba(0, 0, 0, 0.4));
}

@media (max-width: 768px) {
  article.product-article h2 {
    font-size: 1.3em;
  }
  .product-article .grid-2 {
    grid-template-columns: 1fr;
  }
  .product-image {
    padding: 40px 25px;
  }

  .spec-image {
    padding: 30px 20px;
  }
  .application-link {
    flex-direction: column;
    align-items: flex-start;
  }

  .application-thumbnail-small {
    width: 100%;
    height: 180px;
  }

  .application-arrow {
    align-self: flex-end;
  }
  .product-container {
    width: 100%;
    flex-direction: column-reverse;
    gap: 0;
  }
  .product-main-wrapper {
    width: 100%;
    padding: 0;
  }
  h1.product-title {
    font-size: 1.5em;
    width: 90%;
  }
  .product-main {
    margin: 0 5%;
    padding-bottom: 2em;
  }
  .product-content {
    font-size: 15px;
  }
  .product-header img {
    height: 150px;
  }
  .product-navigation {
    flex-direction: column;
    gap: 15px;
  }

  .description-text {
    font-size: 0.9em;
  }
}

/* ========================================
   製品カテゴリ一覧&アプリケーション一覧（archive-product.php・archive-application.php）
======================================== */

.category-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  margin-top: 40px;
  background: #fff;
}

.parent-category-section.nordson-efd-products-section .category-grid {
  grid-template-columns: 1fr;
}

.category-card {
  background: #fff;
  border-right: 1px solid #dfe8f4;
  border-bottom: 1px solid #dfe8f4;
  transition: background-color 0.3s ease;
}
.parent-category-section.nordson-efd-products-section .category-card {
  border-right: none;
}

.category-card:hover {
  background-color: #fafafa;
}
.applications-container .category-card:hover {
  background-color: inherit;
}
.category-card-link {
  position: relative;
  display: flex;
  align-items: center;
  gap: 1em;
  padding: 0.5em 5%;
  text-decoration: none;
  color: inherit;
  height: 100%;
}
/* 1つだけの場合、幅を広げる */
.category-card:only-child {
  grid-column: 1 / -1;
  border-right: none;
}

/* ========================================
 カテゴリー画像（左側）
======================================== */
.category-thumbnail {
  flex-shrink: 0;
  width: 25%;
  height: auto;
  position: relative;
}

.parent-category-section.nordson-efd-products-section .category-thumbnail {
  width: 30%;
}

.category-thumbnail img {
  width: 100%;
  height: 10em;
  max-height: 175px;
  object-fit: contain;
  transition: transform 0.3s ease;
}

.category-card:hover .category-thumbnail img {
  transform: scale(1.05);
}
.applications-container .category-card:hover .category-thumbnail img {
  transform: none;
}
/* ========================================
 カテゴリー情報（右側）
======================================== */
.category-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.category-name {
  font-size: 1.1em;
  margin-bottom: 12px;
  line-height: 1.3;
}

.category-name .english-name {
  display: block;
  font-size: 0.7em;
  font-family: "Jost", sans-serif;
  color: var(--blue);
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 0.8em;
}

.category-name .japanese-name {
  display: block;
  font-weight: 800;
  color: var(--navy);
}

.category-description {
  color: #666;
  line-height: 1.7;
}

.view-more {
  display: inline-flex;
  align-items: center;
  font-size: 0.8em;
  font-weight: 500;
  transition: color 0.3s ease;
  position: relative;
  color: var(--navy);
}

.view-more .fa-solid {
  border: solid 1px currentColor;
  border-radius: 50%;
  padding: 6px;
  margin-left: 5px;
  font-size: 1em;
  transition: transform 0.3s ease;
}

.category-card:hover .view-more {
  color: var(--blue);
}

.category-card:hover .view-more .fa-solid {
  transform: translateX(3px);
}

/* 親カテゴリーセクション */
.parent-category-section {
  margin-bottom: 60px;
}

.parent-category-section:last-child {
  margin-bottom: 0;
}

/* 親カテゴリータイトル */
.parent-category-title {
  font-size: 1.7em;
  font-weight: 700;
  margin: 2em 0;
  padding-bottom: 0.5em;
  border-bottom: 3px solid var(--blue);
  line-height: 1.3;
  scroll-margin-top: 100px; /*ヘッダーの高さ（スクロールした時の）*/
}
.parent-category-title .english-name {
  display: block;
  font-size: 1.5em;
  font-family: "Jost", sans-serif;
  color: var(--blue);
  margin-bottom: 0;
}
.led-section .parent-category-title .english-name {
  text-transform: uppercase;
}

.parent-category-title .japanese-name {
  font-size: 0.6em;
  color: var(--blue);
  font-weight: 400;
}

/* 子カテゴリーがない場合 */
.no-child-categories {
  text-align: center;
  padding: 40px 20px;
  color: #999;
  font-size: 0.95rem;
}

/* ========================================
 システム一覧(システム製品ラインナップ)
======================================== */
.system-grid.category-grid {
  gap: 3%;
  background: transparent;
}
.system-grid .category-card {
  border: none;
  box-shadow: rgba(0, 0, 0, 0.05) 0px 6px 24px 0px, rgba(0, 0, 0, 0.08) 0px 0px 0px 1px;
}
.system-grid .category-card-link {
  position: relative;
  flex-direction: column;
  padding: 4.5em 3em 1em;
}
.system-grid .category-thumbnail {
  width: 100%;
}
.system-grid .category-thumbnail img {
  height: 100%;
  max-height: unset;
}
.system-grid .category-name {
  font-size: 1.7em;
  border-bottom: 2px solid #9ba4b1;
  padding-bottom: 0.1em;
}
.system-grid .view-more {
  position: absolute;
  bottom: 2em;
  right: 5%;
}
.system-label {
  position: absolute;
  top: 0;
  left: 0;
  background: linear-gradient(220.55deg, #bec1c5 0%, #616566 100%);
  color: #fff;
  padding: 0.5em 1em;
  font-size: 0.8em;
  font-weight: bold;
}
.system-main .archive-description {
  font-size: 1.1em;
  font-weight: 500;
  text-align: center;
  margin: 3em 0;
}
/* ========================================
 カテゴリーが見つからない場合
======================================== */
.no-categories {
  text-align: center;
  padding: 80px 20px;
  color: #666;
  border: 1px solid #e0e0e0;
}

.no-categories p {
  font-size: 1.1rem;
}

/* ========================================
 レスポンシブ対応
======================================== */

@media (max-width: 1200px) {
  .category-card-link {
    padding: 30px;
    gap: 0.5em;
  }

  .category-thumbnail {
    width: 150px;
  }
  .product-main .category-grid {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .category-card {
    border-right: none;
  }
  .category-thumbnail img {
    height: auto;
    max-height: 120px;
  }
}

@media (max-width: 768px) {
  .parent-category-title .english-name {
    font-size: 0.9em;
  }
  .category-card {
    border-right: none;
  }

  .category-card-link {
    padding: 1.5em;
  }

  .category-thumbnail {
    width: 120px;
  }

  .category-name {
    font-size: 1.1em;
    text-align: center;
  }
  .view-more {
    position: absolute;
    top: 50%;
    right: 1.5em;
    bottom: unset;
    transform: translateY(-50%);
  }
  .post-type-archive-product .category-content {
    width: 90%;
    margin: 1em 2em 0 0;
  }
  .system-grid .category-content {
    width: 100%;
  }
}

@media (max-width: 480px) {
  .category-card-link {
    flex-direction: column;
    text-align: center;
    padding: 1em 0.4em;
  }
  .category-content {
    width: 70%;
    text-align: left;
    margin-top: 1em;
  }
  .post-type-archive-product .category-content {
    width: 80%;
    margin: 1em 15% 0 5%;
  }
  .category-thumbnail {
    width: 100%;
    max-width: 200px;
  }
  .category-description {
    text-align: justify;
    line-height: 1.5;
    font-size: 0.9em;
  }
  .archive-description {
    font-size: 0.9em;
    margin: 30px 0;
  }
}

/* ========================================
   投稿がない場合
======================================== */
.no-posts {
  text-align: center;
  padding: 60px 20px;
  background: #f8f9fa;
  border-radius: 6px;
  border: 2px dashed var(--lgray);
}

.no-posts p {
  color: var(--black);
  font-size: 16px;
  margin: 0;
}

/* ========================================
   レスポンシブ（タブレット・スマホ）
======================================== */
@media (max-width: 1024px) {
  .archive-title {
    font-size: 28px;
  }
}

@media (max-width: 768px) {
  .archive-header {
    margin-bottom: 30px;
  }

  .archive-title {
    font-size: 24px;
  }

  .archive-description {
    font-size: 14px;
  }

  .product-list {
    gap: 15px;
    margin-bottom: 40px;
  }

  .product-item-link {
    padding: 20px;
  }

  .product-item-title {
    font-size: 18px;
  }

  .product-item-excerpt {
    font-size: 13px;
  }
}

@media (max-width: 480px) {
  .product-item-link {
    padding: 16px;
  }

  .product-item-title {
    font-size: 16px;
    margin-bottom: 10px;
  }
}

/* ========================================
   製品画像の背景
======================================== */

/* 一覧ページのサムネイル画像 */
.product-item-thumbnail {
  position: relative;
  width: 100%;
  padding-top: 95%;
  overflow: hidden;
  margin: 15px 0;
  background: radial-gradient(
      ellipse at center top,
      rgba(255, 255, 255, 0.4) 0%,
      /* より明るく */ rgba(255, 255, 255, 0.2) 30%,
      rgba(255, 255, 255, 0) 60%
    ),
    linear-gradient(to bottom, var(--dblue) 0%, var(--navy) 50%, var(--navy) 100%);
}

.product-item-thumbnail img {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  max-width: 85%;
  max-height: 85%;
  width: auto;
  height: auto;
  object-fit: contain;
  transition: all 0.3s ease;
  filter: drop-shadow(0 8px 16px rgba(0, 0, 0, 0.3));
}

.product-item:hover .product-item-thumbnail img {
  transform: translate(-50%, -50%) scale(1.05);
  filter: drop-shadow(0 12px 24px rgba(0, 0, 0, 0.4));
}

/*アプリケーション*/
/* アプリケーション詳細ページ */
.application-industries {
  margin: 1rem 0;
}
.application-image {
  margin: 2rem 0;
  text-align: center;
}

.application-image img {
  max-width: 100%;
  height: auto;
}

.related-products-section {
  margin: 3rem 0;
  padding: 2rem;
  background: #f5f5f5;
}

.products-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 1.5rem;
  margin: 1.5rem 0;
}

.case-study-badge {
  position: fixed;
  top: 100px;
  right: 20px;
  background: #d63638;
  color: white;
  padding: 0.5rem 1rem;
  border-radius: 5px;
  font-weight: bold;
}

/* ========================================
   アプリケーション一覧ページ
======================================== */

.applications-container .category-thumbnail {
  width: 25%;
}

.applications-container .category-name {
  font-size: 1em;
  margin-bottom: 0;
  border-bottom: 2px solid #9ba4b1;
  padding-bottom: 0.4em;
}

.applications-container .category-card-link {
  padding: 1em 5%;
}
.applications-container .category-card:only-child .category-card-link {
  max-width: 900px;
}
/* カテゴリバッジ */
/* .product-category-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 12px;
  background: var(--dblue);
  color: #fff;
  border-radius: 4px;
  font-size: 0.875rem;
  font-weight: 500;
} */
/* 
.product-category-badge::before {
  content: "\f07b"; 
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: 0.9em;
} */

/* 個別製品バッジ */

/* 
.product-name-badge::before {
  content: "\f1b2";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: 0.9em;
} */
/*  関連製品情報 */

.related-products-info {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 12px;
  margin-bottom: 12px;
}

/* カテゴリリスト */
.product-category-list,
.product-name-list {
  display: flex;
  gap: 8px;
}

/*システム構成例*/
.system-configuration {
  display: flex;
  align-items: center;
  gap: 6px;
}
.system-config-content {
  width: fit-content;
  padding: 8px 12px;
  background: #f5f5f5;
  font-size: 0.8em;
  color: #333;
}
.system-configuration .product-label {
  font-size: 0.7em;
  white-space: nowrap;
  background: #617188;
}

/* ラベル */
.product-label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0.1em 0.5em;
  background: var(--blue);
  color: #fff;
  border-radius: 4px;
  font-size: 0.8em;
  font-weight: 500;
  width: fit-content;
}

.product-name-list .product-label {
  background: var(--gold);
}

/* 製品リスト */
.product-items {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5em;
  margin: 0;
  padding: 0;
  list-style: none;
}

.product-items li {
  padding: 0.4em 0.8em;
  background: #f5f5f5;
  font-size: 0.85em;
  font-weight: 600;
  line-height: 1.4;
  width: fit-content;
  transition: all 0.3s ease;
  cursor: pointer;
}

/* カテゴリの製品リスト */
.product-category-list .product-items li {
  background: #f7fcff;
  color: var(--dblue);
}

/* 個別製品の製品リスト */
.product-name-list .product-items li {
  background: #fffbf4;
  color: var(--gold);
}
/* 関連製品情報のリンクスタイル */
.related-products-info a {
  color: inherit;
  text-decoration: none;
  display: inline-block;
  transition: all 0.3s ease;
}

/* カテゴリリストのホバー */
.product-category-list .product-items li:hover {
  background: #e3f2fd;
  transform: translateX(4px);
}

/* 製品リストのホバー */
.product-name-list .product-items li:hover {
  background: #fff4e5;
  transform: translateX(4px);
}

/* 矢印アイコンを常に表示 */
.product-items li a::after {
  content: "\f061";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: 0.7rem;
  margin-left: 8px;
  transition: all 0.3s ease;
  display: inline-block;
}

.product-items li:hover a::after {
  opacity: 1; /* ホバー時に濃く */
  transform: translateX(4px);
}

/* アニメーション */
@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.industry-section {
  animation: fadeIn 0.5s ease;
}
@media (max-width: 768px) {
  .applications-container .category-thumbnail {
    width: 60%;
  }
  .post-type-archive-application .category-thumbnail img {
    max-height: 250px;
  }
  .product-category-list,
  .product-items,
  .product-name-list,
  .system-configuration {
    justify-content: center;
  }
}

/* ========================================
   製品個別ページの関連アプリケーション
======================================== */

/* リスト形式のスタイル */
.applications-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, min(400px, 30%)));
  gap: 1.5em;
}

.application-item {
  position: relative;
  background: #fff;
  /* border: 1px solid #e0e0e0; */
  box-shadow: rgba(0, 0, 0, 0.05) 0px 6px 24px 0px, rgba(0, 0, 0, 0.08) 0px 0px 0px 1px;
  transition: all 0.3s ease;
}

.application-link {
  display: flex;
  flex-direction: column;
  padding: 2em 2em 1em;
  text-decoration: none;
  color: inherit;
}

.related-applications-title {
  font-size: 1em;
  font-weight: 800;
  margin: 1.2em 0 1em;
  color: var(--navy);
  border-left: none;
  border-bottom: 2px solid;
  padding-bottom: 0.4em;
}

.application-thumbnail-small {
  flex-shrink: 0;
  width: 100%;
  overflow: hidden;
}

.application-thumbnail-small img {
  width: 100%;
  height: 10em;
  object-fit: contain;
}

.application-info {
  flex: 1;
  min-width: 0;
}

.industry-tags {
  position: absolute;
  top: 0.5em;
  left: 0.5em;
}

.industry-tag {
  display: inline-block;
  padding: 0 0.5em;
  background: #5f6c77;
  color: #fff;
  font-size: 0.9em;
  box-shadow: rgba(50, 50, 93, 0.25) 0px 2px 5px -1px, rgba(0, 0, 0, 0.3) 0px 1px 3px -1px;
}

.application-summary {
  font-size: 0.9rem;
  color: #666;
  margin: 0;
  line-height: 1.6;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.application-arrow {
  flex-shrink: 0;
  color: var(--dblue);
  font-size: 1.2rem;
  transition: transform 0.3s ease;
}

.application-item:hover .application-arrow {
  transform: translateX(4px);
}

/* 使用製品セクション */
.used-products {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #e0e0e0;
}

/* 現在表示中の製品 */
.used-products-list li.current-product {
  pointer-events: none;
  cursor: default;
}
.used-products-list li.current-product:hover {
  transform: none;
}

.current-badge {
  padding: 2px 6px;
  background: rgb(168, 168, 168);
  color: #fff;
  font-size: 0.8em;
  border-radius: 3px;
  font-weight: 500;
  margin-left: 10px;
}

/* レスポンシブ調整 */
@media (max-width: 768px) {
  section.related-applications h2 {
    font-size: 1.1em;
  }
  section.related-applications > p.f12em {
    font-size: 1em !important;
  }
  section.related-applications .application-link {
    padding: 3.5em 1em 1em;
  }
  .related-applications-title {
    text-align: center;
  }
  .industry-tag {
    font-size: 0.8em;
  }
  .application-link {
    padding-top: 3em;
  }
  .applications-container .category-content {
    width: 100%;
  }
  .applications-container .category-name {
    text-align: center;
  }
  .applications-list {
    grid-template-columns: 1fr;
  }
  .product-items li {
    font-size: 0.75em;
  }
  .used-products-list li .product-name {
    display: block;
    width: 100%;
  }
  .application-thumbnail-small img {
    height: 6em;
    object-fit: contain;
  }
  .application-thumbnail-small {
    height: auto;
  }
  .application-info {
    width: 90%;
  }
  section.related-applications .application-info {
    width: 100%;
  }
  .case-study-related-products .related-applications-title {
    margin: 1em 0 0.5em;
  }
  .application-item .view-more {
    bottom: 3em;
  }
}
/*=========
システム
===========*/

.grid-2.system-content {
  grid-template-columns: 5fr 4fr;
}
section.system-components .product-item {
  position: relative;
}

section.system-components .product-items {
  flex-direction: row;
  flex-wrap: wrap;
  gap: 0;
  font-size: 0.8em;
}
section.system-components .product-item {
  width: 100%;
  display: flex;
  border-radius: 0;
  background: transparent;
  border-bottom: 1px solid #eee;
  font-size: 1em;
}
section.system-components .product-link,
section.system-components .product-info {
  width: 100%;
  display: flex;
  align-items: center;
}
section.system-components h3 {
  padding: 0.8em;
  background: linear-gradient(135deg, #c1cad4 0%, #ffffff 100%);
  font-size: 0.9em;
  font-weight: 500;
  color: var(--black);
  margin-bottom: 0;
}
section.system-components h4 {
  font-size: 1.1em;
  font-weight: 700;
  margin: 0;
  border-left: none;
}
section.system-components .product-name-badge,
section.system-components .product-category-badge {
  flex-shrink: 0;
  background: transparent;
  color: #a0a0a0;
  font-size: 1.3em;
}

section.system-components .product-thumbnail {
  width: 75px;
  margin-right: 10px;
}
section.system-components .product-thumbnail img {
  height: 60px;
  object-fit: contain;
}
/* ① 流体中枢（コア）- 濃いブルー */
.product-item[data-product-name="ディスペンサー"],
.product-item[data-product-name="バレル"],
.product-item[data-product-name="バルブ"],
.product-item[data-product-name="タンク"],
.product-item[data-product-name="プランジャ"],
.product-item[data-product-name="ニードル・ノズル"],
.product-item[data-product-name="カートリッジ"],
.product-item[data-product-name="シーラントカートリッジ"] {
  color: var(--blue);
}

/* ② 精度・密閉 - 緑 */
.product-item[data-product-name="レギュレータ"],
.product-item[data-product-name="ホルダ"],
.product-item[data-product-name="プラグ"],
.product-item[data-product-name="オーリング"],
.product-item[data-product-name="チェックアダプタ"],
.product-item[data-product-name="アダプタアッセンブリ"],
.product-item[data-product-name="オートジョイント"],
.product-item[data-product-name="ニードルアダプタ"],
.product-item[data-product-name="シーラントアダプタSA01"],
.product-item[data-product-name="アルミキャップシーラントAC03N"] {
  color: #038d57;
}

/* ③ 操作系 - オレンジ */
.product-item[data-product-name="フットスイッチ"],
.product-item[data-product-name="バレルスイッチ"],
.product-item[data-product-name*="メタルコンセント"],
.product-item[data-product-name="チューブマチックAセット"],
.product-item[data-product-name*="PTFE"] {
  color: #d25102;
}

/* ④ アクセサリ - グレー */
.product-item[data-product-name="チップキャップ"],
.product-item[data-product-name="バレルキャップ"],
.product-item[data-product-name="バレルスタンド"],
.product-item[data-product-name="アルミキャップ"],
.product-item[data-product-name="キャップ"],
.product-item[data-product-name="接続チューブ"],
.product-item[data-product-name="分岐ユニット PA02"] {
  color: #757575;
}
.product-item span {
  color: inherit !important;
}

/* ドロワー */
.product-modal {
  display: none; /* 初期状態 */
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 9999;
}

/* オーバーレイ */
.modal-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  cursor: pointer;
  opacity: 0;
  transition: opacity 0.5s ease;
}

.product-modal.is-active .modal-overlay {
  opacity: 1;
}

/* ドロワーコンテンツ */
.modal-content {
  position: fixed;
  top: 0;
  right: -50%;
  width: 25%;
  min-width: 280px;
  max-width: 300px;
  height: 100%;
  background: rgba(255, 255, 255, 0.6);
  backdrop-filter: blur(3px);
  box-shadow: 0 2px 16px rgba(0, 0, 0, 0.08);
  overflow-y: auto;
  transition: right 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}

.product-modal.is-active .modal-content {
  right: 0;
}

/* 閉じるボタン */
.modal-close {
  position: sticky;
  top: 3em;
  left: 20px;
  width: 40px;
  height: 40px;
  background-color: #fff;
  border: 2px solid #ddd;
  border-radius: 50%;
  font-size: 1em;
  color: #666;
  cursor: pointer;
  z-index: 10;
  margin-bottom: -40px;
  margin-left: 20px;
  opacity: 0;
  transform: translateX(-20px);
  transition: all 0.3s ease;
}
.product-modal.is-active .modal-close {
  opacity: 1;
  transform: translateX(0);
  transition-delay: 0.4s;
}

.modal-close:hover {
  background-color: #f5f5f5;
  border-color: #999;
  color: #000;
  transform: translateX(0) scale(1.1);
}
.modal-close i {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

/* モーダルボディ */
.modal-body {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  padding: 40px 30px;
}

/* モーダル画像 */
.modal-image {
  width: 100%;
  margin-bottom: 30px;
  border-radius: 8px;
  overflow: hidden;
  background-color: #f5f5f5;
}

.modal-image img {
  width: 100%;
  height: auto;
  display: block;
}

/* モーダル情報 */
.modal-info {
  text-align: left;
}

.modal-title {
  font-size: 28px;
  font-weight: bold;
  margin-bottom: 20px;
  color: #333;
  line-height: 1.4;
}

.modal-description {
  font-size: 15px;
  line-height: 1.8;
  color: #666;
  margin-bottom: 30px;
  white-space: pre-line;
}

/* 詳細リンクボタン */
.modal-link-btn {
  display: inline-block;
  padding: 0.5em 2em;
  background-color: var(--dblue);
  color: #fff;
  text-decoration: none;
  font-weight: bold;
  font-size: 16px;
  transition: all 0.3s ease;
  box-shadow: 0 2px 8px rgba(21, 101, 192, 0.1);
}
.modal-link-btn::after {
  content: "\f061"; /* fa-arrow-right */
  font-family: "Font Awesome 6 Free";
  font-weight: 900; /* solid */
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: solid 1px #fff;
  border-radius: 50%;
  padding: 6px;
  margin-left: 5px;
  font-size: 0.9em;
  line-height: 1;
}
.modal-link-btn:hover {
  color: #fff4e5;
  background-color: #0d47a1;
  box-shadow: 0 4px 12px rgba(21, 101, 192, 0.4);
  transform: translateY(-2px);
}

/* レスポンシブ */
@media (max-width: 1024px) {
  .grid-2.system-content {
    grid-template-columns: 1fr;
  }
  .modal-content {
    width: 60%;
    right: -60%;
  }
}

@media (max-width: 768px) {
  .modal-content {
    width: 85%;
    right: -85%;
  }

  .modal-body {
    padding: 30px 20px;
  }

  .modal-title {
    font-size: 24px;
  }

  .modal-close {
    top: 15px;
    left: 15px;
    margin-left: 15px;
  }
}

@media (max-width: 480px) {
  .modal-content {
    width: 100%;
    right: -100%;
  }
}

/*=================
製品サイドバー
===================*/

html {
  scroll-behavior: smooth;
}

aside.l-page-sidebar--product li.has__sublist {
  border-bottom: 1px solid #ffffff7a;
}
aside.l-page-sidebar--product li.c-page-nav__item--parent:last-child {
  border-top: none;
  border-bottom: 1px solid #ffffff7a;
}
.c-page-nav__title {
  font-family: "Noto Sans JP", sans-serif;
  text-align: right;
  padding: 0.3em 1.1em 0.3em 0;
  font-size: 1.3em;
  background: var(--dblue);
  color: #fff;
}
aside.l-page-sidebar--product li.c-page-nav__item--sub > a {
  font-weight: 400;
}
.l-page-layout {
  width: 20%;
  max-width: 360px;
}
aside.l-page-sidebar--product.l-page-sidebar {
  background: linear-gradient(to right, #8aa1b4 0%, #4d78ad 100%);
  width: 100%;
}
aside.l-page-sidebar--product .c-page-nav {
  scrollbar-gutter: stable;
}
aside.l-page-sidebar--product ul.c-page-nav__list {
  font-size: 0.85em;
  width: 80%;
  margin: 0 5% 0 auto;
}
aside.l-page-sidebar--product .c-page-nav__link {
  color: #fff;
}
aside.l-page-sidebar--product ul.c-page-nav__sublist {
  border-right: 1px solid #ffffff7a;
}
aside.l-page-sidebar--product li.c-page-nav__item--parent {
  border-bottom: 1px solid #ffffff7a;
}
aside.l-page-sidebar--product .c-page-nav__link:hover {
  color: var(--blue);
  background: #dddddd7d;
}
aside.l-page-sidebar--product ul.c-page-nav__sublist {
  margin: 0 1em 0 0;
}
aside.l-page-sidebar--product ul.c-page-nav__sublist.is-open {
  margin-bottom: 1em;
}

aside.l-page-sidebar--product .c-page-nav {
  /* Firefox用 */
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.2) transparent;
}
/* Chrome, Edge, Safari用 */
aside.l-page-sidebar--product .c-page-nav::-webkit-scrollbar {
  width: 4px; /* スクロールバーの幅 */
}
aside.l-page-sidebar--product .c-page-nav::-webkit-scrollbar-track {
  background: transparent; /* 背景を透明に */
}
aside.l-page-sidebar--product .c-page-nav::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.2); /* 薄い白 */
  border-radius: 2px;
}

aside.l-page-sidebar--product .c-page-nav::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.5); /* ホバー時少し濃く */
}
/*サイドバーアコーディオン*/
.js-accordion-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s ease;
}
.js-accordion-content.is-open {
  max-height: 1000px;
}
.js-accordion.is-init .js-accordion-content {
  transition: none;
}
.accordion-icon {
  display: inline-block;
  width: 20px;
  height: 20px;
  position: relative;
  margin-left: 8px;
}

/* プラス記号 */
.accordion-icon::before,
.accordion-icon::after {
  content: "";
  position: absolute;
  background-color: currentColor;
  transition: transform 0.3s ease, opacity 0.3s ease;
}

.accordion-icon::before {
  width: 12px;
  height: 2px;
  top: 70%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.accordion-icon::after {
  width: 2px;
  height: 12px;
  top: 70%;
  left: 50%;
  transform: translate(-50%, -50%);
}

/* 開いたらマイナスに */
.js-accordion-trigger.is-active .accordion-icon::after {
  opacity: 0;
  transform: translate(-50%, -50%) rotate(90deg);
}

/* 初期描画時はアニメーションしない */
.js-accordion.is-init .accordion-icon::before,
.js-accordion.is-init .accordion-icon::after {
  transition: none;
}
.c-mobile-accordion__toggle {
  display: none;
}

@media (max-width: 768px) {
  .l-page-layout {
    width: 100%;
    max-width: unset;
    padding-bottom: 0;
    position: sticky;
    top: 3.5em;
    z-index: 100;
    transition: box-shadow 0.3s ease, background-color 0.3s ease;
  }
  .c-page-nav.c-mobile-accordion__content {
    max-height: 0;
    overflow: hidden;
  }
  aside.l-page-sidebar {
    display: block;
    position: static;
    width: 100%;
    overflow: hidden;
  }

  aside.l-page-sidebar--product.l-page-sidebar {
    width: 100%;
    padding: 0;
  }
  /* スマホ用トリガーボタン */
  .c-mobile-accordion__toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 16px 20px;
    background: linear-gradient(to right, #8aa1b4 0%, #4d78ad 100%);
    border: none;
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    text-align: left;
  }

  .c-mobile-accordion__toggle__icon {
    margin-right: 8px;
  }

  .c-mobile-accordion__toggle__text {
    flex: 1;
  }

  .c-mobile-accordion__toggle__arrow {
    transition: transform 0.3s ease;
    font-size: 14px;
  }

  .c-mobile-accordion__toggle.is-active .c-mobile-accordion__toggle__arrow {
    transform: rotate(180deg);
  }

  /* ナビゲーション部分をアコーディオン化 */
  .c-page-nav.c-mobile-accordion__content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.35s ease;
  }

  .c-page-nav.c-mobile-accordion__content.is-active {
    max-height: 80vh;
    overflow-y: auto;
  }

  /* タイトルをスマホでは非表示 */
  h2.c-page-nav__title {
    display: none;
  }

  /* スマホ用のナビゲーションリスト調整 */
  aside.l-page-sidebar--product ul.c-page-nav__list {
    width: 90%;
    margin: 0 5%;
    padding: 0 0 10px;
  }

  /* スマホでのナビゲーション調整 */
  aside.l-page-sidebar--product .c-page-nav {
    top: 0;
    position: static;
  }
}

/* スマホ用：コンパクト表示の追加CSS */
@media (max-width: 768px) {
  /* ナビゲーション全体をコンパクトに */
  .c-page-nav.c-mobile-accordion__content.is-active {
    max-height: 70vh; /* 画面の70%に制限 */
    overflow-y: auto;
    -webkit-overflow-scrolling: touch; /* スムーズスクロール */
  }

  /* リスト項目の間隔を詰める */
  .c-page-nav__item {
    margin-bottom: 0 !important;
  }

  /* 親項目をコンパクトに */
  .c-page-nav__link--parent {
    padding: 12px 20px !important; /* 既存より小さく */
    font-size: 14px !important;
    line-height: 1.3 !important;
  }

  /* サブ項目をさらにコンパクトに */
  .c-page-nav__link--sub {
    padding: 8px 20px 8px 40px !important; /* 左インデント + 小さなパディング */
    font-size: 13px !important;
    line-height: 1.2 !important;
  }

  /* サブリストの間隔調整 */
  .c-page-nav__sublist {
    margin: 0 !important;
  }

  .c-page-nav__sublist .c-page-nav__item {
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  }

  .c-page-nav__sublist .c-page-nav__item:last-child {
    border-bottom: none;
  }

  /* アコーディオンアイコンを小さく */
  .accordion-icon {
    font-size: 12px !important;
  }

  /* スクロールバーをカスタマイズ（Webkit系ブラウザ） */
  .c-page-nav.c-mobile-accordion__content::-webkit-scrollbar {
    width: 4px;
  }

  .c-page-nav.c-mobile-accordion__content::-webkit-scrollbar-track {
    background: rgba(255, 255, 255, 0.1);
  }

  .c-page-nav.c-mobile-accordion__content::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.3);
    border-radius: 2px;
  }
}

@media (max-width: 768px) {
  /* 製品カテゴリを2カラムに */
  .c-page-nav__sublist {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 0;
  }

  .c-page-nav__sublist .c-page-nav__item {
    margin: 0;
  }

  .c-page-nav__sublist .c-page-nav__link--sub {
    padding: 10px 8px !important;
    font-size: 12px !important;
    text-align: center;
  }
}

/* ===================================
   導入前の課題セクション
=================================== */
h1.case-study-title {
  line-height: 1.6;
}
h1.case-study-title .english-title {
  font-size: 0.7em;
}
h1.case-study-title .main-title {
  font-size: 1em;
  color: var(--blue);
  word-wrap: normal;
}
h1.case-study-title .sub-title {
  font-size: 0.5em;
  font-family: "Noto Sans JP", sans-serif;
  color: var(--black);
}
.section-content .grid-2-1 {
  align-items: flex-end;
  margin-bottom: 2.5em;
}

/* 課題ボックス */
.challenge-box {
  padding: 2em;
  background: #ffffff;
  border: 0.125em solid var(--lgray);
  border-radius: 0.5em;
  box-shadow: 0 0.125em 0.5em rgba(0, 0, 0, 0.05);
}

.challenge-subtitle {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--blue);
  margin-bottom: 1.25em;
  padding-bottom: 0.75em;
  border-bottom: 0.125em solid var(--lgray);
}

/* 課題リスト */
.challenge-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.challenge-list li {
  position: relative;
  padding-left: 2em;
  margin-bottom: 1em;
  font-size: 1rem;
  line-height: 1.8;
  color: var(--black);
}

.challenge-list li:last-child {
  margin-bottom: 0;
}

.challenge-list li::before {
  content: "▶";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--blue);
  font-size: 0.875rem;
}

/* サマリーテキスト */
.summary-text {
  padding: 1.5em;
  background: linear-gradient(135deg, #f0f7ff 0%, #ffffff 100%);
  border-radius: 0.25em;
  border-left: 0.25em solid var(--blue);
}

.summary-text p {
  font-size: 1rem;
  line-height: 1.8;
  color: var(--black);
  margin: 0;
}

/* ===================================
 レスポンシブ対応
=================================== */

@media (max-width: 768px) {
  .case-section {
    margin-bottom: 3.75em;
  }

  .section-header {
    margin-bottom: 2em;
  }
  .page-template-template-product h2.company-english-title span {
    font-size: 1em;
  }
  .section-title-en {
    font-size: 0.75rem;
  }
  h1.case-study-title .sub-title {
    margin-left: 0;
  }
  .section-title-ja {
    font-size: 1.5rem;
    padding-bottom: 0.75em;
    border-bottom-width: 0.125em;
  }

  .intro-text,
  .challenge-box,
  .summary-text {
    padding: 1.25em;
  }

  .challenge-subtitle {
    font-size: 1.125rem;
  }

  .challenge-list li {
    font-size: 0.9375rem;
    padding-left: 1.75em;
  }

  .intro-text p,
  .summary-text p {
    font-size: 0.9375rem;
  }
}

@media (max-width: 480px) {
  .section-title-ja {
    font-size: 1.25rem;
  }

  .intro-text,
  .challenge-box,
  .summary-text {
    padding: 1em;
  }

  .challenge-subtitle {
    font-size: 1rem;
  }
}
/* ===================================
   導入内容（ソリューション）セクション
=================================== */

/* イントロテキスト */
.solution-intro {
  margin-bottom: 2.5em;
  padding: 1.25em 1.5em;
  background: linear-gradient(135deg, #f0f7ff 0%, #ffffff 100%);
  border-left: 0.25em solid var(--blue);
  border-radius: 0.25em;
}

.solution-intro p {
  font-size: 1rem;
  line-height: 1.8;
  color: var(--black);
  margin: 0;
  font-weight: 500;
}

/* ソリューショングリッド */
.solution-grid {
  display: grid;
  gap: 2em;
}

/* ソリューションアイテム */
.solution-item {
  position: relative;
  padding-left: 5em;
}

/* ソリューション番号 */
.solution-number {
  position: absolute;
  left: 0;
  top: 0;
  width: 3em;
  height: 3em;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--lgray) 0%, var(--dblue) 100%);
  color: #ffffff;
  font-size: 1em;
  font-family: "Jost", sans-serif;
  font-weight: 700;
  border-radius: 50%;
  box-shadow: 0 0.25em 0.75em rgba(0, 69, 151, 0.3);
}

/* ソリューションタイトル */
.solution-title {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--blue);
  margin-bottom: 1em;
  padding-bottom: 0.75em;
  border-bottom: 0.125em solid var(--lgray);
}

/* ソリューションカード */
.solution-card {
  padding: 1.5em;
  background: #f1f1f1;
  border-radius: 0.5em;
  transition: all 0.3s ease;
}

.solution-card:hover {
  border-color: var(--blue);
  box-shadow: 0 0.25em 1em rgba(0, 69, 151, 0.1);
  transform: translateY(-0.125em);
}

.solution-card p {
  font-size: 1rem;
  line-height: 1.8;
  color: var(--black);
  margin: 0;
}

/* アイコン追加バージョン（オプション） */
.solution-item::before {
  content: "";
  position: absolute;
  left: 1.6em;
  top: 4.375em;
  bottom: -2em;
  width: 0.125em;
  background: linear-gradient(180deg, var(--dblue) 0%, transparent 100%);
}

.solution-item:last-child::before {
  display: none;
}

/* ===================================
 レスポンシブ対応
=================================== */

@media (max-width: 768px) {
  .solution-intro {
    padding: 1em 1.25em;
    margin-bottom: 2em;
  }

  .solution-intro p {
    font-size: 0.9375rem;
  }

  .solution-grid {
    gap: 1.75em;
  }

  .solution-item {
    padding-left: 4.375em;
  }

  .solution-number {
    width: 3.125em;
    height: 3.125em;
    font-size: 1.125rem;
  }

  .solution-title {
    font-size: 1.125rem;
    margin-bottom: 0.75em;
    padding-bottom: 0.625em;
  }

  .solution-card {
    padding: 1.25em;
  }

  .solution-card p {
    font-size: 0.9375rem;
  }

  .solution-item::before {
    left: 1.5625em;
    top: 3.75em;
  }
}

@media (max-width: 480px) {
  .solution-item {
    padding-left: 0;
    padding-top: 4.375em;
  }

  .solution-number {
    left: 50%;
    transform: translateX(-50%);
    width: 3.125em;
    height: 3.125em;
    font-size: 1rem;
  }

  .solution-title {
    font-size: 1rem;
    text-align: center;
  }

  .solution-card {
    padding: 1em;
  }

  .solution-item::before {
    display: none;
  }
}
/* ===================================
 アニメーション（オプション）
=================================== */

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.solution-item {
  animation: fadeInUp 0.6s ease forwards;
  opacity: 0;
}
.solution-item:nth-child(1) {
  animation-delay: 0.1s;
}

.solution-item:nth-child(2) {
  animation-delay: 0.2s;
}

.solution-item:nth-child(3) {
  animation-delay: 0.3s;
}

/* スクロールトリガー用クラス（JavaScriptと併用） */
.solution-item.is-animated {
  animation: fadeInUp 0.6s ease forwards;
}

/* アニメーションなしの場合 */
.solution-item.no-animation {
  opacity: 1;
  animation: none;
}

/* ===================================
 ホバーエフェクト強化（オプション）
=================================== */

.solution-card::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(135deg, rgba(0, 102, 204, 0.05) 0%, transparent 100%);
  opacity: 0;
  transition: opacity 0.3s ease;
  border-radius: 8px;
  pointer-events: none;
}

.solution-card:hover::after {
  opacity: 1;
}

/* 番号のホバーエフェクト */
.solution-number {
  transition: all 0.3s ease;
}

.solution-item:hover .solution-number {
  transform: scale(1.1);
  box-shadow: 0 6px 16px rgba(0, 102, 204, 0.4);
}

/* ===================================
   導入効果（成果）セクション
=================================== */

/* イントロテキスト */
.results-intro {
  margin-bottom: 2.5em;
  padding: 1.25em 1.5em;
  background: linear-gradient(135deg, #f0f7ff 0%, #ffffff 100%);
  border-left: 0.25em solid var(--blue);
  border-radius: 0.25em;
}

.results-intro p {
  font-size: 1rem;
  line-height: 1.8;
  color: var(--black);
  margin: 0;
  font-weight: 500;
}

/* 成果グリッド */
.results-grid {
  display: grid;
  gap: 1.5em;
  margin-bottom: 2.5em;
}

/* 成果アイテム */
.result-item {
  display: flex;
  align-items: center;
  gap: 1.25em;
  padding: 1em;
  background: #ffffff;
  border: 1px solid var(--lgray);
  border-radius: 0.5em;
  transition: all 0.3s ease;
  position: relative;
  overflow: hidden;
}

.result-item::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 0.25em;
  height: 100%;
  background: linear-gradient(180deg, var(--blue) 0%, var(--dblue) 100%);
  transform: scaleY(0);
  transform-origin: top;
  transition: transform 0.3s ease;
}

.result-item:hover::before {
  transform: scaleY(1);
}

.result-item:hover {
  border-color: var(--blue);
  box-shadow: 0 0.25em 1em rgba(0, 69, 151, 0.1);
  transform: translateX(0.25em);
}

/* 成果アイコン */
.result-icon {
  flex-shrink: 0;
}

.result-number {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3em;
  height: 3em;
  background: linear-gradient(300deg, var(--dblue) 0%, #4978b2 50%, #ffffff 100%);
  color: #ffffff;
  font-size: 1em;
  font-family: "Jost", sans-serif;
  font-weight: 700;
  border-radius: 50%;
  transition: all 0.3s ease;
  position: relative;
  box-shadow: 0 0.25em 0.75em rgba(50, 81, 123, 0.3);
}

.result-title {
  font-size: 1.1em;
  font-weight: 700;
  color: var(--black);
  margin-bottom: 0;
}

/* サマリーテキスト */
.results-summary {
  padding: 1.5em;
  background: linear-gradient(135deg, #d0dfed 0%, #ffffff 100%);
  border-radius: 0.5em;
  position: relative;
}

.results-summary::before {
  content: "\f00c"; /* fa-check */
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  position: absolute;
  top: 50%;
  left: 1.5em;
  transform: translateY(-50%);
  width: 2.25em;
  height: 2.25em;
  background: transparent;
  border: 0.125em solid var(--blue);
  color: var(--blue);
  font-size: 1.25rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
}

.results-summary:hover::before {
  background: var(--blue);
  color: #ffffff;
}

.results-summary p {
  font-size: 1rem;
  line-height: 1.8;
  color: var(--black);
  margin: 0;
  padding-left: 3.75em;
  font-weight: 500;
}

/* ===================================
 レスポンシブ対応
=================================== */

@media (max-width: 768px) {
  .results-intro {
    padding: 1em 1.25em;
    margin-bottom: 2em;
  }

  .results-intro p {
    font-size: 0.9375rem;
  }

  .results-grid {
    gap: 1.25em;
    margin-bottom: 2em;
  }

  .result-item {
    padding: 1.25em;
    gap: 1em;
  }

  .result-number {
    width: 2.8125em;
    height: 2.8125em;
    font-size: 1rem;
  }

  .result-title {
    font-size: 1rem;
    margin-bottom: 0.75em;
  }

  .results-summary {
    padding: 1.25em;
  }

  .results-summary::before {
    width: 2em;
    height: 2em;
    font-size: 1em;
    top: 1.25em;
    left: 1.25em;
  }

  .results-summary p {
    font-size: 0.9375rem;
    padding-left: 3.125em;
  }
}

@media (max-width: 480px) {
  .result-item {
    align-items: center;
    text-align: center;
    padding: 1em;
  }

  .result-title {
    font-size: 0.9375rem;
  }

  .results-summary {
    padding: 1em;
    padding-top: 4.375em;
  }

  .results-summary::before {
    top: 1em;
    left: 50%;
    transform: translateX(-50%);
  }

  .results-summary p {
    padding-left: 0;
    text-align: center;
    font-size: 0.875rem;
  }
}
/* ===================================
   お客様の声セクション
=================================== */

/* コンテナ */
.voice-container {
  margin: 0 auto;
  align-items: flex-end;
  grid-template-columns: 5fr 2fr;
}

/* コンテンツ */
.voice-content {
  position: relative;
  background: #ffffff;
  border: 0.125em solid var(--lgray);
  border-radius: 0.5em;
  padding: 2em;
  box-shadow: 0 0.125em 0.5em rgba(0, 0, 0, 0.05);
}

/* 引用符アイコン */
.voice-icon {
  position: absolute;
  top: -0.75em;
  left: 2em;
  width: 2.5em;
  height: 2.5em;
  background: var(--blue);
  color: #ffffff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  box-shadow: 0 0.25em 0.75em rgba(0, 69, 151, 0.3);
}

/* 引用ブロック */
.voice-quote {
  margin: 0;
  padding: 0;
  border-left: none;
}

/* テキスト */
.voice-text {
  font-size: 1rem;
  line-height: 1.8;
  color: var(--black);
  margin: 0 0 1.5em 0;
  padding-top: 1em;
}

/* フッター */
.voice-footer {
  display: flex;
  flex-direction: column;
  gap: 0.25em;
  padding-top: 1em;
  border-top: 0.0625em solid var(--lgray);
}

.voice-company {
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--blue);
}

.voice-container img {
  border-radius: 50%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  max-width: 300px;
  margin: 0 auto;
}

/* ===================================
 レスポンシブ対応
=================================== */

@media (max-width: 768px) {
  .case-study.px-5 {
    padding: 0 !important;
  }
  .voice-container {
    padding: 0 1em;
    grid-template-columns: 1fr;
  }

  .voice-content {
    padding: 1.5em;
  }

  .voice-icon {
    width: 2em;
    height: 2em;
    font-size: 1rem;
    top: -0.625em;
    left: 1.5em;
  }

  .voice-text {
    font-size: 0.9375rem;
  }
}

@media (max-width: 480px) {
  .voice-content {
    padding: 1.25em;
  }

  .voice-icon {
    left: 1em;
  }

  .voice-text {
    font-size: 0.875rem;
  }

  .voice-company {
    font-size: 0.875rem;
  }

  .voice-position {
    font-size: 0.8125rem;
  }
}

/* ===================================
   成果・ポイントまとめセクション
=================================== */

/* セクション */
.summary-section {
  margin-bottom: 5em;
}

/* コンテナ */
.summary-container {
  margin: 0 auto;
  padding: 0 1.5em;
}

/* リスト */
.summary-list {
  list-style: none;
  padding: 0;
  margin: 3em 0 0;
  display: grid;
  gap: 1em;
}

/* アイテム */
.summary-list li {
  display: flex;
  align-items: flex-start;
  gap: 1em;
  font-size: 1.1em;
  padding: 1em 1.5em;
  background: #f1f1f1;
  transition: all 0.3s ease;
}

.summary-item:hover {
  border-color: var(--blue);
  box-shadow: 0 0.25em 1em rgba(0, 69, 151, 0.1);
  transform: translateX(0.5em);
}

/* アイコン */
.summary-icon {
  flex-shrink: 0;
  width: 1.5em;
  height: 1.5em;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--blue);
  font-size: 1.25em;
}

/* ===================================
 レスポンシブ対応
=================================== */

@media (max-width: 768px) {
  .summary-section {
    margin-bottom: 3.75em;
  }

  .summary-container {
    padding: 0 1em;
  }

  .summary-list {
    gap: 0.75em;
  }

  .summary-item {
    padding: 1em 1.25em;
  }

  .summary-icon {
    font-size: 1.125rem;
  }

  .summary-text {
    font-size: 0.9375rem;
  }
}

@media (max-width: 480px) {
  .summary-item {
    padding: 0.875em 1em;
    gap: 0.75em;
  }

  .summary-icon {
    font-size: 1rem;
  }
}
/* ===================================
   導入事例　関連製品セクション
=================================== */
.case-study-related-products .related-applications-title {
  display: flex;
  justify-content: space-between;
}

/* ===================================
   導入事例一覧ページ
=================================== */

.case-studies-list {
  max-width: 1000px;
  margin: 0 auto;
  padding: 2rem 1rem;
}

.case-study-item {
  display: flex;
  flex-direction: row-reverse;
  align-items: flex-end;
  gap: 2.5em;
  margin-bottom: 4em;
  padding-bottom: 4em;
  border-bottom: 0.125em solid var(--lgray);
}

.case-study-item:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}

/* サムネイル */
.item-thumbnail {
  flex: 0 0 35%;
}

.item-thumbnail img {
  width: 100%;
  height: auto;
  object-fit: cover;
  box-shadow: 0 0.25em 1em rgba(0, 0, 0, 0.1);
  transition: all 0.3s ease;
}

.case-study-item:hover .item-thumbnail img {
  transform: translateY(-0.25em);
  box-shadow: 0 0.5em 1.5em rgba(0, 0, 0, 0.15);
}

/* コンテンツエリア */
.item-content {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.item-main-title {
  font-size: 1.5em;
  font-weight: 700;
  margin: 0 0 0.5em 0;
  padding-bottom: 0.5em;
  border-bottom: 0.125em solid var(--lgray);
}

.item-subtitle {
  font-size: 1rem;
  color: var(--blue);
  font-weight: 500;
  margin: 0 0 1.5em 0;
}

/* サマリーボックス */
.item-summary {
  flex: 1;
  padding: 1.5em;
  background: linear-gradient(135deg, #f0f7ff 0%, #ffffff 100%);
  border-left: 0.25em solid var(--blue);
  border-radius: 0.25em;
  margin-bottom: 1.5em;
}

.item-summary p {
  font-size: 1rem;
  line-height: 1.8;
  color: var(--black);
  margin: 0;
}

/* 詳細ボタン */
.btn-detail {
  display: inline-block;
  padding: 0.875em 2.5em;
  background: linear-gradient(135deg, var(--blue) 0%, var(--dblue) 100%);
  color: #ffffff;
  text-decoration: none;
  border-radius: 0.25em;
  align-self: flex-start;
  font-weight: 700;
  box-shadow: 0 0.25em 0.75em rgba(0, 69, 151, 0.3);
  transition: all 0.3s ease;
}

.btn-detail:hover {
  transform: translateY(-0.125em);
  box-shadow: 0 0.375em 1em rgba(0, 69, 151, 0.4);
}

/* ===================================
   レスポンシブ対応
=================================== */

@media (max-width: 768px) {
  .case-study-item {
    flex-direction: column;
    gap: 1.5em;
    margin-bottom: 3em;
    padding-bottom: 3em;
  }

  .item-thumbnail {
    flex: none;
  }

  .item-main-title {
    font-size: 1.25em;
  }

  .item-subtitle {
    font-size: 0.9375rem;
  }

  .item-summary {
    padding: 1.25em;
  }

  .item-summary p {
    font-size: 0.9375rem;
  }
}

@media (max-width: 480px) {
  .case-studies-list {
    padding: 1rem 0.5rem;
  }

  .case-study-item {
    margin-bottom: 2.5em;
    padding-bottom: 2.5em;
  }

  .item-summary {
    padding: 1em;
  }
}

/* ===================================
   カタログダウンロード
=================================== */
/* カタログセクション */
.catalog-section {
  max-width: 1200px;
  margin: 0 auto;
  padding: 3.75em 1.25em;
}

.catalog-main-title {
  font-size: 2.5rem;
  font-weight: bold;
  text-align: center;
  margin-bottom: 3.75em;
  color: #333;
}

/* カテゴリー */
.catalog-category {
  margin-bottom: 5em;
}

.catalog-category:last-child {
  margin-bottom: 0;
}

.catalog-category-title {
  font-size: 1.8rem;
  font-weight: bold;
  color: var(--dblue);
  margin-bottom: 1.875em;
  padding-bottom: 0.9375em;
  border-bottom: 3px solid var(--dblue);
}

/* カタロググリッド */
.catalog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 1.875em;
}

/* カタログカード */
.catalog-card {
  background: #fff;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  transition: all 0.3s ease;
}

.catalog-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}

.catalog-link {
  display: flex;
  flex-direction: row; /* 横並び */
  align-items: center;
  text-decoration: none;
  color: inherit;
  height: 100%;
}

/* サムネイル */
.catalog-thumbnail {
  flex-shrink: 0;
  width: 140px; /* 固定幅 */
  height: 100%;
  min-height: 180px;
  background: #f5f5f5;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.625em;
}

.catalog-thumbnail img {
  width: 100%;
  height: 100%;
  object-fit: contain; /* 画像全体を表示 */
  transition: transform 0.3s ease;
}

.catalog-card:hover .catalog-thumbnail img {
  transform: scale(1.05);
}

/* カタログ情報 */
.catalog-info {
  flex: 1;
  padding: 1.25em;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.catalog-title {
  font-size: 1.1rem;
  font-weight: bold;
  color: #333;
  margin-bottom: 0.9375em;
  line-height: 1.5;
}

/* ダウンロードボタン */
.catalog-download-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  padding: 0.625em 1.25em;
  background: var(--bluegreen);
  color: #fff;
  border-radius: 4px;
  font-size: 0.7em;
  font-weight: bold;
  transition: background 0.3s ease;
  align-self: flex-start; /* 左寄せ */
}

.catalog-download-btn i {
  font-size: 1.1rem;
}

.catalog-card:hover .catalog-download-btn {
  background: #0052a3;
}

/* レスポンシブ */
@media (max-width: 768px) {
  .catalog-section {
    padding: 2.5em 0.9375em;
  }

  .catalog-main-title {
    font-size: 2rem;
    margin-bottom: 2.5em;
  }

  .catalog-category {
    margin-bottom: 3.75em;
  }

  .catalog-category-title {
    font-size: 1.5rem;
    margin-bottom: 1.25em;
    padding-bottom: 0.625em;
  }

  .catalog-grid {
    grid-template-columns: 1fr;
    gap: 1.25em;
  }

  .catalog-thumbnail {
    width: 120px;
    min-height: 160px;
  }

  .catalog-info {
    padding: 0.9375em;
  }

  .catalog-title {
    font-size: 1rem;
    margin-bottom: 0.75em;
  }

  .catalog-download-btn {
    padding: 0.5em 1em;
    font-size: 0.85rem;
  }
}

@media (max-width: 480px) {
  .catalog-main-title {
    font-size: 1.75rem;
  }

  .catalog-category-title {
    font-size: 1.3rem;
  }

  /* スマホは縦並びに */
  .catalog-link {
    flex-direction: column;
  }

  .catalog-thumbnail {
    width: 100%;
    height: auto;
    min-height: 200px;
    padding: 1em;
  }

  .catalog-info {
    width: 100%;
  }
}

/*=======================
製品TOPページ
=========================*/
ul.product-menu-list.grid,
.product-youtube .grid {
  gap: 2em;
}
ul.product-menu-list li {
  min-height: 280px;
  box-shadow: rgba(50, 50, 93, 0.25) 0px 6px 12px -2px, rgba(0, 0, 0, 0.3) 0px 3px 7px -3px;
}
.product-menu-list a {
  position: relative;
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  text-decoration: none;
  color: inherit;
}
.product-menu-list li img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0; /* ★ 明示的に指定 */
}

.product-menu-list li > a > div {
  /* ★ セレクタ変更 */
  z-index: 2;
  color: #fff;
  text-shadow: 1px 2px 2px var(--black);
  text-align: center;
}
.product-menu-list li h3 {
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 1.5em;
}
.product-menu-list h3 .fa-solid {
  border: solid 1px currentColor;
  border-radius: 50%;
  padding: 6px;
  margin-left: 10px;
  margin-bottom: -5px;
  font-size: 0.4em;
}
.product-youtube .grid {
  align-items: flex-end;
}
.ytp-large-play-button-red-bg .ytp-large-play-button-bg {
  fill: var(--dblue);
  fill-opacity: 1;
}
@media (max-width: 1200px) {
  ul.product-menu-list.grid,
  .product-youtube .grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 480px) {
  ul.product-menu-list li {
    min-height: 200px;
  }
}
/*==================
よくある質問
====================*/

/* カウンターを初期化 */
.faq-container {
  counter-reset: qa-counter;
}

.qa {
  font-size: 0.95em;
  margin-bottom: 5px;
  border-bottom: 2px solid #d6dde3;
  counter-increment: qa-counter; /* カウンターを増加 */
}

.qa summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: relative;
  padding: 2em 2em 2em 5em;
  color: #333333;
  font-weight: 600;
  cursor: pointer;
}

.qa summary::before,
.qa-content::before {
  position: absolute;
  left: 1em;
  font-weight: 600;
  font-size: 1.3em;
}

.qa summary::before {
  font-family: "Jost", sans-serif;
  color: var(--blue);
  content: "Q" counter(qa-counter); /* Q + 番号 */
}

.qa summary::after {
  content: "";
  width: 1.5em;
  height: 1.5em;
  flex-shrink: 0;
  margin-left: 10px;
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23333' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>")
    no-repeat center / contain;
  transition: transform 0.3s ease;
}
.qa[open] summary::after {
  transform: rotate(180deg);
}

.qa-content {
  position: relative;
  transform: translateY(-10px);
  opacity: 0;
  margin: 0;
  padding: 0.3em 3em 1.5em 5em;
  color: #333;
  transition: transform 0.5s, opacity 0.5s;
}

.qa[open] .qa-content {
  transform: none;
  opacity: 1;
}

.qa-content::before {
  font-family: "Jost", sans-serif;
  color: var(--gold);
  line-height: 1.2;
  content: "A"; /* Aはそのまま */
}

/* 以下は既存のまま */
.qa-content ul {
  list-style: none;
  padding-left: 0;
  margin: 1em 0;
}

.qa-content ul li {
  position: relative;
  padding-left: 1.5em;
  margin-bottom: 0.8em;
  line-height: 1.6;
}

.qa-content ul li::before {
  content: "•";
  position: absolute;
  left: 0;
  color: var(--blue);
  font-weight: bold;
  font-size: 1.2em;
}

.qa-content ol {
  padding-left: 1.5em;
  margin: 1em 0;
}

.qa-content ol li {
  margin-bottom: 0.8em;
  line-height: 1.6;
}

.qa-content ol li::marker {
  color: var(--blue);
  font-weight: 600;
}
@media (max-width: 798px) {
  .qa summary,
  .qa-content {
    padding: 1em 0.2em 1em 4.5em;
    text-align: justify;
  }
  .qa summary::before {
    left: 0.5em;
  }
}
