.map .show {
	display: block;
}

.map .showFlex {
	display: flex;
}

.map .hide {
	display: none;
}

/* 横向き表示用のスタイル */
@media screen and (orientation: landscape) {
  /* 検索ボックスの位置調整（横向き・右サイドバー考慮） */
  .map .searchBox {
    top: 10px;
    width: 60% !important; /* 3/5 */
    max-width: none !important;
    margin: 0 !important;
    left: auto !important;
    right: calc(10px + var(--landscape-nav-width)) !important;
  }
  :root { --landscape-nav-width: 80px; }
  /* 地図コンテナとコンテンツラップ調整 */
  .map .mapContentWrap {
    height: 100%;
    box-sizing: border-box;
  }
  
  .map .mapContent {
    width: calc(100% - var(--landscape-nav-width)) !important;
    height: 100% !important;
    box-sizing: border-box !important;
    margin-bottom: 0 !important; /* 余白をなくす */
    position: relative !important; /* 位置指定のための基準 */
  }
  .map .mapSettingContent {
    width: 100% !important;
    height: 100% !important; /* メニュー非表示時は全高 */
    box-sizing: border-box !important;
    margin-bottom: 0 !important; /* 余白をなくす */
    position: relative !important; /* 位置指定のための基準 */
  }
  
  /* 横向き表示時のマップ右側コントロール位置統一
     位置は維持しつつ、transform/transition は無効化しない（move_x/move_y を活かす） */
  .map .mapContentWrap .mapBtn,
  .map .mapContentWrap .scalingBtnWrap,
  .map .mapContentWrap #compass {
    position: fixed !important; /* 画面下基準に固定 */
  }
  
  /* 検索ボックスの位置調整 */
  .map .searchBox {
    top: 10px;
    width: 80%;
    max-width: 500px;
    margin: 0 auto;
    left: 0;
    right: 0;
  }
  /* 再検索/検索結果一覧ボタンのラッパーを右サイドバーに被らないよう調整 */
  .map .searchBtn {
    left: 10px !important;
    right: calc(10px + var(--landscape-nav-width)) !important;
  }
  /* 「検索結果一覧」ボタンの位置も右サイドバー分内側に */
  .map .searchBtn .searchResultListBackBtn,
  .map .genreBtn .searchResultListBackBtn {
    right: calc(10px + var(--landscape-nav-width)) !important;
  }
  
  /* 右側縦ナビ（横向き配置） */
  .map .mapContentWrap .mapNavWrap {
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    left: auto !important;
    bottom: 0 !important;
    width: var(--landscape-nav-width) !important;
    height: 100% !important;
    background-color: #ffffff !important;
    box-shadow: -2px 0 5px rgba(0, 0, 0, 0.1) !important;
    z-index: 16777279 !important;
  }
  .map .mapContentWrap .mapNavWrap .mapNav {
    position: relative !important;
    height: 100% !important;
  }
  .map .mapContentWrap .mapNavWrap .mapNav ul {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: 100% !important;
    height: auto !important;
    padding-top: 10px !important;
    gap: 6px !important;
  }
  .map .mapContentWrap .mapNavWrap .mapNav ul li { width: 100% !important; }
  .map .mapContentWrap .mapNavWrap .mapNav ul li .navBtn { width: 100% !important; padding: 12px 0 !important; text-align: center !important; }
  /* メニューボタンは下寄せ */
  .map .mapContentWrap .mapNavWrap .mapNav .navBtn.mapMenuBtn {
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    padding: 12px 0 !important;
    text-align: center !important;
    top: auto !important;           /* 縦画面の50%センタリング指定を打ち消す */
    transform: none !important;     /* 縦画面のtranslateY(-50%)を打ち消す */
  }
  
  /* 検索結果リストの調整 */
  .map .searchResultList {
    max-height: 70vh;
    bottom: 0 !important; /* 画面下から表示 */
    left: 10px !important;
    right: calc(10px + var(--landscape-nav-width)) !important; /* 右サイドバーに被らない */
  }
  
  /* マップウィジェットの位置調整（右サイドバーと被らない） */
  .map .mapWidget {
    right: calc(10px + var(--landscape-nav-width));
    bottom: 110px !important; /* メニューバーの高さ分下げる */
  }

  /* 横向き時のメニューバー移動は right のアニメーションで画面外へ */
  .map .mapContentWrap .mapNavWrap.move_y { right: 0 !important; transform: translateX(0) !important; opacity: 1 !important; transition: right 0.2s ease-in-out, transform 0.2s ease-in-out, opacity 0.2s ease-in-out !important; }
  .map .mapContentWrap .mapNavWrap.move_y_end { right: calc(-1 * var(--landscape-nav-width)) !important; transform: translateX(100%) !important; opacity: 0 !important; transition: right 0.2s ease-in-out, transform 0.2s ease-in-out, opacity 0.2s ease-in-out !important; }
  
  /* 拡大縮小ボタンの位置調整（右サイドバーと被らない） */
  .map .scalingBtnWrap {
    bottom: 30px !important; /* 画面下寄せ */
    right: calc(10px + var(--landscape-nav-width)) !important; /* 右端からの距離を固定 */
    padding: 0 !important; /* 余白をなくしてベースサイズ(40x82)に整合 */
    width: 40px !important; /* ベースと同一 */
    height: 82px !important; /* ベースと同一 */
  }
  
  /* 拡大縮小ボタンの各ボタン調整 */
  .map .scalingBtnWrap a {
    width: 100% !important; /* コンテナ幅(40px)に合わせる */
    height: 40px !important; /* ベースと同一 */
    margin: 0 !important; /* 余白無しで上下40px + 区切り線で82pxに合致 */
    display: block !important;
  }
  
  /* 現在地ボタンの位置調整（右サイドバーと被らない） */
  .map .mapBtn.presentLocationBtn {
    bottom: 132px !important; /* 拡縮の少し上 */
    right: calc(10px + var(--landscape-nav-width)) !important; /* 右端からの距離を固定 */
    width: 40px !important; /* ベースと同一 */
    height: 40px !important; /* ベースと同一 */
    margin: 0 !important;
  }
  
  /* コンパスの位置調整（右サイドバーと被らない） */
  .map #compass {
    bottom: 187px !important; /* 現在地ボタンの上に配置 */
    right: calc(10px + var(--landscape-nav-width)) !important; /* 右端からの距離を固定 */
    width: 30px !important; /* 縦画面と同じサイズ */
    height: 30px !important; /* 縦画面と同じサイズ */
    margin: 0 !important;
  }
  
  /* 地点詳細: 横向きは検索ボックス直下・検索モーダル/検索ボックスと同幅(60%) */
  .map .locationDetails {
    position: absolute !important;
    top: calc(60px + var(--sat)) !important;
    left: 10px !important;
    right: auto !important;
    width: 60% !important;
    max-height: 70vh !important;
    overflow-y: auto !important;
    z-index: 16777281 !important;
  }
}

