/* ===== ヒーローブロック（full-bleed・全テーマ対応） ===== */
.bk-hero {
  position: relative;
  /* 親コンテナ（カラム）幅にフィット。サイドバー固定の旧テーマでも重ならない。
     全幅にしたい新テーマでは、ヒーローを全幅領域に置けば自動で全幅になる。 */
  width: 100%;
  border-radius: 14px;
  overflow: hidden;
  display: flex;
  align-items: center;
}
.bk-hero-h-small  { min-height: 320px; }
.bk-hero-h-medium { min-height: 460px; }
.bk-hero-h-large  { min-height: 620px; }
.bk-hero-h-full   { min-height: 92vh; }

.bk-hero-media { position: absolute; inset: 0; z-index: 0; }
.bk-hero-img {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  /* 微速ズーム（動いて見える） */
  animation: bkHeroZoom 20s ease-in-out infinite alternate;
}
.bk-hero-fallback { background: linear-gradient(135deg, #0aa2e0, #053b56); animation: none; }
.bk-hero-video {
  position: absolute; inset: 0;
  width: 100%; height: 100%; object-fit: cover;
}
@keyframes bkHeroZoom {
  from { transform: scale(1); }
  to   { transform: scale(1.08); }
}
@media (prefers-reduced-motion: reduce) {
  .bk-hero-img { animation: none; }
}

.bk-hero-overlay { position: absolute; inset: 0; z-index: 1; }

.bk-hero-inner {
  position: relative; z-index: 2;
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
  padding: 40px 24px;
  color: #fff;
}
.bk-hero-a-left   .bk-hero-inner { text-align: left; }
.bk-hero-a-center .bk-hero-inner { text-align: center; }

.bk-hero-title {
  font-size: clamp(26px, 5vw, 48px);
  font-weight: 900;
  line-height: 1.25;
  letter-spacing: .01em;
  text-shadow: 0 2px 18px rgba(0, 0, 0, .45);
  margin: 0;
}
.bk-hero-subtitle {
  margin-top: 14px;
  font-size: clamp(14px, 2.2vw, 19px);
  font-weight: 600;
  line-height: 1.7;
  text-shadow: 0 1px 12px rgba(0, 0, 0, .5);
  opacity: .96;
}
.bk-hero-cta {
  display: inline-block;
  margin-top: 26px;
  background: #0aa2e0;
  color: #fff;
  text-decoration: none;
  font-weight: 800;
  font-size: clamp(15px, 2vw, 18px);
  padding: 14px 30px;
  border-radius: 999px;
  box-shadow: 0 8px 22px rgba(10, 162, 224, .45);
  transition: transform .15s ease, background .15s ease;
}
.bk-hero-cta:hover { background: #0890c8; transform: translateY(-2px); color: #fff; }

@media (max-width: 600px) {
  .bk-hero-a-left .bk-hero-inner { text-align: center; }
  .bk-hero-h-large { min-height: 480px; }
  .bk-hero-h-full  { min-height: 78vh; }
}
