* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
p{font-family: Zen Kaku Gothic New, sans-serif;/* 長い単語やURLをボックスの幅に合わせて自動改行 */
  word-break: break-word; 
  /* 必要に応じて、最大幅などを設定 */
max-width: 100%;}
a {
	text-decoration: none;
	    color: inherit;
}
.wrapper {
  max-width: 420px;
  margin: 0 auto;
}
     @font-face {
                font-family: 'MyFont'; 
                src: url('https://cdn.daidogei.com/common/YDWaosagi.woff2') format('woff2');  
                font-weight: normal;
                font-style: normal;
                font-display: swap; 
}
.myf{font-family: 'MyFont', sans-serif;}
h2{  margin: 0;
  padding: 0;
  font-weight: normal; /* 太字を解除 */
	color: inherit; /* 文字色を継承 */
	font-size:50px;
overflow-wrap: break-word; /* 長い単語でも折り返す */
	word-wrap: break-word;     /* 古いブラウザ用 */
	font-family: 'MyFont', sans-serif;
}
/*ローディング*/
 /* --- 1. ローディング画面のスタイル --- */
      #loading-screen {
        position: fixed;
        inset: 0;
        z-index: 9999;
        background-color: #f8f9fa; /* 背景色 */
        display: flex;
        justify-content: center;
        align-items: center;
	transition: opacity 0.6s ease-out, visibility 0.6s; /* 消える時のアニメーション */
	  font-family: "Dela Gothic One", sans-serif;

      }
      
      /* 読み込み完了後にJSで付与するクラス */
      #loading-screen.hide {
        opacity: 0;
        visibility: hidden;
      }
      
      /* --- 2. ジャグリングクラブのアニメーション --- */
      .club {
        width: 15px;
        height: 60px;
        background: #ff5722; /* クラブのメインカラー */
        border-radius: 10px 10px 4px 4px;
        position: relative;
        /* 回転のアニメーション設定 */
        animation: spin 2s linear infinite; 
	transform-origin: center center;
	
      }
      
      /* クラブの持ち手部分 */
      .club::after {
        content: '';
        position: absolute;
        bottom: -25px;
        left: 3px;
        width: 9px;
        height: 25px;
        background: #333;
        border-radius: 2px 2px 5px 5px;
      }
      
      /* 回転の動き（360度回る） */
      @keyframes spin {
        0% { transform: rotate(0deg); }
        100% { transform: rotate(360deg); }
      }
      
      /* --- 3. サイト本体の仮スタイル --- */
      body {
        margin: 0;
        font-family:'Zen Kaku Gothic New', sans-serif;
        line-height: 1.6;
      }
      .content {
        padding: 50px;
        text-align: center;
}

/*動画*/
.video-container {
  width: 100%;                /* 横幅は画面いっぱい */
  overflow: hidden;          /* はみ出した部分を隠す */
	position: relative;
	height:800px;
}

.video-container video {
  width: 100%;                /* コンテナの幅に合わせる */
  height: 100%;               /* コンテナの高さに合わせる */
  object-fit: cover;         /* ★真ん中を中心にトリミング */
  object-position: center;   /* ★中央に配置 */
}

/* ヒーロー：画面いっぱい */
.hero {
  position: relative;
  width: 100%;
  height: 100vh;
  height: 100dvh; /* ←最新スマホ対応 */
	overflow: visible;
	margin-top: 60px;
}

/* 背景 */
.hero-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 60% center;
  z-index: 0;
}

/* オーバーレイ */
.overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
}

/* 下ビジュアル：画面下にピタ */
.visual {
  position: absolute;
  bottom: env(safe-area-inset-bottom, 0px); /* ←超重要 */
  width: 100%;
  height: 28%;
}

/* ===== テキスト ===== */
.catch1 {
  position: absolute;
  top: 40px;
  left: 80px;
  writing-mode: vertical-rl;
  font-size: 30px;
  color: #fff;
  font-weight: normal;
	letter-spacing: 0.2em;
	font-family: MyFont, sans-serif;
}
.catch {
  position: absolute;
  top: 40px;
  left: 16px;
  writing-mode: vertical-rl;
  font-size: 30px;
  color: #fff;
  font-weight: normal;
	letter-spacing: 0.2em;
	font-family: MyFont, sans-serif;
}

/* ===== 下ビジュアル ===== */
.visual {
  position: absolute;
  bottom: 150px;
  width: 100%;
  height: 260px;
}

/* 共通 */
.item {
  position: absolute;
  bottom: 0;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: bottom;
}

/* ===== 個別サイズ（pxで固定） ===== */

.castle {
  right: 60%;
  width: 143px;
  height: 158px;
  background: url('./img/castle.png'); /* 仮 */
	z-index: 3;
}

.fuji {
	left: 50%;
  transform: translateX(-50%);
  width: 379px;
  height: 206px;
  background: url('./img/fuji.png'); /* 仮 */
  z-index: 1;
}

.character {
  left: 50%;
  transform: translateX(-50%);
  width: 91px;
  height: 137px;
  background: url('./img/character.svg'); 
  z-index: 12;

  filter: drop-shadow(0 10px 8px rgba(0,0,0,0.3));
}
.bo_title_t{
	left:50%;
	transform: translateX(-50%);
	width:300px;
	height:180px;
	z-index:11;}

/*top 大道芸タイトル*/
.bo_title{
	padding:20px;
	background:white;
	height:200px;
	width:100%;
	z-index:9;}
	
	.bo_title_tt{
	left:52%;
	transform: translateX(-50%);
	height:45px;
	width:300px;
	font-family: 'MyFont', sans-serif;
	font-size:30px;
	z-index:10;
	}
		
/* 影 */
.character::after {
  content: "";
  position: absolute;
  bottom: -6px;
  left: 50%;
  transform: translateX(-50%);
  width: 60px;
  height: 10px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(4px);
}

.building {
  left: 60%;
  width: 116px;
  height: 207px;
  background: url('./img/building.png'); 
  z-index: 2;
}


		
@media (max-width: 850px){

	.castle {
		left: -2%;
		  transform: translateX(-10%);
	}
	.building {
  left: 70%;
	}
}

