@charset "utf-8";
/* Style Index ===============================

	Name : original css

========================================= */

/* ------------------------------------------
 BASE
-------------------------------------------*/

.btn:hover,
.btnForm:hover,
.btnForm--modal:hover {
	transform: scale(1.02);
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
}

/* フッター非表示 */
.c-footer {
	display: none;
}


#route {
	display: grid;
	position: relative;
}

#route form {
	z-index: 1;
}

#mapContents {
	grid-area: 1 / 1;
	width: 100%;
	height: calc(100dvh - 34px - 80px); /* 100vh - c-breadcrumb - quickNavi */
	overflow: hidden;
	z-index: 1;
	position: relative;
}

@media (min-width: 960px) {
	#route {
		display: flex;
	}

	#routeSearch {
		max-width: 420px;
		margin: 0 auto;
	}

	#routeSearch:not(.open) {
		position: absolute;
	}

	#routeSearch:not(.open) #routeBoxContents {
		display: none;
	}

	#routeBoxContents {
		display: block;
		height: calc(100dvh - 100px - 61px); /* 100vh - c-breadcrumb - c-header__globalNavi */
		overflow-y: scroll;
	}

	#mapContents {
		height: calc(100dvh - 46px - 61px); /* 100vh - c-breadcrumb - c-header__globalNavi */
	}
}

/* ------------------------------------------
 COMMON
-------------------------------------------*/

.routeBox {
	background: #FFF;
	box-shadow: 14px 0 10px -10px rgba(0, 0, 0, 0.3);
}

#BackBtn {
	position: absolute;
	width: 50px;
	height: 50px;
	cursor: pointer;
}
#BackBtn:hover {
	background-color: #f0f0f0;
}
#BackBtn img {
	margin: auto;
	height: 50px;
	padding: 12px 25px 12px 12px;
}

#routeSearch[data-contents-mode="searchBox"] #BackBtn {
	display: none;
}

#routeBoxHeader {
	display: grid;
	grid-template-columns: 1fr auto;
	background: #fafafa;
	align-items: center;
	box-shadow: 0 0 10px rgba(60, 64, 67, 0.3);
}

.ttlSet {
	padding: 10px 5px;
	font-size: 16px;
	color: #1e569b;
	text-align: center;
	background: #fafafa;
	border-bottom: 1px solid #fafafa;
}

#routeBoxHeader .ttlSet {
	font-size: 18px;
}

#routeSearch:not(.open) #searchBoxToggleButton img {
	/* transform: rotateZ(180deg); */
}


@media (min-width: 960px) {
	#BackBtn {
		display: none !important;
	}
}

/* ------------------------------------------

 言語切替
 
-------------------------------------------*/

.c-categorytitle {
	display: flex;
	align-items: center;
}
.c-breadcrumb {
	display: inline-block;
}
#routeLanguageButtonGroup {
	display: inline-block;
	margin-left: auto;
	flex-shrink: 0;
}
#routeLanguageButtonGroup button {
	border: 1px solid #fff;
	padding: 0px 8px;
	margin-right: 4px;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	border-radius: 4px;
	font-size: 16px;
}
#routeLanguageButtonGroup button img {
	display: inline;
	height: 16px;
}

@media (min-width: 960px) {
  #routeLanguageButtonGroup button {
	  font-size: 20px;
		margin-right: 20px;
		padding: 0px 20px;
		gap: 12px;
	}
	#routeLanguageButtonGroup button img {
		height: 22px;
	}
}

/* ------------------------------------------

 検索ボックス
 
-------------------------------------------*/

#routeSearch {
	grid-area: 1 / 1;
	z-index: 10;
	width: 100%;
	margin-bottom: auto;
}

#routeSearch.open {
	margin-bottom: 0;
}

#searchBox {
	display: none;
	padding: 10px 10px 30px;
}

#routeSearch[data-contents-mode="searchBox"] #searchBox {
	display: block;
}

@media (min-width: 960px) {
	#searchBox {
		display: block;
	}
	#routeSearch.open {
		padding-bottom: 0;
	}
}

#routeSearch .linkRouteML {
	margin: 0 -20px 0 15px;
	font-size: 0.8em;
	padding: 0 8px;
	vertical-align: top;
	color: #E61017;
	border: 2px solid red;
	text-decoration: none;
	display: flex;
	height: 24px;
	justify-content: center;
	align-items: center;
}

.searchAnnotation {
	padding: 0 10px;
	margin-bottom: 10px;
	font-size: 14px;
}

.searchAnnotation .title {
	border-bottom: 1px solid #1e569b;
	margin-bottom: 10px;
}

/*
 入力１
---------------------------*/
#searchInput {
	width: 100%;
	position: relative;
}

#changeIcoWrapper {
	display: flex;
	flex-direction: row-reverse;
	flex-wrap: wrap;
	gap: 4px;
	margin-bottom: 10px;
}

#changeIco {
	width: auto;
	height: auto;
	margin: 0 auto 0 8px;
	padding: 0;
	border: none;
	background: none;
	min-height: 0;
}

#changeIco img {
	width: 46px;
}

.inputArea {
	border: 1px solid #888;
	border-radius: 10px;
	margin: 0px 0 10px;
	display: flex;
}

