/* Normalize
--------------------------------*/

*,
*:before,
*:after {
  box-sizing: inherit;
}

html,
body,
div,
header,
footer,
main,
article,
section,
aside,
nav,
figure,
figcaption {
  display: block;
  margin: 0;
  padding: 0;
}

html {
  line-height: 1.75;
  box-sizing: border-box;
  font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  font-size: 1em;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  line-break: strict;
}

body {
  overflow-x: hidden;
  background: #fff;
  color: #111;
}

a {
  color: inherit;
  transition: .3s;
}

a:before,
a:after {
  text-align: inherit;
  text-decoration: inherit;
}

abbr,
cite {
  font-style: inherit;
  text-decoration: inherit;
}

blockquote {
  margin: 1.5em 0;
  padding: 1em;
  border-style: solid;
  border-width: 1px 0;
}

del {
  opacity: .8;
}

em {
  font-style: inherit;
  font-weight: bolder;
}

figcaption {
  font-weight: 700;
}

img,
iframe {
  max-width: 100%;
  vertical-align: middle;
  border: 0;
}

img {
  height: auto;
}

p {
  margin: 1em 0;
}

header p,
footer p {
  margin: 0;
}

pre {
  margin: 1em 0;
  white-space: pre-wrap;
}

ul,
ol {
  list-style: none;
  margin: 0;
  padding: 0;
}

dl {
  margin: 1em 0;
}

dt {
  margin: 0;
  font-weight: 700;
}

dd {
  margin: 0;
}

dd + dt {
  margin-top: 1em;
}

section section {
  margin-top: 40px;
  margin-bottom: 40px;
}

table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
}

caption {
  text-align: center;
}

th,
td {
  vertical-align: baseline;
  padding: 6px;
  border: 1px solid #666;
  text-align: left;
}

th {
  font-weight: 700;
  white-space: nowrap;
}

button,
input,
textarea,
select {
  max-width: 100%;
  vertical-align: middle;
  line-height: 1.4;
  margin: 0;
  font-family: inherit;
  font-size: 1em;
  transition: .3s;
}

button,
input[type='submit'],
input[type='button'],
input[type='reset'] {
  -webkit-appearance: none;
  appearance: none;
  box-shadow: none;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  text-shadow: none;
}

input[type='text'],
input[type='tel'],
input[type='email'],
input[type='url'],
input[type='search'],
input[type='number'],
input[type='date'],
input[type='password'],
textarea,
select {
  padding: 5px;
  border: 1px solid #ccc;
  border-radius: 4px;
}

input[type='text']:focus,
input[type='tel']:focus,
input[type='email']:focus,
input[type='url']:focus,
input[type='search']:focus,
input[type='number']:focus,
input[type='date']:focus,
input[type='password']:focus,
textarea:focus,
select:focus {
  background: #ff9;
}

input[type='radio'],
input[type='checkbox'] {
  vertical-align: baseline;
}

button,
input[type='submit'],
input[type='button'],
input[type='reset'],
input[type='radio'],
input[type='checkbox'] {
  cursor: pointer;
}

input[disabled] {
  opacity: .3;
  cursor: default;
}

fieldset {
  margin: 0;
  padding: 0;
  border: 0;
}

legend {
  width: 100%;
}

/* Remove Margin
--------------------------------*/

*:first-child,
.paragraph:first-child {
  margin-top: 0;
}

*:last-child,
.paragraph:last-child {
  margin-bottom: 0;
}

/* Heading
--------------------------------*/

h1,
h2,
h3,
h4,
h5,
h6 {
  line-height: 1.25;
  font-weight: 700;
}

/* Site Width
--------------------------------*/

.site {
  visibility: hidden;
  margin: auto;
}

.no-js .site {
  visibility: visible;
}

.fixed .site {
  position: relative;
}

.site-content {
  max-width: 750px;
  margin-right: auto;
  margin-left: auto;
  padding-right: 7.4vw;
  padding-left: 7.4vw;
}

.fixed,
.fixed > body {
  height: 100%;
  overflow: hidden;
}

/* Common
--------------------------------*/

.btn {
  display: inline-block;
  max-width: 100%;
  line-height: 1.5;
  box-shadow: none;
  border: 0;
  border-radius: 0;
  font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  font-size: 16px;
  text-align: center;
  text-decoration: none;
  text-shadow: none;
}

.image {
  text-align: center;
}

.tagline {
  margin: 0 auto 1.5rem;
  font-weight: 700;
  text-align: center;
}

.lede {
  margin: 1.5rem auto;
}

