@charset "utf-8";
/* CSS Document */

/* inner layout
-------------------------------------------*/
.main > .contents > .inner {
  padding: calc( 15 * 100vw / 1920 );
}

/* section layout
-------------------------------------------*/
.section {
  width: 100%;
  height: 100%;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-flow: column nowrap;
  -ms-flex-flow: column nowrap;
  flex-flow: column nowrap;
  background-color: #eeeeee;
  padding: calc( 6 * 100vw / 1920 );
  padding-right: calc( 13 * 100vw / 1920 );
}
.section > .header {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  height: calc( 45 * 100vh / 1080 );
}
.section > .header::before,
.section > .header::after {
  content: '';
  display: block;
  height: 100%;
  background-repeat: no-repeat;
  background-size: auto 100%;
}
.section > .header::before {
  background-image: url('/img/spots/title_icon.png');
  background-color: #18a4c6;
  width: calc( 50 * 100vh / 1080 );
}
.section > .header::after {
  background-image: url('/img/spots/title_r.png');
  width: calc( 32 * 100vh / 1080 );
}
.section > .header > h1.title {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  align-items: center;
  height: 100%;
  padding-top: .35rem;
  padding-right: calc( 10 * 100vh / 1080 );
  background-color: #18a4c6;
  color: white;
  font-size: calc( 24 * 100vh / 1080 );
  min-width: calc( 500 * 100vh / 1080 );
}
.section > .row {
  -webkit-flex-grow: 1;
  -ms-flex-grow: 1;
  flex-grow: 1;
}

/* row layout
-------------------------------------------*/
.row {
  height: 100%;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-flow: row nowrap;
  -ms-flex-flow: row nowrap;
  flex-flow: row nowrap;
}
.row > div.content {
  width: calc( 1390 * 100vw / 1920 );
  margin-right: calc( 15 * 100vw / 1920 );
  height: 100%;
}
.row .search-nav {
  width: calc( 215 * 100vw / 1920 );
}

/* content layout
-------------------------------------------*/
div.content {
  position: relative;
  background-color: white;
}
div.content-inner {
  width: 100%;
  height: 100%;
  padding: calc( 15 * 100vh / 1080 ) calc( 15 * 100vw / 1920 ) calc( 10 * 100vh / 1080 );
}

/* spots
-------------------------------------------*/
div.spots {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  align-content: flex-start;
  -webkit-flex-flow: row wrap;
  -ms-flex-flow: row wrap;
  flex-flow: row wrap;
  height: 100%;
  margin: calc( -7.5 * 100vh / 1080 ) calc( -7.5 * 100vw / 1920 );
}
div.spots > div.summary {
  width: calc( 325 * 100vw / 1920 );
  height: 50.88%;
  padding: calc( 7.5 * 100vh / 1080 ) calc( 7.5 * 100vw / 1920 );
}

/* notfound
-------------------------------------------*/
div.notfound {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: 100%;
}
div.notfound p {
  margin: 0;
  font-size: calc( 28 * 100vw / 1920 );
  font-weight: bold;
  color: #f05e82;
}

