
/* ─── キービジュアル スライド ────────────── */
.kv-bg-wrap {
  position: absolute; inset: 0; z-index: 0;
}
.kv-slide {
  position: absolute; inset: 0;
  opacity: 0; transition: opacity 1.2s ease;
}
.kv-slide.active { opacity: 1; }
.kv-image {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
}
.kv-default {
  background: linear-gradient(160deg, #060f22 0%, #0A1F44 45%, #071428 100%);
}
.kv-video {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover;
}
.kv-youtube {
  position: absolute; inset: 0;
}
.kv-youtube iframe {
  width: 100%; height: 100%;
  pointer-events: none;
}
.kv-message {
  position: absolute; bottom: 15%; left: 8%;
  max-width: 600px; z-index: 5;
  font-size: clamp(16px, 2vw, 22px); line-height: 1.8;
  color: var(--white); font-weight: 700;
  text-shadow: 0 2px 20px rgba(0,0,0,0.6);
  animation: fadeUp 1s 0.3s forwards; opacity: 0;
}
.kv-controls {
  position: absolute; bottom: 24px; left: 50%;
  transform: translateX(-50%);
  display: flex; gap: 8px; z-index: 10;
}
.kv-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: rgba(255,255,255,0.4); border: none; cursor: pointer;
  transition: all 0.3s;
}
.kv-dot.active {
  background: var(--cyan); transform: scale(1.3);
}

/* ── オーバーレイ（動画上を暗く） ── */
.kv-bg-wrap::after {
  content: ''; position: absolute; inset: 0;
  background: rgba(6,15,34,0.55); z-index: 1; pointer-events: none;
}

/* hero-contentはkv-bg-wrapより前面に */
.hero-content { z-index: 3 !important; }
.hero-scroll   { z-index: 3 !important; }
.hero-diagonal { z-index: 3 !important; }

/* ─── インタビュー モーダル ──────────────── */
.iv-modal {
  position: fixed; inset: 0; z-index: 9999;
  display: none; align-items: center; justify-content: center;
  padding: 20px;
}
.iv-modal-overlay {
  position: absolute; inset: 0;
  background: rgba(6,15,34,0.85); backdrop-filter: blur(4px);
}
.iv-modal-inner {
  position: relative; z-index: 1;
  background: var(--white); border-radius: 16px;
  padding: 48px; max-width: 680px; width: 100%;
  max-height: 80vh; overflow-y: auto;
  box-shadow: 0 30px 80px rgba(0,0,0,0.5);
}
.iv-modal-close {
  position: absolute; top: 16px; right: 16px;
  width: 36px; height: 36px; border-radius: 50%;
  background: #f0f4f8; border: none; cursor: pointer;
  font-size: 16px; display: flex; align-items: center; justify-content: center;
  transition: background 0.2s;
}
.iv-modal-close:hover { background: #dde4ef; }
.iv-modal-btn {
  margin-top: 14px; background: none; border: none;
  color: var(--cyan); font-size: 14px; font-weight: 700;
  cursor: pointer; padding: 0; letter-spacing: 0.05em;
  transition: opacity 0.2s;
}
.iv-modal-btn:hover { opacity: 0.7; }