.link {
  margin-top: 20px;
  text-align: center;
}

.break:before {
  white-space: pre;
  content: "\0a";
}

.paragraph {
  margin: 1em 0;
}

.paragraph > p {
  margin-top: 0;
  margin-bottom: 0;
}

.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  margin: -1px;
  padding: 0;
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  -webkit-clip-path: inset(50%);
  clip-path: inset(50%);
  word-wrap: normal;
}

h2 [src*="images/h_"] {
  height: 5.0667vw;
}

/* Site Content
--------------------------------*/

.site-content {
  margin-top: 32px;
  margin-bottom: 64px;
}

/* Header
--------------------------------*/

.site-header--home {
  background: url(images/bg.jpg);
}

.site-title {
  padding-top: 13.8667vw;
  text-align: center;
}

.site-title > img {
  width: 42.4vw;
}

.site-title--home {
  display: flex;
  width: 100%;
  min-height: 100vh;
  padding: 0;
}

.site-title--home > picture,
.site-title--home > img {
  width: 90%;
  max-width: 375px;
  margin: auto;
}

.loading {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 10001;
  line-height: 1;
  background: url(images/bg.jpg);
}

.no-js .loading {
  display: none;
}

.loading img {
  width: 200px;
  max-width: 50%;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
}

.hbg_menu {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 10000;
  width: 48px;
  height: 48px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
  padding: 0;
  border: 0;
  border-radius: 0;
  background: #fff;
  color: #E60111;
  font-weight: 700;
  font-size: 10px;
  letter-spacing: .1em;
  text-align: center;
  text-transform: uppercase;
  text-shadow: none;
}

.menu-icon {
  position: relative;
  width: 24px;
  height: 24px;
  margin: 0 auto 4px;
}

.menu-icon__bar {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 2px;
  margin: auto;
  background: #E60111;
  transition: .3s;
  transition-property: transform, opacity;
}

.menu-icon__bar--1 {
  transform: translateY(-7px);
}

.menu-icon__bar--2 {
  background: #00712F;
}

.menu-icon__bar--3 {
  transform: translateY(7px);
}

[aria-expanded="true"] .menu-icon__bar--1 {
  transform: rotate(30deg);
}

[aria-expanded="true"] .menu-icon__bar--2 {
  opacity: 0;
}

[aria-expanded="true"] .menu-icon__bar--3 {
  transform: rotate(-30deg);
}

.global-nav {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
  width: 100%;
  height: 100%;
  line-height: 1;
  overflow: auto;
  opacity: 0;
  visibility: hidden;
  background: #fff;
  background: rgba(255, 255, 255, 0.95);
  transition: .7s;
  transition-property: opacity, visibility;
  text-align: center;
  pointer-events: none;
}

.no-js .global-nav {
  display: block;
  position: relative;
  height: auto;
  opacity: 1;
  visibility: visible;
  transition: none;
  pointer-events: auto;
}

.global-nav[aria-hidden] {
  display: block;
}