.map .genreBtn {
	position: fixed;
	top: calc(10px + var(--sat));
	left: 10px;
	right: 10px;
	height: 40px;
	box-sizing: border-box;
	z-index: 16777278;
}

.map .genreBtn .reSearchBtn {
	position: absolute;
	bottom: -40px;
	left: 50%;
	justify-content: center;
	align-items: center;
	width: 80px;
	height: 32px;
	font-size: 12px;
	line-height: 32px;
	color: #000000;
	border: solid 1px #009E96;
	background-color: #ffffff;
	box-shadow: 1px 1px 2px #00000033;
	border-radius: 40px;
	transform: translate(-50%, 0);
	box-sizing: border-box;
}

.map .genreBtn .reSearchBtn:active {
	color: #ffffff;
	background-color: #009E96;
}

.map .genreBtn .reSearchBtn:after {
	content: "";
	display: inline-block;
	width: 12px;
	height: 10px;
	padding-left: 5px;
	background-repeat: no-repeat;
	background-size: 12px 10px;
	background-position: right center;
	background-image: url("../img/icn_reload.svg");
}

.map .genreBtn .reSearchBtn:active:after {
	background-image: url("../img/icn_reload_w.svg");
}

.map .genreBtn .searchResultListBackBtn {
	position: absolute;
	bottom: -40px;
	right: 0;
	height: 32px;
	padding: 0 10px;
	font-size: 12px;
	text-align: center;
	line-height: 32px;
	color: #000000;
	border: solid 1px #009E96;
	background-color: #ffffff;
	box-shadow: 1px 1px 2px #00000033;
	border-radius: 40px;
	box-sizing: border-box;
}

.map .genreBtn .searchResultListBackBtn:active {
	color: #ffffff;
	background-color: #009E96;
}


.terms .show {
	display: block;
}

.terms .hide {
	display: none;
}

#__nuxt {
	height: 100%
}

.map .mapContentWrap .mapContent {
	height: calc(100% - 60px);
	transition: height 0.3s ease-out;
}
.map.ios .mapContentWrap .mapContent {
	height: calc(100% - 60px - var(--iosb));
	transition: height 0.3s ease-out;
}

.map .mapContentWrap .mapSettingContent,
.map .mapContentWrap.menuNone .mapContent,
.map .mapContentWrap.menuNone .mapSettingContent {
	height: 100%;
}

.map .mapContentWrap .mapBtn.presentLocationBtn.menuNone {
	bottom: calc(177px - 60px);
}
.map.ios .mapContentWrap .mapBtn.presentLocationBtn.menuNone {
	bottom: calc(177px - 60px - var(--iosb));
}

.map .mapContentWrap .scalingBtnWrap.menuNone {
	bottom: calc(95px - 60px);
}
.map.ios .mapContentWrap .scalingBtnWrap.menuNone {
	bottom: calc(95px - 60px - var(--iosb));
}

.map .mapContentWrap .locationDetails.open .locationDetailsWrap .destinationInfoWrap {
	display: block;
}


.map .mapContentWrap .searchResultList .searchResultWrap>ul li.gourmet a:before {
	background-image: url("../img/icn_genre_dinner.svg");
}