/* ===== ヘッダー ===== */
.header {
  position: fixed; /* ←上に固定 */
  top: 0;
  left: 0;
  width: 100%;
  height: 70px;
  background: #fff;
  z-index: 100;
  display: flex;
  justify-content: space-between;
  align-items: center;
	padding: 12px 16px 7px 16px;
	box-shadow: 0 2px 6px rgba(0,0,0,0.05);
}

/* ロゴ */
.logo img {
  height: 50px;
}

/* 右側 */
.header-right {
  display: flex;
  align-items: center;
  gap: 16px;
}

/* ボタン共通 */
.header button {
  background: none;
  border: none;
  font-size: 12px;
  font-weight: bold;
  display: flex;
  flex-direction: column;
  align-items: center;
  cursor: pointer;
}

/* アイコン風 */
.header button span {
  font-size: 10px;
  margin-top: 2px;
}

/* ===== MENUボタン ===== */
.menu-btn {
  width: 24px;
  height: 20px;
  position: relative;
  border: none;
  background: none;
  cursor: pointer;
}

.menu-btn span {
  position: absolute;
  width: 100%;
  height: 2px;
  background: #000;
  left: 0;
  transition: 0.3s;
}

.menu-btn span:nth-child(1) { top: 0; }
.menu-btn span:nth-child(2) { top: 8px; }
.menu-btn span:nth-child(3) { bottom: 0; }

/* 開いた時（×） */
.menu-btn.active span:nth-child(1) {
  transform: rotate(45deg);
  top: 8px;
}

.menu-btn.active span:nth-child(2) {
  opacity: 0;
}

.menu-btn.active span:nth-child(3) {
  transform: rotate(-45deg);
  bottom: 8px;
}

/* ===== 全画面ナビ ===== */
.nav {
position: fixed;
  inset: 0;
  background-color: #e60012; /* ベース赤 */
  /*background-image: url("./img/menuback.jpg");*/
  /*background-repeat: repeat;*/
  background-size: 200px; /* ←調整ポイント */
  color: #fff;
  z-index: 3000;
  display: flex;
  flex-direction: column;
	justify-content: center;
  opacity: 0;
  pointer-events: none;
	transition: 0.4s;
	
	 background-image: 
    radial-gradient(rgba(255,255,255,0.1) 3px, transparent 3px),
    radial-gradient(rgba(255,255,255,0.1) 3px, transparent 3px);
  /* ドットの間隔（大きく設定） */
  background-size: 20px 20px;
  /* 2つ目のドットを縦横半分ずらす */
  background-position: 0 0, 50px 50px;
}
.nav > * {
  position: relative;
  z-index: 1;
}
/* 表示 */
.nav.active {
  opacity: 1;
  pointer-events: auto;
}

/* 閉じる */
.close-btn {
  position: absolute;
  top: 20px;
  right: 20px;
  background: none;
  border: none;
	color: #fff;
	padding:10px;
}

/* メニュー */
.nav-list {
  list-style: none;
	top:-80px;
	margin:0 auto;
	text-align:center;
}

.nav-list li {
  margin-bottom: 16px;
  font-size: 18px;
  transform: translateX(-20px);
  opacity: 100;
}
.menu_b{
	width: 200px;
    height: 241px;
    bottom: 0px;
	position: absolute;
}
/* ========== FOOTER ========== */
footer {
 position: relative;
    background-color: #0068b7; /* フッターの背景色 */
    color: white;
    padding: 50px 20px 20px; /* シルエット分の上部パディング */
	margin-top: 50px;
	padding-bottom:60px;
}
.footer_b {
 position: relative;
    color: white;
    padding: 50px 20px 20px; /* シルエット分の上部パディング */
	margin-top: 100px;
	padding-bottom:90px;
	margin-bottom:56px;
}
.footer_b::before{
content: "";
    position: absolute;
    top: -50px; /* フッターの上に表示する調整値 */
    left: 0;
    width: 100%;
    height: 60px; /* シルエット画像の高さ */
    background-image: url('./img/footer_top.svg'); /* シルエット画像へのパス */
    background-repeat: repeat-x; /* 横に並べる */
    background-position: bottom;
	background-size: contain;
z-index:10;}
.f_logo{height:110px;}
footer .footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 20px;
  margin-bottom: 20px;
}

footer .footer-links a {
  color: rgba(255,255,255,0.6);
  text-decoration: none;
}
footer .footer-links a:hover { color: var(--white); }

footer .copy {
  font-size: 11px;
  color: rgba(255,255,255,0.35);
}
.machigeki{
	position:absolute;
	width:150px;
	height:86px;
	right:0;
bottom:65px;}

.fo_top_item{width:100%;
height:auto;}
.nav-footer {
  position: absolute;
  bottom: 0px;
  left: 20px;
  font-size: 24px;
}

/* ===== 言語 ===== */
.lang {
  position: relative;
}

.lang-menu {
  position: absolute;
  top: 30px;
  right: 0;
  background: #fff;
  color: #000;
  list-style: none;
  padding: 8px 0;
  display: none;
}

.lang-menu li {
  padding: 8px 16px;
}



/* 表示 */
.lang.active .lang-menu {
  display: block;
}
/* ロゴ帯用 */
.scroll-container {
  width: 100%;
  height: 300px;
  overflow: hidden;
  background: #f5f5f5;
  position: relative;
}

/* 👇 ここで見た目だけ回転 */
.scroll-rotate {
  transform: rotate(-10deg) translateY(-30px);
  transform-origin: center;
}

/* 👇 ここは純粋に横移動だけ */
.scroll-track {
  display: flex;
  width: max-content;
}

.svg-item {
  height: 100px;
  margin-right: 20px;
}

.scroll-container {
  width: 100%;
  height: 350px;
  overflow: hidden;
  background: red; /* ← 余白を赤に */
  position: relative;

  display: flex;
  align-items: center;
  justify-content: center;
}

/* 回転レイヤー */
.scroll-rotate {
  transform: rotate(-10deg);
  transform-origin: center;
}

/* 横スクロール本体 */
.scroll-track {
  display: flex;
  width: max-content;
}

/* SVG */
.svg-item {
  height: 50px;
  margin-right: 10px;
}

