/* ============================================= */
/* 			設定			 */
/* ============================================= */
/* 文字色基本色#99d8ff	文字色#333333		 */
/* 文字色基本色#99d8ff	文字色#333333		 */
/* ============================================= */
body, h1, h6, p, ul, ol, li, div {
  margin: 0;
  padding: 0;
}

html, body, header {
  font-family: sans-serif;
  color: #333333;		/* 文字色 */
  background-color: #333333;
}

html {
  box-sizing: border-box;
}

*, *::before, *::after {
  box-sizing: inherit;
}

img {
  max-width: 100%;
  height: auto; /* 縦横比を維持 */
  vertical-align: middle; /* 画像とテキストの垂直アライメントのずれを防ぐ */
}


/* ◆ wrapper（外） */
.outer-wrapper {
  background-color: #99d8ff;
}

/* 画面幅が768px以上の場合に適用 */
@media screen and (min-width: 768px) {
  .outer-wrapper {
  }
}


/* ◆ wrapper */
.wrapper {
  padding-left: 20px;
  padding-right: 20px;
  background-color: #99d8ff;
}

/* 画面幅が768px以上の場合に適用 */
@media screen and (min-width: 768px) {
  .wrapper {
    /* PCでの最大の幅を設定 */
    max-width: 1000px; 
    /* 中央揃え（左右のpaddingはautoで上書きされる） */
    margin-left: auto;
    margin-right: auto;
    /* 中央揃えをする場合は padding は 0 にリセットしても良い */
    padding-left: 0;
    padding-right: 0;
  }
}



/* ============================================= */
/* 			リンク色		 */
/* ============================================= */
a:link {
  color: #006bda;
  text-decoration: underline;
  transition: color 0.5s;	/* リンク色（マウスオーバー）が変わる速さ */
}

a:visited {
  color: #551a8b;
}

a:hover {
  text-decoration: none;
  color: #ff1493;
}

a:active {
  color: #ff0000;
  text-decoration: underline;
}



/* ============================================= */
/*	 youtube	プレーヤーボックス	 */
/* ============================================= */
.youtube {
  width: 100%;
  aspect-ratio: 16 / 9;
  margin: 0;		/* 左右に[auto]を指定することで、真ん中に寄る */
  padding: 0;		/* 上下左右の余白を0にしておく */
}

.youtube iframe {
  width: 100%;
  height: 100%;
}


