 body {
  font-family: sans-serif;
  scroll-behavior: smooth;
  background-image: url('imgs/adagaku-fes-logo.png');
  background-attachment: fixed;
  background-size: 100% auto;        /* 横幅100%、高さは比率自動 */
  background-position: center center; /* 上下左右とも中央配置 */
  background-repeat: no-repeat;
}


 .bg-orange {
   background-color: #ff8000 !important;
 }

 .text-orange {
   color: #ff8000;
 }

 #splash {
   position: fixed;
   width: 100%;
   height: 100%;
   background-color: #f9eee3;
   display: flex;
   align-items: center;
   justify-content: center;
   color: white;
   font-size: 2.5rem;
   z-index: 9999;
   transition: opacity 1s ease;
 }

 header.hero-section {
   height: 100vh;
   /* background: url('https://placehold.jp/1200x800.png') no-repeat center center/cover; */
   background-color: #f9eee3;
   background-attachment: fixed;
   position: relative;
   display: flex;
   align-items: center;
   justify-content: center;
   text-align: center;
   color: white;
 }

 .hero-section .overlay {
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   background: rgba(0, 0, 0, 0.5);
 }

 .hero-text {
   position: relative;
   z-index: 2;
 }

 .section {
   padding: 10px 0;
   border: 2px solid #ff6600;
   border-radius: 1rem;
   width: 95%;
   margin: 1rem auto 0 auto;
   background-color: white;
 }

 .card {
   cursor: pointer;
 }


 .btn-outline-orange {
   color: #ff6600;
   border: 2px solid #ff6600;
   transition: all 0.3s ease;
   font-weight: bold;
 }

 .btn-outline-orange:hover {
   background-color: #ff6600;
   color: #fff;
 }

 h2 {
   position: relative;
   margin: 30px 0 30px;
   /* 上下の余白 */
   font-size: 2rem;
   text-align: center;
 }

 h2::after {
   content: "";
   position: absolute;
   bottom: -10px;
   /* h2の下に */
   left: 50%;
   transform: translateX(-50%);
   width: 80px;
   height: 4px;
   background: linear-gradient(to right, orange, darkorange, orange);
   border-radius: 2px;
 }

 h4 {
   position: relative;
   margin: 30px 0 30px;
   /* 上下の余白 */
   font-size: 2rem;
   text-align: center;
 }

 h4::after {
   content: "";
   position: absolute;
   bottom: -10px;
   /* h2の下に */
   left: 50%;
   transform: translateX(-50%);
   width: 80px;
   height: 4px;
   background: linear-gradient(to right, orange, darkorange, orange);
   border-radius: 2px;
 }


 /* 枠の色 */
 .border-orange {
   border: 3px solid #ff7f00;
   border-radius: 10px;
 }

 /* 中央揃え */
 .modal-content {
   text-align: center;
 }

 /* 元気な弾むアニメーション */
 @keyframes bounceIn {
   0% {
     opacity: 0;
     transform: scale(0.3);
   }

   50% {
     opacity: 1;
     transform: scale(1.1);
   }

   70% {
     transform: scale(0.95);
   }

   100% {
     transform: scale(1);
   }
 }

 .animate-bounce-in {
   animation: bounceIn 0.7s cubic-bezier(0.68, -0.55, 0.265, 1.55);
 }

 .sponsor-logo {
   max-height: 60px;
   width: auto;
   transition: transform 0.3s ease, filter 0.3s ease;
   filter: grayscale(40%);
 }

 .sponsor-logo:hover {
   transform: scale(1.05);
   filter: grayscale(0%);
 }

 #news {
   background-color: #fdfdfd;
 }

 #news ul li {
   border-left: 3px solid #ffa50020;
   padding-left: 1rem;
 }

.card-img-top-my {
  width: 45vw; /* モバイル向け初期値 */
  height: auto;
  max-width: 100%;
  transition: width 0.3s ease;
}

/* タブレットサイズ以上 */
@media (min-width: 576px) {
  .card-img-top-my {
    width: 30vw;
  }
}

/* デスクトップサイズ以上 */
@media (min-width: 992px) {
  .card-img-top-my {
    width: 10vw;
  }
}


.disabled-overlay {
  background-color: rgba(128, 128, 128, 0.5); /* 半透明のグレー */
  pointer-events: none;                       /* タッチ・クリック無効化 */
  opacity: 0.6;                                /* 視覚的に無効感を出す */
  filter: grayscale(100%);                    /* 色味を抑える（任意） */
}


.card-img-top-d {
    height: 200px; /* 好きな高さに調整 */
    width: 100%;
    object-fit: contain; /* 切り取らずに縮小 */
    background-color: #f8f8f8; /* 画像が小さい場合の余白色 */
    display: block;
    margin: 0 auto;
}

.sns-icons {
    display: flex;
    justify-content: center;
    gap: 20px; /* アイコン間の間隔 */
    margin-top: 15px;
}

.sns-link {
    font-size: 1.8rem;
    color: #555;
    transition: color 0.3s ease, transform 0.2s ease;
}

.sns-link:hover {
    color: #ff6600; /* オレンジに変更（好みに応じて） */
    transform: scale(1.1);
}

.mosaic{
	-ms-filter: blur(1px);
	filter: blur(1px);
}