@charset "euc-jp";
/* CSS Document */

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  padding: 0;
  background-color: #fafafa;
  font-size: 18px;
  line-height: 1.75em;
  color: #383838;
  font-family: "FOT-筑紫明朝 Pr6 M", "TsukuMinPr6-M";
  font-feature-settings: "palt";
  letter-spacing: 0.04em;
}

p {
  margin-bottom: 1.5em;
}

a:hover img {
  filter: brightness(80%);
}

.pc {
  display: block;
}

.sp {
  display: none;
}

/* -------------------------------------------------
overlay
-------------------------------------------------*/
#overlay {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 1);
  display: none;
  z-index: 1400;
}

/* -------------------------------------------------
loading
-------------------------------------------------*/
#loading {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 1);
  z-index: 2147483647;
  display: flex;
  justify-content: center;
  align-items: center;
}

#loading img {
  width: 50px;
  height: auto;
  user-select: none;
  animation: 2s linear infinite rotation1;
}

@keyframes rotation1 {
  0% {
    transform: rotate(0);
  }
  100% {
    transform: rotate(-360deg);
  }
}

/* -------------------------------------------------
header
-------------------------------------------------*/
#header-container {
  z-index: 2000;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  padding: 15px 0;
  border-bottom: solid 1px #e4e4e4;
  background-color: #fff;
}

#header-container h1 {
  margin-left: 20px;
}

#header-container h1 img {
  height: 33px;
  width: auto;
}

.hamburger {
  width: 50px;
  height: 26px;
  padding: 10px 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  background: transparent;
  cursor: pointer;
  position: absolute;
  top: 20px;
  right: 20px;
  z-index: 2001;
}

.hamburger__line {
  position: absolute;
  width: 50px;
  height: 2px;
  background: #000;
  transition:
    transform 0.25s ease,
    opacity 0.2s ease;
}

.hamburger__line:nth-child(1) {
  transform: translateY(-12px);
}
.hamburger__line:nth-child(2) {
  transform: translateY(0);
}
.hamburger__line:nth-child(3) {
  transform: translateY(12px);
}

/* 開いた状態（×） */
.hamburger.is-open .hamburger__line:nth-child(1) {
  transform: rotate(30deg);
}
.hamburger.is-open .hamburger__line:nth-child(2) {
  opacity: 0;
}
.hamburger.is-open .hamburger__line:nth-child(3) {
  transform: rotate(-30deg);
}

/* -------------------------------------------------
MENU
-------------------------------------------------*/

#menu {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1500;
  display: none;
}

#menu-flex {
  display: flex;
  flex-direction: column;
  /* 子要素をflexboxにより縦方向に揃える */
  justify-content: center;
  /* 子要素をflexboxにより中央に配置する */
  align-items: center;
  /* 子要素をflexboxにより中央に配置する */
  width: 100%;
  height: 100%;
  text-align: center;
}

#inner {
  width: 100%;
}

ul#menuList {
  font-size: 24px;
  text-indent: 0.1em;
  z-index: 30;
  display: block;
  margin: 0 auto;
  line-height: 1;
}

ul#menuList li a {
  text-decoration: none;
  display: inline-block;
  margin-bottom: 40px;
  cursor: pointer;
  margin-bottom: 40px;
}

ul#menuList li:last-child a {
  padding: 0 30px 8px 30px;
  background-image: url(../images/icon_linkout.png);
  background-image: url("../images/icon_linkout.webp");
  background-repeat: no-repeat;
  background-position: right center;
  background-size: 13px auto;
}

/* -------------------------------------------------
CONTENT
-------------------------------------------------*/
#content-container {
  width: 800px;
  padding: 120px 30px 60px 30px;
  margin: 0 auto;
}

.introduction,
.howto,
.contact,
.schedule {
  margin-bottom: 100px;
  scroll-margin-top: 100px;
}

.content-left,
.content-right {
  width: 620px;
}

.content-right {
  margin-left: 180px;
}

.kuto {
  margin-top: 0.1em;
  margin-bottom: -0.4em;
  display: inline-block;
}

/* -------------------------------------------------
INTRODUCTION
-------------------------------------------------*/
.introduction {
  position: relative;
}

