body {
  overflow-x: hidden;
}

.map-link:hover span,
.map-link:hover p {
  color: #1a5fa8;
  transition: color 0.15s;
}

/* 会社概要ラベル：PCでは均等割付、SPでは自然幅 */
.lbl-justify {
  display: inline-block;
}
@media (min-width: 640px) {
  .lbl-justify {
    width: 7em;
    text-align: justify;
    text-align-last: justify;
    text-justify: inter-character;
  }
}
.hover-card:hover .external-icon {
    display: none;
}
body {
  font-family: "Yu Gothic", "游ゴシック", YuGothic, sans-serif;
}

/* ============================================
   MVヒーローセクション
   ============================================ */
.hero,
.hero-video-wrap {
  min-height: 100vh;
  min-height: 100svh; /* PCは画面いっぱい */
}

.hero video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* MV動画の青フィルター：下から上へフェードアウト */
.hero-video-filter {
  background-image: linear-gradient(
    to top,
    rgba(0, 60, 140, 0.55) 0%,
    rgba(0, 60, 140, 0.3) 40%,
    rgba(0, 60, 140, 0) 80%
  );
}

/* MVのキャッチコピー：SPはclamp、PCは56px */
.mv-catch {
  font-size: clamp(28px, 8.5vw, 38px);
}
@media (min-width: 768px) {
  .mv-catch {
    font-size: 56px;
  }
}

/* MV背景のSUEYOSHIゴーストワードマーク：薄い白 */
.sueyoshi-ghost {
  color: rgba(255, 255, 255, 0.1);
  -webkit-text-fill-color: rgba(255, 255, 255, 0.1);
  background: none;
  -webkit-background-clip: initial;
  background-clip: initial;
}

/* 画面幅が 767px 以下（SP）：PC動画を左右カットして60vhで表示 */
@media screen and (max-width: 767px) {
  .hero,
  .hero-video-wrap {
    min-height: 60vh;
    min-height: 60svh;
  }
  /* 動画は左右をカット（中央寄せの object-fit: cover） */
  .hero video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
  }
}