.global-nav[aria-hidden="false"] {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.global-nav a:hover,
.global-nav a:focus {
  opacity: .8;
}

.global-nav__inner {
  display: flex;
  position: relative;
  flex-direction: column;
  justify-content: center;
  min-height: 100%;
  padding: 22px 0;
}

.global-nav__inner:before,
.global-nav__inner:after {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 14px;
  background: repeating-linear-gradient(120deg, #E60111, #E60111 6px, #00712F 6px, #00712F 12px);
  content: "";
}

.global-nav__inner:after {
  top: auto;
  bottom: 0;
}

.global-nav__link {
  display: block;
  position: relative;
  padding: 16px 0 19px;
}

.global-nav__link:after {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  width: 75px;
  height: 3px;
  margin: 0 auto;
  background: radial-gradient(25% 50%, #00712F 2px, transparent 2px) repeat-x 50% 0;
  background-size: 8px 3px;
  content: "";
}

.global-nav__link > img {
  height: 26px;
}

.global-sub-menu {
  display: flex;
  justify-content: center;
  margin-top: 16px;
}

.global-sub-menu__item:nth-child(2) {
  margin-left: 18px;
}

.global-sub-menu__link {
  display: block;
  padding: 6px 0;
}

.global-sub-menu__link > img {
  height: 16px;
}

/* Footer
--------------------------------*/

.site-footer {
  padding-top: 9.4vw;
  background: #21b2b5;
  font-weight: 700;
  text-align: center;
}

.foot-contact {
  font-size: 2.6vw;
}

.foot-contact__caption {
  font-size: 4.2vw;
}

.foot-contact__caption:after {
  display: block;
  width: 1.75em;
  height: 2px;
  background: currentColor;
  margin: .625em auto 1.5em;
  content: "";
}

.foot-contact__name {
  font-size: 3.4vw;
}

.foot-contact-list {
  margin-top: 1.25em;
}

.foot-contact-list__item {
  display: flex;
  justify-content: center;
  margin-top: 1.125em;
}

.foot-contact-list__item > dd {
  margin-left: 3vw;
}

.foot_atention {
  margin-top: 1.625em;
  padding-left: .5em;
  font-size: 2.1vw;
  text-indent: -1em;
}

.foot_logo {
  width: 108px;
  margin: 1.4vw auto 0;
}

.copyright {
  font-size: 2.1vw;
  padding: 2.625em 0;
}

.follow-us {
  display: flex;
  list-style: none;
  position: fixed;
  top: 0;
  right: 0;
  z-index: 9998;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
  margin: 0;
  padding: 0;
}

.follow-us__link {
  display: block;
  border-style: solid;
  border-width: 0 0 4px 4px;
  background: #3b5998;
  color: #fff;
  text-align: center;
  text-decoration: none;
}

.follow-us__link:before {
  display: block;
  width: 44px;
  height: 44px;
  font: 30px/44px FontAwesome, sans-serif;
  text-align: center;
  content: "\f09a";
}

.follow-us__link--instagram {
  background-color: #517fa6;
  background: linear-gradient(-135deg, #405de6, #5851db, #833ab4 5%, #c13584 40%, #e1306c, #fd1d1d, #f56040 80%, #f77737, #fcaf45, #ffdc80);
}

.follow-us__link--instagram:before {
  content: "\f16d";
}

/* Home
--------------------------------*/

.cont {
  margin-top: 10.2vw;
}

#news:after {
  display: block;
  height: 9px;
  margin: 32px 0;
  background: linear-gradient(#999 1px, transparent 1px, transparent 4px, #999 4px, #999 5px, transparent 5px, transparent 8px, #999 8px) repeat-x;
  content: "";
}

.cont1_title,
.cont2_title,
.cont5_title,
.cont6_title {
  line-height: 1;
  margin: 0 auto;
  text-align: center;
}

.cont1_title:after,
.cont2_title:after,
.cont5_title:after {
  display: block;
  width: 10.6vw;
  height: .53vw;
  margin: 5.3vw auto 6.7vw;
  background: #E60111;
  background: linear-gradient(to right, #E60111 50%, #00712F 50%);
  content: "";
}

.news-list {
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 14px;
}

.news-list__item {
  display: flex;
  margin-bottom: 14px;
}

.news-list__date {
  width: 6.1em;
  margin-right: 4.8vw;
  color: #00712F;
  white-space: nowrap;
}

.images {
  display: flex;
  list-style: none;
  flex-wrap: wrap;
  margin-right: calc(50% - 50vw);
  margin-left: calc(50% - 50vw);
  margin-top: 0;
  margin-bottom: 0;
  padding: 0;
}

.images > li {
  flex: 0 0 33.333%;
}

.cont2_body {
  width: 16.875em;
  margin: 2.86em auto 0;
  font-size: 3.7333vw;
}

.cont2_texts {
  font-weight: 700;
}

.cont2_texts p {
  margin-top: 2.857143em;
}

.giyu_2 p {
  margin-top: 1.857143em;
}

.content_3 {
  margin: 64px 0 32px;
}

.cont3_title {
  position: relative;
  z-index: 1;
  text-align: center;
}

.cont3_body {
  position: relative;
  margin-right: calc(50% - 50vw);
  margin-left: calc(50% - 50vw);
  padding-right: calc(50vw - 50%);
  padding-left: calc(50vw - 50%);
  margin-top: -11.4vw;
  padding-top: 18vw;
  padding-bottom: 14.7vw;
  background: #ebe7e1;
  text-align: center;
}

.cont3_body:before,
.cont3_body:after {
  position: absolute;
  bottom: 100%;
  right: 0;
  left: 0;
  height: 9px;
  margin-bottom: 3px;
  background: linear-gradient(#999 1px, transparent 1px, transparent 4px, #999 4px, #999 5px, transparent 5px, transparent 8px, #999 8px) repeat-x;
  content: "";
}

.cont3_body:after {
  top: 100%;
  bottom: auto;
  margin: 3px 0 0;
}

.cam {
  margin: 0 auto;
  margin-bottom: 3.2vw;
}

.event-menu {
  text-align: center;
}

.event-menu__item {
  margin-bottom: 3.2vw;
}

.event-menu2 {
  display: flex;
  justify-content: space-between;
}

.event-menu2__item {
  flex: 0 0 48.4375%;
}

.event-menu2__item:only-child {
  margin: auto;
}

.event-menu a:hover,
.event-menu a:focus,
.event-menu2 a:hover,
.event-menu2 a:focus {
  opacity: .8;
}

.btn {
  display: block;
  position: relative;
  color: #00712F;
  border: solid 1px #00712F;
  margin: 0 auto;
  padding: 1em 0;
  font-size: 4.15vw;
  font-weight: bold;
  transition: .5s;
  text-decoration: none;
}

.btn:before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: .964em;
  width: .964em;
  height: .964em;
  margin: auto;
  background: url(images/arrow.png) no-repeat;
  background-size: contain;
  content: "";
}

.btn:hover,
.btn:focus {
  background: #00712F;
  color: #fff;
}

.btn:hover:before,
.btn:focus:before {
  background-image: url(images/arrow2.png);
}

/* Page
--------------------------------*/

.illumi_ribon {
  width: 75.2vw;
  margin: 5.6vw auto 0;
}

.map {
  margin-right: calc(50% - 50vw);
  margin-left: calc(50% - 50vw);
  margin-top: 8.5vw;
  text-align: center;
}

.spot-list {
  counter-reset: spot;
}

.spot-list__item {
  margin: 5vw 0 0;
}

.spot-list__image {
  text-align: center;
}

.spot-list__inner {
  display: flex;
  position: relative;
  padding: 5vw 0;
  counter-increment: spot;
}

.spot-list__inner:after {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: radial-gradient(circle at 25% 50%, currentColor 1.5px, transparent 1.5px) repeat-x 50% 0;
  background-size: 6px 3px;
  content: "";
}

.spot-list__item:last-child .spot-list__inner:after {
  content: none;
}

.spot-list__caption {
  flex: 0 0 20.3125%;
  margin: 0 3.75% 0 0;
}

.spot-list__content {
  line-height: 1.5;
  font-weight: 700;
  font-size: 2.4vw;
}

.spot-list__time {
  display: flex;
  align-items: center;
  margin-bottom: 1.5vw;
}

.spot-list__time:before {
  padding: 0 .3125em;
  border: solid 2px;
  font-size: 1.3333em;
  margin-right: 1em;
  text-transform: uppercase;
  content: "Spot" counter(spot);
}

.spot-list__data {
  list-style: none;
  margin: 0;
  padding: 0;
}

.spot-list__place {
  margin-bottom: 3vw;
  font-size: 1.541667em;
}

.content_4 {
  margin-top: 10.667vw;
}

.content_4:before {
  display: block;
  margin-bottom: 8px;
  padding-top: 20.1466%;
  background: url(images/event/bell.png) no-repeat 50%;
  background-size: auto 100%;
  content: "";
}

.opev_cont {
  padding: 20px;
  background: #EBE7E1;
  font-size: 3.2vw;
}

.opening-event-list {
  list-style: none;
  padding: 0;
  color: #E60111;
  font-weight: 700;
}

.opening-event-list > li {
  margin-bottom: 5px;
}

.opening-event-image {
  text-align: center;
}

.opening-event-image__item {
  margin-top: 24px;
}

@media print, screen and (min-width: 700px) {
  section section {
    margin-top: 60px;
    margin-bottom: 60px;
  }
}

@media print, screen and (min-width: 750px) {
  a[href^='tel:'] {
    text-decoration: inherit;
  }

  .site-content {
    padding-right: 55px;
    padding-left: 55px;
  }

  h2 [src*="images/h_"] {
    height: auto;
  }

  .site-content {
    margin-top: 80px;
    margin-bottom: 160px;
  }

  .site-title {
    padding-top: 104px;
  }

  .site-title--home {
    height: 66.40625vw;
    max-height: 850px;
    min-height: 0;
    padding-top: 0;
  }

  .site-title--home > picture,
  .site-title--home > img {
    width: auto;
    max-width: none;
  }

  .site-title > img {
    width: auto;
  }

  .hbg_menu {
    width: 86px;
    height: 86px;
    font-size: 14px;
  }

  .menu-icon {
    width: 32px;
    height: 32px;
  }

  .menu-icon__bar--1 {
    transform: translateY(-10px);
  }

  .menu-icon__bar--3 {
    transform: translateY(10px);
  }

  .global-nav__inner {
    padding: 32px 0;
  }

  .global-nav__inner:before,
  .global-nav__inner:after {
    height: 24px;
    background-image: repeating-linear-gradient(120deg, #E60111, #E60111 12px, #00712F 12px, #00712F 24px);
  }

  .site-footer {
    padding-top: 96px;
  }

  .foot-contact {
    font-size: 20px;
  }

  .foot-contact__caption {
    font-size: 32px;
  }

  .foot-contact__name {
    font-size: 26px;
  }

  .foot_atention {
    font-size: 16px;
  }

  .copyright {
    font-size: 16px;
  }

  .follow-us {
    display: block;
    top: 6px;
    box-shadow: none;
  }

  .follow-us__item {
    margin-bottom: 10px;
  }

  .follow-us__link {
    position: relative;
    right: -18px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
    border-width: 4px 0 4px 4px;
  }

  .follow-us__link:before {
    width: 96px;
    height: 78px;
    line-height: 78px;
    padding-right: 18px;
    font-size: 50px;
  }

  .follow-us__link:hover,
  .follow-us__link:focus {
    right: 0;
  }

  .cont {
    margin-top: 80px;
  }

  #news:after {
    height: 18px;
    background-image: linear-gradient(#999 1px, transparent 1px, transparent 8.5px, #999 8.5px, #999 9.5px, transparent 9.5px, transparent 17px, #999 17px);
  }

  .cont1_title:after,
  .cont2_title:after,
  .cont5_title:after {
    width: 80px;
    height: 4px;
    margin-top: 40px;
    margin-bottom: 48px;
  }

  .news-list {
    font-size: 18px;
  }

  .news-list__date {
    margin-right: 36px;
  }

  .images > li {
    flex-basis: 16.667%;
  }

  .cont2_body {
    width: auto;
    font-size: 28px;
  }

  .cont2_texts {
    margin-left: 106px;
  }

  .content_3 {
    margin-top: 130px;
  }

  .cont3_body {
    margin: -64px -55px 105px;
    padding: 118px 55px 100px;
  }

  .cont3_body:before,
  .cont3_body:after {
    height: 18px;
    margin-bottom: 7px;
    background-image: linear-gradient(#999 1px, transparent 1px, transparent 8.5px, #999 8.5px, #999 9.5px, transparent 9.5px, transparent 17px, #999 17px);
  }

  .cont3_body:after {
    margin: 7px 0 0;
  }

  .cam {
    margin-bottom: 27px;
  }

  .event-menu__item {
    margin-bottom: 24px;
  }

  .btn {
    font-size: 32px;
  }

  .illumi_ribon {
    width: auto;
    margin-top: 42px;
    text-align: center;
  }

  .map {
    margin-top: 64px;
    margin-right: -55px;
    margin-left: -55px;
  }

  .spot-list {
    margin-top: 64px;
  }

  .spot-list__item {
    margin-top: 32px;
  }

  .spot-list__inner {
    padding: 32px 0;
  }

  .spot-list__caption {
    flex-basis: 130px;
    margin-right: 24px;
  }

  .spot-list__content {
    font-size: 18px;
  }

  .spot-list__time {
    margin-bottom: 11px;
  }

  .spot-list__place {
    margin-bottom: 22px;
  }

  .content_4 {
    margin-top: 80px;
  }

  .content_4:before {
    margin-bottom: 50px;
  }

  .opev_cont {
    padding: 46px 40px;
    font-size: 24px;
  }

  .opening-event-image__item {
    margin-top: 44px;
  }
}

/** Language Selector */
.language-selector {
  display: flex;
  justify-content: flex-end;
  height: 32px;
  padding-right: 96px;
  background: #21BEB9;
  color: #E9F7F6;
  text-align: right;
}
.language-selector-wrap {
  display: inline-block;
  position: relative;
  vertical-align: top;
  text-align: center;
  cursor: pointer;
}
.language-selector-wrap:before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 14px;
  width: 6px;
  height: 6px;
  border-style: solid;
  border-width: 0 1px 1px 0;
  margin: auto;
  transform: rotate(45deg);
  content: "";
}
#languageSelector {
  -webkit-appearance: none;
  appearance: none;
  min-width: 120px;
  line-height: 32px;
  vertical-align: top;
  box-shadow: none;
  margin: 0;
  padding: 0 18px 0 34px;
  border: 0;
  border-right: 1px solid;
  border-left: 1px solid;
  border-radius: 0;
  background: transparent;
  color: inherit;
  font-size: 15px;
  text-align: center;
  cursor: pointer;
}

@media print, screen and (min-width: 750px) {
  .language-selector {
    padding-right: 100px;
  }
}