@font-face {
    font-family: icoset;
    font-weight: 400;
    font-style: normal;
    src: url(/common-layout/css/fonts/icoset.ttf) format("truetype"),url(/common-layout/css/fonts/icoset.woff) format("woff")
}

@-webkit-keyframes a {
    50% {
        -webkit-transform: translateX(6px);
        transform: translateX(6px)
    }

    to {
        -webkit-transform: translateX(0);
        transform: translateX(0)
    }
}

@keyframes a {
    50% {
        -webkit-transform: translateX(6px);
        transform: translateX(6px)
    }

    to {
        -webkit-transform: translateX(0);
        transform: translateX(0)
    }
}

@-webkit-keyframes b {
    50% {
        -webkit-transform: translate(6px,-50%);
        transform: translate(6px,-50%)
    }

    to {
        -webkit-transform: translateY(-50%);
        transform: translateY(-50%)
    }
}

@keyframes b {
    50% {
        -webkit-transform: translate(6px,-50%);
        transform: translate(6px,-50%)
    }

    to {
        -webkit-transform: translateY(-50%);
        transform: translateY(-50%)
    }
}

@-webkit-keyframes d {
    50% {
        -webkit-transform: translateY(4px);
        transform: translateY(4px)
    }

    to {
        -webkit-transform: translateY(0);
        transform: translateY(0)
    }
}

@keyframes d {
    50% {
        -webkit-transform: translateY(4px);
        transform: translateY(4px)
    }

    to {
        -webkit-transform: translateY(0);
        transform: translateY(0)
    }
}

.map {
    position: relative;
    margin-bottom: 10px;
    display: inline-block;
    width: 100%;
    min-width: 100%;
    max-width: none;
    font-size: medium;
}
.map .background-map{
    display: block;
    width : 100%;
}
.map > div {
    position: absolute;
    display: table;
    min-height: 43px;
    height: 43px;
}
nav#Gnav +div#Main .map > div {
    min-height: 58px;
    height: 58px;
}
.map > div.map_sub_window {
    height: auto;
}
@media print, screen and (max-width: 1024px){
	.map > div {
		min-height: 40px;
		height:40px
	}
	nav#Gnav +div#Main .map > div {
		min-height: 58px;
		height:58px
	}
}
.map_button_off .map_button2,
.map_button_on .map_button2 {
    display: inline-block;
    padding: 2px 32px 0px 17px;
    text-align: left;
    text-decoration: none;
    font-size: 1em;
    color: #012f64;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    background-color: #fff !important;
    border: 1px solid #aaa;
    cursor: pointer;
    line-height: 1.2;
    width: 100%;
    height: 100%;
    transition: background .3s cubic-bezier(.215,.61,.355,1), border .3s cubic-bezier(.215,.61,.355,1);
    -webkit-transition: background .3s cubic-bezier(.215,.61,.355,1), border .3s cubic-bezier(.215,.61,.355,1);
    -o-transition: background .3s cubic-bezier(.215,.61,.355,1), border .3s cubic-bezier(.215,.61,.355,1);
}
nav#Gnav +div#Main .map_button_off .map_button2,
nav#Gnav +div#Main .map_button_on .map_button2{
	padding: 5px 28px 5px 12px;
}
.map_button_off .map_button2 {
    background: #7d7d7d;
    border: 1px solid #7d7d7d;
    cursor: default;
    color: #fff;
}
.map_button_off.type01 .map_button2,
.map_button_on.type01 .map_button2 {
    width: 160px;
    height: 50px;
    text-align: center;
    line-height: 38px;
}
@media print, screen and (max-width: 1024px){
  .map_button_off .map_button2,
  .map_button_on .map_button2 {
    padding: 3px 24px 3px 10px;
    font-size: 0.875em;
    line-height: 1;
  }
  nav#Gnav +div#Main .map_button_off .map_button2,
  nav#Gnav +div#Main .map_button_on .map_button2 {
    min-width: 10.6875em;
    height: 100%;
    display: table-cell;
    vertical-align: middle;
    padding: 5px 25px 5px 15px;
    font-size: 1em;
  }
}
/*MAP_window
=================================*/
.map_sub_window {
    display: block;
    padding: 20px;
    text-align: left;
    text-decoration: none;
    font-size: 1em;
    border-radius: 4px;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    background: #ffffff;
    border: 1px solid #cdcecf;
    max-width: 334px;
    height: auto;
    position: relative;
    z-index: 1;
    position: absolute;
    line-height: 1.5em;
    -webkit-transition: visibility .3s ease-out;
    -o-transition: visibility .3s ease-out;
    transition: visibility 3s ease-out;
}
.map_sub_window:before {
    content: "";
    width: 0;
    height: 0;
    border: 10px solid transparent;
    border-bottom: 12px solid #aaa;
    position: absolute;
    top: -22px;
    left: 4%;
}
@media print, screen and (max-width: 1024px){
    .map_sub_window{
        font-size: 0.875em;
        padding: 15px;
        max-width: 250px;
        width: calc( ( 100vw - 1024px ) / 2 + 334px );
        width : 25vw;
    }
}
/*MAP_window_close
=================================*/
.close_window {
    top: 3px;
    position: absolute;
    right: 3px;
    border: 1px solid gray;
    width: 16px;
    height: 16px;
    line-height: 11px;
    text-align: center;
    color: gray;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    z-index: 10001;
	font-size: 0;
}
@-moz-document url-prefix() {
    .close_window {
      top: 5px;
      right: 5px;
    }
}
_:-ms-lang(x)::-ms-backdrop, .close_window {
      top: 5px;
      right: 5px;
    }
}
.close_window:hover {
    text-decoration: none;
    background:gray;
    color:white;
}
.btnClose {
    background-color: #535353;
    border: 1px solid #535353;
    color: #ffffff;
    padding: 10px 25px;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}
