/* 基本のリセット */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

/* 全体のスタイル */
body {
  font-family: Arial, sans-serif;
  background-color: #fff;
  padding: 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-height: 100vh;
}
/* 記事全体のコンテナ */
body > article.thumbnail-card {
  max-width: 600px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}
/* カード内のテキスト情報 */
.info {
  padding: 15px;
  background-color: #fff;
  box-sizing: border-box;
  width: 100%;
}

/* レスポンシブ対応 - タブレット以上 */
@media screen and (min-width: 769px) {
  .info {
    padding: 20px;
  }
}

/* レスポンシブ対応 - スマートフォン */
@media screen and (max-width: 480px) {
  .info {
    padding: 12px;
  }
}
a {
  text-decoration: none;
  color: blue;
}
a:hover {
  text-decoration: none; /* またはnone */
  color: red;
}
li {
  font-size: 1em; /* 親要素の90%のサイズ */
  margin-bottom: 0.2em;
}

ol {
  font-size: 0.9em; /* 親要素の90%のサイズ */
  margin-top: 0.5em;
  margin-bottom: 0.5em;
  padding-left: 2em;
}

/* 上部の検索窓 */
.search-container {
  width: 100%;
  max-width: 600px;
  margin-bottom: 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.search-box {
  width: 80%;
  padding: 10px;
  border-radius: 4px;
  border: 1px solid #ccc;
}

.search-btn {
  padding: 10px 15px;
  background-color: #efeff0;
  border: none;
  color: rgb(125, 125, 125);
  font-size: 14px;
  cursor: pointer;
  border-radius: 4px;
}

.search-btn:hover {
  background-color: #d4d3d3;
}
/* ハンバーガーメニューアイコンを囲む枠 */
.menu-toggle-wrapper {
  display: none; /* デフォルトでは表示しない */
  position: fixed;
  top: 20px;
  right: 20px; /* 右上に配置 */
  z-index: 1000;
  border: 1px solid #d5eeff; /* 枠線を追加 */
  border-radius: 8px; /* 角を丸める */
  padding: 8px; /* 内側の余白 */
  background-color: #d8eeff; /* 背景色 */
  cursor: pointer;
}

.menu-toggle-wrapper:hover {
  background-color: #9fd4ff; /* ホバー時に背景色変更 */
}

.menu-toggle {
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  width: 30px;
  height: 26px;
}

.menu-toggle .bar {
  width: 30px;
  height: 3px;
  background-color: #055dd8;
  transition: 0.3s;
}
/* 閉じるボタンのスタイル */
.close-btn {
  position: absolute;
  top: 10px;
  left: 20px;
  font-size: 30px;
  background: transparent;
  border: none;
  color: rgb(61, 90, 253);
  cursor: pointer;
  z-index: 1100; /* メニューよりも前面に表示 */
}

.close-btn:hover {
  color: #f5f5f5; /* ホバー時の色 */
}

/* メニューが開いているときのスタイル */
.menu.open {
  transform: translateX(0);
}
/* メニューのスタイル */
.nav-menu {
  position: fixed;
  top: 0;
  right: 0; /* 右端に配置 */
  width: 250px;
  height: 100%;
  background-color: #6c9fff;
  color: white;
  transform: translateX(100%); /* 初期状態で右外に隠れる */
  transition: transform 0.3s ease-in-out;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start; /* 上詰め */
  padding-top: 60px; /* 上部に余白を追加 */
  z-index: 999; /* ← これを追加：メニューを最前面に表示 */
}

.nav-menu ul {
  list-style-type: none;
  padding: 0;
  margin: 0;
}

.nav-menu ul li {
  margin: 20px 0;
}

.nav-menu ul li a {
  color: white;
  text-decoration: none;
  font-size: 18px;
}

/* 会社情報のスタイル */
.company-info {
  margin-top: 50px;
  color: #fff;
  text-align: left;
}

.company-info h3 {
  font-size: 14px;
  margin-bottom: 10px;
}

.company-info p {
  font-size: 12px;
  margin-bottom: 2px;
  color: #fff;
}

/* メニューが開いている時 */
.nav-menu.open {
  transform: translateX(0); /* メニューがスライドイン */
}

/* スマートフォンのメディアクエリ */
@media screen and (max-width: 768px) {
  .menu-toggle-wrapper {
    display: block; /* スマホサイズでは表示 */
  }
}

/* パンくずリスト */
.breadcrumb {
  width: 100%;
  max-width: 600px;
  margin-top: 30px;
  font-size: 12px;
}

.breadcrumb a {
  text-decoration: none;
  color: #1e90ff;
}

.breadcrumb a:hover {
  text-decoration: underline;
}

/* コンテナ */
.container {
  max-width: 600px;
  width: 100%;
  margin-top: 30px;
  background-color: rgb(238, 238, 235);
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  padding: 0px;
  padding-bottom: 80px; /* フッターが固定されているので、下部にスペースを追加 */
}

/* タイトル */
.title {
  text-align: center; /* テキストを中央揃え */
  font-size: 14px; /* フォントサイズを14pxに設定 */
  margin-bottom: 0px; /* 下マージンを0pxに設定 */
  margin-top: 20px;
  color: #0060c7; /* テキストの色を黒 (#000) に設定 */

  /* 文字に影をつける */
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3); /* 影の設定: 水平方向2px, 垂直方向2px, ぼかし4px, 半透明の黒色 */
}