/* 👇 白い帯（ここがポイント） */
.scroll-inner {
  background: white;
  padding: 30px 0; /* ← 上下30px */
}


/* 全セクション共通 */
.section-curved {
  position: relative;
  width: 100%;
  height: 300px;
  display: flex;
  justify-content: center;
  align-items: center;
  color: white;
  /* ★重要：中身が帽子に隠れないように余白を作る */
	padding-top: 50px; 
	  /* ドットを大きく（30%〜45%）設定 */
  background-image: 
    radial-gradient(rgba(255, 255, 255, 0.05) 30%, transparent 30%),
    radial-gradient(rgba(255, 255, 255, 0.05) 30%, transparent 30%);

  /* 間隔を狭く（全体のサイズを小さく） */
  background-size: 15px 15px;

  /* サイズの半分をずらして45度配置 */
	background-position: 0 0, 7.5px 7.5px;
	top:230px;
}

/* 帽子（弧）の共通設定 */
.section-curved::before {
  content: "";
  position: absolute;
  bottom: 100%; /* 箱の真上に配置 */
  left: 0;
  width: 100%;
  height: 100px; /* 弧の高さ */
  /* ★重要：自分の箱と同じ色を自動で塗る */
  background-color: inherit; 
  /* 弧の形に切り抜く */
	clip-path: ellipse(60% 100% at 50% 100%);
	  /* ドットを大きく（30%〜45%）設定 */
  background-image: 
    radial-gradient(rgba(255, 255, 255, 0.05) 30%, transparent 30%),
    radial-gradient(rgba(255, 255, 255, 0.05) 30%, transparent 30%);

  /* 間隔を狭く（全体のサイズを小さく） */
  background-size: 15px 15px;

  /* サイズの半分をずらして45度配置 */
  background-position: 0 0, 7.5px 7.5px;
}

.section-curved0::before {
  content: "";
  position: absolute;
  bottom: 100%; /* 箱の真上に配置 */
  left: 0;
  width: 100%;
  height: 100px; /* 弧の高さ */
  /* ★重要：自分の箱と同じ色を自動で塗る */
  background-color: inherit; 
  /* 弧の形に切り抜く */
	clip-path: ellipse(60% 100% at 50% 100%);
 background: radial-gradient(
    ellipse 60% 100% at 50% 100%, 
    #ffffff 97%,    /* ここを .section-curved0 と同じ色にする */
    #000 98%,       /* 線の色（黒） */
    #000 100%
  );

}

.section-curved2 {
  position: relative;
  width: 100%;
  /*height: 300px;*/
  /*display: flex;*/
  justify-content: center;
  align-items: center;
  color: white;
  /* ★重要：中身が帽子に隠れないように余白を作る */
	padding-top: 50px; 
	  /* ドットを大きく（30%〜45%）設定 */
  background-image: 
    radial-gradient(rgba(255, 255, 255, 0.05) 30%, transparent 30%),
    radial-gradient(rgba(255, 255, 255, 0.05) 30%, transparent 30%);

  /* 間隔を狭く（全体のサイズを小さく） */
  background-size: 15px 15px;

  /* サイズの半分をずらして45度配置 */
	background-position: 0 0, 7.5px 7.5px;
	top:850px;
}
.section-curved2::before {
   content: "";
  position: absolute;
  bottom: 100%; /* 箱の真上に配置 */
  left: 0;
  width: 100%;
  height: 100px; /* 弧の高さ */
  /* ★重要：自分の箱と同じ色を自動で塗る */
  background-color: inherit; 
  /* 弧の形に切り抜く */
	clip-path: ellipse(60% 100% at 50% 100%);
	  /* ドットを大きく（30%〜45%）設定 */
  background-image: 
    radial-gradient(rgba(255, 255, 255, 0.05) 30%, transparent 30%),
    radial-gradient(rgba(255, 255, 255, 0.05) 30%, transparent 30%);

  /* 間隔を狭く（全体のサイズを小さく） */
  background-size: 15px 15px;

  /* サイズの半分をずらして45度配置 */
  background-position: 0 0, 7.5px 7.5px;

}
/* --- 個別の色の設定（ここが解決の鍵） --- */

/* 1番目のセクション：背景は青。帽子は不要（または背景と同化） */
.s0 { 
	background-color: white; 
}
.section-curved0 {
  position: relative;
  width: 100%;
  height: 300px;
  display: flex;
  justify-content: center;
  align-items: center;
  color: white;
  font-size: 2rem;
  /* ★重要：中身が帽子に隠れないように余白を作る */
	padding-top: 50px; 
}
.section-curved3 {
  position: relative;
  width: 100%;
  /*height: 300px;*/
  /*display: flex;*/
  justify-content: center;
  align-items: center;
  /* ★重要：中身が帽子に隠れないように余白を作る */
	padding-top: 50px; 
	  /* ドットを大きく（30%〜45%）設定 */
  background-image: 
    radial-gradient(rgba(255, 255, 255, 0.05) 30%, transparent 30%),
    radial-gradient(rgba(255, 255, 255, 0.05) 30%, transparent 30%);

  /* 間隔を狭く（全体のサイズを小さく） */
  background-size: 15px 15px;

  /* サイズの半分をずらして45度配置 */
	background-position: 0 0, 7.5px 7.5px;
	top:900px;
}

/* 帽子（弧）の共通設定 */
.section-curved3::before {
  content: "";
  position: absolute;
  bottom: 100%; /* 箱の真上に配置 */
  left: 0;
  width: 100%;
  height: 100px; /* 弧の高さ */
  /* ★重要：自分の箱と同じ色を自動で塗る */
  background-color: inherit; 
  /* 弧の形に切り抜く */
	clip-path: ellipse(60% 100% at 50% 100%);
	  /* ドットを大きく（30%〜45%）設定 */
  background-image: 
    radial-gradient(rgba(255, 255, 255, 0.05) 30%, transparent 30%),
    radial-gradient(rgba(255, 255, 255, 0.05) 30%, transparent 30%);

  /* 間隔を狭く（全体のサイズを小さく） */
  background-size: 15px 15px;

  /* サイズの半分をずらして45度配置 */
  background-position: 0 0, 7.5px 7.5px;
}


/* 1番目：青 */