@media (min-width: 960px) {
	.inputArea {
		margin: 0px 0 5px;
	}
	#changeIco img {
		width: 36px;
		margin-bottom: -4px;
	}
}

/*
 ラベル
---------------------------*/

.inputArea .inputAreaTitle {
	width: 20%;
	min-height: 44px;
	font-size: 19px;
	color: #FFF;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 2px 4px;
	font-weight: 600;
	border-top-left-radius: 8px;
	border-bottom-left-radius: 8px;
}

#startTtl {
	background: #31A59B;
	/* border-bottom:1px solid #cacaca; */
}

#goalTtl {
	background: #ea486e;
	/* border-bottom-left-radius:5px; */
}

#viaTtl {
	background: #F06C00;
}

/*
 テキスト入力エリア
---------------------------*/

.inputArea .inputAreaDetail {
	float: left;
	width: 80%;
}

input#iptStart,
input#iptGoal,
input#iptVia {
	width: calc(100% - 4px);
	height: calc(100% - 4px);
	/* line-height: 40px; */
	margin: 2px;
	font-size: 16px;
	border: 0;
	transition: none;
}


.inputAreaActions {
	display: flex;
	/* min-height: 45px; */
	justify-content: end;
}

.inputAreaActions div {
	margin: auto 3px;
}

.inputAreaActions div a {
	padding-top: 4px;
	padding-bottom: 4px;
}

.inputAreaActions div a:focus,
.inputAreaActions div a:hover {
	color: #fff;
}

input#iptStart.icon-bus,
input#iptGoal.icon-bus,
input#iptVia.icon-bus {
	background: url(../../img/route/ico_list_item_bus.svg) no-repeat 8px center / 30px;
	padding-left: 48px;
}

input#iptStart.icon-subway,
input#iptGoal.icon-subway,
input#iptVia.icon-subway {
	background: url(../../img/route/ico_list_item_subway.svg) no-repeat 8px center / 30px;
	padding-left: 48px;
}


/*
 他方法指定
---------------------------*/
#inputType {
	float: right;
}

#inputType div {
	overflow: hidden;
	padding: 2px 0 3px;
}

#inputType div a {
	float: left;
	margin: 0 0 0 5px;
	padding: 0 8px;
	display: block;
	line-height: 24px;
	font-size: 12px;
	color: #FFF;
	text-decoration: none;
	background: #1e569b;
	border-radius: 3px;
}

#inputType div a:hover {
	background: #64a2ff;
}

/*
 経由地 + オプション
---------------------------*/

#searchPlus {
	position: relative;
	margin: 5px 0;
}


#searchPlus button.open .open-field-text,
#searchPlus button:not(.open) .close-field-text {
	display: none;
}


/*
 経路オプション
---------------------------*/
#searchOptionAddBtn,
#searchViaAddBtn {
	width: 100%;
	text-align: center;
	font-size: 13px;
	text-decoration: none;
	color: #666;
	font-weight: bold;
	margin: 10px 0;
	padding: 8px 10px 8px 30px;
	border-radius: 20px;
	border: 1px solid #a2a2a2;
	background: url(../../img/route/ico_plus_gray.svg) no-repeat 10px center / 16px;
}

#searchOptionAddBtn[aria-expanded="true"],
#searchViaAddBtn[aria-expanded="true"] {
	background: url(../../img/route/ico_minus_gray.svg) no-repeat 10px center / 16px;
}

#searchVia {
	margin-bottom: 10px;
}

#searchOptionSelect {
	text-align: left;
	margin-bottom: 10px;
}
#searchOptionSelect > * {
	margin-bottom: 10px;
}
#searchOptionSelect label {
	display: block;
	text-align: left;
	padding: 5px 0;
	border-radius: 0;
	border: none;
}

@media (min-width: 960px), print {
	#searchOptionAddBtn,
	#searchViaAddBtn {
		padding-top: 4px;
		padding-bottom: 4px;
	}
}

/*
 時刻
---------------------------*/
#searchDateTime {
	display: flex;
	gap: 5px;
	margin: 0 0 10px;
}

#searchDate,
#searchTime {
	text-align: center;
	border-radius: 30px;
	display: flex;
	background: #e0eaf9;
	color: #1e569b !important;
	flex-grow: 1;
}

#searchDate > :not(:last-child),
#searchTime > :not(:last-child) {
	border-right: 1px solid #b4c8e5;
}

#searchDate :first-child,
#searchTime :first-child {
	border-top-left-radius: 30px;
	border-bottom-left-radius: 30px;
}

#searchDate :last-child,
#searchTime :last-child {
	border-top-right-radius: 30px;
	border-bottom-right-radius: 30px;
}

#searchDate select, 
#searchTime select {
	-moz-appearance: none;
	-webkit-appearance: none;
	appearance: none;
	border: 0;
	margin: 0;
	padding: 0 12px;
	line-height: 40px;
	background: none transparent;
	vertical-align: middle;
	font-size: inherit;
	box-sizing: content-box;
	text-align: center;
	text-align-last: center;   /* iPhone（iOS）など一部ブラウザ用 */
	outline-offset: -2px;
	flex-grow: 1;
}

