/* =========================
   Base
========================= */

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  font-size: 16px;
}

body {
  font-family: 'Noto Sans JP', sans-serif;
  background: #071a2c;
  color: #ffffff;
  line-height: 1.7;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

.container {
  width: 90%;
  max-width: 1200px;
  margin: 0 auto;
}

.section {
  padding: 100px 0;
}

.center {
  text-align: center;
}

h1, h2, h3 {
  font-weight: 700;
}

h2 {
  font-size: 2rem;
  margin-bottom: 20px;
}

.section-lead {
  margin-bottom: 40px;
  opacity: 0.85;
}

/* =========================
   Header
========================= */

.header {
  position: absolute;
  width: 100%;
  padding: 25px 0;
  z-index: 10;
}

.logo {
  height: 40px;
}

/* =========================
   Hero
========================= */

.hero {
  background: linear-gradient(90deg, #051425, #0b2e52);
  padding: 180px 0 140px;
}

.hero-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 60px;
}

.hero h1 {
  font-size: 3rem;
  line-height: 1.3;
  margin-bottom: 25px;
}

.hero h1 span {
  color: #00b7ff;
}

.text-blue {
  color: #00b7ff;
}

.hero-sub {
  font-size: 1.1rem;
  opacity: 0.9;
}

.large-text {
  font-size: 1.3em;
  display: block;        /* inline-block から block に変更 */
  margin-top: 5px;
  margin-bottom: 25px;   /* これを新しく追加 */
}

/* =========================
   Dark / Light
========================= */

.dark {
  background: #071a2c;
}

.light {
  background: #f3f6f9;
  color: #222;
}

/* =========================
   Grid
========================= */

.grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}

/* =========================
   Chip Section
========================= */

.chip-section {
  text-align: center;
}

.chip-grid {
  display: flex;
  justify-content: center;
  gap: 30px;
  margin-top: 50px;
}

.chip-card {
  background: #0f2f4e;
  padding: 40px 50px;
  border-radius: 12px;
  width: 280px;
  transition: 0.3s ease;
}

.chip-card.highlight {
  background: linear-gradient(135deg, #0077cc, #00b7ff);
}

.chip-card h3 {
  font-size: 1.5rem;
  margin-bottom: 10px;
}


h3 .text-blue {
    display: inline-block; 
    font-size: 1.3em;      
    line-height: 1.4;      
    margin-bottom: 10px;   
}

/* =========================
   Graph
========================= */

.graph-image {
  margin-top: 40px;
  border-radius: 12px;
}

/* =========================
   Table
========================= */

.spec-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 40px;
  background: #ffffff;
  color: #000;
  border-radius: 12px;
  overflow: hidden;
}

.spec-table th {
  background: #0077cc;
  color: #fff;
  padding: 18px;
  font-weight: 600;
}

.spec-table td {
  padding: 18px;
  border-bottom: 1px solid #e5e5e5;
  text-align: center;
}

.spec-table tr:nth-child(even) {
  background: #f7f7f7;
}

.model {
  font-weight: 700;
}

/* =========================
   Warranty
========================= */

.warranty-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px;
  margin-top: 60px;
}

.warranty-card {
  background: #0f2f4e;
  padding: 40px 25px;
  border-radius: 16px;
  text-align: center;
  transition: 0.3s;
}

.warranty-card img {
  height: 60px;
  margin: 0 auto 20px;
}

/* =========================
   Copilot
========================= */

.copilot-section {
  padding-bottom: 120px;
}

.copilot-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
  margin-top: 60px;
}

.copilot-card {
  background: #0f2f4e;
  padding: 30px;
  border-radius: 16px;
  text-align: center;
  transition: 0.3s ease;
}

.copilot-card img {
  height: 70px;
  margin-bottom: 20px;
}

.copilot-card:hover {
  transform: translateY(-5px);
}

/* =========================
   Case
========================= */

.case-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  margin-top: 60px;
}