/* ローディング中の表記がプレイヤーが重なるように調整 */
.video-container { position: relative; width: 560px; height: 315px; background: #eee; }
.loader { 
    position: absolute; top: 0; left: 0; width: 100%; height: 100%;
    display: flex; align-items: center; justify-content: center;
}



/* ============================================= */
/* 		ヘッダーメニュー		 */
/* ============================================= */
ul.header-menu {
  position: relative; /* PC版の 'fixed' を解除し、デフォルトの 'relative' に戻す */
  z-index: 9999;
  background: #333333;
  color: #ffffff;
  box-sizing: border-box;
  width: 100%;
  margin: 0 auto; /* 中央寄せのために左右autoを設定 */
  padding: 7px 5px;
  list-style-type: none;
  font-size: 0.9em;
  /* SPでは項目を縦並びにするための設定を追加 */
  display: flex;
  flex-direction: column; /* 項目を縦方向に並べる */
  align-items: center;    /* site title を中央寄せ */
  text-align: center;
}

ul.header-menu li {
  margin: 0;
  padding: 5px 0; /* 縦並びなので上下にパディングを設定 */
  /* display: inline を解除 */
  display: block; /* li要素をブロック要素にして縦に積む */
}

ul.header-menu li:first-child {
  padding-left: 0; /* SPでは左寄せの特殊なパディングを解除 */
}

ul.header-menu li a {
  padding-right: 0; /* SPでは右パディングを解除 */
  color: #ffffff;
  transition: color 0.5s;
  display: block; /* リンクエリアを広げる */
}

/* Twitterリンク2か所を非表示にする */
ul.header-menu li:nth-child(n+2) {
  display: none;
}

ul.header-menu li a:hover {
  color: #ff1493;
}

/* 画面幅が768px以上の場合に適用 */
@media (min-width: 768px) {
  ul.header-menu {
    position: fixed; /* PCでのみ固定化 */
    top: 0;
    left: 0;
    /* SP向けで設定した flex-direction や align-items をPC向けに上書き・解除 */
    flex-direction: row; /* 項目を横方向に並べる */
    align-items: flex-start; /* 配置を元に戻す */
    text-align: left;
    margin: 0;
  }

  ul.header-menu li {
    padding-left: 5px;
    display: inline; /* PCでのみ横並び */
  }

  ul.header-menu li:first-child {
    padding-left: 25px; /* PCでのみ最初の項目に左パディング */
  }

  ul.header-menu li a {
    padding-right: 18px; /* PCでのみ右パディング */
  }

  /* 非表示にしたTwitterリンクをPCでのみ再表示 */
  ul.header-menu li:nth-child(n+2) {
    display: inline; /* 横並びに戻す */
  }
}


/* ◆ header直下 */
.mt-50 {
  margin-top: 0;
}

/* 画面幅が768px以上の場合に適用 */
@media screen and (min-width: 768px) {
.mt-50 {
  margin-top: 50px;
  }
}



/* ============================================= */
/* 	ボタンコンテナのスタイル		 */
/* ============================================= */
.button-container {
    display: flex;       /* 子要素（ボタン）をフレックスアイテムとして並べる */
    flex-wrap: wrap;     /* 画面幅が狭くなったら自動的に折り返す */
    gap: 5px;            /* ボタン間の隙間を均等に5pxずつ空ける */
    margin-bottom: 10px; /* ボタンの下に少し余白を作る */
}

/* 非表示にするユーティリティクラス */
/* div.js-toggle-container.hidden {     display: none;} */
/* ============================================= */
/* 	削除対応		 */
/* ============================================= */


/* 通常時：詳細度を低めに保つ */
.js-toggle-container {
  display: block;
  visibility: visible;
  height: auto;
  padding: 20px;
  font-size: 16px; /* 標準サイズ */
  line-height: 1.5;
}

/* 非表示時：クラスを重ねることで自然に優先度を上げる */
.js-toggle-container.hidden {
  visibility: hidden;
  height: 0;
  padding-top: 0;
  padding-bottom: 0;
  margin-top: 0;
  margin-bottom: 0;
  overflow: hidden;
  /* フォント由来の隙間対策 */
  font-size: 0;
  line-height: 0;
}

/* ============================================= */
/* 	削除対応ここまで		 */
/* ============================================= */

/* メインコンテンツコンテナのスタイル */
/* js-toggle-container（js class）も同一スタイル */
.js-toggle-container, .main-container {
    padding: 15px;
    border: 1px solid #ccc;
    margin-top: 5px;
    margin-bottom: 15px;
    background-color: #fdfbf8; /* f9f9f9 */
}

/* すべてのトグルボタンのデフォルトスタイル（青色の背景、文字色は白） */
a.toggle-button {
    display: inline-block;
    padding: 8px 12px;
    background-color: #007bff;
    color: #ffffff; /*  !important */
    transition: all 0.3s ease;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    text-decoration: none;
    font-size: 14px;
}

a.toggle-button:hover {
    color: #ff1493;
    background-color: #0056b3;
}

/* リセットボタンのスタイル（IDで個別に指定） */
#resetButton {
    background-color: #fdfbf8; /* 背景色をペールベージュに */
    color: #ff1493;            /* initial文字色をサイト全体のデフォルト色に戻す */
}

#resetButton:hover {
    color: #ffffff;
    background-color: #5a6268; /* ホバー時を濃いグレーに */
}



/* ============================================= */
/* 		details（開閉）			 */
/* ============================================= */
/* デフォルトの矢印を消す */
summary.summary-button {
  display: block;
  list-style: none;
  cursor: pointer;
  position: relative; /* 矢印の基準位置 */
  padding: 15px 40px 15px 20px;
  background: #007bff;
  color: #fff;
  transition: 0.3s;
}

summary.summary-button::-webkit-details-marker {
  display: none;
}

details.details-container {
  border: 1px solid #007bff;
  border-radius: 4px;
  overflow: hidden; /* 中身がはみ出さないように */
  margin-bottom: 20px;
}

/* 自作矢印のデザインを適用 */
summary.summary-button::after {
  content: '';
  width: 8px; /* 少しだけサイズ調整（5pxだと小さく見える場合があるため） */
  height: 8px;
  border-top: 3px solid #ffffff;
  border-right: 3px solid #ffffff;
  /* 右向きの状態 */
  position: absolute;
  top: 50%;
  right: 20px;
  transform: translateY(-50%) rotate(135deg);
  border-radius: 1px;
  transition: 0.3s ease-in-out;
}

/* ホバー時の挙動 */
summary.summary-button:hover {
  opacity: 0.9;
}
summary.summary-button:hover::after {
  border-color: #ffffff;
}

/* 開いている時は矢印を下向きにする */
details[open] summary.summary-button::after {
  top: 55%; /* 上向きの時は少し下げるとバランスが良いです */
  transform: translateY(-70%) rotate(-45deg); /* 下向きに回転 */
}



/* ============================================= */
/* 		各種タイトル			 */
/* ============================================= */
/* ページタイトル */
.page-title
{
  position: relative;
  padding: 1.5rem;
  text-align: center;
  /* h1全体の文字サイズを設定（任意） */
  font-size: 1.2em;
}

						/* 疑似要素で中央に短い下線 */ 
.page-title:before
{
  position: absolute;
  bottom: 10px;
  left: calc(50% - 40px);			/* 初期値30px */
  width: 90px;
  height: 5px;
  content: '';
  background: #2ac5b3;
}