#searchTime > div {
	padding: 0 5px;
	margin: 0;
	line-height: 40px;
}

/*
 タイプ
---------------------------*/
#searchType {
	display: table;
	padding: 0;
	margin: 0;
	width: 100%;
	text-align: center;
	overflow: hidden;
}

#searchType li {
	display: table-cell;
	width: 25%;
	padding: 0;
	margin: 0;
	border-right: 1px solid #b4c8e5;
}

#searchType li:last-child {
	border: none;
}

#searchType label {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 45px;
	padding: 4px;
	color: #1e569b;
	background: #e0eaf9;
}


#searchType li:first-child label {
	border-top-left-radius: 30px;
	border-bottom-left-radius: 30px;
}

#searchType li:last-child label {
	border-top-right-radius: 30px;
	border-bottom-right-radius: 30px;
}

#searchType input[type="radio"] {
	opacity: 0;
	margin: 0;
	padding: 0;
	position: absolute;
}

#searchType input[type="radio"]:checked+label {
	color: #FFF;
	background: #1e569b;
}

#searchType input[type="radio"]:focus+label {
	outline: 4px solid #333;
	outline-offset: -4px;
}

@media (min-width: 960px), print {
	#searchType label {
		min-height: 0;
	}
	#searchDate select, 
	#searchTime select,
	#searchTime > div {
		line-height: 34px;
	}
}

/*
 検索ボタン
---------------------------*/
#searchBtn {
	width: 100%;
	padding: 15px 0px 10px;
	/* text-align:center; */
	display: inline-flex;
	justify-content: space-between;
	gap: 10px;
}

#searchBtn button {
	display: block;
	text-align: center;
	text-decoration: none;
	color: #FFF;
	font-size: 22px;
	padding: 10px 30px 10px 50px;
	flex-grow: 1;
	border-radius: 60px;
	border: none;
	background: #1e569b url(../../img/route/ico_search.png) no-repeat 20px center;
	background-size: 20px;
}

#searchBtn #clearButton {
	-webkit-appearance: none;
	border-radius: 40px;
	border: none;
	background: #1e569b;
	color: #FFFFFF;
	cursor: pointer;
	/* vertical-align: top; */
	font-size: 22px;
	padding: 10px 30px;
}

/*
 その他の検索ツール
---------------------------*/
#searchTools {
	position: relative;
	display: flex;
	flex-direction: row;
	gap: 15px;
	align-items: center;
	margin: 15px 0 0;
	padding: 0;
}

/*
 運行情報
 ---------------------------*/
#trafficMsgBox {
	padding-bottom: 10px;
	text-align: center;
}

/* ------------------------------------------

 検索結果
 
-------------------------------------------*/

#searchResult {
	display: none;
	background: url(../../img/route/shadow_top.png) repeat-x top;
	/* border-top: 1px solid #ccc; */
	padding: 15px 0;
}

#routeSearch[data-contents-mode="searchResult"] #searchResult {
	display: block;
}

#searchResultTitle {
	margin: 4px 8px 16px;
	padding: 0px 8px 2px;
	border-bottom: 2px solid #1E569B;
	font-size: 18px;
	text-align: center;
}

@media (min-width: 960px) {
	#searchResult {
		display: block;
	}

	#routeSearch[data-contents-mode="searchBox"] #searchResult {
		display: none;
	}
}

/*
 ソート
---------------------------*/
#sResultSort {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	padding: 0 10px;
	margin-top: 10px;
	text-align: center;
	gap: 5px;
	font-size: 14px;
}

#sResultSort li {
	width: 100%;
}

#sResultSort li button {
	width: 100%;
	height: 100%;
	padding: 8px 8px;
	text-align: center;
	background: #FFF;
	text-decoration: none;
	border: 1px solid #1E569B;
	border-radius: 4px;
	color: #1E569B;
	font-weight: 600;
}
#sResultSort li button span {
	text-align: center;
	display: inline-block;
	width: 100%;
	background: url(../../img/route/arrow_up_down_blue.svg) no-repeat left 4px center / 10px;
	padding: 0 4px 0 18px;
}

#sResultSort li button:hover {
	background-color: #ECF4FF;
}

/*
 リスト全体
---------------------------*/

#searchResult ol {
	padding: 0 10px 15px;
}

ol li.routeNavList {
	margin: 10px 0 0;
	border: 1px solid #1E569B;
	border-radius: 5px;
	display: inline-flex;
	width: 100%;
	list-style: none;
	position: relative;
}