.introduction h2,
.introduction h3 {
  position: absolute;
  right: 50px;
  top: 10px;
  font-size: 64px;
  writing-mode: vertical-rl;
  -ms-writing-mode: tb-rl;
  text-orientation: mixed; /* 省略でも可 */
  letter-spacing: 0;
  line-height: 1.15;
  font-feature-settings: normal;
  font-kerning: none;
}

.introduction h3 {
  right: 0px;
  top: 10px;
  font-size: 24px;
}

#kv img {
  width: 100%;
  height: auto;
  border: solid 1px #e4e4e4;
  margin-bottom: 20px;
}

#btn-detail a {
  display: inline-block;
  border-radius: 100px;
  border: solid 1px #e4e4e4;
  background-color: #fff;
  padding: 15px 60px 18px 30px;
  font-size: 16px;
  line-height: 1;
  text-decoration: none;
  background-image: url(../images/icon_linkout.png);
  background-image: url("../images/icon_linkout.webp");
  background-repeat: no-repeat;
  background-position: right 30px center;
  background-size: 13px auto;
}

/* -------------------------------------------------
HOW TO
-------------------------------------------------*/
.howto {
  position: relative;
}

.howto h2 {
  position: absolute;
  left: 0px;
  top: 10px;
  font-size: 64px;
  writing-mode: vertical-rl;
  -ms-writing-mode: tb-rl;
  text-orientation: mixed; /* 省略でも可 */
  letter-spacing: 0;
  line-height: 1.15;
  font-feature-settings: normal;
  font-kerning: none;
}

.howto h3 {
  font-family: "FOT-筑紫ゴシック Pro B", "TsukuGoPro-B";
  font-size: 22px;
  margin-bottom: 1.3em;
}

.howto ul {
  margin-left: 1.5em;
  margin-bottom: 1.5em;
  line-height: 1.5;
}

.howto li {
  list-style-type: disc;
  list-style-position: inside;
  text-indent: -1.5em;
  padding-left: 0;
  margin-bottom: 0.5em;
}

.howto li span.notice {
  font-size: 0.8em;
  line-height: 1.3;
}

a.btn-download {
  display: inline-block;
  min-width: 14em;
  border-radius: 100px;
  background-color: #434343;
  color: #fff;
  padding: 22px 30px 25px 74px;
  font-size: 18px;
  line-height: 1;
  text-decoration: none;
  background-image: url(../images/icon_download.png);
  background-image: url("../images/icon_download.png");
  background-repeat: no-repeat;
  background-position: left 32px center;
  background-size: 18px auto;
  margin: 5px 0 15px 0;
}

/* -------------------------------------------------
CONTACT
-------------------------------------------------*/
.contact {
  position: relative;
}

.contact h2 {
  position: absolute;
  height: 7em;
  right: 0px;
  top: 10px;
  font-size: 64px;
  writing-mode: vertical-rl;
  -ms-writing-mode: tb-rl;
  text-orientation: mixed; /* 省略でも可 */
  letter-spacing: 0;
  line-height: 1.15;
  font-feature-settings: normal;
  font-kerning: none;
}

.line-box {
  background-color: #fff;
  border: solid 1px #e4e4e4;
  padding: 1em 1.5em;
  margin-bottom: 1.5em;
}

.contact .notice {
  font-size: 0.8em;
  line-height: 1.6;
}

/* -------------------------------------------------
SCHEDULE
-------------------------------------------------*/

.schedule h2 {
  text-align: center;
  font-size: 48px;
  margin-bottom: 0.8em;
}

.schedule span.notice {
  display: block;
  width: 100%;
  text-align: center;
  font-size: 0.8em;
  margin-bottom: 5em;
  line-height: 1.5;
}

/*.schedule-table-container {
  position: relative;
  padding-left: 60px;
}

.schedule-table-container.hokkaido {
  min-height: 12em;
}

.schedule-table-container.kanto {
  min-height: 8em;
}

.schedule-table-container.chubu {
  min-height: 8em;
}

.schedule-table-container.kinki {
  min-height: 8em;
}

.schedule-table-container.chugoku-shikoku {
  min-height: 10em;
}

.schedule-table-container.kyushu-okinawa {
  min-height: 10em;
}
.schedule-table-container h3 {
  position: absolute;
  left: 0px;
  top: 10px;
  font-size: 26px;
  writing-mode: vertical-rl;
  -ms-writing-mode: tb-rl;
  text-orientation: mixed;
  letter-spacing: 0;
  line-height: 1.15;
  font-feature-settings: normal;
  font-kerning: none;
}*/