/* サムネイルカード */
.thumbnail-card {
  display: flex;
  flex-direction: column;
  margin-bottom: 20px;
  border-radius: 8px;
  overflow: hidden; /* カード外に要素が出ないように */
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  background-color: #fff;
  position: relative; /* 子要素の絶対配置の基準点 */
}

/* 最後のカードに追加のマージン */
.thumbnail-card:last-child {
  margin-bottom: 80px; /* 最後のカードにスペースを追加して、フッターと重ならないように */
}

/* サムネイル画像 */
.thumbnail-img {
  width: 100%;
  height: auto;
  object-fit: cover;
}

/* カード内のテキスト情報 */
.info {
  padding: 15px;
  background-color: #fff;
}
/* .info 内の画像 */
.info img {
  width: 100%; /* 親要素の幅に合わせて画像を拡大・縮小 */
  height: auto; /* 高さは自動調整（アスペクト比を維持） */
  display: block; /* インライン要素での表示を解除し、ブロック要素として扱う */
  margin-left: auto; /* 左側の余白を自動で調整 */
  margin-right: auto; /* 右側の余白を自動で調整 */
}

.title-3 {
  font-size: 14px;
  font-weight: bold;
  color: #333;
  margin-bottom: 10px;
}

.dn {
  font-size: 12px;
  color: #787878;
}
.dm {
  font-size: 8px;
  color: #000;
}
/* 最後のカードにマージンなし */
.thumbnail-card:last-child {
  margin-bottom: 0;
}

/* スクロールアップボタン */
.scroll-to-top {
  position: fixed; /* 画面の固定位置に配置 */
  bottom: 120px; /* 画面下部から20px */
  right: 20px; /* 画面右端から20px */
  background-color: #d0d0ff; /* ボタンの背景色 */
  color: rgb(110, 110, 110);
  border: none;
  border-radius: 50%; /* 丸い形に */
  width: 50px; /* ボタンの幅 */
  height: 50px; /* ボタンの高さ */
  font-size: 0px; /* 上矢印のフォントサイズ */
  display: none; /* 初期状態では非表示 */
  justify-content: center; /* 中央に配置 */
  align-items: center; /* 中央に配置 */
  cursor: pointer; /* カーソルをポインターに */
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* 影を追加 */
  transition: background-color 0.3s, box-shadow 0.3s; /* アニメーション */
}

.scroll-to-top:hover {
  background-color: #d0f7f7; /* ホバー時の背景色 */
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2); /* ホバー時の影の強化 */
}

/* ボタン内の矢印 */
.scroll-to-top::before {
  content: "↑"; /* 上矢印 */
  font-size: 24px; /* 矢印のサイズ */
  display: flex;
  justify-content: center;
  align-items: center;
}

/* フッター */
.footer {
  position: fixed; /* フッターを画面下部に固定 */
  bottom: 0; /* 画面の下端に配置 */
  left: 0; /* 左端に配置 */
  width: 100%; /* 幅を100%に設定 */
  padding: 10px 20px; /* 内側の余白 */
  display: flex;
  flex-direction: column; /* 内部要素を縦に並べる */
  justify-content: flex-start; /* 上に寄せる */
  align-items: center; /* 中央揃え */
  background-color: #ffffff;
  border-radius: 8px 8px 0 0; /* 上部のみ角丸に */
  box-shadow: 0 -4px 8px rgba(0, 0, 0, 0.1); /* 上方向にシャドウ */
  height: auto; /* 自動高さ調整 */
}

/* フッター内のリンク（ボタン） */
.footer-links {
  display: flex; /* フレックスボックスで並べる */
  justify-content: center; /* 中央揃え */
  gap: 20px; /* リンクの間にスペース */
  margin-bottom: 10px; /* 下部の情報部分との間にスペース */
}

.footer-btn {
  display: inline-block;
  padding: 8px 15px; /* ボタンの内側の余白 */
  background-color: #fef0b6; /* ボタンの背景色 */
  color: rgb(142, 141, 141);
  text-decoration: none; /* テキストの下線を除去 */
  border-radius: 8px; /* 角丸 */
  font-size: 12px;
  font-weight: bold;
  text-align: center;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* ボタンにシャドウ */
  transition: background-color 0.3s, box-shadow 0.3s; /* ホバー時のエフェクト */
}

.footer-btn:hover {
  background-color: #fce995; /* ホバー時の背景色 */
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2); /* ホバー時のシャドウ */
}

.footer-btn2 {
  display: inline-block;
  padding: 8px 30px; /* ボタンの内側の余白 */
  background-color: #cbfacf; /* ボタンの背景色 */
  color: rgb(1, 141, 43);
  text-decoration: none; /* テキストの下線を除去 */
  border-radius: 8px; /* 角丸 */
  font-size: 12px;
  font-weight: bold;
  text-align: center;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* ボタンにシャドウ */
  transition: background-color 0.3s, box-shadow 0.3s; /* ホバー時のエフェクト */
}

.footer-btn2:hover {
  background-color: #d6fa9b; /* ホバー時の背景色 */
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2); /* ホバー時のシャドウ */
}

/* フッター内の情報 */
.footer-info {
  text-align: center; /* コピーライトと住所を中央揃え */
  color: white;
  font-size: 12px;
}

/* コピーライトと住所を少し小さめに */
.copyright {
  font-size: 12px;
  color: #ccc;
}

.address {
  font-size: 8px;
  color: #000;
}