ol li.routeNavList a {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

ol li.routeNavList:hover {
	background: #ecf4ff;
}


ol li.routeNavList ul {
	float: left;
}

ol li.routeNavList ul li {}


/*
 リストナンバー
---------------------------*/
.routeNavNo {
	float: left;
	width: 24px;
	padding: 22px 0 0;
	color: #FFF;
	text-align: center;
	background: #1E569B;
}

.routeNavNo p {
	font-size: 8px;
}

.routeNavNo h3 {
	font-size: 20px;
}


/*
 リスト詳細
---------------------------*/

/* 要約 */
.routeNavDtail {
	padding: 4px;
	width: 100%;
}
.routeNavIndex {
	float: left;
	padding: 4px 8px;
	width: 100%;
	overflow: hidden;
	    background: url(../../img/route/line_dotted_gray.png) repeat-x 10px bottom;
			margin-bottom: 6px;
}

.routeNavIndex li {
	float: left;
	font-size: 0;
	padding: 0 8px 0 0;
}
.routeNavIndex li span {
	font-size: 18px;
}
.routeNavIndex li span.text-sm {
	font-size: 14px;
	margin: 0 5px 0 0px;
}

.routeNavIndex li span.best {
	font-weight: 600;
	color: #1e569b;
} 

/* タイプ */
ul.routeNavRoute {
	float: left;
	padding: 2px 0 5px 10px;
	overflow: hidden;
}

ul.routeNavRoute li {
	float: left;
	padding: 0 10px 0 10px;
	font-size: 14px;
	background: url(../../img/route/mrk_arrow_sml_gray.png) no-repeat left center;
}

ul.routeNavRoute .icon-bus {
	background: url(../../img/route/ico_list_item_bus.svg) no-repeat left top 1px / 20px;
	padding-left: 24px;
}

ul.routeNavRoute .icon-subway {
	background: url(../../img/route/ico_list_item_subway.svg) no-repeat left center / 20px;
	padding-left: 24px;
}

ul.routeNavIco {
	float: left;
	padding: 2px 10px;
	overflow: hidden;
}

ul.routeNavIco li {
	float: left;
	padding: 0 5px 0 0;
	margin-top: -2px;
}

.ico-route-type {
	background-color: #FEC96CAA;
	border: 1px solid #FEB434;
	padding: 1px 4px;
	border-radius: 2px;
	font-size: 14px;
}


@media screen and (min-width: 480px) {

	ul.routeNavIndex {}

	.routeListBox {
		height: 70px;
		overflow: hidden;
	}

	ul.routeNavRoute {
		clear: both;
		float: left;
	}

}

/* ------------------------------------------

 ルート詳細
 
-------------------------------------------*/

#routeDetail {
	background-color: #fff;
	border-top: 1px solid #cbd4e0;
	height: 100%;
	width: 100%;
}

#routeSearch:not([data-contents-mode="routeDetail"]) #routeDetail {
	display: none;
}

@media (min-width: 960px) {
	#routeDetail {
		position: absolute;
		top: 10px;
		max-width: 430px;
		left: 430px;
		height: auto;
		box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
	}
}

/*
 タイトル
---------------------------*/

#routeDetailTitle {
	display: grid;
	grid-template-columns: 1fr auto;
	box-shadow: 0 5px 10px rgba(60, 64, 67, 0.15);
}
#routeDetailCloseWrapper {
	width: 60px;
	height: 100%;
	background-color: #fafafa;
	border-bottom: 1px solid #fafafa;
}
#routeDetailClose {
	margin-left: auto;
	display: block;
	cursor: pointer;
}
#routeDetailClose img {
	width: 25px;
	height: 25px;
	margin: 10px 18px;
}
#routeDetailClose:hover {
	background-color: #f0f0f0;
	opacity: 0.8;
}

@media (min-width: 960px) {
	#routeDetailTitle .ttlSet {
		text-indent: 72px;
	}
	#routeDetailClose img {
		margin: 10px 15px;
	}
}

/*
 ルートナビ
---------------------------*/
#routeDtlNav {
	display: grid;
	grid-template-columns: 30% 1fr 30%;
	width: 100%;
	height: 50px;
	padding: 10px 0 0;
	margin: 0;
	background: #dce3ea url(../../img/route/shadow_top.png) repeat-x center top;
	text-align: center;
	align-items: center;
}

#rDNMain {
	font-size: 18px;
	width: 100%;
	height: 100%;
	padding-top: 4px;
	background: #FFF;
	border-top-left-radius: 6px;
	border-top-right-radius: 6px;
}

#rDNBefore button,
#rDNAfter button {
	background-size: 10px;
	background-repeat: no-repeat;
	font-size: 14px;
	border-radius: 6px;
	padding: 6px 12px;
	width: 90%;
}
#rDNBefore button {
	background-image: url(../../img/route/arrow_left_blue.svg);
	background-position: left 12px center;
	padding-left: 24px;
}
#rDNAfter button {
	background-image: url(../../img/route/arrow_right_blue.svg);
	background-position: right 12px center;
	padding-right: 24px;
}
#rDNBefore button:hover,
#rDNAfter button:hover {
	background-color: #ECF4FF;
}

@media (min-width: 960px) {
	#routeDetailContents {
		max-height: calc(100vh - 46px - 46px - 61px - 20px); /* 100vh - ttlSet - c-breadcrumb - c-header__globalNavi - margin */
		overflow-y: auto;
	}
}


/*
 印刷ボタン
---------------------------*/
	.routeNavSub {
		display: flex;
		justify-content: end;
		margin-left: auto;
	}
	.routeDtlPrint {
		color: #FFF;
		background: #1e569b url(../../img/common/ico_printer.png) no-repeat 8px center !important;
		padding: 4px 8px 4px 26px;
		border-radius: 5px;
		font-size: 14px;
	}
	.routeDtlPrint:hover {
		opacity: 0.9
	}

@media (max-width: 960px) {
	.routeNavSub {
		display: none;
	}
}