.map-link {
    display: block;
    width:100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 10000;
}
.close_window:before,
.close_window:after{
	top: calc( 50% - 1px );
	height: 1px;
	background: gray;
	position: absolute;
	width: 14px;
	content: " ";
	left:0px;
}
.close_window:hover:before,
.close_window:hover:after{
	background: #fff;
}
.close_window:before{
	transform: rotate(-45deg);
}
.close_window:after{
	transform: rotate(45deg);
}
.close_window:hover{
	background:#ccc;
}
@media print, screen and (max-width: 1024px){
    .close_window{
        top: 1px;
        right: 1px;
        width: 14px;
        height: 14px;
    }
    .close_window:before,
    .close_window:after{
        width: 12px;
    }
}
.map_sub_window img{
	width:100%;
	border-radius: 4px;
}

@media print, screen and (min-width: 768px){
  .display-pc{
    display:block;
  }
  .display-sp{
    display:none;
  }
}
@media print, screen and (max-width: 767px){
  .display-pc{
    display:none;
  }
  .display-sp{
    display:block;
  }
}
.mv-layout-type03 .cp-mv-title-block .cross-search{
  margin-right: calc(((100vw - 100%) / 2) * -1);
  margin-left: calc(((100vw - 100%) / 2) * -1);
  width: 100vw;
}
.mv-layout-type03 .cp-mv-title-block .cross-search .map .background-map{
  width: auto;
  min-width: 100%;
  max-width: none;
  opacity:0.8;
}
.background-layout-white .cp-mv-title-block:before{
  background-color:rgba(255,255,255,.7);
}
.map-module-area{
  background-color: transparent !important;
}
.map-module-area .res-contents{
  margin-top: 0px;
}
@media print, screen and (min-width: 768px){
  .map-module-area{
    width: 100%;
    padding: 0 !important;
    background-color: transparent !important;
  }
}
@media print, screen and (max-width: 767px){
  .map-module-area{
    margin-right: auto !important;
    margin-left: auto !important;
    padding: 30px 0px !important;
    flex-shrink:0;
  }
}
.cross-search .table{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.cross-search .map div>.map_button2,
.cross-search .table div>.map_button2{
  height:100%;
  border-radius: 3px;
  box-shadow: 0 0 0.1875em 0.0675em #c4cbd6 !important;
  border: none !important;
}
.cross-search .table div>.map_button2[style*="background"]{
  box-shadow: none !important;
  border: 1px solid #aaa !important;
}
.cross-search .table div>a{
  position: relative;
  min-height: 70px;
  height: 70px !important;
}
.cross-search .table div{
  margin-bottom: 10px;
}
@media print, screen and (max-width: 525px){
  .cross-search .table div{
    width:calc( 50% - 10px );
  }
  .cross-search .table.withImage div{
    width:100%;
    max-width: 400px;
  }
  .modal-content .cross-search .table.withImage{
    max-width: 400px;
  }
}
@media print, screen and (min-width: 526px) and (max-width: 767px){
  .cross-search .table div{
    width:calc( 100% / 3 - 10px );
  }
  .cross-search .table.withImage div{
    width:calc( 50% - 10px );
    min-width: 220px;
  }
  .modal-content .cross-search .table div{
    min-width: 130px;
    max-width: 240px;
  }
  .modal-content .cross-search .table.withImage{
    max-width: 400px;
  }
  .modal-content .cross-search .table.withImage div{
    width:100%;
    max-width: 400px;
  }
}
@media print, screen and (min-width: 768px) and (max-width: 1024px){
  .cross-search .table div{
    width:calc( 25% - 10px );
  }
  .cross-search .table.withImage div{
    width:calc( 33% - 10px );
    min-width: 220px;
  }
  .modal-content .cross-search .table div{
    width:calc( 25% - 10px );
    min-width: 140px;
    max-width: 230px;
  }
  .modal-content .cross-search .table.withImage{
    max-width: 800px;
  }
  .modal-content .cross-search .table.withImage div{
    width:calc( 50% - 10px );
    min-width: 290px;
    max-width: 390px;
  }
}
@media print, screen and (min-width: 1025px){
  .cross-search .table div{
    width:calc( 20% - 10px );
  }
  .cross-search .table.withImage div{
    width:calc( 25% - 10px );
    min-width: 220px;
  }
  .modal-content .cross-search .table div{
    width:calc( 25% - 10px );
    min-width: 150px;
    max-width: 230px;
  }
  .modal-content .cross-search .table.withImage{
    max-width: 800px;
  }
  .modal-content .cross-search .table.withImage div{
    width:calc( 50% - 40px );
    margin-bottom: 20px;
    max-width: 350px;
  }
}
@media print, screen and (min-width: 1241px){
  
  .modal-content .cross-search .table div{
    width:calc( 20% - 10px );
    min-width: 190px;
  }
  .modal-content .cross-search .table div:nth-child(5n-4){
    margin-left: 0px;
    margin-right: 5px;
  }
  .modal-content .cross-search .table div:nth-child(5n-1),
  .modal-content .cross-search .table div:nth-child(5n-2),
  .modal-content .cross-search .table div:nth-child(5n-3){
    margin-left: 5px;
    margin-right: 5px;
  }
  .modal-content .cross-search .table div:nth-child(5n-5){
    margin-left: 5px;
    margin-right: 0px;
  }
  
  .modal-content .cross-search .table.withImage{
    max-width: none;
  }
  .modal-content .cross-search .table.withImage div{
    width:calc( 100% / 3 - 40px);
    margin-bottom: 40px;
  }
  .modal-content .cross-search .table.withImage div:nth-child(3n-2){
    margin-left: 0px;
    margin-right: 20px;
  }
  .modal-content .cross-search .table.withImage div:nth-child(3n-1){
    margin-left: 20px;
    margin-right: 20px;
  }
  .modal-content .cross-search .table.withImage div:nth-child(3n-3){
    margin-left: 20px;
    margin-right: 0px;
  }
}

.map .map_button_on:hover >.map_button2,
.table .map_button_on:hover >.map_button2{
    background-color: #364f88 !important;
    color: #fff;
    border: 1px solid #fff;
}
.map .map_button_on:hover >.map_button2[style*="background"],
.table .map_button_on:hover >.map_button2[style*="background"]{
    box-shadow: 0 0 0.1875em 0.0675em #c4cbd6 !important;
}
.table .map_button_on a span{
    pointer-events: none;
}
.map_button_on a:after,
.map_button_on p:after{
    font-family: icoset;
    font-weight: 400;
    font-style: normal;
    font-variant: normal;
    line-height: 1;
    position: absolute;
    top: 0;
    bottom: 0;
    margin-top: auto;
    margin-bottom: auto;
    height: 1em;
    font-size: 1em;
    content: "\e906";
    text-transform: none;
    pointer-events: none;
    color: #012f64;
    speak: none;
    -webkit-font-smoothing: antialiased;
    right: 0.5em;
}
.map_button_on a.anchor:not([target="_blank"]):after{
    content: "\e904";
}
.map_button_on a:hover:after,
.map_button_on p:hover:after{
    color: #fff;
    -webkit-animation-name: a;
    animation-name: a;
    -webkit-animation-duration: .5s;
    animation-duration: .5s;
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out;
}
.map_button_on a.anchor:not([target="_blank"]):hover:after{
    -webkit-animation-name: d;
    animation-name: d;
}
.map .map_button_off .map_button2,
.map .map_button_on .map_button2{
	min-width: 10.6875em;
	height: 100%;
	display: table-cell;
	vertical-align: middle;
	white-space: nowrap;
}
.basic-inner .map .map_button_off .map_button2,
.basic-inner .map .map_button_on .map_button2{
	white-space: nowrap;
}

.calloutPopupRight{
	left:auto !important;
	top:60px !important;
	right:30px !important;
}
.calloutPopupRight:before{
	display:none;
}
@media print, screen and (max-width: 1024px){
	.calloutPopupRight{
		right:0px !important;
	}
	.calloutPopupRight:not([style*="none"]){
		display: block !important;
	}
}
.map.withImage .map_button2{
	min-width: 342px;
	overflow-y: hidden;
	overflow-x: visible;
	padding-left: calc( 50% + 10px );
}
@media print, screen and (max-width: 1024px){
	.map.withImage .map_button2{
		min-width: 310px;
	}
}
.table.withImage .map_button2{
	min-width: 100%;
	position: relative;
	overflow-y: hidden;
	padding-left: calc( 50% + 15px );
}
.modal-content{
	border: none !important;
	background: none !important;
	padding: 0 !important;
	max-height: 80% !important;
	max-width: 85% !important;
	width: auto !important;
}
@media print, screen and (min-width: 1445px){
	.modal-content{
		max-width: 1200px !important;
	}
}
.modal-content .map{
	background: white;
	box-shadow: 0 0 0.1875em 0.0675em #c4cbd6 !important;
}
.d_btnModalClose{
	position: absolute;
	top: -30px;
	right: 0px;
	margin-top: 0px !important;
}
@media print, screen and (min-width: 1025px){
	.d_btnModalClose.d_btnModalCloseRight{
		top: 0px;
		right: -30px;
	}
}
.d_btnModalClose a[lang="en"] {
	font-size: 0 !important;
	position: relative;
	width:24px;
	margin-right: 0;
	height: 24px;
	border: none;
}
.d_btnModalClose a[lang="en"]:before,
.d_btnModalClose a[lang="en"]:after {
	top: calc( 50% - 1px );
	height: 2px;
	background: #fff;
	position: absolute;
	width: 21px;
	content: " ";
	left:1px;
}
.d_btnModalClose a[lang="en"]:before{
	transform: rotate(-45deg);
}
.d_btnModalClose a[lang="en"]:after{
	transform: rotate(45deg);
}
#modal-overlay{
	opacity: 0.7 !important;
}
.calloutsList{
	background:#fff;
}
.calloutsList .map_button_off .map_button2,
.calloutsList .map_button_on .map_button2{
	border: 1px solid #fff;
	padding: 20px 20px 20px 20px;
	color: #000;
}
.calloutsList .map_button_off .map_button2:after,
.calloutsList .map_button_on .map_button2:after,
.calloutsList .map_button_on a:after,
.calloutsList .map_button_on p:after{
	display:none;
}
.calloutsList .map_button_on a:focus{
	outline: none !important;
	position: relative;
}
.calloutsList .map_button_on a:focus:before{
	width: calc( 100% - 4px );
    outline: solid 2px #B2B2B2;
    content: " ";
    position: absolute;
    height: calc( 100% - 4px );
    left: 2px;
    top: 2px;
}