.s1 { 
  background-color: #3498db; 
  z-index: 1;
}

/* 2番目：赤 */
.s2 { 
  /* ★隙間の色を「1番目の色（青）」にする */
  background-color: #e74c3c; 
  z-index: 2;
	margin-top: 0px;

}


/* 3番目：緑 */
.s3 { 
  /* ★隙間の色を「2番目の色（赤）」にする */
  background-color: #2ecc71; 
  z-index: 3;
  margin-top: 0px;
}
.s3::before {
  /* ★帽子の色を「自分の色（緑）」にする */
  background-color: white;
}

.s4 { 
  /* ★隙間の色を「2番目の色（赤）」にする */
  z-index: 3;
  margin-top: 0px;
}
.s4::before {
  background-color: white;
}

@media (max-width: 850px){

  .section-curved0::before {
		clip-path: ellipse(90% 100% at 50% 100%);
	 background: radial-gradient(
    ellipse 90% 100% at 50% 100%, 
    #ffffff 97%,    /* ここを .section-curved0 と同じ色にする */
    #000 98%,       /* 線の色（黒） */
    #000 100%
  );}
	.section-curved::before {clip-path: ellipse(90% 100% at 50% 100%);}
	.section-curved2::before {clip-path: ellipse(90% 100% at 50% 100%);}
	.section-curved3::before {clip-path: ellipse(90% 100% at 50% 100%);}
}
/* --- 新着情報 --- */
        /* --- セクション全体 --- */
        .news-section {
          display: flex;
          flex-direction: column; /* スマホでは縦並び */
          align-items: center;
          justify-content: center;
	/*min-height: 100vh;*/
	height:auto;
          padding: 0px 20px 100px 20px;
	color: #fff;
	top:180px;
        }

.svg_t{height:55px;}



        /* --- 左側：タイトルエリア --- */
        .news-header_t {
          text-align: center;
          margin-bottom: 30px;
        }
        .news-header .info-icon {
          width: 74px;
          height: 74px;
          display: flex;
          align-items: center;
          justify-content: center;
          margin: 0 auto;
		}
.news-header .info-icon svg{width:100%;height:100%;}
        .news-header h2 {
          font-size: 50px;
          letter-spacing: 0.1em;
          margin-bottom: 0;
        }
        .news-header .sub-title {
          font-size: 16px;
          display: block;
          margin-top: -5px;
        }
        
        /* --- 右側：カードエリア --- */
        .news-card {
          background: #fff;
          border-radius: 20px;
          padding: 25px;
          width: 100%;
          max-width: 600px;
          color: #333;
          box-shadow: 0 10px 25px rgba(0,0,0,0.1);
        }
        
        /* ニュースリスト */
        .news-list {
          list-style: none;
        }
        .news-list li {
          padding: 15px 0;
          border-bottom: 1px solid #e0e0e0; /* 区切り線 */
        }
        /* 1番目と2番目の間に赤い線を入れるデザインの再現 */
        .news-list li:nth-child(2) {
          border-top: 1px solid #d32f2f;
          border-bottom: 1px solid #d32f2f;
        }
        .news-list li:last-child {
          border-bottom: none;
        }
        
        .news-list time {
          font-size: 12px;
          color: #999;
          display: block;
          margin-bottom: 5px;
        }
        .news-list p {
          font-size: 15px;
          font-weight: bold;
          line-height: 1.5;
        }
        
        
        /* --- PC向けメディアクエリ (768px以上) --- */
        @media screen and (min-width: 768px) {
          .news-section {
            flex-direction: row; /* 横並びに変更 */
            gap: 60px;
          }
          .news-header {
            margin-bottom: 0;
            text-align: center;
          }
          .news-header h2 {
            font-size: 48px;
          }
          .news-card {
            padding: 40px;
          }
          .btn-more {
            width: 240px;
            margin: 30px auto 0;
          }
}
/* =====================
 フェード
===================== */
.fade {
  opacity: 1;
  transform: translateY(60px);
  transition: 1.2s;
}

.fade.show {
  opacity: 1;
  transform: translateY(0);
}

/* 全体設定 */
.event-section {
  padding: 80px 20px;
  background-color: #fff;
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
}

.event-wrapper {
  max-width: 1000px;
  margin: 0 auto;
}

.event-main-flex {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 60px;
	/*margin-top: 500px;*/
	position:relative;
	top:250px;
}

/* タイトルエリア */
.event-title-area {
  flex: 0 0 240px;
	text-align: center;
	z-index:2;
}

.main-icon img {
  width: 80px;
  height: auto;
}

.main-title {
  font-size: 3.2rem;
  margin: 10px 0 0;
  letter-spacing: -0.05em;
  color: #000;
}

.sub-title {
  font-size: 1.3rem;
  font-weight: bold;
  color: #000;
}

/* カードエリア */
.event-cards-area {
  flex: 1;
}

.info-card {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-width: 2px;
  border-style: solid;
  border-radius: 12px;
  margin-bottom: 20px;
  text-decoration: none;
  color: #333;
  overflow: hidden;
  height: 120px; /* PCでの高さを統一 */
}