/*
 INDEX
---------------------------*/

#routeIndexBox {
	width: 100%;
}

#rDt1, #rDt2 {
	display: flex;
	flex-wrap: wrap;
	padding: 10px;
	border-bottom: 1px dotted #999;
	align-items: center;
}

#rDt2 {
	border-bottom: none;
	padding-bottom: 4px;
}

/*
 詳細時間
---------------------------*/
#routeDtlTime {
	font-size: 0;
	overflow: hidden;
}

#rDTDep, #rDTArr {
	font-size: 20px;
}

#routeDtlTime span.text-sm {
	font-size: 14px;
	margin: 0 5px 0 2px;
}


.rDTTimespanValue {
	font-size: 20px;
}

/*
 詳細
---------------------------*/

#routeDtlIndex {
	padding: 0;
	margin-bottom: 8px;
}

#routeDtlIndex dt,
#routeDtlIndex dd {
	display: inline-block;
	white-space: nowrap;
}

#routeDtlIndex dt {
	margin: 0px 2px 0px 0;
	font-size: 14px;
	padding: 4px 6px;
	line-height: 0.9;
	background: #e9e9e9;
	border: 1px solid #d0d0d0;
	border-radius: 3px;
}

#routeDtlIndex dd {
	font-size: 16px;
	padding: 2px;
}
#routeDtlIndex dd:not(:last-child) {
	margin-right: 8px;
}

#routeDtlIndex dd .text-sm {
	font-size: 14px;
	margin-left: 2px;
}


/*
 詳細
---------------------------*/
#routeDtlIco {
	display: flex;
	align-items: end;
	margin-left: auto;
	margin-bottom: 8px;
}

#routeDtlIco li {
	margin-left: 5px;
}



/*
 マナカ表記
---------------------------*/
#routeManaca {
	padding: 0;
	margin: 0;
	border-top: 1px solid #dbcfa3;
}

#routeManaca p {
	padding: 0;
	margin: 0;
}

#routeManaca a {
	display: block;
	width: 100%;
	padding: 10px 0;
	margin: 0;
	text-align: center;
	background: #fffae8;
	color: inherit;
}

/*
 ルートライン
---------------------------*/
#routeDtlLine {
	padding: 0;
	margin: 0;
	margin-bottom: 20px;
}


/*
 ポイント
---------------------------*/
.routeDtlPoint {
	padding: 5px 0 5px 10px;
	background: #ecf4ff;
	overflow: hidden;
	border-top: 1px solid #cbd4e0;
	border-bottom: 1px solid #cbd4e0;
}


/* レイアウト */
.pointLine {
	display: flex;
	align-items: center;
	width: 100%;
	min-height: 40px;
}

.pointLine > :first-child {
	width: 50px;
	flex-shrink: 0;
}


/* 時刻 */
.pointTime {
	font-size: 14px;
	padding: 0;
}

/* ポイント名 */
.rDPTimeTableLink {
	padding: 8px 8px;
	color: #FFF;
	font-size: 13px;
	line-height: 40px;
	text-decoration: none;
	border-radius: 5px;
	background: #1e569b;
}

.rDPTimeTableLink:hover,
.rDPTimeTableLink:focus {
	color: #FFF;
	opacity: 0.9;
}

.rDPStationLink[href] {
	color: #1e569b;
	text-decoration: underline;
}

.rDPStationLink[href]:hover {
	text-decoration: none;
}

.pointStaInfo {
	padding: 0 10px;
	margin-left: auto;
	flex-shrink: 0;
}

.pointLineStation {
	padding: 0 0 0 0px;
	display: flex;
	align-items: center;
}

.pointLineStationIco {
	width: 20px;
	height: 20px;
	margin-right: 10px;
	margin-left: -1px;
}

/*
 ルートライン
---------------------------*/
.routeDtlSection {
	overflow: hidden;
}

.routeDtlLine {
	display: flex;
	align-items: center;
	width: 100%;
}

.rDSTime {
	font-size: 14px;
	width: 51px;
	text-align: center;
	position: relative;
	flex-shrink: 0;
}

.toggleRouteDtlPassing {
	position: absolute;
	left: 50%;
	padding: 4px 16px;
	transform: translateX(-50%);
	border-radius: 6px;
	width: 42px;
}

.toggleRouteDtlPassing img {
	height: 10px;
	width: 10px;
}

.toggleRouteDtlPassing .close-field-text {
	transform: rotate(180deg);
}

.toggleRouteDtlPassing.open .open-field-text,
.toggleRouteDtlPassing:not(.open) .close-field-text {
	display: none;
}

.toggleRouteDtlPassing:hover {
	background-color: #ECF4FF;
}

/* 工事情報リンク */

#routeDtlConstrActiveLink {
	padding: 0 10px;
	margin-bottom: 10px;
}

#routeDtlConstrActiveLink button {
	font-size: 20px;
	padding-top: 16px;
	padding-bottom:16px;
	width: 100%;
}
#routeDtlConstrActiveLink button img {
	height: 24px;
	margin-right: 10px;
}

#routeDtlConstrActiveLinkModal {
	padding: 20px;
}