.d_btnModalClose a:hover {
    background: #aaa;
    transition: background .3s cubic-bezier(.215,.61,.355,1);
    -webkit-transition: background .3s cubic-bezier(.215,.61,.355,1);
}

.calloutsList a .calloutsList-flex{
	display: flex;
	pointer-events: none;
}

.calloutsList a .calloutsList-flex > div:first-child{
	width: 108px;
	height: 108px;
	position: relative;
	display: block;
	overflow: hidden;
	flex-shrink: 0;
}
.calloutsList a .calloutsList-flex > div:first-child img{
    height: 108px;
    min-width: 108px;
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    max-width: none;
    width: auto;
}
.calloutsList a .calloutsList-flex > div:first-child + div{
    padding-left: 30px;
    position: relative;
}
.calloutsList a .calloutsList-flex > div:first-child + div:before{
    font-family: icoset;
    font-weight: 400;
    font-style: normal;
    font-variant: normal;
    line-height: 1;
    position: absolute;
    top: 0.5em;
    content: "\e906";
    text-transform: none;
    pointer-events: none;
    color: #012f64;
    speak: none;
    -webkit-font-smoothing: antialiased;
    left: 0.5em;
}
.calloutsList a:hover .calloutsList-flex > div:first-child + div:before{
    -webkit-animation-name: a;
    animation-name: a;
    -webkit-animation-duration: .5s;
    animation-duration: .5s;
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out;
}
.calloutsList a:hover .calloutsList-flex > div:first-child + div p:first-child{
    text-decoration: underline;
}
.calloutsList a.anchor:not([target="_blank"]) .calloutsList-flex > div:first-child + div:before {
    content: "\e904";
}
.calloutsList a.anchor:not([target="_blank"]):hover .calloutsList-flex > div:first-child + div:before{
    -webkit-animation-name: d;
    animation-name: d;
}
.calloutsList .map_button_on a:hover {
    position: relative;
}
.calloutsList .map_button_on a:hover:before {
    box-shadow: 0 0 0.1875em 0.0675em #c4cbd6 !important;
    width: calc( 100% - 10px );
    outline: solid 0px #B2B2B2;
    content: " ";
    position: absolute;
    height: calc( 100% - 4px );
    left: 5px;
    top: 2px;
}
.modal-content .calloutsList {
    box-shadow: 0 0 0.1875em 0.0675em #c4cbd6 !important;
}