/* 郵便番号を別行に */
.postal-code {
  display: block; /* 別行に表示 */
  font-weight: bold; /* 郵便番号を強調 */
}
/* ハンバーガーメニューアイコンを非表示にする */
@media screen and (min-width: 768px) {
  .menu-toggle-wrapper {
    display: none; /* 768px以上ではハンバーガーメニューアイコンを非表示 */
  }
  /* ナビメニューの背景 */
  nav {
    background-color: #333; /* 背景色（お好きな色に変更） */
    border-radius: 10px; /* 角を丸くする（10pxの半径で丸める） */
    padding: 10px; /* 必要に応じて内側の余白を調整 */
  }
  /* ナビゲーションメニューを横並びに変更 */
  .nav-menu {
    position: static; /* スライドインではなく静的に表示 */
    width: auto; /* 幅を自動調整 */
    height: auto; /* 高さを自動調整 */
    display: flex; /* 横並びにする */
    justify-content: space-around; /* メニュー項目を左右に配置 */
    padding-top: 8px; /* 上部の余白を削除 */
    transform: translateX(0); /* メニューを右にスライドしない */
  }

  /* メニュー項目を横並びに */
  .nav-menu ul {
    display: flex; /* 横並びに変更 */
    flex-direction: row; /* 横並び */
  }

  .nav-menu ul li {
    margin: 0 20px; /* 項目の間隔を設定 */
  }

  /* メニュー項目のリンクを整形 */
  .nav-menu ul li a {
    font-size: 16px; /* フォントサイズを少し大きく */
  }

  /* 会社情報も横並びにしたい場合 */
  .company-info {
    display: none; /* 768px以上では会社情報を非表示 */
  }
}

/* スマートフォンビューでは、メニューはスライドインのまま */
@media screen and (max-width: 768px) {
  .nav-menu {
    display: none; /* 初期状態で非表示 */
    position: fixed;
    top: 0;
    right: 0;
    width: 250px;
    height: 100%;
    background-color: #6c9fff;
    color: white;
    transform: translateX(100%); /* メニューを右外に隠す */
    transition: transform 0.3s ease-in-out;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    padding-top: 60px;
  }

  /* メニューが開いているとき */
  .nav-menu.open {
    transform: translateX(0); /* メニューがスライドイン */
  }
}
/* スマートフォンのメディアクエリ */
@media screen and (max-width: 768px) {
  .menu-toggle-wrapper {
    display: block; /* スマホサイズでは表示 */
  }
}

/* 768px以上の画面サイズでのスタイル */
@media screen and (min-width: 768px) {
  .nav-menu {
    transform: translateX(0); /* メニューを初期状態で表示 */
  }

  .close-btn {
    display: none; /* 768px以上では閉じるボタンを非表示 */
  }
}

/* フォント装飾 */

/*回り込み
※モバイル時にも解除されない*/
.fl-l {
  float: left;
  margin: 0 1em 1em 0;
}

.fl-r {
  float: right;
  margin: 0 0 1em 1em;
}

.fl-c {
  clear: both;
}

/*回り込み
※モバイル時には回り込み解除*/
.left {
  float: left;
  margin: 0 1em 1em 0;
}

.right {
  float: right;
  margin: 0 0 1em 1em;
}

/*文字の横位置*/
.al-l {
  text-align: left;
}

.al-r {
  text-align: right;
}

.al-c {
  text-align: center;
}

/*文字の縦位置*/
.vl-t {
  vertical-align: top !important;
}

/*上寄せ*/
.vl-m {
  vertical-align: middle !important;
}

/*中央寄せ*/
.vl-b {
  vertical-align: bottom !important;
}

/*下寄せ*/

/*周りのブロックからの距離（margin）*/
.m0 {
  margin: 0 !important;
}

/*周りからのmarginを0に*/
.m0-t {
  margin-top: 0 !important;
}

/*上からのmarginを0に*/
.m0-r {
  margin-right: 0 !important;
}

/*右からのmarginを0に*/
.m0-b {
  margin-bottom: 0 !important;
}

/*下からのmarginを0に*/
.m0-l {
  margin-left: 0 !important;
}

/*左からのmarginを0に*/

.m5 {
  margin: 5px !important;
}

.m5-t {
  margin-top: 5px !important;
}

.m5-r {
  margin-right: 5px !important;
}

.m5-b {
  margin-bottom: 5px !important;
}

.m5-l {
  margin-left: 5px !important;
}

.m10 {
  margin: 10px !important;
}

.m10-t {
  margin-top: 10px !important;
}

.m10-r {
  margin-right: 10px !important;
}

.m10-b {
  margin-bottom: 10px !important;
}

.m10-l {
  margin-left: 10px !important;
}

.m15 {
  margin: 15px !important;
}

.m15-t {
  margin-top: 15px !important;
}

.m15-r {
  margin-right: 15px !important;
}

.m15-b {
  margin-bottom: 15px !important;
}

.m15-l {
  margin-left: 15px !important;
}

.m20 {
  margin: 20px !important;
}

.m20-t {
  margin-top: 20px !important;
}

.m20-r {
  margin-right: 20px !important;
}

.m20-b {
  margin-bottom: 20px !important;
}

.m20-l {
  margin-left: 20px !important;
}

.m25 {
  margin: 25px !important;
}

.m25-t {
  margin-top: 25px !important;
}

.m25-r {
  margin-right: 25px !important;
}

.m25-b {
  margin-bottom: 25px !important;
}

.m25-l {
  margin-left: 25px !important;
}

.m30 {
  margin: 30px !important;
}

.m30-t {
  margin-top: 30px !important;
}

.m30-r {
  margin-right: 30px !important;
}