#routeDtlConstrActiveLinkModal .modalTitle {
	font-size: 20px;
	padding: 0 5px 5px;
	margin: 0 0 20px;
	border-bottom: 1px solid #1E569B;
}

#routeDtlConstrStaticLink {
	padding: 0 10px;
	margin-bottom: 20px;
}
#routeDtlConstrStaticLink ul li a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0 15px;
	height: 46px;
	color: #1E569B;
	border-radius: 6px;
	text-decoration: none;
	font-weight: 600;
	border: 2px solid #1e569b;
	background: #fff url(../../../assets/img/icon/arrow-circle.svg) no-repeat right 10px center;
	margin-bottom: 10px;
	transition: all 0.3s;
}
#routeDtlConstrStaticLink ul li a:hover {
transform: scale(1.02);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
}



/* 移動タイプ */

.lineDtl {
	display: flex;
	margin-left: 16px;
	align-items: center;
}

/* 歩き */
.lineDtl.rTWalk {
	border-left: 4px solid transparent;
  border-image: url(../../img/route/route_line_walk.png) 0 0 0 8 / 0 0 0 1 repeat; 
}

/* 地下鉄：東山線 */
.lineDtl.rTSubwayHigashi {
	border-left: 4px solid transparent;
  border-image: url(../../img/route/route_line_bus.png) 0 0 0 4 / 0 0 0 1 repeat;
  /* border-image: url(../../img/route/route_line_subway.png) 0 0 0 4 / 0 0 0 1 repeat;  */
}

/* 私鉄 */
.lineDtl.rTShitetsu {
	border-left: 4px solid transparent;
	border-image: url(../../img/route/route_line_bus.png) 0 0 0 4 / 0 0 0 1 repeat;
  /* border-image: url(../../img/route/route_line_subway.png) 0 0 0 4 / 0 0 0 1 repeat;  */
}

/* バス */
.lineDtl.rTBus {
	border-left: 4px solid transparent;
  border-image: url(../../img/route/route_line_bus.png) 0 0 0 4 / 0 0 0 1 repeat; 
}

.lineDtl > div {
	padding: 20px 4px 20px 10px;
}

.lineDtlIcon {
	width: 30px;
	height: 30px;
	margin-left: -17px;
	background-color: #fff;
}

.rDSPrice {
	margin-left: auto;
	text-align: right;
	padding: 0 10px 0 0;
	flex-shrink: 0;
}

.rDSPrice .text-sm {
	font-size: 14px;
	margin-left: 2px;
}

.rDSNostep {
	padding: 2px .5em;
	font-size: 14px;
}
.rDSNostep img {
	width: 16px;
	display: inline;
	vertical-align: text-bottom;
}

.rDSLink {
	padding: 0;
}


/*
 通過時刻
-----------------------------*/

.routeDtlPassing {
	font-size: 0.9em;
}

.rDPTime {
	width: 50px;
	text-align: right;
	margin-right: 17px;
}

.rDPStation {
	display: flex;
	flex-direction: column;
	align-items: start;
	justify-content: center;
	font-size: 16px;
	font-weight: bold;
	color: #1e569b;
}

/* 地下鉄：東山線 */
.rDPStation.rTSubwayHigashi {
	border-left: 4px solid transparent;
  border-image: url(../../img/route/route_line_subway.png) 0 0 0 4 / 0 0 0 1 repeat; 
}

/* 私鉄 */
.rDPStation.rTShitetsu {
	border-left: 4px solid transparent;
  border-image: url(../../img/route/route_line_subway.png) 0 0 0 4 / 0 0 0 1 repeat; 
}

/* バス */
.rDPStation.rTBus {
	border-left: 4px solid transparent;
  border-image: url(../../img/route/route_line_bus.png) 0 0 0 4 / 0 0 0 1 repeat; 
}

.routeDtlPassing .routeDtlLine:last-child .rDPTime,
.routeDtlPassing .routeDtlLine:last-child .rDPStation {
	padding-bottom: 12px;
}

.rDPStationIcon {
	width: 13px;
	height: 13px;
	margin: 0 8px 0 -8px;
}


/*マナカ・得ナビ表示切替*/
#manatokuRadioDiv {
	display: flex;
	flex-shrink: 0;
	margin: 0 0 0 auto;
	overflow: hidden;
	align-items: center;
}

#manatokuRadioDiv a {
	display: block;
	margin-right: 4px;
	border-radius: 50%;
  outline-offset: -2px;
  outline-color: #000;
}

#manatokuRadioDiv input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

#manatokuRadioDiv label {
	display: block;
	float: left;
	width: 70px;
	padding: 4px 12px 5px 12px;
	border: 1px solid #A9A9A9;
	text-align: center;
	cursor: pointer;
	color: #1E569B;
	background: #E0EAF9;
	white-space: nowrap;
	outline-offset: -2px;
}
#manatokuRadioDiv input#show + label{
	border-radius: 6px 0 0 6px;
	margin-right: 0 -1px 0 1px;
}
#manatokuRadioDiv input#hide + label{
	border-radius: 0 6px 6px 0;
}
#manatokuRadioDiv input[type="radio"]:checked +label {
	background-color: #1E569B;
  color: #ffffff;
}
#manatokuRadioDiv input[type="radio"]:focus +label {
	outline: 2px solid #de3000;
}


