/* ==========================================================================
   【ホームビジュアル専用】自動スライドショー ＆ すりガラスタイトル
   ========================================================================== */
.main-visual {
  position: relative; height: 65vh; width: 100%;
  display: flex; align-items: center; justify-content: center; text-align: center; overflow: hidden;
}
.slider-wrapper { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 1; }
.slide-img {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background-size: cover; background-position: center; background-repeat: no-repeat;
  opacity: 0; animation: slideAnime 24s linear infinite, zoomAnime 24s linear infinite;
}
.slide-img:nth-child(1) { animation-delay: 0s; }
.slide-img:nth-child(2) { animation-delay: 8s; }
.slide-img:nth-child(3) { animation-delay: 16s; }

@keyframes slideAnime {
  0% { opacity: 0; } 6% { opacity: 1; } 33% { opacity: 1; } 39% { opacity: 0; } 100% { opacity: 0; }
}
@keyframes zoomAnime {
  0% { transform: scale(1); } 39% { transform: scale(1.06); } 100% { transform: scale(1); }
}
.visual-text {
  position: relative; z-index: 2; background: rgba(255, 255, 255, 0.45);
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  padding: 12px 30px; width: 85%; max-width: 650px;
  border: 1px solid rgba(255, 255, 255, 0.3); box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03); box-sizing: border-box;
}
.visual-text .subtitle { color: var(--primary-color); font-size: 13px; letter-spacing: 0.15em; display: block; margin-bottom: 2px; }
.visual-text h2 { font-size: 21px; margin: 0; color: var(--text-color); text-shadow: 1px 1px 2px rgba(255, 255, 255, 0.8); }

/*  PC大画面レスポンシブ（横幅769px以上） */
@media screen and (min-width: 769px) {
  .main-visual { height: 75vh; }
  .visual-text { padding: 24px 50px; max-width: 750px; }
  .visual-text .subtitle { font-size: 15px; }
  .visual-text h2 { font-size: 32px; line-height: 1.5; }
}