.m30-b {
  margin-bottom: 30px !important;
}

.m30-l {
  margin-left: 30px !important;
}

.m40 {
  margin: 40px !important;
}

.m40-t {
  margin-top: 40px !important;
}

.m40-r {
  margin-right: 40px !important;
}

.m40-b {
  margin-bottom: 40px !important;
}

.m40-l {
  margin-left: 40px !important;
}

.m50 {
  margin: 50px !important;
}

.m50-t {
  margin-top: 50px !important;
}

.m50-r {
  margin-right: 50px !important;
}

.m50-b {
  margin-bottom: 50px !important;
}

.m50-l {
  margin-left: 50px !important;
}

.m60 {
  margin: 60px !important;
}

.m60-t {
  margin-top: 60px !important;
}

.m60-r {
  margin-right: 60px !important;
}

.m60-b {
  margin-bottom: 60px !important;
}

.m60-l {
  margin-left: 60px !important;
}

.m70 {
  margin: 70px !important;
}

.m70-t {
  margin-top: 70px !important;
}

.m70-r {
  margin-right: 70px !important;
}

.m70-b {
  margin-bottom: 70px !important;
}

.m70-l {
  margin-left: 70px !important;
}

.m80 {
  margin: 80px !important;
}

.m80-t {
  margin-top: 80px !important;
}

.m80-r {
  margin-right: 80px !important;
}

.m80-b {
  margin-bottom: 80px !important;
}

.m80-l {
  margin-left: 80px !important;
}

.m90 {
  margin: 90px !important;
}

.m90-t {
  margin-top: 90px !important;
}

.m90-r {
  margin-right: 90px !important;
}

.m90-b {
  margin-bottom: 90px !important;
}

.m90-l {
  margin-left: 90px !important;
}

.m100 {
  margin: 100px !important;
}

.m100-t {
  margin-top: 100px !important;
}

.m100-r {
  margin-right: 100px !important;
}

.m100-b {
  margin-bottom: 100px !important;
}

.m100-l {
  margin-left: 100px !important;
}

.m120 {
  margin: 120px !important;
}

.m120-t {
  margin-top: 120px !important;
}

.m120-r {
  margin-right: 120px !important;
}

.m120-b {
  margin-bottom: 120px !important;
}

.m120-l {
  margin-left: 120px !important;
}

.m150 {
  margin: 150px !important;
}

.m150-t {
  margin-top: 150px !important;
}

.m150-r {
  margin-right: 150px !important;
}

.m150-b {
  margin-bottom: 150px !important;
}

.m150-l {
  margin-left: 150px !important;
}

.m200 {
  margin: 200px !important;
}

.m200-t {
  margin-top: 200px !important;
}

.m200-r {
  margin-right: 200px !important;
}

.m200-b {
  margin-bottom: 200px !important;
}

.m200-l {
  margin-left: 200px !important;
}

.m300 {
  margin: 300px !important;
}

.m300-t {
  margin-top: 300px !important;
}

.m300-r {
  margin-right: 300px !important;
}

.m300-b {
  margin-bottom: 300px !important;
}

.m300-l {
  margin-left: 300px !important;
}

.m420 {
  margin: 420px !important;
}

.m400-t {
  margin-top: 400px !important;
}

.m380-r {
  margin-right: 380px !important;
}

.m380-b {
  margin-bottom: 380px !important;
}

.m380-l {
  margin-left: 380px !important;
}

/*周りのブロックからの距離（padding）*/
.p0 {
  padding: 0 !important;
}

.p0-t {
  padding-top: 0 !important;
}

.p0-r {
  padding-right: 0 !important;
}

.p0-b {
  padding-bottom: 0 !important;
}

.p0-l {
  padding-left: 0 !important;
}

.p5 {
  padding: 5px !important;
}

.p5-t {
  padding-top: 5px !important;
}

.p5-r {
  padding-right: 5px !important;
}

.p5-b {
  padding-bottom: 5px !important;
}

.p5-l {
  padding-left: 5px !important;
}

.p10 {
  padding: 10px !important;
}

.p10-t {
  padding-top: 10px !important;
}

.p10-r {
  padding-right: 10px !important;
}

.p10-b {
  padding-bottom: 10px !important;
}

.p10-l {
  padding-left: 10px !important;
}

.p15 {
  padding: 15px !important;
}

.p15-t {
  padding-top: 15px !important;
}

.p15-r {
  padding-right: 15px !important;
}

.p15-b {
  padding-bottom: 15px !important;
}

.p15-l {
  padding-left: 15px !important;
}

.p20 {
  padding: 20px !important;
}

.p20-t {
  padding-top: 20px !important;
}

.p20-r {
  padding-right: 20px !important;
}

.p20-b {
  padding-bottom: 20px !important;
}

.p20-l {
  padding-left: 20px !important;
}

.p25 {
  padding: 25px !important;
}

.p25-t {
  padding-top: 25px !important;
}

.p25-r {
  padding-right: 25px !important;
}

.p25-b {
  padding-bottom: 25px !important;
}

.p25-l {
  padding-left: 25px !important;
}

.p30 {
  padding: 30px !important;
}

.p30-t {
  padding-top: 30px !important;
}

.p30-r {
  padding-right: 30px !important;
}

.p30-b {
  padding-bottom: 30px !important;
}

.p30-l {
  padding-left: 30px !important;
}

.p40 {
  padding: 40px !important;
}

.p40-t {
  padding-top: 40px !important;
}

.p40-r {
  padding-right: 40px !important;
}