.schedule-table-container h3 {
  font-size: 26px;
  margin-bottom: 0.5em;
  text-align: center;
}

.schedule-empty {
  text-align: center;
}

.schedule-table-container table {
  width: 100%;
  text-align: center;
  margin-bottom: 50px;
  line-height: 1.5;
}

.schedule-table-container table tr {
  border-bottom: solid 1px #d3d3d3;
}

.table-header {
  color: #898989;
  font-size: 16px;
}

.table-header td {
  padding: 0.3em 0.5em 0.5em 0.5em;
}

.table-header td:nth-child(1),
.table-header td:nth-child(2) {
  min-width: 6em;
}

.table-header td:nth-child(3) {
  min-width: 12em;
}

.link-row {
  background-image: url(../images/icon_arrow1.png);
  background-image: url(../images/icon_arrow1.webp);
  background-repeat: no-repeat;
  background-position: right 10px center;
  background-size: 30px auto;
  cursor: pointer;
}

.link-row td {
  padding: 1em 0.5em 1.2em 0.5em;
}

.schedule-table-container table td:last-child {
  padding-right: 3em;
}

/* -------------------------------------------------
INFO
-------------------------------------------------*/
.info {
  position: relative;
  min-height: 24em;
}

.info h2 {
  position: absolute;
  left: 0px;
  top: 10px;
  font-size: 64px;
  writing-mode: vertical-rl;
  -ms-writing-mode: tb-rl;
  text-orientation: mixed; /* 省略でも可 */
  letter-spacing: 0;
  line-height: 1.15;
  font-feature-settings: normal;
  font-kerning: none;
}

.info h3 {
  font-size: 36px;
  line-height: 1.33;
  margin-bottom: 1.2em;
}

.info .event-description {
margin-bottom: 1.5em;
}

.info dl {
  margin-bottom: 30px;
}

.info dt {
  display: block;
  padding: 0 1em 0.2em 0.8em;
  border-left: 6px solid #d3d3d3;
  margin-bottom: 0.6em;
}

.info dd {
  display: block;
  padding: 0 1em 0.2em calc(0.8em + 6px);
  margin-bottom: 1em;
}

a.access {
  display: block;
}

