/* 外側の背景（余白部分） */
body {
  margin: 0;
  padding: 0;
  background: #f3ede1; /* 白～クリーム系 */
  font-family: "Hiragino Sans", "Meiryo", sans-serif;
  color: #682b0e;
  height: 100%;
}

/* 背景画像＋ガラス風レイヤー（固定） */
.content-bg {
  position: fixed;       /* 背景を画面に固定 */
  top: 2vh;
  left: 2.5vw;
  width: 95vw;           /* ほぼ全画面 */
  height: 96vh;          /* ほぼ全画面高さ */
  border-radius: 16px;
  overflow: hidden;      /* 枠からはみ出した部分を非表示 */
  background-image: url("sng1.png");
  background-size: cover;
  background-position: center;
}

/* ガラス効果の透明白レイヤー（背景と完全一致） */
.content-glass {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(255, 241, 196, 0.6);
  backdrop-filter: blur(2px);
  pointer-events: none; /* 背景なのでクリックを邪魔しない */
}

/* スクロールする本体 */
.content-inner {
  position: relative;
  z-index: 10;
  width: 100%;
  height: 100%;
  padding: 20px 40px;    /* 余白を調整（上下20px 左右40px） */
  overflow-y: auto;      /* 縦スクロール可能 */
  overflow-x: hidden;    /* 横方向はみ出しを非表示 */
  text-align: left;
  box-sizing: border-box;

  /* Firefox用スクロールバー */
  scrollbar-width: thin;
  scrollbar-color: rgba(80,60,40,0.6) rgba(255,255,255,0.3);
}

/* WebKit系ブラウザ用スクロールバー */
.content-inner::-webkit-scrollbar {
  width: 8px;
}
.content-inner::-webkit-scrollbar-track {
  background: rgba(255,255,255,0.3);
  border-radius: 8px;
}
.content-inner::-webkit-scrollbar-thumb {
  background: rgba(80,60,40,0.6);
  border-radius: 8px;
}
.content-inner::-webkit-scrollbar-thumb:hover {
  background: rgba(80,60,40,0.8);
}

/* 見出し */
.content-inner h1 {
  margin-top: 0;
  font-size: 2.2rem;
}

/* 説明文 */
.desc {
  font-size: 1.1rem;
  margin-bottom: 30px;
}

/* セクション */
section {
  margin-bottom: 40px;
  padding: 20px;                /* 内側余白 */
  border: 1px solid #ddd;       /* 薄いグレー枠線 */
  border-radius: 12px;          /* 角丸 */
  background: rgba(255,255,255,0.4); /* ほんのり背景 */
}

  /* カレンダー */
  .calendar-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}
  .month-title{font-weight:700;font-size:1.05rem}
  .btn {
  border: 1px solid rgba(0,0,0,0.06);
  padding: 6px 10px;
  border-radius: 8px;
  cursor: pointer;
  box-shadow: 0 2px 6px rgba(0,0,0,0.03);
  background-color: rgba(255, 255, 255, 0.5); /* 白を半透明に */
  color: #682b0e;
}


  .btn:active{transform:translateY(1px)}

  .calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;}
  .weekday{font-size:0.85rem;text-align:center;color:rgba(0,0,0,0.6)}
  .day{
    min-height:72px;padding:8px;border-radius:10px;border:1px solid rgba(0,0,0,0.04);
    background:linear-gradient(180deg, rgba(255,255,255,0.6), rgba(255,255,255,0.9));
    position:relative;cursor:default;overflow:hidden;
  }
  .day.inactive{opacity:0.45}
  .day-number{font-weight:600}
  .day .marker{position:absolute;bottom:8px;left:8px;right:8px;padding:6px;border-radius:8px;font-size:0.85rem;text-align:center}
  .day.has-video{border:1px solid rgba(255,200,60,0.9);box-shadow:0 4px 10px rgba(255,200,60,0.08);cursor:pointer}
  .day.has-video .marker{background:linear-gradient(90deg,#fff7c3,#fff0a0)}
  .day.selected{outline:3px solid rgba(104,43,14,0.12);transform:translateY(-2px)}

  /* ビデオリスト */
  .video-list{margin-top:14px;display:flex;flex-direction:column;gap:8px}
  .video-item{padding:10px;border-radius:10px;background:rgba(255, 255, 255, 0.5);;border:1px solid rgba(0,0,0,0.03);display:flex;flex-direction:column}
  .video-item a{font-weight:700;color:var(--accent);text-decoration:none}
  .video-meta{font-size:0.9rem;color:#666;margin-top:6px}

/* レスポンシブ対応: タブレット以上 */
@media (max-width: 1024px) {
  .content-bg {
    top: 5vh;
    left: 5vw;
    width: 90vw;
    height: 90vh;
  }

  .content-inner {
    padding: 15px 30px;
  }

  .content-inner h1 {
    font-size: 2rem;
  }

  .desc {
    font-size: 1rem;
  }

  section {
    padding: 15px;
  }
}

/* レスポンシブ対応: スマートフォン以上 */
@media (max-width: 600px) {
  .content-bg {
    top: 5vh;
    left: 5vw;
    width: 90vw;
    height: 90vh;
  }

  .content-inner {
    padding: 10px 20px;
  }

  .content-inner h1 {
    font-size: 1.6rem;
  }

  .desc {
    font-size: 0.95rem;
    margin-bottom: 20px;
  }

  section {
    padding: 10px;
  }
}

/* レスポンシブ対応: 超小型スマホ（例：横幅320px未満） */
@media (max-width: 320px) {
  .content-bg {
    top: 5vh;
    left: 5vw;
    width: 90vw;
    height: 90vh;
  }

  .content-inner {
    padding: 10px;
  }

  .content-inner h1 {
    font-size: 1.4rem;
  }

  .desc {
    font-size: 0.9rem;
    margin-bottom: 15px;
  }

  section {
    padding: 8px;
  }
}
