﻿/* ==============================
   Slide 1: AIサーバーの進化と実装技術への影響
============================== */

.ais1-wrap {
  padding: 30px 20px;
}

.ais1-title {
  text-align: center;
  color: #2A6B8A;
  font-size: 1.3rem;
  font-weight: bold;
  margin-bottom: 24px;
}

/* --- Flow section --- */

.ais1-flow {
  display: flex;
  align-items: stretch;
  margin-bottom: 16px;
}

.ais1-box {
  flex: 1;
  border: 1px solid #ccc;
  display: flex;
  flex-direction: column;
}

.ais1-box-header {
  background: #2A6B8A;
  color: #fff;
  text-align: center;
  padding: 8px 6px;
  font-size: 1rem;
  font-weight: bold;
  line-height: 1.4;
  min-height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.ais1-box-body {
  flex: 1;
  padding: 12px 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: #fff;
  gap: 6px;
}

.ais1-box-body--dual {
  gap: 10px;
}

.ais1-dual-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  gap: 4px;
}

.ais1-img-wrap {
  width: 100%;
  text-align: center;
}

.ais1-img-wrap img {
  max-width: 100%;
  max-height: 150px;
  object-fit: contain;
}

.ais1-img-wrap--cpu img {
  max-height: 200px;
}

.ais1-box-body--dual .ais1-img-wrap img {
  max-height: 85px;
}

.ais1-box-desc {
  font-size: 0.8rem;
  color: #444;
  text-align: center;
  line-height: 1.5;
  margin: 0;
}

/* Arrow between boxes */

.ais1-arrow {
  width: 0;
  height: 0;
  border-top: 22px solid transparent;
  border-bottom: 22px solid transparent;
  border-left: 16px solid #2A6B8A;
  flex-shrink: 0;
  align-self: center;
}

/* Down arrow */

.ais1-down-arrow {
  width: 90px;
  height: 32px;
  background: #5B9BD5;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  margin: 12px auto 16px;
}

/* --- Summary section --- */

.ais1-summary {
  border: 1px solid #ccc;
  border-radius: 8px;
  padding: 18px 24px;
  background: #fff;
}

.ais1-icons {
  display: flex;
  align-items: center;
  justify-content: space-around;
}

.ais1-icon-item {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
  justify-content: center;
  padding: 0 10px;
}

.ais1-icon-item:not(:last-child) {
  border-right: 1px solid #ccc;
}

.ais1-icon-img {
  width: 50px;
  height: 50px;
  object-fit: contain;
  flex-shrink: 0;
}

.ais1-icon-label {
  font-size: 1rem;
  font-weight: bold;
  color: #333;
}

.ais1-separator {
  border-top: 1px solid #bbb;
  margin: 14px 0 10px;
}

.ais1-summary-text {
  text-align: center;
  font-size: 1rem;
  color: #444;
  margin: 4px 0;
  line-height: 1.8;
}

.ais1-highlight {
  color: #2A6B8A;
  font-weight: bold;
}


/* ==============================
   Slide 2: AIサーバー基板の進化（従来サーバーとの比較）
============================== */

.ais2-wrap {
  padding: 30px 20px;
}

.ais2-title {
  text-align: center;
  color: #2A6B8A;
  font-size: 1.3rem;
  font-weight: bold;
  margin-bottom: 24px;
}

.ais2-compare {
  display: flex;
  gap: 16px;
  margin-bottom: 16px;
}

.ais2-col {
  flex: 1;
  border: 1px solid #ccc;
  display: flex;
  flex-direction: column;
}

.ais2-col-header {
  text-align: center;
  padding: 10px 8px;
  font-size: 1rem;
  font-weight: bold;
  color: #fff;
}

.ais2-header--gray {
  background: #888;
}

.ais2-header--teal {
  background: #2A6B8A;
}

.ais2-col-body {
  flex: 1;
  padding: 16px;
  background: #fff;
}

.ais2-board-wrap {
  position: relative;
  display: inline-block;
  width: 100%;
  text-align: center;
}

.ais2-board-wrap img {
  max-width: 100%;
  max-height: 280px;
  object-fit: contain;
}

.ais2-callout {
  position: absolute;
  font-size: 0.7rem;
  color: #1E5C7A;
  font-weight: bold;
  background: rgba(255, 255, 255, 0.9);
  padding: 2px 5px;
  white-space: nowrap;
}

.ais2-callout::before {
  content: '●';
  color: #4A88C7;
  margin-right: 3px;
  font-size: 0.55rem;
}