.case-card {
  background: #ffffff;
  color: #000;
  padding: 30px;
  border-radius: 16px;
  text-align: center;
}

.case-card img {
  height: 80px;
  margin-bottom: 20px;
}

/* =========================
   Intel
========================= */

.intel-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px;
  margin-top: 60px;
}

.intel-card {
  background: #0f2f4e;
  padding: 40px 20px;
  border-radius: 16px;
  text-align: center;
}

.intel-card img {
  height: 60px;
  margin-bottom: 15px;
}

/* =========================
   CTA
========================= */

.cta {
  background: linear-gradient(90deg, #0077cc, #00b7ff);
  padding: 120px 0;
  text-align: center;
}

.cta-buttons {
  margin-top: 40px;
}

.btn-primary,
.btn-outline,
.btn-white {
  display: inline-block;
  padding: 14px 32px;
  border-radius: 40px;
  font-weight: 600;
  text-decoration: none;
  margin: 10px;
  transition: 0.3s;
}

.btn-primary {
  background: #fff;
  color: #0077cc;
}

.btn-outline {
  border: 2px solid #fff;
  color: #fff;
}

.btn-white {
  background: #ffffff;
  color: #0077cc;
}

/* =========================
   Footer
========================= */

.footer {
  background: #04101c;
  padding: 40px 0;
  font-size: 0.9rem;
}

/* =========================
   Responsive
========================= */

@media (max-width: 1024px) {

  .grid-2 {
    grid-template-columns: 1fr;
  }

  .chip-grid {
    flex-direction: column;
    align-items: center;
  }

  .warranty-grid,
  .copilot-grid,
  .case-grid,
  .intel-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 768px) {

  .section {
    padding: 70px 0;
  }

  .hero-inner {
    flex-direction: column;
    text-align: center;
  }

  .hero h1 {
    font-size: 2rem;
  }

  .warranty-grid,
  .copilot-grid,
  .case-grid,
  .intel-grid {
    grid-template-columns: 1fr;
  }

  .chip-card {
    width: 100%;
  }

}
.gradient-underline {
  display: inline-block; /* これを入れると、線が文字の幅になります */
  padding-bottom: 8px;   /* 文字と線の間隔 */
  background-image: linear-gradient(to right, #8a2be2, #0000ff);
  background-repeat: no-repeat;
  background-size: 80% 4px; /* 線の長さ(80%)と太さ(4px) */
  background-position: bottom center; /* 中央に配置 */
}
.gradient-underline2 {
  display: inline-block;
  padding-bottom: 15px; /* 文字と線の間隔を少し広げて、画像のようなバランスに */
  
  background-image: linear-gradient(to right, #8a2be2, #0000ff);
  background-repeat: no-repeat;
  
  /* --- 画像に合わせた調整 --- */
  background-size: 18% 6px;        /* 横幅を18%に、太さを6pxに設定 */
  background-position: bottom center; /* 中央配置 */
}

.intel-card {
  flex: 1;
  background-color: #16263a;
  padding: 30px 15px;
  border-radius: 12px;
  color: white;

  /* --- ここを追加：中身を中央に寄せる --- */
  text-align: center;         /* テキストを中央寄せ */
  display: flex;              /* 要素を並べる設定 */
  flex-direction: column;     /* 上から下に並べる */
  align-items: center;        /* 横方向の中央に寄せる（アイコンに効きます） */
}

/* アイコン自体の設定（念のため） */
.intel-card img {
  width: 60px;
  height: auto;
  margin-bottom: 20px;
  display: block;             /* 余計な隙間を消す */
}

/* セクション背景（明るい青のグラデーション） */
.cta {
  background: linear-gradient(135deg, #009ce4 0%, #007bc3 100%);
  padding: 80px 0;
  color: white;
  text-align: center;
}

/* ボタンを横に並べる */
.cta-buttons {
  display: flex;
  justify-content: center;
  gap: 20px; /* ボタン同士の間隔 */
  margin: 40px 0 20px;
}

/* 共通のボタン基本スタイル */
.cta-buttons a {
  display: flex;             /* flexに変更して中央寄せを確実に */
  align-items: center;       /* 上下の中央 */
  justify-content: center;   /* 左右の中央 */
  
  /* --- 縦長を直すポイント --- */
  height: 54px;              /* 縦幅を固定する（お好みの高さに） */
  min-width: 220px;          /* 横幅の最低サイズを決める */
  padding: 0 20px;           /* 左右の余白だけ設定 */
  
  border-radius: 50px;       /* カプセル型 */
  text-decoration: none;
  font-weight: bold;
  font-size: 15px;
  transition: 0.3s;
  box-sizing: border-box;    /* 枠線を含めた計算にする */
}

/* 真ん中の白いボタン */
.btn-white-shadow {
  background-color: white;
  color: #007bc3;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}

/* 右の濃い紺色ボタン */
.btn-dark-blue {
  background-color: #00305a; /* 画像に合わせた深い紺 */
  color: white;
}

/* ボタンを並べる親要素 */
.cta-buttons {
  margin-top: 40px;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap; /* 画面が狭い時に折り返す設定 */
  gap: 10px;      /* ボタン同士の間隔 */
}

/* 共通のボタン基本スタイル */
.cta-buttons a {
  display: flex;
  align-items: center;
  justify-content: center;
  
  height: 54px;
  min-width: 220px;
  padding: 0 20px;
  border-radius: 50px;
  text-decoration: none;
  font-weight: bold;
  font-size: 15px;
  transition: 0.3s;
  
  /* --- 重要：枠線の太さを「高さ」の中に含める計算 --- */
  box-sizing: border-box; 
}

/* 左の枠線ボタン */
.btn-outline {
  color: white;
  border: 2px solid white; /* この2px分、他より大きくなっていたのを防ぎます */
  background-color: transparent;
}
<!-- style属性の中の grid-template-columns を削除しました -->
<div class="copilot-grid" style="display: grid; gap: 25px; margin-top: 40px;">
  <!-- 中身のカードは今のままでOK -->
</div>

/* --- ① PCでの設定（横並び） --- */
.case-row {
  display: flex;         /* これで横に並びます */
  gap: 50px;             /* イラストとテキストの間の隙間 */
  align-items: stretch;  /* 高さを揃える */
  margin-bottom: 80px;   /* 下のブロックとの間隔 */
}

/* イラスト側の幅 */
.case-image {
  flex: 0 0 30%;         /* PCでは30%の幅 */
}

/* テキスト側の幅 */
.case-details {
  flex: 1;               /* 残りの70%を使う */
}
/* ボタンの共通設定（フォントサイズなどは微調整してください） */
.btn-outline,
.btn-white-shadow,
.btn-dark-blue {
  display: inline-block;
  padding: 14px 24px; /* 4つ並ぶので左右の余白を少し詰めました */
  border-radius: 40px;
  font-weight: 600;
  text-decoration: none;
  transition: 0.3s;
  text-align: center;
  min-width: 200px; /* ボタンの最低幅を揃えるときれいです */
  line-height: 1.4;
}

/* ① 枠線ボタン */
.btn-outline {
  border: 2px solid #fff;
  color: #fff;
}
.btn-outline:hover {
  background: rgba(255, 255, 255, 0.1);
}

/* ②・③ 白いボタン（影付き） */
.btn-white-shadow {
  background: #ffffff;
  color: #0077cc;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2); /* 影を追加 */
}
.btn-white-shadow:hover {
  background: #f0f0f0;
  transform: translateY(-2px); /* ホバー時に少し浮く演出 */
}

/* ④ 濃い紺色ボタン */
.btn-dark-blue {
  background: #04101c; /* フッターと同じ色味 */
  color: #fff;
}
.btn-dark-blue:hover {
  background: #0a2036;
}

/* スマホ対応（画面幅が狭い場合） */
@media (max-width: 768px) {
  .cta-buttons {
    flex-direction: column; /* 縦並びにする */
  }
  .btn-outline,
  .btn-white-shadow,
  .btn-dark-blue {
    width: 80%; /* 幅を広げる */
    margin: 5px 0;
  }
}
/* デスクトップPC用のグレーボタン（追加） */
/* 1. デスクトップPCボタンの基本設定を他と合わせる */
.btn-gray-shadow {
  display: inline-block;
  padding: 14px 24px;
  border-radius: 40px;
  font-weight: 600;
  text-decoration: none;
  transition: 0.3s;
  text-align: center;
  /* 他のボタンと共通の幅設定にする */
  min-width: 200px; 
  box-sizing: border-box; /* パディングを含めた幅計算にする */
  
  background: #cccccc; /* 画像に合わせてもう少し濃いグレーにするなら #bbb〜#ccc */
  color: #0077cc;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
  line-height: 1.4;
}

/* 2. スマホ表示（レスポンシブ）の修正 */
@media (max-width: 768px) {
  .cta-buttons {
    display: flex;
    flex-direction: column;
    align-items: center; /* 中央寄せ */
    gap: 15px; /* ボタン同士の上下の間隔 */
  }

  /* すべてのボタンの横幅を「同じ幅」に強制する */
  .btn-outline,
  .btn-white-shadow,
  .btn-gray-shadow,
  .btn-dark-blue {
    width: 100%;      /* 親要素いっぱいに広げる */
    max-width: 300px; /* 広がりすぎないよう上限を決める（お好みで） */
    margin: 0;        /* 余白をリセットしてgapで制御 */
  }
}

/* 追従エリア全体の固定設定 */
.floating-cta {
  position: fixed;   /* 画面に対して固定 */
  right: 20px;       /* 右端からの距離 */
  top: 50%;          /* 上から50%の位置へ */
  transform: translateY(-50%); /* 自身の高さの半分だけ戻して中央合わせ */
  z-index: 9999;     /* 他の要素より手前に表示 */
  width: 240px;      /* 固定エリアの幅 */
}

/* 内側のボックス（背景や余白） */
/* 追従エリア全体を右側に固定 */
.side-floating-menu {
  position: fixed;   /* 画面に対して固定 */
  right: 20px;       /* 右端からの距離（お好みで調整） */
  top: 50%;          /* 上から50%の位置 */
  transform: translateY(-50%); /* 自分の高さの半分だけ上に戻して「真ん中」にする */
  z-index: 9999;     /* 他の要素の上に被せる */
  
  width: 220px;      /* 追従メニューの幅（細めにすると綺麗です） */
  background: #0077cc; /* イメージに合わせた青背景 */
  padding: 20px 15px;
  border-radius: 12px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}

/* 中のボタンを縦に並べる */
.side-floating-menu .floating-buttons {
  display: flex;
  flex-direction: column; /* 縦並びに強制 */
  gap: 10px;             /* ボタン同士の間隔 */
}

/* ボタンの共通微調整（追従用は少し小さくする） */
.side-floating-menu a {
  display: block;
  width: 100%;
  margin: 0 !important;   /* 余白のリセット */
  padding: 10px 5px;      /* 少しコンパクトに */
  font-size: 0.8rem;      /* 文字を小さく */
  min-width: unset !important; /* 前の設定を上書き */
  line-height: 1.3;
}

/* タイトルと注釈の調整 */
.floating-title {
  color: #fff;
  font-weight: bold;
  text-align: center;
  margin-bottom: 15px;
}
.floating-note {
  color: #fff;
  font-size: 0.65rem;
  text-align: center;
  margin-top: 10px;
}

@media (max-width: 768px) {
  .side-floating-menu {
    display: none; /* スマホでは表示しない */
  }
}