.table div>.map_button2.tb{
    display: table!important;
}
.table div>.map_button2.tb .tbc.vmdl{
    display: table-cell!important;
    vertical-align: middle!important;
}

.semitransparent{
  background: rgba(255,255,255,0.8);
}

.map .mapComment{
  position: absolute;
  font-size: 0.875em;
  bottom: 0;
  left: 1em;
}
nav#Gnav +div#Main .map .mapComment{
  display: none;
}
.mv-layout-type01 .cross-search:not(.semitransparent) .map .mapComment{
  color:#fff;
}
.mapTitle{
  font-size: 3rem;
  line-height: 1.3;
  text-align: center;
  margin-bottom: 0px;
  padding-top: 30px;
  padding-bottom: 30px;
}
@media print, screen and (max-width: 767px){
  .mapTitle{
    font-size: 2rem;
  }
}
.cp-mv-title-block .mapTitle{
  color: #fff;
}
.modal-content .mapTitle{
  color: #fff;
}

/* 20200304追記（mv-layout-type02以外） */
[class*="transparent"] .mapTitle{
    color: #333;
    margin-bottom: 0px;
    padding-top: 30px;
}

.mapTitle .description{
    text-align: center;
    display: inline-flex;
    font-size: 1.6rem;
}

@media print, screen and (max-width: 1240px){
  .mapTitle {
    font-size: 2.4rem;
  }
  [class*="transparent"] .mapTitle{
    padding-top: 12px;
    padding-bottom: 6px;
  }
}
@media print, screen and (max-width: 1240px){
  .mapTitle {
    font-size: 2.4rem;
  }
  [class*="transparent"] .mapTitle{
    padding-top: 12px;
    padding-bottom: 6px;
  }
}