.ais2-callout--tl { top: 4%;  left: 2%; }
.ais2-callout--tr { top: 4%;  right: 2%; }
.ais2-callout--bl { bottom: 4%; left: 2%; }
.ais2-callout--br { bottom: 4%; right: 2%; }

.ais2-summary {
  border: 1px solid #ccc;
  border-radius: 8px;
  padding: 16px 24px;
  background: #fff;
}

.ais2-summary-text {
  text-align: center;
  font-size: 1rem;
  color: #444;
  margin: 0;
  line-height: 1.8;
}

.ais2-highlight {
  color: #2A6B8A;
  font-weight: bold;
}


/* ==============================
   Slide 3: 業界一覧（5カラム）
============================== */

.ais3-wrap {
  padding: 30px 20px;
}

.ais3-flow {
  display: flex;
  align-items: stretch;
  gap: 8px;
  margin-bottom: 16px;
}

.ais3-box {
  flex: 1;
  border: 1px solid #ccc;
  display: flex;
  flex-direction: column;
}

.ais3-box-header {
  background: #2A6B8A;
  color: #fff;
  text-align: center;
  padding: 8px 6px;
  font-size: 1rem;
  font-weight: bold;
  line-height: 1.4;
  min-height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.ais3-box-body {
  flex: 1;
  padding: 10px 8px;
  display: flex;
  flex-direction: column;
  align-items: center;
  background: #fff;
  gap: 8px;
}

.ais3-box-desc {
  font-size: 0.82rem;
  color: #444;
  text-align: center;
  line-height: 1.5;
  margin: 0;
}

.ais3-img-wrap {
  width: 100%;
  text-align: center;
  margin-top: auto;
}

.ais3-img-wrap img {
  max-width: 100%;
  max-height: 130px;
  object-fit: contain;
}

.ais3-summary {
  border: 1px solid #ccc;
  border-radius: 8px;
  padding: 16px 24px;
  background: #fff;
}

.ais3-summary-text {
  text-align: center;
  font-size: 1rem;
  color: #444;
  margin: 0;
  line-height: 1.8;
}

.ais3-highlight {
  color: #2A6B8A;
  font-weight: bold;
}


/* ==============================
   Slide 4: 実装現場で起きている変化と課題
============================== */

.ais4-wrap {
  padding: 30px 20px;
}

.ais4-title {
  text-align: center;
  color: #2A6B8A;
  font-size: 1.3rem;
  font-weight: bold;
  margin-bottom: 20px;
}

.ais4-outer {
  border: 1px solid #ccc;
  padding: 12px;
  background: #fff;
  position: relative;
}

.ais4-bg-img {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -56%);
  width: 55%;
  object-fit: contain;
  z-index: 0;
  pointer-events: none;
}

.ais4-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto auto;
  gap: 10px 380px;
  position: relative;
  z-index: 1;
}

.ais4-box--tl { grid-column: 1; grid-row: 1; }
.ais4-box--tr { grid-column: 2; grid-row: 1; }
.ais4-box--bl { grid-column: 1; grid-row: 2; }
.ais4-box--br { grid-column: 2; grid-row: 2; }

.ais4-box {
  border: 1px solid #ccc;
  display: flex;
  flex-direction: column;
}

.ais4-box-header {
  background: #2A6B8A;
  color: #fff;
  text-align: center;
  padding: 8px 6px;
  font-size: 1rem;
  font-weight: bold;
  line-height: 1.5;
}

.ais4-box-body {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.75);
  padding: 8px;
}

.ais4-box-body img {
  max-width: 100%;
  max-height: 155px;
  object-fit: contain;
}

.ais4-center-caption {
  font-size: 0.72rem;
  color: #666;
  text-align: center;
  margin: 8px 0 0;
  position: relative;
  z-index: 2;
}


/* ==============================
   Slide 5: FUJIソリューション（5カラム＋バナー）
============================== */

.ais5-wrap {
  padding: 30px 20px;
}

.ais5-flow {
  display: flex;
  align-items: stretch;
  gap: 6px;
  margin-bottom: 16px;
}

.ais5-box {
  flex: 1;
  border: 1px solid #ccc;
  display: flex;
  flex-direction: column;
}