/* 各色設定 */
.border-orange { border-color: #f39800; }
.border-green  { border-color: #71b33c; }
.border-red    { border-color: #eb6100; }

.icon-orange { color: #f39800; }
.icon-green  { color: #71b33c; }
.icon-red    { color: #eb6100; }

.card-content {
  display: flex;
  align-items: center;
  padding: 0 20px;
  flex: 1;
}

.card-icon {
  font-size: 2rem;
	margin-right: 20px;
	height:40px;
	width:40px;
}

.card-text h3 {
  margin: 0;
  font-size: 1.1rem;
  font-weight: 900;
}

.card-text p {
  margin: 2px 0 0;
  font-size: 0.85rem;
  font-weight: bold;
}

.card-image {
  width: 180px;
  height: 100%;
}

.card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/*カードのグレーアウト設定*/
/* カード3（gray-outクラス）のみに適用 */
/* 親要素の設定 */
.info-card.gray-out {
	border-color: #ccc !important; 
    position: relative;
    overflow: hidden;    /* 膜がはみ出さないように */
    pointer-events: none; /* クリック不可 */
}

/* 前面に黒い半透明の膜を張る */
.info-card.gray-out::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.4); /* ここで暗さを調整 */
    z-index: 5;
}

/* 「9月公開予定」の文字 */
.info-card.gray-out::after {
    content: "9月公開予定";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #fff;
    background-color: rgba(0, 0, 0, 0.7); /* 文字の背景を少し濃く */
    padding: 8px 16px;
    border-radius: 4px;
    font-weight: bold;
    font-size: 1.1rem;
    z-index: 10; /* 膜よりもさらに上 */
    white-space: nowrap;
}

/* アイコンやテキストの色を少しだけ落とす（お好みで） */
.info-card.gray-out .card-content,
.info-card.gray-out .card-image {
    opacity: 0.8; 
}


/* 詳細ボタン */
.event-footer {
  text-align: center;
}

.btn-more {
  display: inline-block;
  background-color: #e23422;
  color: #fff;
  padding: 15px 60px;
  border-radius: 10px;
  text-decoration: none;
  font-weight: 900;
  box-shadow: 0 4px 0 #b0301d;
  transition: transform 0.1s;
}

.btn-more:active {
  transform: translateY(2px);
  box-shadow: 0 2px 0 #b0301d;
}

/* レスポンシブ (スマホ向け) */
@media (max-width: 768px) {
  .event-main-flex {
    flex-direction: column;
    gap: 30px;
  }

  .event-title-area {
    flex: none;
  }

  .main-title {
    font-size: 2.5rem;
  }

  .card-image {
    width: 120px; /* スマホでは画像を少し小さく */
  }
}
/* ベース：赤背景と文字色 */
.recruit-pc-section {
  background-color: #e23422;
  color: #fff;
  padding: 0px 20px 100px 20px;
  font-family: "Helvetica Neue", Arial, "Hiragino Sans", Meiryo, sans-serif;
}

.recruit-inner {
  max-width: 1100px;
  margin: 0 auto;
}

/* タイトルと説明文の横並び */
.recruit-top-flex {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 40px;
  margin-bottom: 50px;
}

.recruit-title-box {
  flex: 0 0 300px;
  text-align: center;
}

.recruit-main-icon { font-size: 4rem;width:100px;margin: 0 auto; }
.recruit-main-title {
  font-size: 3.5rem;
  margin: 10px 0 0;
  line-height: 1;
}
.recruit-sub-title { font-size: 1.4rem; font-weight: bold; }

.recruit-text-box {
  flex: 1;
}

.recruit-catch {
  font-size: 2.2rem;
  font-weight: 900;
  margin: 0 0 20px;
}

.recruit-lead {
  font-size: 1.4rem;
  font-weight: bold;
  margin-bottom: 15px;
}

.recruit-details {
  font-size: 1.1rem;
  line-height: 1.7;
}

/* ギャラリー */
.recruit-gallery {
  display: flex;
  gap: 20px;
  margin-bottom: 60px;
}

.gallery-item {
  flex: 1;
}

.gallery-item img {
  width: 100%;
  height: 250px;
  object-fit: cover;
  border-radius: 10px;
}

/* カードグリッド (PCは4列) */
.recruit-grid-pc {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

/* カードのデザイン */
.r-card {
  position: relative;
  background: #fff;
  border-radius: 15px;
  padding: 40px 10px 20px;
  text-align: center;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  transition: transform 0.2s;
}

.r-card.is-active:hover { transform: translateY(-5px); }

.r-status {
  position: absolute;
  top: -12px;
  background: #e60012;
  color: #fff;
  font-weight: bold;
  padding: 4px 20px;
  border-radius: 20px;
  border: 2px solid #fff;
  font-size: 0.9rem;
}

.r-icon { font-size: 2.5rem; margin-bottom: 10px; color: #333; width:150px; }
.r-name { font-size: 1.2rem; font-weight: 900; color: #000; }

/* 募集終了のカード */
.r-card.is-disabled {
  background: #cccccc;
}
.r-card.is-disabled .r-icon,
.r-card.is-disabled .r-name {
  color: #888;
}

/* --- レスポンシブ (スマホ向け) --- */
@media (max-width: 850px) {
  .recruit-top-flex {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .recruit-title-box { flex: none; margin-bottom: 30px; }
  .recruit-main-title { font-size: 2.8rem; }
  
  .recruit-gallery {
    overflow-x: auto; /* スマホでは横スクロールできるように */
    padding-bottom: 10px;
  }
  .gallery-item { flex: 0 0 80%; }

  .recruit-grid-pc {
    grid-template-columns: 1fr 1fr; /* スマホは2列 */
    gap: 15px;
  }
  
  .r-name { font-size: 1rem; }
}


/*開催実績*/

.achieve-section { 
	padding: 60px 0; 
	text-align: center; 
/*overflow: hidden;*/ }
.fuji-icon { 
	color: #00449e;
	font-size: 2rem;
	text-align: center;
	width:150px;
    margin: 0 auto;}
.achieve-title { font-size: 3rem; margin: 0; }
.achieve-sub { font-size: 1.2rem; font-weight: bold; margin-bottom: 40px; }

/* PC向けの基本レイアウト（横に3つ並べる） */
.achieve-wrapper {
  display: flex;
  width: 100%;
  height: 450px;
}

.achieve-item {
  flex: 1;
  display: flex;
  position: relative;
	overflow: hidden; /* はみ出した図形を隠す */
		background-image: url("https://cdn.daidogei.com/file/sl12.webp");
	  background-repeat: no-repeat;
	background-position: center center;
	background-size:cover;
}
.achieve-item_c {
  flex: 1;
  display: flex;
  position: relative;
	overflow: hidden; /* はみ出した図形を隠す */
		background-image: url("https://cdn.daidogei.com/file/sl13.webp");
	  background-repeat: no-repeat;
	background-position: center center;
	background-size:cover;
}
.achieve-item_r {
  flex: 1;
  display: flex;
  position: relative;
	overflow: hidden; /* はみ出した図形を隠す */
		background-image: url("https://cdn.daidogei.com/file/sl15.webp");
	  background-repeat: no-repeat;
	background-position: center center;
	background-size:cover;
}

.photo-area { flex: 1; height: 100%; min-height:300px;}
.photo-area img { width: 100%; height: 100%; object-fit: cover; }

.stat-area {
  flex: 0.5;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

/*.bg-red { background-color: #e60012; }*/
/*.bg-blue { background-color: #00449e; }*/

/* --- 巨大な回転図形（写真へ突き出す） --- */
.giant-shape {
  position: absolute;
  width: 800px;
  height: 800px;
  background-color: unset;
  top: 50%;
  left: 330px; /* PCでの突き出し量 */
  z-index: 2;
	animation: rotate-center 25s linear infinite;
	opacity:0.8;
}

.shape-star { /* 内側を大きく（太く）した星 */
clip-path: polygon(
   50% 0%,    /* 上・中央 */
  95% 25%,   /* 右・上 */
  95% 75%,   /* 右・下 */
  50% 100%,  /* 下・中央 */
  5% 75%,    /* 左・下 */
  5% 25%     /* 左・上 */
);background-color:#00449e;
 }
.shape-circle { 
	border-radius: 50%; background: linear-gradient(45deg, inherit 80%, rgba(255,255,255,0.1) 100%); background-color:#00449e;}
.shape-square { 
width: 600px; height: 600px;background-color:#e23422; }

@keyframes rotate-center {
  from { transform: translate(-50%, -50%) rotate(0deg); }
  to { transform: translate(-50%, -50%) rotate(360deg); }
}

.stat-content { position: relative; z-index: 10; color: #fff; text-align: center; }
.stat-num { 
	font-family: "Dela Gothic One", sans-serif;
	line-height: 1; }
.unit { 
	font-size: 1.2rem;
	font-weight: bold;
	padding: 2px 5px; margin-left: 5px; }

/* --- スマホ向けのレスポンシブ対応 (768px以下) --- */
@media (max-width: 768px) {
  .achieve-wrapper {
    flex-direction: column; /* 縦に並べる */
    height: auto;
  }

  .achieve-item {
    height: 180px; /* スマホでの1段の高さ */
    width: 100%;
  }

  .giant-shape {
    width: 500px;
    height: 500px;
    left: 200px; /* スマホ用に突き出し量を調整 */
  }

	.stat-num { font-size: 3.5rem;
font-family: 'MyFont', sans-serif;}
  .label { font-size: 0.9rem; }
}



/*くるくるボタン*/
.smooth-scallop {
  position: relative;
  width: 220px; /* ボタンのサイズ */
  height: 220px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

/* くるくる回る背景SVG */
.scallop-btn {
  position: relative;
  width: 200px;  /* デザインに合わせ調整 */
  height: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

/* くるくる回るSVG背景 */
.rotating-svg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none; /* テキストのクリックを邪魔しない */
  
  /* 回転アニメーション：15秒で1周 */
  animation: rotate-scallop 15s linear infinite;
}

/* 上に乗るテキスト（これは回らない） */
.btn-label {
  position: relative;
  z-index: 2;
  color: #fff;
  font-weight: 900;
  font-size: 1.2rem;
  letter-spacing: 0.1em;
  pointer-events: none;
}

/* 回転の設定 */
@keyframes rotate-scallop {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

/* ホバー時にふんわり大きくする */
.scallop-btn:hover {
  transform: scale(1.05);
  transition: transform 0.3s ease;
}

/* NEWSベース：スマホデザイン (390px〜) */
/* 基本設定 */
.news-list {
  padding: 0 25px;
  max-width: 1000px;
  margin: 0 auto;
  font-family: sans-serif;
}

.news-item {
  border-top: 1px solid #ff0000;
}
.news-item:last-child {
  /*border-bottom: 1px solid #ff0000;*/
}

/* ぬるっと動かすための設定 */
.news-item a {
  display: flex;
  flex-wrap: wrap; /* スマホで折り返すために必須 */
  text-decoration: none;
  color: #333;
  /* transitionで全ての変化を0.4秒かけて動かす */
  transition: all 0.4s ease-in-out; 
}

.news-date {
  /* スマホ時は横幅100%で1行専有 */
  width: 100%;
  font-size: 14px;
  color: #666;
  margin-bottom: 8px;
  transition: all 0.4s ease-in-out;
}

.news-text {
  width: 100%;
  margin: 0;
  font-size: 16px;
  font-weight: bold;
  line-height: 1.4;
  transition: all 0.4s ease-in-out;
}
.screen-reader-text{display:none;}
/* --- ブレイクポイント (768px以上) --- */
@media screen and (min-width: 768px) {
  .news-item a {
    padding: 25px 10px;
    align-items: baseline;
    flex-wrap: nowrap; /* PCでは折り返さない */
  }

  .news-date {
    width: 130px; /* 横に並ぶ幅にぬるっと縮む */
    margin-bottom: 0;
    font-size: 16px;
  }

  .news-text {
    width: auto;
    flex: 1;
    font-size: 18px;
  }
}

.nav-links {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px; /* ボタン間の余白 */
    font-family: sans-serif;
}
.nav-links .page-numbers {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 40px;
    height: 40px;
    border-radius: 50%; /* 丸型 */
    text-decoration: none;
    font-weight: bold;
    color: #0066b2; /* 数字の青色 */
    transition: all 0.3s ease;
}

/* 現在のページ */
.nav-links .page-numbers.current {
    background-color: #0066b2; /* 青背景 */
    color: #fff; /* 白文字 */
}

/* 矢印ボタン（枠線あり） */
.nav-links .prev, 
.nav-links .next {
    border: 1px solid #0066b2;
}

/* 三点リーダー（...） */
.nav-links .dots {
    border: none;
    color: #0066b2;
}

/* ホバー時の演出 */
.nav-links a.page-numbers:hover {
    background-color: #eef6ff;
}


/*-------------新着詳細----------------*/


/* ヘッダーエリア */
.news-header {
    background-color: #e53924; /* PC版の赤い背景色 */
	  background-repeat: no-repeat;
  background-position: center center;
    color: #fff;
    padding: 130px 0 80px 0;
    position: relative;
	overflow: hidden;
	margin-bottom:50px;
}

.header-inner {
    max-width: 800px;
    margin: 0 auto;
    position: relative;
    text-align: center;
}

.header-title {
    /*font-size: 24px;*/
    letter-spacing: 0.2em;
	margin: 0;
	font-family: 'MyFont', sans-serif;
}

.header-character {
    position: absolute;
    right: 20px;
    top: 30px;
    width: 150px; /* キャラクターのサイズ */
}
.header-character_l {
    position: absolute;
    left: 20px;
    top: 20px;
    width: 150px; /* キャラクターのサイズ */
}


/* メインコンテンツ */
.news-content {
    padding: 40px 0;
}

.content-inner {
    max-width: 700px;
    margin: 0 auto;
    padding: 0 20px;
}

.date {
    font-size: 14px;
    color: #666;
    display: block;
    margin-bottom: 10px;
}

.news-title {
    font-size: 20px;
    line-height: 1.6;
    font-weight: bold;
    margin-bottom: 30px;
}

.news-image {
    margin-bottom: 30px;
}

.news-body {
    font-size: 16px;
    line-height: 1.8;
    margin-bottom: 50px;
}

/* ナビゲーション */
.news-nav {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
}

.btn-back {
    color: #e53924;
    text-decoration: none;
    padding: 10px 60px;
    border-radius: 4px;
	border: solid 2px #e53924;
    font-weight: bold;
    transition: opacity 0.3s;
}

.nav-arrow {
    width: 40px;
    height: 40px;
    border: 1px solid #ccc;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    color: #666;
    transition: background 0.3s;
}

/* ホバー演出 */
.btn-back:hover, .nav-arrow:hover {
	color: #fff;
    background-color: #e53924;
}

/* 📱 スマホ対応 (768px以下) */
@media screen and (max-width: 768px) {
    /*.header-title {font-size: 20px;*/
    }
    
    .header-character {
        width: 120px;
		right: 10px;
		top:55px;
    }

    .news-title {
        font-size: 18px;
    }

    .news-image {
        margin: 0 -20px 20px -20px; /* 写真を画面端まで広げる */
    }

    .btn-back {
        flex: 1; /* ボタンを横いっぱいに広げやすくする */
        text-align: center;
        padding: 12px 0;
	}
	h1 .svg_t {
    height: 30px;
}
}
/* 本文内の画像が枠からはみ出さないように制御 */
.news-body img {
    max-width: 100% !important; /* 親要素の幅を超えない */
    height: auto !important;    /* 比率を保って縮小 */
}

/* ブロックエディタ特有の枠線をリセットし、中央寄せにする */
.news-body .wp-block-image {
    margin-left: 0;
    margin-right: 0;
    text-align: center; /* 画像を中央に配置したい場合 */
}

/* スマホ時、画像を画面端まで広げたい場合（お好みで） */
@media screen and (max-width: 768px) {
    .news-body .wp-block-image.alignfull,
    .news-body .wp-block-image.alignwide {
        margin-left: -20px;
        margin-right: -20px;
    }
}




/*スクロールぬるっとひょうじ*/
/* fade in デイレイ*/
.fade-in-delay {
  opacity: 0;
  transform: translateY(20px);
  /* transition-delay に JSから渡される変数 --d を適用 */
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
  transition-delay: calc(var(--d) * 0.15s); /* 0.15秒ずつずらす */
}

/* 画面に入った時に付与されるクラス */
.fade-in-delay.is-visible {
  opacity: 1;
  transform: translateY(0);
}


/*スクロールした時にぬると*/
.scroll-fade {
  opacity: 0;
  transform: translateY(40px); /* 少し深めから浮かび上がらせる */
  
  /* ぬるっと動くための魔法のイージング */
  transition: 
    opacity 1.0s cubic-bezier(0.22, 1, 0.36, 1), 
    transform 1.0s cubic-bezier(0.22, 1, 0.36, 1);
    
  /* JSから渡される遅延（ディレイ） */
  transition-delay: calc(var(--delay) * 0.15s);
  will-change: opacity, transform;
}

/* スクロールして画面に入った時　class="scroll-fade" */
.scroll-fade.is-active {
  opacity: 1;
  transform: translateY(0);
}
.daidogei-footer {
  background-color: #0066cc;
  background-image: radial-gradient(#005bb8 20%, transparent 20%), 
                    radial-gradient(#005bb8 20%, transparent 20%);
  background-size: 8px 8px;
  background-position: 0 0, 4px 4px;
  color: #fff;
  padding: 60px 20px;
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", sans-serif;
  text-align: center;
}

.footer-container {
  max-width: 800px; /* PC時の幅 */
  margin: 0 auto;
}

/* メニューのレイアウト（スマホ：1列 / PC：4段2列） */
.footer-nav {
  list-style: none;
  padding: 0;
  margin: 0 0 50px 0;
  display: grid;
  grid-template-columns: 1fr; /* 初期状態は1列 */
  gap: 20px 40px;
  text-align: left;
}

/* PC表示（768px以上）のとき：4段2列 */
@media screen and (min-width: 768px) {
  .footer-nav {
    grid-template-columns: repeat(2, 1fr); /* 2列にする */
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
  }
}

.footer-nav a {
  color: #fff;
  text-decoration: none;
  font-size: 18px;
  font-weight: bold;
  display: inline-flex;
  align-items: center;
  letter-spacing: 0.05em;
}

/* 左側の赤い矢印 */
.footer-nav a::before {
  content: "";
  display: inline-block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 6px 0 6px 8px;
  border-color: transparent transparent transparent #e60012;
  margin-right: 12px;
  flex-shrink: 0;
}

/* SNSアイコン */
.footer-sns {
  display: flex;
  justify-content: center;
  gap: 30px;
  margin-bottom: 40px;
}

.footer-sns a {
  color: #fff;
  font-size: 32px;
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: center;
}

.footer-sns .svg{width:40px;}
/* コピーライト */
.copyright {
  font-size: 12px;
  margin: 0;
	opacity: 0.9;
	text-align:center;
	margin-bottom:30px;
}

/* ========== BOTTOM NAV ========== */
.bottom-nav {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  height: var(--bottom-nav-h);
  background: var(--white);
  z-index: 1000;
  display: flex;
  align-items: stretch;
  box-shadow: 0 -3px 16px rgba(0,0,0,0.3);
  transform: translateY(100%);
  transition: transform 0.45s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.bottom-nav.visible { transform: translateY(0); }

.bottom-nav-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  color: black;
  text-decoration: none;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  border-right: 1px solid rgba(255,255,255,0.15);
  transition: background 0.15s;
  padding: 6px 4px;
}

.bottom-nav-item:last-child { border-right: none; }
.bottom-nav-item:hover, .bottom-nav-item.active {
  background: rgba(255,255,255,0.15);
  color: var(--black);
}

.bottom-nav-icon { font-size: 20px; line-height: 1; }

/* PC調整 */
@media (min-width: 768px) {

	.footer_b{margin-bottom:0;}
}


/* ボランティア */
.main-title {
  background-color: #e60012;
  color: white;
  text-align: center;
  padding: 10px;
	font-size: 1.5rem;
	  border-radius: 5px; 
}

.sub-title {
  font-weight: bold;
  margin: 20px 0;
}

/* PC：2カラムレイアウト */
.accordion-container {
  display: grid;
  grid-template-columns: 1fr 1fr;
	gap: 15px;
	align-items: start; 
	margin-bottom:120px
}

/* スマホ：1カラムレイアウト */
@media (max-width: 768px) {
  .accordion-container {
    grid-template-columns: 1fr;
  }
}

/* アコーディオンの構造 */
.accordion-item {
  border: 1px solid #ddd;
  background: #f9f9f9;
  border-radius: 8px; /* ← ここを追加（数値はお好みで） */
  overflow: hidden;    /* ← 角を丸めた際に中身がはみ出さないように追加 */
  margin-bottom: 10px; /* 項目同士がくっつかないように余白を追加 */
}

.accordion-check {
  display: none; /* チェックボックスは隠す */
}

/* 見出し部分 */
.accordion-label {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 15px;
  cursor: pointer;
  color: #e60012;
  font-weight: bold;
  position: relative;
}

/* プラスアイコン（擬似要素で作成） */
.icon-plus {
  width: 24px;
  height: 24px;
  background-color: #e60012;
  border-radius: 50%;
  position: relative;
}

.icon-plus::before,
.icon-plus::after {
  content: "";
  position: absolute;
  background-color: white;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.icon-plus::before { width: 12px; height: 2px; } /* 横棒 */
.icon-plus::after { width: 2px; height: 12px; transition: 0.3s; } /* 縦棒 */

/* 開閉アニメーションの設定 */
.accordion-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s ease-out, opacity 0.3s;
  opacity: 0;
  background: white;
}

.accordion-content p {
  padding: 15px;
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.6;
}

/* チェックが入った時（クリック時）の動き */
.accordion-check:checked ~ .accordion-content {
  max-height: 1000px; /* 内容に合わせて調整 */
	opacity: 1;
	transition: max-height 0.8s ease-in-out, opacity 0.5s;
}

/* クリック時にプラスをマイナスに変える */
.accordion-check:checked ~ .accordion-label .icon-plus::after {
  transform: translate(-50%, -50%) rotate(90deg);
  opacity: 0;
}

/* ドメインの前に「@」を表示 */
.domain::before {
  content: "@";
  color: black; /* 色を変えることも可能 */
  margin: 0 2px; /* 前後の余白調整 */
	}
	
	/*ボランティア　流れ用*/
/* --- スケジュール用スタイル --- */
.schedule-wrapper {
    margin: 40px 0;
    font-family: sans-serif;
    color: #333;
}

.sch-group {
    display: flex;
    margin-bottom: 30px;
    border: 1px solid #ddd;
    border-radius: 8px;
    overflow: hidden;
}

/* 左側の縦ラベル */
.sch-label {
    width: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-weight: bold;
    padding: 20px 10px;
    text-align: center;
    writing-mode: vertical-rl; /* 縦書き */
    letter-spacing: 0.1em;
}
.group-blue .sch-label { background-color: #0070c0; }
.group-red .sch-label { background-color: #e60012; }
.group-gray .sch-label { background-color: #7092be; }

/* 右側のコンテンツ領域 */
.sch-content {
    flex: 1;
    padding: 20px;
    background: #fff;
}

/* 各項目 */
.sch-item {
    display: flex;
    margin-bottom: 15px;
    gap: 15px;
}

.sch-time {
    background: #7092be;
    color: #fff;
    padding: 4px 12px;
    border-radius: 4px;
    font-size: 0.85rem;
    font-weight: bold;
    height: fit-content;
    white-space: nowrap;
}
.sch-time.red { background-color: #ff7c80; }

.sch-title {
    font-weight: bold;
    margin-bottom: 5px;
    border-bottom: 2px solid #7092be;
    display: inline-block;
}
.sch-title.red { border-bottom-color: #e60012; color: #e60012; }

/* 小セクション */
.sch-sub-section {
    margin-top: 20px;
    padding-top: 15px;
    border-top: 1px dashed #ccc;
}

.sch-sub-title {
    font-weight: bold;
    margin-bottom: 10px;
}
.sch-sub-title.blue { color: #0070c0; }
.sch-sub-title.red { color: #e60012; }

.sch-content ul {
    margin: 0;
    padding-left: 1.2em;
    font-size: 0.95rem;
}

.repeat-text {
    color: #e60012;
    font-weight: bold;
    margin-top: 10px;
    text-align: center;
}

/* 食事エリア */
.meal-container {
    border: 1px solid #4bacc6;
    border-radius: 8px;
    overflow: hidden;
}

.meal-header {
    background: #4bacc6;
    color: #fff;
    text-align: center;
    padding: 8px;
    font-weight: bold;
}

.meal-body {
    display: flex;
    gap: 20px;
    padding: 15px;
}

.meal-box {
    flex: 1;
    border-left: 4px solid #4bacc6;
    padding-left: 10px;
}

/* --- スマホ用調整 --- */
@media (max-width: 600px) {
    .sch-group { flex-direction: column; }
    .sch-label {
        width: 100%;
        writing-mode: horizontal-tb; /* 横書きに戻す */
        padding: 10px;
    }
    .sch-item { flex-direction: column; gap: 5px; }
    .meal-body { flex-direction: column; }
}