/*地図コントローラ*/
.ol-zoom {
	top: initial !important;
	bottom: 1.2em;
}


/* ------------------------------------------
 運行情報
-------------------------------------------*/
#quickEmergency {
	position: relative;
	margin-bottom: 10px;
}

#quickEmergency h2 {
	font-size: 18px;
	font-weight: bold;
	line-height: 60px;
	padding: 0 0 0 10px;
}

/* 関連ボタン */
ul#qERelation {
	position: absolute;
	top: 7px;
	right: 0;
	overflow: hidden;
}

ul#qERelation li {
	float: left;
	margin: 0 5px 0 0;
}

ul#qERelation li a {
	display: block;
	color: #FFF;
	font-size: 14px;
	font-weight: bold;
	text-decoration: none;
	padding: 10px 10px;
	background: #0052c4;
	border-radius: 30px;
}

/* 路線別運行情報 */
ul#qEInfo {
	margin-bottom: 20px;
}

ul#qEInfo li {
	position: relative;
	background: #FFF;
	margin-bottom: 8px;
	min-height: 50px;
}

ul#qEInfo li .emgHeader {
	width: 100px;
	text-align: start;
	vertical-align: middle;
	display: flex;
	flex-wrap: wrap;
	border-right: 1px solid #b6cedf50;

}

ul#qEInfo li .emgHeader img {
	margin: auto 3px;
}

.H_LINE_LI img,
.M_LINE_LI img,
.T_LINE_LI img,
.S_LINE_LI img,
.K_LINE_LI img {
	height: 20px;
}

.M_LINE_LI img:nth-child(2n) {
	height: 18.5px;
}

.B_LINE_LI img {
	height: 24px;
}

#qEInfo li a {
	display: flex;
	padding: 3px 8px;
	border-radius: 6px;
	border: 1px solid #b6cedf;
	transition: all 0.3s;
	min-height: 50px;
	align-items: center;
}
#qEInfo li a:hover {
    transform: scale(1.02);
    box-shadow: 0 5px 10px rgba(0, 0, 0, 0.1);
}

#qEInfo li p {
	position: relative;
	float: left;
	width: 100%;
	font-size: 16px;
	padding: 0 30px 0 34px;
	/* background: url(../../img/common/emergency.png) repeat; */
	flex: 1;
	font-weight: bold;
}

.emgClear,
.emgETC,
.emgWarn {
	display: block;
	width: 100%;
	text-decoration: none;
	text-overflow: ellipsis;
	-webkit-text-overflow: ellipsis;
	overflow: hidden;
	font-weight: bold;
	margin-left: 14px;
}

#qEInfo li p::after {
	display: block;
	content: '';
	position: absolute;
	top: 50%;
	right: 20px;
	width: 10px;
	height: 10px;
	border-right: 1px solid #666;
	border-bottom: 1px solid #666;
	-webkit-transform: rotate(-45deg);
	transform: rotate(-45deg) translateX(50%);
}

.emgClear {
	/* color: #0F0; */
}

.emgETC {
	/* color: #FF9800; */
}

.emgWarn {
	/* color: #ff4791; */
}

.otherEmergency {
	text-align: center;
}


/* 現在地 */
#move_mypos {
	position: absolute;
	left: 5px;
	bottom: 20px;
	border: none;
	border-radius: 50%;
	width: 60px;
	height: 60px;
}

#move_mypos img {
	width: 60px;
	height: 60px;
}


/*
  名古屋観光コンシェルジュ
---------------------------*/
#nsiteContainer {
	width: 100%;
	margin: 0 auto;
	vertical-align: middle;
	font-size: 0.85em;
}

#nsiteTitle {
	position: relative;
	font-size: 0.85em;
}

#nsiteTitle button {
	display: block;
	width: 100%;
	min-height: 36px;
	padding: 2px 16px 2px 8px;
	border: 3px solid #6c5038;
	border-radius: 4px;
	background-image: linear-gradient(145deg, #fffff3 0%, #fffff3 70%, #fff7da 100%);
	color: #381c04;
	font-size: 1.1em;
	font-weight: bold;
}

#nsiteTitle button:after {
	content: "";
	position: absolute;
	right: 10px;
	bottom: 50%;
	width: 5px;
	height: 5px;
	margin: auto;
	border-style: solid;
	border-color: transparent #9b7c62 #9b7c62 transparent;
	border-width: 2px;
	transform: rotate(-135deg) translateX(-50%) translateY(-50%);
}

#nsiteTitle button:hover {
	border-color: #9b7c62;
	color: #816248;
	background-image: linear-gradient(145deg, #ffffff 0%, #ffffff 70%, #fffff3 100%);
	cursor: pointer;
}

#nsiteTitle button[aria-expanded="true"]:after {
	transform: rotate(45deg) translateX(-50%) translateY(-50%);
	bottom: 12px;
}

#nsiteContents {
	position: absolute;
	top: -10px;
	left: 0;
	width: 100%;
	margin-top: 0.5em;
	padding: 4px;
	background: #fff;
	border-radius: 4px;
	transform: translateY(-100%);
}

#nsiteContents>div {
	border: 3px solid #697689;
}