/* card
-------------------------------------------*/
.card,
.card-block {
  border: 0 solid #7d7d7d;
  font-size: calc( 20 * 100vw / 1920 );
}
.card {
  position: relative;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  border-bottom-width: calc( 1em / 20 );
  text-decoration: none;
}
.card-tag {
  position: absolute;
  left: 0;
  top: 0;
  padding: .25rem 1em;
  line-height: 1.4;
  font-size: calc( 12 * 100vh / 1080 );
  font-weight: bold;
  min-width: calc( 160em / 12 );
  color: white;
  background-color: #18a4c6;
}
.card-img-top {
  display: block;
  width: 100%;
  height: auto;
  vertical-align: middle;
}
.card-block {
  position: relative;
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  height: calc( 120 * 100vh / 1080 );
  padding: calc( 7 * 100vh / 1080 ) calc( 7 * 100vw / 1920 );
  border-width: calc( 1em / 20 );
  border-bottom: 0;
  color: #333333;
  display: flex;
  flex-direction: column;
}
.card-body {
  flex: 1 1 auto;
}
.card-footer {
  flex-grow: 0;
  flex-shrink: 0;
  margin-top: calc( 12 * 100vh / 1080 );
}
.card-fotter-row {
  display: flex;
  justify-content: space-between;
}
.card-fotter-row-text {
  flex: 1 1 auto;
  padding-right: calc( 8 * 100vw / 1920 );
  padding-top: calc( 8 * 100vh / 1080 );
}
.card-fotter-row-img {
  flex-grow: 0;
  flex-shrink: 0;
  width: 33.33%;
}
.card-fotter-row-img img {
  display: block;
  width: 100%;
  height: auto;
  -webkit-backface-visibility: hidden;
}
.card-title {
  margin: 0;
  margin-bottom: .25rem;
  font-size: calc( 20 * 100vh / 1080 );
  line-height: 1;
}
.card-text {
  margin: 0;
  font-size: calc( 12 * 100vh / 1080 );
  font-weight: bold;
  line-height: 1.4;
  overflow: hidden;
}
.card-note {
  margin: 0;
  margin-bottom: calc( 8 * 100vh / 1080 );
  font-size: calc( 12 * 100vh / 1080 );
  line-height: 1.4;
}
ul.card-tags > li.card-tag-item {
  display: inline-block;
  font-size: calc( 12 * 100vw / 1920 );
  border: 0 solid #333333;
  border-width: calc( 1em / 12 );
  padding: 0.25rem;
  background-color: white;
}

a.card .card-img-top,
a.card .card-block > * {
  transition: opacity .3s ease-out;
}
a.card:active .card-img-top,
a.card:active .card-block > * {
  opacity: 0.6;
}

a.card .debug {
  position: absolute;
  right: 0;
  top: 0;
}

/* pager
-------------------------------------------*/
div.content .prev,
div.content .next {
  display: block;
  width: calc( 60 * 100vw / 1920 );
  background-color: white;
  position: absolute;
  right: calc( 15 * 100vw / 1920 );
}
div.content .prev a,
div.content .next a {
  text-decoration: none;
}
div.content .prev img,
div.content .next img {
  width: 100%;
  height: auto;
  vertical-align: middle;
  transition: opacity .5s ease-out;
}
div.content .prev {
  top: calc( 15 * 100vh / 1080 );
}
div.content .next {
  bottom: calc( 10 * 100vh / 1080 );
}
div.content .disabled img {
  opacity: 0.2;
}

/* search nav
-------------------------------------------*/
.search-nav {
  position: relative;
}
.search-nav p.pagination-help {
  width: 100%;
  margin: 0;
  position: absolute;
  right: 0;
  bottom: 0;
  padding: .5rem 0;
  text-align: center;
  background-color: #18a4c6;
  color: white;
}
.search-nav p.pagination-help .pages {
  padding-left: 1rem;
}

.search-nav .search-return {
  margin-bottom: 0;
  display: block;
  position: absolute;
  left: 0;
  bottom: 0;
  background-color: #18a4c6;
  text-align: center;
  width: 100%;
  height: calc( 35 * 100vh / 1080 );
}
.search-nav .search-return > img {
  display: inline-block;
  width: auto;
  height: 100%;
  vertical-align: bottom;
}

/* search menu
-------------------------------------------*/
.search-menu {
  margin-bottom: calc( 5 * 100vh / 1080 );
}
.search-header {
  margin: 0;
}
.search-block,
.search-item {
  border: 0 solid #18a4c6;
  font-size: calc( 20 * 100vw / 1920 );
}
.search-block {
  background-color: white;
  border-width: calc( 2em / 20 );
}
.search-body {
  padding-top: calc( 5 * 100vh / 1080 );
  padding-bottom: calc( 6 * 100vh / 1080 );
  padding-left: calc( 3 * 100vw / 1920 );
  padding-right: calc( 8 * 100vw / 1920 );
}
.search-item {
  border-bottom-width: calc( 2em / 20 );
}
.search-item {
  text-decoration: none;
  text-align: center;
  font-size: calc( 13 * 100vw / 1920 );
  background-color: white;
  color: #18a4c6;
  font-weight: bold;
  line-height: 1.4;
  padding: .35rem 0;
  padding-left: calc( 18 * 100vw / 1920 );
  transition-duration: .3s;
  transition-timing-function: ease-out;
  transition-property: opacity;
}
.en .search-item {
  font-size: calc( 11.5 * 100vw / 1920 );
}
.search-item:first-child {
  border-top-width: calc( 2em / 20 );
}
.search-item > img {
  width: 100%;
  height: auto;
  vertical-align: middle;
}