.map .mapContentWrap .searchResultList .searchResultWrap>ul li.convenienceStore a:before {
	background-image: url("../img/icn_genre_store.svg");
}

.map .mapContentWrap .searchResultList .searchResultWrap>ul li.parking a:before {
	background-image: url("../img/icn_genre_parking.svg");
}

.map .mapContentWrap .searchResultList .searchResultWrap>ul li.trainStation a:before {
	background-image: url("../img/icn_genre_train.svg");
}

.map .mapContentWrap .searchResultList .searchResultWrap>ul li.Refueling a:before {
	background-image: url("../img/icn_genre_gas.svg");
}

.map .mapContentWrap .searchResultList .searchResultWrap>ul li.powerSupply a:before {
	background-image: url("../img/icn_genre_electric_st.svg");
}


.map .mapContentWrap .searchResultList .searchResultWrap>ul li.shopping a:before {
	background-image: url("../img/icn_genre_shopping.svg");
}


.map .mapContentWrap .searchResultList .searchResultWrap>ul li.hotel a:before {
	background-image: url("../img/icn_genre_hotel.svg");
}

.map .mapContentWrap .searchResultList .searchResultWrap>ul li.hospital a:before {
	background-image: url("../img/icn_genre_hospital.svg");
}

.map .mapContentWrap .searchResultList .searchResultWrap>ul li.pharmacy a:before {
	background-image: url("../img/icn_genre_pharmacy.svg");
}

.map .mapContentWrap .searchResultList .searchResultWrap>ul li.general a:before {
	background-image: url("../img/icn_PIN_RED_L.png");
}

.map .searchBtn {
	position: fixed;
	top: calc(10px + var(--sat));
	left: 10px;
	right: 10px;
	height: 40px;
	box-sizing: border-box;
	z-index: 16777278;
}

.map .searchBtn .reSearchBtn {
	position: absolute;
	bottom: -40px;
	left: 50%;
	justify-content: center;
	align-items: center;
	width: 80px;
	height: 32px;
	font-size: 12px;
	line-height: 32px;
	color: #000000;
	border: solid 1px #009E96;
	background-color: #ffffff;
	box-shadow: 1px 1px 2px #00000033;
	border-radius: 40px;
	transform: translate(-50%, 0);
	box-sizing: border-box;
}

.map .searchBtn .reSearchBtn:active {
	color: #ffffff;
	background-color: #009E96;
}

.map .searchBtn .reSearchBtn:after {
	content: "";
	display: inline-block;
	width: 12px;
	height: 10px;
	padding-left: 5px;
	background-repeat: no-repeat;
	background-size: 12px 10px;
	background-position: right center;
	background-image: url("../img/icn_reload.svg");
}

.map .searchBtn .reSearchBtn:active:after {
	background-image: url("../img/icn_reload_w.svg");
}

.map .searchBtn .searchResultListBackBtn {
	position: absolute;
	bottom: -40px;
	right: 0;
	height: 32px;
	padding: 0 10px;
	font-size: 12px;
	text-align: center;
	line-height: 32px;
	color: #000000;
	border: solid 1px #009E96;
	background-color: #ffffff;
	box-shadow: 1px 1px 2px #00000033;
	border-radius: 40px;
	box-sizing: border-box;
}

.map .searchBtn .searchResultListBackBtn:active {
	color: #ffffff;
	background-color: #009E96;
}


.loading {
	z-index: 999999999999;
	position: fixed;
	top: 0;
	left: 0;
	height: 100vh;
	width: 100%;
}

.loading .layer {
	position: absolute;
	height: 100vh;
	width: 100%;
	background-color: #0000009c;
	z-index: 101;
}

.loading .content {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 102;
}

.loading.hide {
	display: none;
}

.loading img {
	width: 80px;
	height: 80px;
}

.modal.appFinish .modalContent.modalMessage .modalBtnWrap .modalBtn.modalCancelBtn{
  color: #009E96;
  background-color: transparent;
}

.emptyArea {
	height: var(--sat);
}

.move_y {
	/* 初期位置 */
	transform: translateY(0);
	/* アニメーションのプロパティ */
	transition: transform 0.2s ease-in-out;
}

/* アニメーション終了時の位置 */
.move_y_end {
	transform: translateY(200px);
	transition: transform 0.2s ease-in-out;
}
.move_x {
	/* 初期位置 */
	transform: translateX(0);
	/* アニメーションのプロパティ */
	transition: transform 0.2s ease-in-out;
}

/* アニメーション終了時の位置 */
.move_x_end {
	transform: translateX(200px);
	transition: transform 0.2s ease-in-out;
}

a,img {
	-webkit-user-drag: none;
	-webkit-tap-highlight-color: transparent;
	user-select: none;
}

/* 自宅/職場指定画面 横向き時のボタン位置補正（右端固定・メニューバー分のオフセット無効化） */
@media screen and (orientation: landscape) {
  .map.home-setting .scalingBtnWrap,
  .map.home-setting .mapBtn.presentLocationBtn,
  .map.home-setting #compass {
    right: 10px !important;
    transform: none !important; /* move_x / move_x_end を無効化 */
  }
}