a.btn-back {
  display: inline-block;
  min-width: 12em;
  padding: 22px 30px 25px 56px;
  font-size: 18px;
  line-height: 1;
  text-decoration: none;
  background-image: url("../images/icon_arrow2.webp");
  background-image: url(../images/icon_arrow2.png");
  background-repeat: no-repeat;
  background-position: left center;
  background-size: 40px auto;
  margin: 15px 0 15px 0;
}

/* -------------------------------------------------
860以下
-------------------------------------------------*/

@media only screen and (max-width: 860px) {
  body {
    font-size: 2.09vw;
  }

  /* -------------------------------------------------
loading 860
-------------------------------------------------*/

  #loading img {
    width: 5.81vw;
  }

  /* -------------------------------------------------
header 860
-------------------------------------------------*/
  #header-container {
    padding: 1.74vw 0;
  }

  #header-container h1 {
    margin-left: 2.32vw;
  }

  #header-container h1 img {
    height: 3.83vw;
  }

  .hamburger {
    width: 5.81vw;
    height: 3.02vw;
    padding: 1.16vw 1.16vw;
    top: 2.32vw;
    right: 2.32vw;
  }

  .hamburger__line {
    width: 5.81vw;
    height: 2px;
  }

  .hamburger__line:nth-child(1) {
    transform: translateY(-1.39vw);
  }

  .hamburger__line:nth-child(3) {
    transform: translateY(1.39vw);
  }

  /* -------------------------------------------------
MENU 860
-------------------------------------------------*/

  ul#menuList {
    font-size: 2.79vw;
  }

  ul#menuList li a {
    margin-bottom: 4.65vw;
    margin-bottom: 4.65vw;
  }

  ul#menuList li:last-child a {
    padding: 0 3.48vw 0.93vw 3.48vw;
    background-size: 1.51vw auto;
  }

  /* -------------------------------------------------
CONTENT 860
-------------------------------------------------*/
  #content-container {
    width: 93.02vw;
    padding: 13.95vw 3.48vw 6.97vw 3.48vw;
  }

  .introduction,
  .howto,
  .contact,
  .schedule {
    margin-bottom: 11.62vw;
    scroll-margin-top: 12vw;
  }

  .content-left,
  .content-right {
    width: 72.09vw;
  }

  .content-right {
    margin-left: 20.93vw;
  }

  /* -------------------------------------------------
INTRODUCTION 860
-------------------------------------------------*/

  .introduction h2,
  .introduction h3 {
    position: absolute;
    right: 5.81vw;
    top: 1.16vw;
    font-size: 7.44vw;
  }

  .introduction h3 {
    right: 0px;
    top: 1.16vw;
    font-size: 2.79vw;
  }

  #kv img {
    margin-bottom: 2.32vw;
  }

  #btn-detail a {
    border-radius: 11.62vw;
    padding: 1.74vw 6.97vw 2.09vw 3.48vw;
    font-size: 1.86vw;
    background-position: right 3.48vw center;
    background-size: 1.51vw auto;
  }

  /* -------------------------------------------------
HOW TO 860
-------------------------------------------------*/

  .howto h2 {
    top: 1.16vw;
    font-size: 7.44vw;
  }

  .howto h3 {
    font-size: 2.55vw;
  }

  a.btn-download {
    border-radius: 11.62vw;
    padding: 2.55vw 3.48vw 2.9vw 8.6vw;
    font-size: 2.09vw;
    background-position: left 4.06vw center;
    background-size: 2.09vw auto;
    margin: 0.58vw 0 1.74vw 0;
  }

  /* -------------------------------------------------
CONTACT 860
-------------------------------------------------*/

  .contact h2 {
    top: 1.16vw;
    font-size: 7.44vw;
  }

  /* -------------------------------------------------
SCHEDULE 860
-------------------------------------------------*/

  .schedule h2 {
    font-size: 5.58vw;
  }

  .schedule-table-container h3 {
    font-size: 3.02vw;
  }

  .schedule-table-container table {
    margin-bottom: 5.81vw;
  }

  .table-header {
    font-size: 1.86vw;
  }

  .link-row {
    background-position: right 1.74vw center;
    background-size: 3.48vw auto;
  }

  /* -------------------------------------------------
INFO 860
-------------------------------------------------*/

  .info h2 {
    top: 1.16vw;
    font-size: 7.44vw;
  }

  .info h3 {
    font-size: 4.18vw;
  }

  .info dl {
    margin-bottom: 3.48vw;
  }

  a.btn-back {
    display: inline-block;
    min-width: 12em;
    padding: 2.58vw 3.48vw 2.9vw 6.51vw;
    font-size: 2.09vw;
    background-size: 4.65vw auto;
    margin: 1.74vw 0 1.74vw 0;
  }
}

/* -------------------------------------------------
640以下
-------------------------------------------------*/

