@charset "utf-8";

/* ===========================================
   Station Pages Specific CSS
   station/以下のファイル用追加スタイル
   =========================================== */

/* 長い駅名対応 - areaOverlayの調整 */
.fvMainCatch .areaOverlay.sp.long-station {
  font-size: 12px !important; /* より小さなフォントサイズ */
  max-width: 220px !important; /* さらに狭く制限 */
}

.fvMainCatch .areaOverlay.pc.long-station {
  font-size: 18px !important; /* より小さなフォントサイズ */
  max-width: 350px !important; /* さらに狭く制限 */
}

/* 極端に長い駅名用 */
.fvMainCatch .areaOverlay.sp.extra-long-station {
  font-size: 10px !important;
  max-width: 200px !important;
}

.fvMainCatch .areaOverlay.pc.extra-long-station {
  font-size: 16px !important;
  max-width: 320px !important;
}

/* Station特有のレスポンシブ調整 */
@media screen and (max-width: 480px) {
  .fvMainCatch .areaOverlay.sp {
    max-width: 200px !important;
    font-size: 13px !important;
  }

  .fvMainCatch .areaOverlay.sp.long-station {
    font-size: 11px !important;
    max-width: 180px !important;
  }
}

@media screen and (max-width: 320px) {
  .fvMainCatch .areaOverlay.sp {
    max-width: 160px !important;
    font-size: 12px !important;
  }

  .fvMainCatch .areaOverlay.sp.long-station {
    font-size: 10px !important;
    max-width: 140px !important;
  }
}

/* PC版の詳細調整 */
@media screen and (min-width: 1200px) {
  .fvMainCatch .areaOverlay.pc {
    max-width: 450px !important;
  }

  .fvMainCatch .areaOverlay.pc.long-station {
    max-width: 400px !important;
  }
}

/* Station固有のコンテンツ調整 */
.station-specific-content {
  /* Station用の特別なスタイリングがあればここに追加 */
  position: relative;
}

/* 駅名の文字数に応じた自動調整用クラス */
.station-name-short {
  /* 短い駅名（5文字以下） */
  font-size: inherit;
}

.station-name-medium {
  /* 中程度の駅名（6-10文字） */
  font-size: 0.9em;
}

.station-name-long {
  /* 長い駅名（11文字以上） */
  font-size: 0.8em;
}

/* 駅名表示の品質向上 */
.fvMainCatch .areaOverlay {
  /* 文字の読みやすさを向上 */
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Station専用: areaOverlayのデザイン調整 */
.fvMainCatch .areaOverlay.sp,
.fvMainCatch .areaOverlay.pc {
  background-color: #112f82 !important; /* 濃い青背景 */
  padding: 6px 12px !important; /* 内側余白を追加 */
  border-radius: 4px !important; /* 角丸 */
  transform: rotate(-3deg) !important; /* 左上がりに3度傾ける */
  transform-origin: left top !important; /* 開始位置を左上に変更 */
  color: #fff !important; /* 白文字を確実に */
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5) !important; /* テキストシャドウ強化 */
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3) !important; /* ボックスシャドウ追加 */
}

/* SP版の詳細調整 */
.fvMainCatch .areaOverlay.sp {
  font-size: 14px !important;
  padding: 4px 10px !important;
}

/* PC版の詳細調整 */
.fvMainCatch .areaOverlay.pc {
  font-size: 22px !important;
  padding: 8px 16px !important;
  left: 10px !important; /* 左端からの開始位置を調整（元は29px） */
}

/* 駅名に応じた改行制御 */
.fvMainCatch .areaOverlay.allow-break {
  white-space: normal !important;
  line-height: 1.2;
  max-height: 2.4em; /* 2行分の高さ */
  overflow: hidden;
}

/* Station用: ribonBadgeの長文対応 - 自動サイズ調整 */
.ribonTelTitle .ribonBadge {
  padding: 0 6px !important; /* パディングを縮小 */
  white-space: nowrap !important; /* 改行を防ぐ */
  flex-shrink: 1 !important; /* 縮小可能に */
  /* 文字数に応じてフォントサイズを自動調整 */
  font-size: clamp(
    10px,
    2.5vw,
    13px
  ) !important; /* レスポンシブなフォントサイズ */
  min-width: 0 !important; /* 縮小可能にする */
}

/* PC版のribonBadge調整 */
@media screen and (min-width: 768px) {
  .ribonTelTitle .ribonBadge {
    font-size: clamp(
      12px,
      1.5vw,
      15px
    ) !important; /* PC版のレスポンシブフォント */
    padding: 0 8px !important;
  }
}

/* ribonTelTitle全体の調整 - フレックスボックスで自動調整 */
.ribonTelTitle {
  white-space: nowrap !important; /* 1行で表示 */
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important; /* バッジと後続テキストの間隔 */
}

/* 後続テキスト部分も自動調整 */
.ribonTelTitle {
  font-size: clamp(12px, 3vw, 15px) !important; /* SP版の全体テキストサイズ */
}

@media screen and (min-width: 768px) {
  .ribonTelTitle {
    font-size: clamp(14px, 2vw, 18px) !important; /* PC版の全体テキストサイズ */
  }
}