.small-text {
  /* 小さくしたい部分の文字サイズを設定 */
  display: block; /* ブロック要素にして改行される */
  font-size: 0.5em; /* 親要素（h1）の0.5倍のサイズ */
}



/* ============================================= */
/* 		リスト（説明）			 */
/* ============================================= */
/* リスト全体（dl）のスタイル */
.time-list {
  display: flex; /* dtとddを横並びにする */
  padding: 5px 0; /* 上下の余白 */
  border-bottom: 1px solid #333333; /* 細い線を引く */
}

/* time-list クラスを持つ要素のうち、親要素の中で最初に出てくるものに適用 */
.list-container .time-list:first-of-type {
  padding-top: 0; /* 上の余白をなくす */
}

/* 用語（dt）のスタイル */
.time-list dt {
  width: 120px; /* 用語部分の幅を固定 */
  flex-shrink: 0; /* 用語が縮小しないようにする */
}

/* 説明（dd）のスタイル */
.time-list dd {
  flex-grow: 1; /* 余ったスペースを埋める */
  margin: 0; /* デフォルトの余白をリセット */
}




/* ============================================= */
/* 	リストのリセット・ベース共通設定	 */
/* ============================================= */
.main-list, 
.main-menu, 
.main-menu li {
  list-style: none; /* ulに書けばliにも適用されるため、ここだけでOK */
}

.main-menu li {
  width: 100%;
  border-bottom: 1px solid #808080;
}

/* 最後の要素だけボーダーを消す共通処理 */
.main-menu li:last-child {
  border-bottom: none;
}


/* メニュー内部リスト */
.main-menu li a {
  display: block;
  position: relative;
  padding: 10px;
  background: #333;
  color: #fff;
  font-weight: bold;
  text-decoration: none;
}

/* 擬似要素（before/after）の共通パーツ */
.main-menu li a::before,
.main-menu li a::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 10px;
  height: 10px;
  transform: translateY(-50%) rotate(45deg); /* 上下中央寄せの共通化 */
}

/* 個別の位置と色だけ指定 */
.main-menu li a::before {
  right: 35px;
  background: #fff;
}

.main-menu li a::after {
  right: 40px;
  background: #333;
}



/* ============================================= */
/* 		アコーディオン			 */
/* ============================================= */
.toggle {
  display: none; /* チェックボックス自体は非表示 */
}

.Label { /* タイトル部分 */
  cursor: pointer;
  padding: 1em;
  margin: 0 auto;
  display: block;
  color: #f0f8ff;
  background-color: #99d8ff; /* 背景色を追加すると見やすい */
  border-left: 1px solid #333333;
  border-top: 1px solid #333333;
  border-bottom: 3px solid #99d8ff;
  width: 80%; /* SPでの幅 */
  position: relative; /* 矢印の位置指定の基準とする */
  box-sizing: border-box;
}

.Label::before { /* タイトル横の矢印 */
  content: "";
  width: 6px;
  height: 6px;
  border-top: 2px solid #99d8ff;
  border-right: 2px solid #99d8ff;
  position: absolute;
  top: 50%;
  right: 20px;
  transform: translateY(-50%) rotate(135deg); /* 中央揃えと回転 */
  transition: transform 0.3s; /* アニメーションを追加 */
}

/* 本文部分 */
.content {
  width: 80%; /* SPでの幅 */
  max-height: 0; /* デフォルトで非表示（高さ0） */
  padding: 0 20px; /* 左右のパディングのみ設定 */
  margin: 0 auto;
  overflow: hidden;
  color: #333333;
  background-color: #f0f8ff;
  box-sizing: border-box;
  /* アニメーション関連の設定 */
  backface-visibility: hidden;
  transform: translateZ(0);
  transition: max-height 0.3s ease-out, padding 0.3s ease-out; /* max-heightとpaddingをアニメーション */
}


/* ==============================================
   開閉時のスタイル
   ============================================== */
.toggle:checked + .Label + .content {
  max-height: 500px; /* 開いた時の最大の高さを設定（コンテンツに合わせて適切な値に変更） */
  padding: 20px; /* 開いた時の上下左右のパディング */
}

.toggle:checked + .Label::before {
  transform: translateY(-50%) rotate(-45deg); /* 矢印の向きを変更 */
}

/* 画面幅が768px以上の場合に適用 */
@media screen and (min-width: 768px) {
  .Label,
  .content {
    width: 100%; /* PCでは幅100%に */
    max-width: 950px; /* 最大幅を設定 */
    margin: 0 auto; /* 中央寄せ */
  }
}



/* ============================================= */
/* 		著作権部分			 */
/* ============================================= */
 .cmark {
    display: block;
    padding: 10px;
    border-top: 1px solid #808080;	/* 初期値gray */
    width: 80%;
    margin: 0 auto;
    margin-top: 50px;
    color: #808080;
    text-align: center;
}