@media print, screen and (max-width: 767px){
  [class*="transparent"] .mapTitle,
  .mapTitle {
    padding-top: 0px;
  }
}

.mapTitle ~ .map .calloutPopupRight{
    top: 0px !important;
}

/* 20200304追記（mv-layout-type02用） */
.mv-layout-type02.layout-type02-mapArea-box,
.mv-layout-type02 .layout-type02-mapArea-box{
    min-height: 0 !important;
    justify-content: center !important;
    padding-top: 0 !important;
}
.mv-layout-type02 .cp-mv-title-block.map-module-area{
    margin-left: 0 !important;
    margin-right: auto;
    margin-top: 0 !important;
}
.mv-layout-type02:not([style]) .cp-mv-title-block.map-module-area{
    display:none;
}

.mv-layout-type02.layout-type02-mapArea-box>.cp-mv-image{
    position: absolute;
    top: 0;
    left: calc(((100vw - 100%) / 2) * -1);
    overflow: hidden;
    width: 100vw;
}

@media print, screen and (max-width: 767px){
  .mv-layout-type02 .cp-mv-title-block.map-module-area{
    margin-right: 0 !important;
  }
  .mv-layout-type02 .cp-mv-title-block.map-module-area .cross-search .table.withImage{
    justify-content: center;
  }
  
  .mv-layout-type02 .cp-mv-title-block.map-module-area .cross-search .table.withImage div{
    width: 100%;
    max-width: 400px;
  }
}

@media print, screen and (max-width: 767px) and (min-width: 526px){
  .mv-layout-type02 .cp-mv-title-block.map-module-area .cross-search .table.withImage div a{
    min-height: 80px;
    height: 80px !important;
  }
}

/* 地図上にボタンを載せるデザインのブレイクポイントを修正 */
@media print, screen and (max-width: 1329px){
  .map-module-area,
  .cross-search.display-pc {
    display: none;
  }
  .cross-search.display-sp {
    display: block;
  }
}