#nsiteContents .hov:hover {
	text-decoration: none;
	opacity: 0.9;
	cursor: pointer;
}

#nsiteSelectCategory {
	max-height: 40vh;
	overflow-y: scroll;
	padding: 5px;
}

#nsiteSelectCategory>ul>li {
	margin-bottom: 1em;
}

#nsiteSelectCategory .nsiteCategoryHeader {
	margin-bottom: 0.5em;
	padding: 0 3px 3px 3px;
	border-bottom: 1px solid #697689;
	font-size: 1em;
	font-weight: bold;
}

#nsiteSelectCategory>ul>li>ul {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-left: 1em;
}

#nsiteSelectCategory>ul>li>ul>li {
	padding: 0;
}

#nsiteSelectCategory .nsiteCategoryItemBtn {
	display: inline-block;
	padding: 0 3px;
	border: 1px solid #999;
	border-radius: 3px;
}

#nsiteSelectCategory .nsiteCategoryItemBtn:hover {
	border: 1px solid #333;
	background-color: #fdfdfd;
}

#nsiteSelectShop {
	padding: 0 2px;
	font-size: 1em;
}

#nsiteSelectShop button {
	display: block;
	padding: 0 0 0 3px;
}

#nsiteSelectShop .nsiteShopCategoryTitle {
	display: flex;
	margin-bottom: 8px;
	padding: 5px 5px 0;
	border-bottom: 1px solid #697689;
	box-sizing: border-box;
	font-weight: bold;
}

#nsiteSelectShop .nsiteShopCategoryBackBtn {
	margin-left: auto;
}

#nsiteSelectShop>ul {
	padding: 0 5px;
	max-height: 40vh;
	overflow-y: scroll;
}

#nsiteSelectShop>ul>li {
	margin: 0 0 10px 0;
}

#nsiteSelectShop .nsiteShopAreaHeader {
	font-weight: 600;
}

#nsiteSelectShop>ul>li>ul>li {
	margin-bottom: -1px;
	border-top: 1px dashed #999;
	border-radius: 1px;
}

#nsiteSelectShop>ul>li>ul>li:last-child {
	border-bottom: 1px dashed #999;
}

#nsiteSelectShop .nsiteShopItemBtn {
	padding: 4px 5px 0 1em;
	text-decoration: underline;
	text-align: start;
}

#nsiteSelectShop .nsiteBack {
	position: absolute;
	top: 5px;
	right: 30px;
	font-size: 20px;
}

#nsiteJumpAlert {
	margin: 5px 5px 0 5px;
	padding: 1em 1em 0.5em 1em;
	border: 2px solid #333;
	text-align: center;
	background-color: #f4f4f4;
}

#nsiteJumpAlert p {
	text-align: left;
	white-space: nowrap;
}

#nsiteJumpAlert a {
	display: inline-block;
	padding: 4px 40px;
	margin: 4px 0;
	border: 1px solid #333;
	color: #333333 !important;
	text-decoration: none;
}



/**
 *  MAPボタン
 */

#searchBoxTogglerWrapper {
	border-left: 2px solid #cbd4e0;
	display: flex;
	height: 100%;
}

#searchBoxTogglerWrapper>button {
	width: 60px;
	height: 100%;
	cursor: pointer;
	color: #fff;
	margin: auto;
	padding: 5px 0;
	background-color: #1e569b;
}
#searchBoxTogglerWrapper>button:hover {
	opacity: 0.9;
}

#searchBoxTogglerWrapper>button>div.img-container>img {
	width: 14px;
	height: 14px;
}

.img-container {
	overflow: hidden;
	display: flex;
	justify-content: center;
	align-items: center;
}

@media (min-width: 960px) {
	#searchBoxTogglerWrapper {
		/* display: none; */
	}
}

/**
 * 印刷用 
 */ 
@media print {
	/* ヘッダ */
	body.print-mode .c-categorytitle,
	/* 検索ボックス */
	body.print-mode #searchBox,
	body.print-mode #searchBoxTogglerWrapper,
	/* 検索結果 */
	body.print-mode #searchResult,
	/* ルート詳細 */
	body.print-mode #routeDetailTitle,
	body.print-mode #routeDtlNav,
	body.print-mode .routeNavSub,
	body.print-mode .rDSLink,
	body.print-mode .pointStaInfo,
	body.print-mode #routeDtlConstrActiveLink,
	body.print-mode #routeDtlConstrStaticLink,
	/* 地図 */
	body.print-mode #mapContents,
	body.print-mode #nsiteContainer,
	body.print-mode #manatokuRadioDiv,
	body.print-mode #move_mypos {
		display: none !important;
	}

	body.print-mode #route {
		display: flex;
		flex-direction: column;
	}

  body.print-mode #routeBoxContents,
	body.print-mode #routeDetailContents {
		height: auto;
		max-height: none;
		overflow-y: visible;
	}
}

@media print and (min-width: 960px) {
	body.print-mode #routeDetail {
		position: unset;
		width: 100%;
		max-width: 100%;
		height: unset;
		max-height: unset;
		box-shadow: none;
	}

	body.print-mode #routeSearch {
		max-width: 50%;
		height: unset;
		max-height: unset;
		box-shadow: none;
	}
}