.search-item:active {
  opacity: 0.5;
}
.search-item.active {
  background-position: left center;
  background-repeat: no-repeat;
  background-size: 100% auto;
  background-image: url('/img/spots/nav_active_bg.png');
}

.search-map {
  width: 100%;
  height: calc( 215 * 100vw / 1920 );
}
.search-map .pointer-none {
  pointer-events: none;
}
.search-map .link.active > * {
  transition: fill .5s ease-out;
  fill: #2099B8;
}
.search-map .link:active > * {
  fill: #E8F2F5;
}

/* detail
-------------------------------------------*/
div.detail {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  align-items: flex-start;
  background-color: white;
  height: 100%;
  padding: 0;
}
.detail-img {
  display: block;
  width: 100%;
  height: auto;
  vertical-align: top;
}

/* modal
-------------------------------------------*/
.modal {
  background-color: rgba(0, 0, 0, .3);
}
.modal-dialog {
  width: 59.06%;
  margin: auto;
}
.modal-content {
  padding: calc( 15 * 100vw / 1920 );
  font-size: calc( 20 * 100vw / 1920 );
  border: 0 solid #7d7d7d;
  border-width: calc( 1em / 20 );
}
.modal-close {
  z-index: 1055;
  position: absolute;
  top: calc( 25 * 100vh / 1080 );
  right: calc( 25 * 100vw / 1920 );
}
.modal-close img {
  display: block;
  width: 100%;
  height: auto;
}
.modal-img {
  width: 100%;
  height: auto;
  vertical-align: top;
}

/* transition
-------------------------------------------*/
/*
 * The following styles are auto-applied to elements with
 * data-selected='search' when their visibility is toggled
 */
[data-selected='search'] h1.title > span,
[data-selected='search'] .content-inner,
[data-selected='paginate'] .content-inner,
[data-selected='return'] .content-inner,
[data-selected='detail'] .content-inner {
  opacity: 0;
}
[data-selected='search'] #contents.in h1.title > span,
[data-selected='search'] #contents.in .content-inner,
[data-selected='paginate'] #contents.in .content-inner,
[data-selected='return'] #contents.in .content-inner,
[data-selected='detail'] #contents.in .content-inner {
  transition: opacity .5s ease-out;
  opacity: 1;
}
[data-selected='search'] #contents.out h1.title > span,
[data-selected='search'] #contents.out .content-inner,
[data-selected='paginate'] #contents.out .content-inner,
[data-selected='return'] #contents.out .content-inner,
[data-selected='detail'] #contents.out .content-inner {
  transition: opacity .1s ease-out;
  opacity: 0;
}

[data-selected='search'] #contents.out .search-map .link.active > * {
  transition: fill .1s ease-out;
  fill: #FFFFFF;
}

[data-selected='search'] #contents.out .pagination-help,
[data-selected='paginate'] #contents.out .pagination-help,
[data-selected='detail'] #contents.out .pagination-help,
[data-selected='return'] #contents.out .search-return {
  transition: opacity .1s ease-out;
  opacity: 0;
}

/*
 * The following styles are auto-applied to elements with
 * modal when their visibility is toggled
 */
.modal {
  display: none;
  opacity: 0;
}
.modal-dialog {
  -webkit-transform: translate(0, calc( -50 * 100vh / 1080 ));
  transform: translate(0, calc( -50 * 100vh / 1080 ));
}
.modal.display {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
}
.modal.in {
  opacity: 1;
  transition: opacity .2s ease-out;
}
.modal.in .modal-dialog {
  transition: transform .2s ease-out;
  -webkit-transform: translate(0, 0);
  transform: translate(0, 0);
}

.modal.out,
.modal.out .modal-dialog {
  transition: opacity .2s ease-out, transform .2s ease-out;
}
.modal.out {
  opacity: 0;
}
.modal.out .modal-dialog {
  -webkit-transform: translate(0, calc( -50 * 100vh / 1080 ));
  transform: translate(0, calc( -50 * 100vh / 1080 ));
}
