/* ===============================
    News System Version 5.0
    Category Color
=============================== */

:root {
/* =========================
   Site Background
========================= */

--bg-base: #ffffff;

/* Section */
--bg-section: #f8fafc;

/* Section の下側 */
--bg-section-deep: #f1f5f9;

/* Card / Content */
--bg-card: #ffffff;

/* Subtle */
--bg-subtle: #f5f7fa;


    /* 重要なお知らせ */
    --news-important-color: #dc2626;
    --news-important-bg:#fa8072;

    /* 障害 */
    --news-trouble-color: #dc2626;
    --news-trouble-bg:#fef2f2;

    /* メンテナンス */
    --news-maintenance-color: #9333ea;
    --news-maintenance-bg:#f3e8ff;

    /* 更新 */
    --news-update-color: #16a34a;
    --news-update-bg:#ecfdf5;

    /* お知らせ */
    --news-info-color: #ea580c;
    --news-info-bg:#fff7ed;

    /* イベント */
    --news-event-color: #2563eb;
    --news-event-bg:#eff6ff;

}



/* ========================
   ベース
======================== */
body {
  margin: 0;
  font-family: 'Segoe UI', Arial, sans-serif;
  background-color: var(--bg-base);
  color: #333;
}




/* ========================
   セクション共通
======================== */
.features {
  padding: 2em;
  margin: 1em auto;
  max-width: 1000px;

  background: #ffffff;
  border-radius: 10px;

  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

/* 見出し */
.features h2 {
  text-align: center;
  font-size: 1.8rem;
  margin-bottom: 14px;
  position: relative;
}

/* タイトル下ライン */
.features h2::after {
  content: "";
  display: block;
  width: 40px;
  height: 3px;
  background: #2563eb;
  margin: 8px auto 0;
  border-radius: 2px;
}

.features p {
  text-align: center;
  max-width: 600px;
  margin: 0 auto;
}

.features p.center-text {
  margin-bottom: 24px;   /* ★これ追加 */
}



/* ========================
   カードUI（共通）
======================== */
.card-grid {
  display: flex;
  flex-wrap: wrap;           /* 折り返し */
  justify-content: center;  /* ★中央寄せ */
  max-width: 1000px;
  margin: 0 auto;
  gap: 16px;	/* ★狭める */
}

.card {
  background: #ffffff;
  border-radius: 12px;
  padding: 20px;
  text-align: center;
  display: flex;
  flex-direction: column;
  width: 300px;
  max-width: 300px;   /* ★これが効く */
  box-sizing: border-box;
  box-shadow: 0 10px 30px rgba(0,0,0,0.10);
  justify-content: space-between;
  border: 1px solid #e5e7eb;

  position: relative; /* ★必須 */
  overflow: hidden;
  transition: all 0.25s ease;
  cursor: pointer;

  text-decoration: none;   /* ★必須 */
  color: inherit;          /* ★文字色も戻す */
}

.card:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 40px rgba(0,0,0,0.15);
}


.card::before {
  content: "";
  position: absolute;
  inset: 0;

  background: linear-gradient(
    120deg,
    transparent 30%,
    rgba(255,255,255,0.15),
    transparent 70%
  );

  opacity: 0;
  transition: 0.25s;
}

.card:hover::before {
  opacity: 1;
  transform: translateX(100%);
}


.card-overlay {
  position: absolute;
  top: 0;
  left: 0;

  width: 100%;
  height: 100%;

  background: rgba(0, 0, 0, 0.55);

  display: flex;
  align-items: center;
  justify-content: center;

  color: #fff;
  font-size: 1.1rem;
  font-weight: 600;

  opacity: 0;
  transition: 0.25s ease;
}

.card:hover .card-overlay {
  opacity: 1;
}


.card-overlay span {
  background: rgba(255,255,255,0.1);
  padding: 10px 16px;
  border-radius: 6px;
}


/* カード中身 */
.card img {
  height: 60px;
  width: 100%;
  object-fit: contain;
  object-position: center;
  margin: 0 auto 12px;
  display: block;
  transition: 0.25s;
}

.card:hover img {
  opacity: 0.4;
  transform: scale(1.05);
}

.card h3 {
  font-size: 1.3rem;
  margin-bottom: 6px;
  color: #004466;
}

.card:hover h3 {
  color: #2563eb;
  opacity: 0.4;
}

