/* ============================================= */
/* 			設定			 */
/* ============================================= */
/* 背景青#99d8ff	文字色#333333		 */
/* 標準青#509bea	赤系色#ff66cc		 */
/* 標準銀#509bea	赤系色#ff66cc		 */
/* ============================================= */
body, h1, h2, 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;
  }
}



/* ============================================= */
/* 			部品		 */
/* ============================================= */

/* お知らせbox 共通設定 */
.notice-box {
  padding: 15px;
  margin-bottom: 10px;
  border-radius: 5px;
  border-left: 5px solid; /* 左側に太い線を入れるとおしゃれ */
  font-weight: bold;
}

/* お知らせbox　重要度別色指定 */
.low {
  background-color: #f0f8ff; /* 薄い青 */
  border-color: #3498db; /* 青 */
  color: #2980b9;
}

.medium {
  background-color: #fff9e6; /* 薄い黄 */
  border-color: #f1c40f;     /* 黄 */
  color: #856404;
}

.high {
  background-color: #fdeaea; /* 薄い赤 */
  border-color: #e74c3c;     /* 赤 */
  color: #c0392b;
}

/* ============================================= */
/* 			リンク色		 */
/* ============================================= */
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	プレーヤーボックス	 */
/* ============================================= */
/* プレーヤー全体の枠 */
[id^="player-"] {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9; /* これがないと中身が空の時に高さ0になります */
    background: #000;
    overflow: hidden;
}

/* サムネイル画像 */
.thumb {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* APIが生成するiframeを親に合わせる */
[id^="player-"] iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100% !important;
}

/* 再生ボタン */
.play-btn {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    pointer-events: none; /* 画像のクリックを邪魔しない */
    z-index: 2;
}





.video-title {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    padding: 10px;
    background: linear-gradient(to bottom, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0) 100%);
    color: #fff;
    font-size: 14px;
    font-weight: bold;
    z-index: 2; /* 画像より上に表示 */
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis; /* 長いタイトルを「...」にする */
    pointer-events: none; /* クリックを邪魔しない */
}



/* ============================================= */
/*	 youtube	チャンネル部分	 */
/* ============================================= */
.container {
  display: flex;
}

.left-column {
  /* 左カラムを固定幅にする */
  width: 400px;
  flex-shrink: 0; /* 縮小させないようにする */
  padding: 20px;
  box-sizing: border-box;
}

.right-column {
  /* 右カラムを残りの幅で可変にする */
  flex: 1;
  padding: 20px;
  box-sizing: border-box;
text-align: right;
}

/* 画面幅が小さいときに1カラムにするメディアクエリ */
@media ( max-width: 999px ) {
  .container {
    /* 縦方向に積み重ねる */
    flex-direction: column;
  }
  
  .left-column,
  .right-column {
    /* 固定幅を解除し、幅を100%にする */
    width: 100%;
  }
}


/* ============================================= */
/* 		ヘッダーメニュー		 */
/* ============================================= */
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; /* 横並びに戻す */
  }
}


.scroll {
  max-height: 250px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}


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

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

/* 主に動画間用 */
.mt-40 {
  margin-top: 40px;
}

.mt-80 {
  margin-top: 80px;
}





/* ============================================= */
/* 	ボタンコンテナのスタイル		 */
/* ============================================= */
.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: #ff66cc;	/* ff1493 */
    background-color: #509bea;
}

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

#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; /* 少しだけサイズ調整 */
  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: #509bea;				/* 2ac5b3 */
}


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


.sub-title
{
  border-left: solid 5px #7db4e6;
  padding-left: 10px;
  font-size: 1.2em;
}




/* ============================================= */
/* 		リスト（説明）			 */
/* ============================================= */
/* リスト全体（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;
}


/* ============================================= */
/* 		リンクボタン			 */
/* ============================================= */
/* ボタンの設定 */
.link-button {
  list-style: none; /* リストの点を消す */
  padding: 0;
  margin: 0;
}

.link-button a {
  display: block;
  padding: 15px 40px 15px 20px; /* 右側に矢印用の余白を確保 */
  background: #007bff;
  color: #fff;
  text-decoration: none;
  position: relative; /* 矢印の基準位置 */
  transition: 0.3s;
  border-top: 1px solid #ffffff;    /* ◆追加 最初から透明な線 transparent を引いておく */
  border-bottom: 1px solid #ffffff; /* ◆追加 transparent でホバー時に揺れない */
}

.link-button a:hover {
  background: #0056b3;
  color: #ff1493;
  border-top: 1px solid #ffffff; /* ◆もしくはこちらを下とセットで削除 */
  border-bottom: 1px solid #ffffff;
}

/* 矢印（>）の設定 */
.link-button a:after {
  content: '';
  width: 8px;
  height: 8px;
  border-top: 2px solid #ffffff;
  border-right: 2px solid #ffffff;
  /* 3. transformの調整：translateY(-50%)を先に書くのが一般的 */
  transform: translateY(-50%) rotate(45deg);
  position: absolute;
  top: 50%;
  right: 20px;
  transition: 0.3s ease-in-out;
}

.link-button a:hover:after {
  border-color: #ffffff; /* ホバー時の矢印の色 */
}


/* 追加 ホバー時に矢印を少し右に動かす */
.link-button a:hover::after {
  right: 15px;
  border-color: #ff1493; /* 文字色に合わせる */
}



/* ============================================= */
/* 		アコーディオン			 */
/* ============================================= */
details {
  list-style: none;
}

/* summaryを既存の .link-button a と同じ見た目にする */
details summary {
  display: block; /* 標準の矢印を消すために必要 */
  padding: 15px 40px 15px 20px;
  background: #007bff;
  color: #fff;
  text-decoration: none;
  position: relative;
  transition: 0.3s;
  border-top: 1px solid transparent;
  border-bottom: 1px solid transparent;
  cursor: pointer; /* マウスカーソルを指にする */
}

/* summaryから標準の三角形を消す（Chrome, Safari対策） */
details summary::-webkit-details-marker {
  display: none;
}

/* ホバー演出 */
details summary:hover {
  background: #0056b3;
  color: #ff1493;
  border-top: 1px solid #ffffff;
  border-bottom: 1px solid #ffffff;
}

/* 矢印（初期：下向き） */
details summary::after {
  content: '';
  width: 5px;
  height: 5px;
  border-top: 3px solid #ffffff;
  border-right: 3px solid #ffffff;
  /* 135度回転で下向き */
  transform: translateY(-50%) rotate(135deg);
  position: absolute;
  top: 45%; /* 下向き時は少し上に調整すると綺麗に見えます */
  right: 20px;
  border-radius: 1px;
  transition: 0.3s ease-in-out;
}

/* 開いている時（open属性がある時）の矢印：上向き */
details[open] summary::after {
  /* -45度回転で上向き */
  transform: translateY(-50%) rotate(-45deg);
  top: 55%; /* 上向き時は少し下に調整 */
}

/* 絵文字を入れたい場合（既存のクラス流用） */
details summary.with-emoji::before {
  content: "\1f4ab";
  margin-right: 0.5em;
  font-size: 1.5em;
  vertical-align: middle;
  position: relative;
  top: -2px;
}



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

.cmark:not(:first-of-type) {
    border-top: none;
    margin-top: 16px;
}


.footer-notice p {
  margin-bottom: 8px;
}

.footer-notice p:last-child {
  margin-bottom: 0;
}