@media only screen and (max-width: 640px) {
  body {
    font-size: 3.72vw;
  }

  /* -------------------------------------------------
loading 640
-------------------------------------------------*/

  #loading img {
    width: 10vw;
  }

  /* -------------------------------------------------
header 640
-------------------------------------------------*/
  #header-container {
    padding: 5vw 0;
  }

  #header-container h1 {
    margin-left: 5vw;
  }

  #header-container h1 img {
    height: 7vw;
  }

  .hamburger {
    width: 12.5vw;
    height: 6.56vw;
    padding: 2vw 3.125vw;
    top: 5.2vw;
    right: 4.68vw;
  }

  .hamburger__line {
    position: absolute;
    width: 12.5vw;
    height: 2px;
  }

  .hamburger__line:nth-child(1) {
    transform: translateY(-2.6vw);
  }
  .hamburger__line:nth-child(2) {
    transform: translateY(0);
  }
  .hamburger__line:nth-child(3) {
    transform: translateY(2.6vw);
  }

  /* -------------------------------------------------
MENU 640
-------------------------------------------------*/

  ul#menuList {
    font-size: 5vw;
  }

  ul#menuList li a {
    margin-bottom: 11vw;
  }

  ul#menuList li:last-child a {
    padding: 0 7vw 0.2em 4vw;
    background-size: 3.125vw auto;
  }

  /* -------------------------------------------------
CONTENT 640
-------------------------------------------------*/
  #content-container {
    width: calc(100vw - 7.44vw);
    padding: 25vw 3.72vw 15vw 3.72vw;
  }

  .introduction,
  .howto,
  .contact,
  .schedule {
    margin-bottom: 15vw;
    scroll-margin-top: 24vw;
  }

  .content-left,
  .content-right {
    width: 75vw;
  }

  .content-right {
    margin-left: calc(25vw - 7.44vw);
  }

  /* -------------------------------------------------
INTRODUCTION 640
-------------------------------------------------*/

  .introduction h2,
  .introduction h3 {
    position: absolute;
    right: 8.4vw;
    top: 1vw;
    font-size: 9.5vw;
  }

  .introduction h3 {
    right: 0;
    top: 1vw;
    font-size: 4.41vw;
  }

  #kv img {
    width: 90%;
    height: auto;
    border: solid 1px #e4e4e4;
    margin-bottom: 20px;
  }

  #btn-detail a {
    display: inline-block;
    border-radius: 100px;
    border: solid 1px #e4e4e4;
    background-color: #fff;
    padding: 1em 3.5em 1.2em 1.7em;
    font-size: 4vw;
    background-position: right 7vw center;
    background-size: 3vw auto;
  }

  /* -------------------------------------------------
HOW TO 640
-------------------------------------------------*/

  .howto h2 {
    position: absolute;
    left: 0;
    top: 1vw;
    font-size: 9.5vw;
  }

  .howto h3 {
    font-size: 4.65vw;
  }

  a.btn-download {
    min-width: 12.5em;
    padding: 1.5em 2.5em 1.7em 4em;
    font-size: 3.72vw;
    background-position: left 7vw center;
    background-size: 3.25vw auto;
    margin: 1.5vw 0 3vw 0;
  }

  /* -------------------------------------------------
CONTACT 640
-------------------------------------------------*/

  .contact h2 {
    right: 0;
    top: 1vw;
    font-size: 9.5vw;
  }

  .line-box {
    background-color: #fff;
    border: solid 1px #e4e4e4;
    padding: 1em 1.5em;
    margin-bottom: 1.5em;
  }

  .contact .notice {
    font-size: 0.8em;
    line-height: 1.6;
  }

  /* -------------------------------------------------
SCHEDULE 640
-------------------------------------------------*/

  .schedule h2 {
    font-size: 7.8vw;
  }

.schedule span.notice {
  margin-bottom: 3em;
}

  .schedule-table-container h3 {
    font-size: 5.3vw;
    margin-bottom: 7vw;
  }

  .schedule-table-container table {
    margin-bottom: 9vw;
    border-top: solid 1px #d3d3d3;
  }

  .schedule-table-container table tr {
    border-bottom: solid 1px #d3d3d3;
  }

  .table-header {
    display: none;
  }

  .link-row {
    background-image: url(../images/icon_arrow1.png);
    background-image: url(../images/icon_arrow1.webp);
    background-repeat: no-repeat;
    background-position: right 2vw center;
    background-size: 8.13vw auto;
    text-align: left;
    display: block;
    padding: 1em 1em;
  }

  .link-row td {
    display: block;
    padding: 0;
    margin-bottom: 0.3em;
  }

  .link-row td:nth-child(1),
  .link-row td:nth-child(2) {
    display: inline-block;
    margin-right: 0.2em;
  }

  .link-row td:nth-child(3),
  .link-row td:nth-child(4) {
    width: 75vw;
  }

  .schedule-table-container table td:last-child {
    padding-right: 0;
  }

  /* -------------------------------------------------
INFO 640
-------------------------------------------------*/

  .info h2 {
    position: absolute;
    left: 0px;
    top: 1vw;
    font-size: 9.5vw;
    }

  .info h3 {
    font-size: 6vw;
    line-height: 1.33;
    margin-bottom: 1.2em;
  }

  .info dl {
    margin-bottom: 5vw;
  }


  a.btn-back {
    display: inline-block;
    min-width: 12em;
    padding: 3vw 4vw 3.2vw 10vw;
    font-size: 3.72vw;
    line-height: 1;
    text-decoration: none;
    background-image: url("../images/icon_arrow2.webp");
    background-image: url(../images/icon_arrow2.png");
    background-repeat: no-repeat;
    background-position: left center;
    background-size: 6.97vw auto;
    margin: 4vw 0 4vw 0;
  }
}