/* ajax-search.css */
.search-progress { position: relative; width: 100%; height: 8px; background:#eee; border-radius:4px; overflow:hidden; margin:12px 0;}
.search-progress.hidden { display:none; }
.progress-bar { height:100%; width:0%; background: linear-gradient(90deg,#5ca9fb,#6372ff); transition: width .25s ease; }
.loading-text { text-align:center; font-size:14px; color:#444; margin-top:8px; }
.fade-in { animation: fadeIn .5s ease both; }
@keyframes fadeIn { from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:none;} }


/* ajax-search.css に追加 */
.search-overlay {
  position: fixed;
  top:0; left:0;
  width:100%; height:100%;
  background: rgba(0,0,0,0.8);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 9999;
  flex-direction: column;
}

.search-overlay.hidden {
  display: none;
}

.overlay-inner {
  text-align: center;
  color: #fff;
	padding-bottom: 32px;
}

.search-progress {
  position: relative;
  width: clamp(200px,70vw,500px);
  height: clamp(8px,1vw,16px);
  background:#2b2b2b;
  border-radius:100vmax;
  overflow:hidden;
  margin:12px auto;
}

.progress-bar {
  height:100%;
  width:0%;
  background: linear-gradient(90deg,#ffffff,#ffffff);
  transition: width .25s ease;
}

.loading-text {
  font-size:clamp(16px, 2vw, 24px);
	font-weight: 500;
  margin-bottom:32px;
	color: #fff;
}



/* ===== 検索中オーバーレイ ===== */
#search-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(0,0,0,0.7);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  transition: opacity 0.3s ease;
}

#search-overlay.hidden {
  opacity: 0;
  pointer-events: none;
}

/* ===== スピナー ===== */
.spinner {
  width: 64px;
  height: 64px;
  border: 6px solid rgba(255,255,255,0.2);
  border-top-color: #fff;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
