@charset "UTF-8";
/*TOPページのカスタムスタイル*/
/*1カラムレイアウト用*/
/*メインにマップ画像*/
/*レスポンシブ*/

/* =========================
   サブメニュー（リスト）の表示設定
========================= */
.sub-menu {
  font-size: 0.9rem;
  line-height: 1.0rem;
}
.sub-menu li{
  padding-top: -1px;
  padding-bottom: -1px;
}
/* サブメニューのタイトル文字の改行調整 */
.sub-menu span {
    display: inline-block;
    } 
/* カード内のタイトル文字の改行調整 */
.card span {
    display: inline-block;
    } 
/* =========================
   メイン（マップ画像とフラグ画像）の重ね合わせ
   レスポンシブ対応関連
========================= */

.imglayered01 {
  position: relative;
  display: inline-block;
  z-index: 3; /* Make sure it's above the map and numbers */
  max-width: 100%;
}

.imglayered01 > img {
  max-width: 100%;
  height: auto;
  display: block;
}

.imglayer01 {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
  max-width: 100%;
  height: auto;
}

/* ブレイクポイントに応じたフラグサイズ調整 */
@media (min-width: 992px) {
  .imglayer01 {
    max-width: 155px; /* PC用のサイズ */
  }
}

@media (max-width: 991.98px) and (min-width: 810px) {
  .imglayer01 {
    max-width: 120px; /* タブレット用のサイズ */
  }
}

@media (max-width: 991.98px) {
  .sub-menu span {
    display: block;
    white-space: normal;
  }
  .sub-menu span + span {
    text-indent: 2em; /* 全角2文字分のインデント */
  }
}

@media (max-width: 810px) and (min-width: 576px) {
  .imglayer01 {
    max-width: 85px; /* スマホ（大）用のサイズ */
  }
}

@media (max-width: 575.98px) {
  .imglayer01 {
    max-width: 50px; /* スマホ（小）用のサイズ */
  }
}

/* =========================
   地図
========================= */
.map-wrapper {
  position: relative;
  width: 100%;
  padding-bottom: 58.57%; /* 800/1366 = 0.5857 */
  height: 0;
  overflow: hidden;
}

.map-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}
.map-numbers {
  z-index: 2;
}
.map-image {
  z-index: 1;
  position: relative;
}
.map-image {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
}

.map-numbers {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  height: 100%;
  max-width: 1366px;
  max-height: 800px;
  pointer-events: auto;
}

/* =========================
   SVG内のスタイル
========================= */
.cls-1 {
  fill: #fd0000;
}

.cls-2, .cls-5 {
  fill: none;
  stroke: #fd0000;
  stroke-width: 1.33px;
}

.cls-3 {
  fill: red;
}

.cls-4 {
  fill: #fff;
}

/* =========================
   ホバー時のスタイル
========================= */
a:hover .cls-3 {
  fill: #fc0;
}

a:hover .cls-4 {
  fill: #ff0;
}

a {
  cursor: pointer;
  text-decoration: none;
}
/*====================
吹き出し
====================*/
#map-tooltip {
  position: fixed;
  background: rgba(112, 34, 117, 0.85);
  color: #fff;
  padding: 6px 10px;
  border-radius: 6px;
  font-size: 14px;
  pointer-events: none;
  opacity: 0;
  transition: opacity .15s;
  z-index: 9999;
  white-space: nowrap;
}
/* ▼ 三角（しっぽ） */
#map-tooltip::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -6px;
  transform: translateX(-50%);

  border-width: 6px 6px 0 6px;
  border-style: solid;
  border-color: rgba(112, 34, 117, 0.85) transparent transparent transparent;
}
/* 下に表示する状態 */
#map-tooltip.bottom {
  transform: none;
}

/* 三角を上向きにする */
#map-tooltip.bottom::after {
  top: -6px;
  bottom: auto;

  border-width: 0 6px 6px 6px;
  border-color: transparent transparent rgba(112, 34, 117,0.85) transparent;
}
#map-tooltip .hint {
  display: block;
  margin-top: 4px;
  font-size: 10px;
  color: #ccc;
  text-align: center;
}