.ais5-box-header {
  background: #2A6B8A;
  color: #fff;
  text-align: center;
  padding: 8px 6px;
  font-size: 1rem;
  font-weight: bold;
  line-height: 1.5;
  min-height: 64px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.ais5-box-body {
  flex: 1;
  padding: 10px 8px;
  display: flex;
  flex-direction: column;
  align-items: center;
  background: #fff;
  gap: 8px;
}

.ais5-box-desc {
  font-size: 0.7rem;
  color: #444;
  text-align: center;
  line-height: 1.5;
  margin: 0;
}

.ais5-box-sub {
  font-size: 0.65rem;
  color: #666;
  text-align: center;
  margin: 0;
}

.ais5-img-wrap {
  width: 100%;
  text-align: center;
  margin-top: auto;
}

.ais5-img-wrap img {
  max-width: 100%;
  max-height: 100px;
  object-fit: contain;
}

.ais5-img-wrap--dual {
  display: flex;
  flex-direction: column;
  gap: 4px;
  align-items: center;
}

.ais5-img-wrap--dual img {
  max-height: 60px;
}

.ais5-banner {
  background: #2A6B8A;
  border-radius: 6px;
  padding: 18px 24px;
  text-align: center;
}

.ais5-banner-text {
  color: #fff;
  font-size: 1.05rem;
  font-weight: bold;
  margin: 0;
  line-height: 1.6;
  text-align: center;
}

.info_bt_ct .blue_bt {
  width: 430px;
}


/* ==============================
   Responsive: スマートフォン（〜600px）
============================== */

@media (max-width: 600px) {

  /* ----- Slide 1 ----- */
  .ais1-wrap { padding: 20px 12px; }
  .ais1-title { font-size: 1.1rem; margin-bottom: 16px; }

  .ais1-flow { flex-wrap: wrap; gap: 6px; }
  .ais1-box { flex: 0 0 calc(50% - 3px); }
  .ais1-arrow { display: none; }
  .ais1-box-header { font-size: 0.85rem; min-height: 52px; }
  .ais1-box-desc { font-size: 0.72rem; }
  .ais1-box-body--dual .ais1-img-wrap img { max-height: 60px; }

  .ais1-summary { padding: 14px 12px; }
  .ais1-icons { flex-wrap: wrap; }
  .ais1-icon-item {
    flex: 0 0 50%;
    padding: 6px 4px;
    border-bottom: 1px solid #ccc;
  }
  .ais1-icon-item:not(:last-child) { border-right: none; }
  .ais1-icon-item:nth-child(odd) { border-right: 1px solid #ccc; }
  .ais1-icon-item:nth-last-child(-n+2) { border-bottom: none; }
  .ais1-icon-img { width: 34px; height: 34px; }
  .ais1-icon-label { font-size: 0.82rem; }
  .ais1-summary-text { font-size: 0.85rem; }

  /* ----- Slide 2 ----- */
  .ais2-wrap { padding: 20px 12px; }
  .ais2-title { font-size: 1.1rem; margin-bottom: 16px; }
  .ais2-compare { flex-direction: column; gap: 12px; }
  .ais2-summary { padding: 12px 16px; }
  .ais2-summary-text { font-size: 0.85rem; }

  /* ----- Slide 3 ----- */
  .ais3-wrap { padding: 20px 12px; }
  .ais3-flow { flex-wrap: wrap; gap: 6px; }
  .ais3-box { flex: 0 0 calc(50% - 3px); }
  .ais3-box:last-child:nth-child(odd) { flex: 0 0 100%; }
  .ais3-box-header { font-size: 0.85rem; min-height: 52px; }
  .ais3-box-desc { font-size: 0.72rem; }
  .ais3-img-wrap img { max-height: 90px; }
  .ais3-summary { padding: 12px 16px; }
  .ais3-summary-text { font-size: 0.85rem; }

  /* ----- Slide 4 ----- */
  .ais4-wrap { padding: 20px 12px; }
  .ais4-title { font-size: 1.1rem; margin-bottom: 14px; }
  .ais4-grid { gap: 8px; }
  .ais4-bg-img { width: 80%; }
  .ais4-box-body img { max-height: 95px; }
  .ais4-box-header { font-size: 0.82rem; }

  /* ----- Slide 5 ----- */
  .ais5-wrap { padding: 20px 12px; }
  .ais5-flow { flex-wrap: wrap; gap: 6px; }
  .ais5-box { flex: 0 0 calc(50% - 3px); }
  .ais5-box:last-child:nth-child(odd) { flex: 0 0 100%; }
  .ais5-box-header { font-size: 0.85rem; min-height: 56px; }
  .ais5-box-desc { font-size: 0.72rem; }
  .ais5-box-sub { font-size: 0.7rem; }
  .ais5-banner { padding: 14px 16px; }
  .ais5-banner-text { font-size: 0.95rem; }

  /* ----- ボタン ----- */
  .info_bt_ct .blue_bt { width: 100%; max-width: 100%; }
}