.p40-b {
  padding-bottom: 40px !important;
}

.p40-l {
  padding-left: 40px !important;
}

.p50 {
  padding: 50px !important;
}

.p50-t {
  padding-top: 50px !important;
}

.p50-r {
  padding-right: 50px !important;
}

.p50-b {
  padding-bottom: 50px !important;
}

.p50-l {
  padding-left: 50px !important;
}

.p60 {
  padding: 60px !important;
}

.p60-t {
  padding-top: 60px !important;
}

.p60-r {
  padding-right: 60px !important;
}

.p60-b {
  padding-bottom: 60px !important;
}

.p60-l {
  padding-left: 60px !important;
}

.p70 {
  padding: 70px !important;
}

.p70-t {
  padding-top: 70px !important;
}

.p70-r {
  padding-right: 70px !important;
}

.p70-b {
  padding-bottom: 70px !important;
}

.p70-l {
  padding-left: 70px !important;
}

.p80 {
  padding: 80px !important;
}

.p80-t {
  padding-top: 80px !important;
}

.p80-r {
  padding-right: 80px !important;
}

.p80-b {
  padding-bottom: 80px !important;
}

.p80-l {
  padding-left: 80px !important;
}

.p90 {
  padding: 90px !important;
}

.p90-t {
  padding-top: 90px !important;
}

.p90-r {
  padding-right: 90px !important;
}

.p90-b {
  padding-bottom: 90px !important;
}

.p90-l {
  padding-left: 90px !important;
}

.p100 {
  padding: 100px !important;
}

.p100-t {
  padding-top: 100px !important;
}

.p100-r {
  padding-right: 100px !important;
}

.p100-b {
  padding-bottom: 100px !important;
}

.p100-l {
  padding-left: 100px !important;
}

/*フォントの装飾*/
.b {
  font-weight: bold !important;
}

/*太字*/
.normal {
  font-weight: normal !important;
}

/*太字を解除*/

/*フォントサイズの設定*/
.big {
  font-size: 1.2em !important;
}

.big2 {
  font-size: 1.5em !important;
}

.big3 {
  font-size: 1.8em !important;
}

.small {
  font-size: 1em !important;
  color: #fff;
}

.f08em {
  font-size: 0.8em;
}

.f09em {
  font-size: 0.9em;
}

.f10em {
  font-size: 1em;
}

.f11em {
  font-size: 1.1em;
}

.f12em {
  font-size: 1.2em;
}

.f13em {
  font-size: 1.3em;
}

.f14em {
  font-size: 1.4em;
}

.f15em {
  font-size: 1.5em;
}

.f16em {
  font-size: 1.6em;
}

.f17em {
  font-size: 1.7em;
}

.f18em {
  font-size: 1.8em;
}

.f19em {
  font-size: 1.9em;
}

.f20em {
  font-size: 2em;
}

.f21em {
  font-size: 2.1em;
}

.f22em {
  font-size: 2.2em;
}

.f23em {
  font-size: 2.3em;
}

.f24em {
  font-size: 2.4em;
}

.f25em {
  font-size: 2.5em;
}

.f26em {
  font-size: 2.6em;
}

.f27em {
  font-size: 2.7em;
}

.f28em {
  font-size: 2.8em;
}

.f29em {
  font-size: 2.9em;
}

.f30em {
  font-size: 3em;
}

.f8pt {
  font-size: 8.5pt;
}

.f9pt {
  font-size: 9pt;
}

.f10pt {
  font-size: 10pt;
}

.f11pt {
  font-size: 11pt;
}

.f12pt {
  font-size: 12pt;
}

.f13pt {
  font-size: 13pt;
}

.f14pt {
  font-size: 14pt;
}

.f15pt {
  font-size: 15pt;
}

.f16pt {
  font-size: 16pt;
}

.f17pt {
  font-size: 17pt;
}

.f18pt {
  font-size: 18pt;
}

.f19pt {
  font-size: 19pt;
}

.f20pt {
  font-size: 20pt;
}

.f21pt {
  font-size: 21pt;
}

.f22pt {
  font-size: 22pt;
}

.f23pt {
  font-size: 23pt;
}

.f24pt {
  font-size: 24pt;
}

/*フォントの色設定*/
.red {
  color: #361d01 !important;
}

/*赤*/
.blue {
  color: #3187f9 !important;
}

/*青*/
.green {
  color: #4caf50 !important;
}

/*緑*/
.yellow {
  color: #e1d902 !important;
}

/*黄*/
.navy {
  color: #004182 !important;
}

/*紺*/
.orange {
  color: #ff9800 !important;
}

/*橙*/
.pink {
  color: #ff7173 !important;
}

/*ピンク*/
.purple {
  color: #9c27b0 !important;
}

/*紫*/
.olive {
  color: #808000 !important;
}

/*オリーブ*/
.lime {
  color: #11ee11 !important;
}

/*黄緑*/
.aqua {
  color: #00bcd4 !important;
}

/*水色*/
.black {
  color: #000 !important;
}

/*黒*/
.gray {
  color: #aaa !important;
}

/*灰*/
.white {
  color: #fff !important;
}

/*白*/
.brown {
  color: #6d4c33 !important;
}

/*茶*/

/*マーカー表示（背景に着色）*/
.box-yellow,
.box-orange,
.box-pink,
.box-lime,
.box-gray {
  padding: 2px;
}

.box-yellow {
  background-color: #ff6;
}

/*黄*/
.box-orange {
  background-color: #ffb334;
}