.card p {
  font-size: 0.95rem;
  color: #6b7280;
  line-height: 1.5;
}
.card:hover p,
  opacity: 0.4;
}

.card .maker {
  font-size: 0.85rem;
  color: #666;
  margin-bottom: 8px;
}

.card .desc {
  font-size: 1rem;
  margin-top: 8px;
  margin-bottom: 14px;
  line-height: 1.5;
  text-align: left;
}

.card:hover .product-icons {
  opacity: 0.4;
}




/* ========================
   ボタンUI（共通）
======================== */

.btn {
  background: linear-gradient(135deg, #22c1c3, #00bcd4);
  color: white;

  width: 40px;
  height: 12px;

  padding: 10px 18px;
  border-radius: 8px;

  text-align: center;

  text-decoration: none;
  font-size: 1rem;
  font-weight: 500;

  /* ★少しガラス感 */
  border: 1px solid rgba(255,255,255,0.2);
  backdrop-filter: blur(4px);

  /* ★立体感 */
  box-shadow: 0 4px 12px rgba(0, 188, 212, 0.3);
  transition: all 0.25s ease;
}

.btn:hover {
  background: linear-gradient(135deg, #00bcd4, #0097a7);
  border-color: rgba(255,255,255,0.4);
  transform: translateY(-4px) scale(1.08);
  box-shadow: 0 8px 20px rgba(0, 188, 212, 0.5);
  z-index: 2;
}

.btn:active {
  transform: translateY(1px);
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
}


/* お問い合わせ */
.btn-primary {
  background: #2563eb;
  color: #fff;
  padding: 12px 24px;
  border-radius: 8px;
  text-decoration: none;
  display: inline-block;
  transition: 0.2s;
}

.btn-primary:hover {
  background: #1d4ed8;
}

.btn-secondary {
  border: 1px solid #fff;
  padding: 12px 24px;
  border-radius: 8px;
  color: #fff;
  text-decoration: none;
}

.btn-primary.big {
  padding: 16px 32px;
}



/* ========================
   アイコン（共通）
======================== */

.icon {
  display: inline-block;
  width: 48px;
  height: 24px;
  line-height: 24px;
  text-align: center;
  border-radius: 4px;
  font-size: 12px;
  font-weight: bold;
  color: white;
}

.icon-2D  { background-color: #4CAF50; border: 2px solid #388E3C; }
.icon-3D  { background-color: #2196F3; border: 2px solid #1976D2; }
.icon-CAD { background-color: #607D8B; border: 2px solid #455A64; }
.icon-CAM { background-color: #FF9800; border: 2px solid #F57C00; }
.icon-CAE { background-color: #9C27B0; border: 2px solid #7B1FA2; }


@media (prefers-color-scheme: dark) {
  .product {
    background: linear-gradient(#2c2c2c, #1a1a1a);
    color: #f0f0f0;
    box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  }

  .icon-2D  { background-color: #388E3C; border-color: #2E7D32; }
  .icon-3D  { background-color: #1976D2; border-color: #1565C0; }
  .icon-CAD { background-color: #455A64; border-color: #37474F; }
  .icon-CAM { background-color: #F57C00; border-color: #EF6C00; }
  .icon-CAE { background-color: #7B1FA2; border-color: #6A1B9A; }
}

.product-icons {
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
  gap: 6px;
  margin-top: auto;
  margin-bottom: 10px;
}

/* CTAリンク */
.btn-link {
  margin-top: 10px;
  display: inline-block;
  font-size: 0.9rem;
  color: #2563eb;
  text-decoration: none;
  font-weight: 600;
}

/* ========================
   ユーティリティ
======================== */

.center-text {
  text-align: center;
  max-width: 700px;
  font-size: 16px;
  margin: 0 auto;
  line-height: 1.6;
}

.text-center {
  text-align: center;
}


/* =========================
   アニメーション統一
========================= */

/* 初期状態 */
.fade-up{
  opacity:0;
  transform:translateY(40px);
  transition: all 0.8s ease;
}

/* 表示状態 */
.fade-up.active{
  opacity:1;
  transform:translateY(0);
}

/* 遅延 */
.delay1{ transition-delay:0.1s; }
.delay2{ transition-delay:0.2s; }
.delay3{ transition-delay:0.3s; }
.delay4{ transition-delay:0.4s; }


/* =========================
   
========================= */