/*橙*/
.box-pink {
  background-color: #ffbbdd;
}

/*ピンク*/
.box-lime {
  background-color: #9f9;
}

/*黄緑*/
.box-gray {
  background-color: #ccc;
}

/*灰*/

/*行間の設定*/
.lh10 {
  line-height: 1 !important;
}

.lh11 {
  line-height: 1.1 !important;
}

.lh12 {
  line-height: 1.2 !important;
}

.lh13 {
  line-height: 1.3 !important;
}

.lh14 {
  line-height: 1.4 !important;
}

.lh15 {
  line-height: 1.5 !important;
}

.lh16 {
  line-height: 1.6 !important;
}

.lh17 {
  line-height: 1.7 !important;
}

.lh18 {
  line-height: 1.8 !important;
}

.lh19 {
  line-height: 1.9 !important;
}

.lh20 {
  line-height: 2 !important;
}

/*横幅を指定*/
.w05 {
  width: 5%;
}

.w10 {
  width: 10%;
}

.w15 {
  width: 15%;
}

.w20 {
  width: 20%;
}

.w25 {
  width: 25%;
}

.w30 {
  width: 30%;
}

.w35 {
  width: 35%;
}

.w40 {
  width: 40%;
}

.w45 {
  width: 45%;
}

.w50 {
  width: 50%;
}

.w55 {
  width: 55%;
}

.w60 {
  width: 60%;
}

.w65 {
  width: 65%;
}

.w70 {
  width: 70%;
}

.w75 {
  width: 75%;
}

.w80 {
  width: 80%;
}

.w85 {
  width: 85%;
}

.w90 {
  width: 90%;
}

.w95 {
  width: 95%;
}

.w100 {
  width: 100%;
}

/*下線や取消線の設定*/
.underline {
  text-decoration: underline !important;
}

.del {
  text-decoration: line-through;
}

.noborder {
  border: 0 !important;
}

/*枠線を無くす*/

/*重なりの優先度*/
.z1 {
  z-index: 1 !important;
}

.z2 {
  z-index: 2 !important;
}

.z3 {
  z-index: 3 !important;
}

.z4 {
  z-index: 4 !important;
}

.z5 {
  z-index: 5 !important;
}

.z10 {
  z-index: 10 !important;
}

.z20 {
  z-index: 20 !important;
}

.z30 {
  z-index: 30 !important;
}

.z40 {
  z-index: 40 !important;
}

.z50 {
  z-index: 50 !important;
}

/*横並びリスト*/
.inline {
  margin: 1em 0;
  padding: 0;
}

.inline li {
  display: inline;
  list-style-type: none;
}

/*マーカー無しのリスト*/
.none {
  margin: 1em 0;
  padding: 0;
}

.none li {
  list-style-type: none;
}

/* セロテープ風ボックス */
.cstm-box-tape {
  position: relative; /* タイトル配置の基準 */
  margin: 2em auto; /* 外側余白 */
  background-color: #e6ecf2; /* ボックス背景色 */
  max-width: 800px; /* 最大幅 */
}

/* タイトル（セロテープ風） */
.cstm-box-tape .box-title {
  background-color: rgb(255 255 255 / 0.1); /* 透過背景色 */
  border-left: 2px dotted rgb(0 0 0 / 0.1); /* 左端のギザギザ */
  border-right: 2px dotted rgb(0 0 0 / 0.1); /* 右端のギザギザ */
  box-shadow: 0 0 5px rgb(0 0 0 / 0.12); /* 影 */
  transform: rotate(-2deg); /* 傾き */
  color: #666; /* 文字色 */
  padding: 10px 20px; /* 内側余白 */
  line-height: 1; /* 行の高さ */
  position: absolute; /* 親の左上に固定 */
  top: -1em; /* 上位置 */
  left: 1em; /* 左位置 */
  display: inline-block; /* 内容幅に合わせる */
  font-size: 0.9em; /* フォントサイズ */
  width: auto; /* 幅自動調整 */
  max-width: calc(100% - 2em); /* 最大幅調整 */
  white-space: nowrap; /* 折り返さない */
  overflow: hidden; /* はみ出し非表示 */
  text-overflow: ellipsis; /* 省略記号表示 */
}

/* コンテンツの余白 */
.cstm-box-tape .box-content {
  padding: 2.5em 2em 2em; /* 内側余白 */
}

/* 段落の余白リセット */
.cstm-box-tape p {
  margin: 0;
}

/* タイトル付きボックス（ラベル） */
.cstm-box-label {
  --box-color: #4882ff; /* 基本色 */
  position: relative; /* タイトル配置の基準 */
  margin: 2em auto; /* 外側余白（上下・中央寄せ） */
  border: 2px solid var(--box-color); /* 枠線 */
  border-radius: 2px; /* 角丸 */
  max-width: 800px; /* 最大幅 */
}

.cstm-box-label .box-title {
  position: absolute; /* タイトル位置指定 */
  top: -0.5em; /* 上に少し移動 */
  left: 1em; /* 左端からの距離 */
  background-color: #fff; /* タイトル背景色 */
  color: var(--box-color); /* タイトル文字色 */
  padding: 0 0.5em; /* 内側余白 */
  font-weight: bold; /* 太字 */
  line-height: 1; /* 行の高さ */
  display: inline-block; /* 幅を内容に合わせる */
  width: auto; /* 幅自動調整 */
  max-width: calc(100% - 2em); /* 左右の余白を考慮 */
  white-space: nowrap; /* 折り返さない */
  overflow: hidden; /* はみ出し非表示 */
  text-overflow: ellipsis; /* 省略記号表示 */
}

.cstm-box-label .box-content {
  padding: 2em; /* 内側余白 */
}

/* 段落の余白リセット */
.cstm-box-label p {
  margin: 0;
}
/* 見出し ストライプ背景 */
.st {
  padding: 0.5em 0.7em;
  background-image: repeating-linear-gradient(
    -45deg,
    #bbdbfb,
    #bbdbfb 3px,
    #f2f6fc 3px,
    #f2f6fc 7px
  );
  color: #333333;
}
/* 見出し 吹き出し */
.st2 {
  position: relative;
  padding: 0.5em 0.7em;
  border-radius: 10px;
  background-color: #7195f8;
  color: #fff;
}

.st2::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 30px;
  width: 0;
  height: 0;
  border: 11px solid transparent;
  border-top: 11px solid #7195f8;
}

/* 画像コンテナに相対位置を設定 */
.image-container {
  position: relative;
  overflow: hidden; /* 泡が外に出ないように */
  width: 100%;
  display: block;
}

/* 泡のベーススタイル */
.bubble {
  position: absolute;
  bottom: -50px;
  width: 20px;
  height: 20px;
  background: radial-gradient(
    circle at 30% 30%,
    rgba(255, 255, 255, 0.8),
    rgba(173, 216, 230, 0.4)
  );
  border-radius: 50%;
  opacity: 0;
  animation: floatUp 6s ease-in-out infinite;
  box-shadow: inset 0 0 10px rgba(255, 255, 255, 0.5);
}

/* 泡が浮かび上がるアニメーション */
@keyframes floatUp {
  0% {
    bottom: 95%;
    opacity: 0;
    transform: translateX(0) scale(0.5);
  }
  5% {
    opacity: 1;
  }
  15% {
    transform: translateX(5px) scale(1);
  }
  30% {
    transform: translateX(8px) scale(1.05);
  }
  45% {
    transform: translateX(6px) scale(1.08);
  }
  60% {
    transform: translateX(-5px) scale(1.05);
  }
  75% {
    transform: translateX(-8px) scale(0.95);
    opacity: 0.8;
  }
  85% {
    opacity: 0.5;
  }
  95% {
    opacity: 0.2;
  }
  100% {
    bottom: 85%;
    opacity: 0;
    transform: translateX(0) scale(0.7);
  }
}
/* 異なるサイズと速度の泡 */
.bubble:nth-child(1) {
  left: 10%;
  width: 12px;
  height: 12px;
  animation-duration: 9s;
  animation-delay: 0s;
}

.bubble:nth-child(2) {
  left: 25%;
  width: 35px;
  height: 35px;
  animation-duration: 11s;
  animation-delay: 1.5s;
}

.bubble:nth-child(3) {
  left: 40%;
  width: 18px;
  height: 18px;
  animation-duration: 10s;
  animation-delay: 3s;
}

.bubble:nth-child(4) {
  left: 55%;
  width: 28px;
  height: 28px;
  animation-duration: 12s;
  animation-delay: 0.8s;
}

.bubble:nth-child(5) {
  left: 70%;
  width: 14px;
  height: 14px;
  animation-duration: 9.5s;
  animation-delay: 2s;
}

.bubble:nth-child(6) {
  left: 85%;
  width: 24px;
  height: 24px;
  animation-duration: 10.5s;
  animation-delay: 4s;
}

.bubble:nth-child(7) {
  left: 15%;
  width: 32px;
  height: 32px;
  animation-duration: 13s;
  animation-delay: 5s;
}

.bubble:nth-child(8) {
  left: 60%;
  width: 10px;
  height: 10px;
  animation-duration: 8.5s;
  animation-delay: 6s;
}

.qa-1 {
  max-width: 500px;
  margin-bottom: 7px;
  border: 1px solid #d6dde3;
  border-radius: 5px;
}

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

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

.qa-1 summary::before {
  color: #75bbff;
  content: "Q";
}

.qa-1 summary::after {
  transform: translateY(-25%) rotate(45deg);
  width: 7px;
  height: 7px;
  margin-left: 10px;
  border-bottom: 3px solid #525252b3;
  border-right: 3px solid #525252b3;
  content: "";
  transition: transform 0.5s;
}

.qa-1[open] summary::after {
  transform: rotate(225deg);
}

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

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

.qa-1 p::before {
  color: #ff8d8d;
  line-height: 1.2;
  content: "A";
}

/* チャット風吹き出し 共通 */
.chat-left,
.chat-right {
  display: flex !important;
  align-items: flex-start !important;
  margin-bottom: 20px !important;
  gap: 10px !important;
  width: 100% !important;
}

/* アイコン画像 */
.chat-icon {
  width: 50px !important;
  height: 50px !important;
  border-radius: 50% !important;
  object-fit: cover !important;
  flex-shrink: 0 !important;
  margin: 0 !important;
}

/* 左側の吹き出し（自分） */
.chat-bubble-left {
  background-color: #7195f8 !important;
  border-radius: 15px !important;
  padding: 12px 16px !important;
  max-width: 70% !important;
  position: relative !important;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1) !important;
  margin: 0 !important;
}

.chat-bubble-left::before {
  content: "" !important;
  position: absolute !important;
  left: -8px !important;
  top: 15px !important;
  width: 0 !important;
  height: 0 !important;
  border-style: solid !important;
  border-width: 8px 8px 8px 0 !important;
  border-color: transparent #7195f8 transparent transparent !important;
}

.chat-bubble-left p {
  margin: 0 !important;
  color: #fff !important;
  line-height: 1.6 !important;
  font-size: 14px !important;
}

/* 右側の吹き出し（自分） */
.chat-right {
  justify-content: flex-end !important;
}

.chat-bubble-right {
  background-color: #b6febb !important;
  border-radius: 15px !important;
  padding: 12px 16px !important;
  max-width: 70% !important;
  position: relative !important;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1) !important;
  margin: 0 !important;
}

.chat-bubble-right::before {
  content: "" !important;
  position: absolute !important;
  right: -8px !important;
  top: 15px !important;
  width: 0 !important;
  height: 0 !important;
  border-style: solid !important;
  border-width: 8px 0 8px 8px !important;
  border-color: transparent transparent transparent #b6febb !important;
}

.chat-bubble-right p {
  margin: 0 !important;
  color: #222 !important;
  line-height: 1.6 !important;
  font-size: 14px !important;
}

/* スマートフォン対応 */
@media screen and (max-width: 480px) {
  .chat-icon {
    width: 40px !important;
    height: 40px !important;
  }

  .chat-bubble-left,
  .chat-bubble-right {
    max-width: 75% !important;
    font-size: 0.9em !important;
  }
}


/* コードブロック全体 */
.block-code {
  margin: 1.5em 0;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid #00d9ff;
  background-color: #0f1419;
  box-shadow: 0 0 20px rgba(0, 217, 255, 0.3);
  position: relative;
}

/* ヘッダー部分（言語名表示） */
.block-code-header {
  padding: 0.8em 0.8em 0.8em 0.8em;
  background: linear-gradient(135deg, #1a1f3a 0%, #0f1419 100%);
  border-bottom: 1px solid #00d9ff;
  font-size: 0.9em;
  font-weight: 600;
  color: #00d9ff;
  text-shadow: 0 0 10px rgba(0, 217, 255, 0.6);
  letter-spacing: 0.05em;
  position: relative;
}

/* コピーボタン */
.copy-button {
  background-color: transparent;
  color: #00d9ff;
  border: 1px solid #00d9ff;
  padding: 0.3em 0.8em;
  border-radius: 4px;
  cursor: pointer;
  font-size: 0.85em;
  font-weight: 500;
  transition: all 0.3s ease;
  text-shadow: 0 0 5px rgba(0, 217, 255, 0.5);
  position: absolute;
  right: 1em;
  top: 50%;
  transform: translateY(-50%);
}

.copy-button:hover {
  background-color: #00d9ff;
  color: #0f1419;
  box-shadow: 0 0 15px rgba(0, 217, 255, 0.6);
  text-shadow: none;
}

.copy-button:active {
  transform: translateY(-50%) scale(0.95);
}

/* コード表示部分 */
.block-code pre {
  margin: 0;
  padding: 1em;
  background-color: #0f1419;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.block-code code {
  display: block;
  color: #4dd9ff;
  font-family: Consolas, Menlo, Monaco, monospace;
  font-size: 0.9em;
  line-height: 1.6;
  white-space: pre;
  text-shadow: 0 0 8px rgba(77, 217, 255, 0.5);
}

/* コードブロックの強制適用 */
.info .block-code {
  margin: 1.5em 0 !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  border: 1px solid #00d9ff !important;
  background-color: #0f1419 !important;
  box-shadow: 0 0 20px rgba(0, 217, 255, 0.3) !important;
  position: relative !important;
  width: 100% !important;
  max-width: 100% !important;
}

/* ヘッダー部分 */
.info .block-code-header {
  padding: 0.8em 0.8em 0.8em 0.8em !important;
  background: linear-gradient(135deg, #1a1f3a 0%, #0f1419 100%) !important;
  border-bottom: 1px solid #00d9ff !important;
  font-size: 0.9em !important;
  font-weight: 600 !important;
  color: #00d9ff !important;
  text-shadow: 0 0 10px rgba(0, 217, 255, 0.6) !important;
  letter-spacing: 0.05em !important;
  position: relative !important;
}

/* コピーボタン */
.info .block-code .copy-button {
  background-color: transparent !important;
  color: #00d9ff !important;
  border: 1px solid #00d9ff !important;
  padding: 0.3em 0.8em !important;
  border-radius: 4px !important;
  cursor: pointer !important;
  font-size: 0.85em !important;
  font-weight: 500 !important;
  transition: all 0.3s ease !important;
  text-shadow: 0 0 5px rgba(0, 217, 255, 0.5) !important;
  position: absolute !important;
  right: 1em !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
}

.info .block-code .copy-button:hover {
  background-color: #00d9ff !important;
  color: #0f1419 !important;
  box-shadow: 0 0 15px rgba(0, 217, 255, 0.6) !important;
  text-shadow: none !important;
}

/* コード表示部分 */
.info .block-code pre {
  margin: 0 !important;
  padding: 1em !important;
  background-color: #0f1419 !important;
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

.info .block-code code {
  display: block !important;
  color: #4dd9ff !important;
  font-family: 'Consolas', 'Menlo', 'Monaco', monospace !important;
  font-size: 0.9em !important;
  line-height: 1.6 !important;
  white-space: pre !important;
  text-shadow: 0 0 8px rgba(77, 217, 255, 0.5) !important;
  width: auto !important;
  height: auto !important;
}

/* .infoの画像スタイルを上書き防止 */
.info .block-code * {
  max-width: none !important;
}