@charset "UTF-8";
@font-face {
  font-family: "bold";
  src: url("../font/MOBO-Bold.otf") format("opentype");
  font-style: normal;
  font-weight: 700; }
@font-face {
  font-family: "semibold";
  src: url("../font/MOBO-SemiBold.otf") format("opentype");
  font-style: normal;
  font-weight: 600; }
@font-face {
  font-family: "regular";
  src: url("../font/MOBO-Regular.otf") format("opentype");
  font-style: normal;
  font-weight: 400; }
/*--------------------
共通設定
----------------------*/
img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom; }

a {
  text-decoration: none;
  color: transparent;
  transition: .4s; }
  a.disabled {
    pointer-events: none;
    text-decoration: none; }

.bold {
  font-family: "bold";
  font-weight: 700; }

ul, ol {
  list-style: none; }

.pc {
  display: block; }
  @media screen and (max-width: 1080px) {
    .pc {
      display: none; } }

.sp {
  display: none; }
  @media screen and (max-width: 1080px) {
    .sp {
      display: block; } }

html, body {
  overflow-x: visible;
  min-height: 100vh;
  min-height: calc(var(--vh, 1vh) * 100);
  height: -webkit-fill-available;
  min-height: -webkit-fill-available;
  scroll-padding-top: 70px; }

.fs-l-page {
  overflow: visible; }

.wrapper {
  margin: 0 auto !important; }

main {
  max-width: 100%; }

.mainBox {
  margin: 0 auto !important; }

footer {
  position: relative;
  z-index: 9999; }

html, body {
  height: auto; }

/*--------------------------------------------*/
.lp_wrapper {
  margin: 0 auto;
  padding: 0;
  letter-spacing: 0;
  font-size: 16px;
  text-align: center;
  font-family: "regular";
  letter-spacing: 0;
  font-weight: 400;
  font-style: normal;
  color: #ffffff;
  width: 100%;
  overflow-x: hidden;
  background: #ff4b05; }

.loop {
  background: #ebe1b4; }
  .loop .swiper-wrapper {
    padding: 8px 0;
    transition-timing-function: linear; }

.mv {
  width: 100%;
  height: calc(100vh - 60px);
  background: url("../images/main.jpg");
  background-size: cover;
  position: relative; }
  @media screen and (max-width: 1080px) {
    .mv {
      padding: 16px 0; } }
  @media screen and (max-width: 600px) {
    .mv {
      height: auto;
      padding-bottom: 120px; } }
  .mv::before {
    content: "";
    background: url("../images/SVG/mv_line.svg") no-repeat;
    background-size: cover;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 17%; }
    @media screen and (max-width: 600px) {
      .mv::before {
        height: 15%; } }
  .mv::after {
    content: "";
    background: url("../images/SVG/mv_line_1.svg") no-repeat;
    background-size: cover;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 17%;
    z-index: 1; }
    @media screen and (max-width: 600px) {
      .mv::after {
        height: 15%; } }
  .mv .inner {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    width: 80%;
    margin: 0 auto; }
    @media screen and (max-width: 1500px) {
      .mv .inner {
        width: 70%; } }
    @media screen and (max-width: 1080px) {
      .mv .inner {
        flex-direction: column;
        justify-content: flex-start;
        width: 90%; } }
    @media screen and (max-width: 600px) {
      .mv .inner {
        width: 95%; } }
    .mv .inner h1 {
      color: #052882;
      font-family: "bold";
      font-size: min(6em, 15vw);
      line-height: 1.2;
      margin-top: 0.5em; }
      @media screen and (max-width: 1500px) {
        .mv .inner h1 {
          font-size: min(4em, 15vw); } }
    .mv .inner div {
      position: relative;
      z-index: 3; }
      .mv .inner div:nth-child(1) {
        display: flex;
        align-items: flex-end;
        align-items: flex-start;
        width: 55%; }
        @media screen and (max-width: 1080px) {
          .mv .inner div:nth-child(1) {
            width: 100%;
            flex-direction: column; } }
      .mv .inner div:nth-child(2) {
        width: 45%; }
        @media screen and (max-width: 1080px) {
          .mv .inner div:nth-child(2) {
            width: 90%;
            margin-top: 16px; } }
        .mv .inner div:nth-child(2) img {
          margin: 0 auto; }
          @media screen and (max-width: 1500px) {
            .mv .inner div:nth-child(2) img {
              width: 90%; } }
      .mv .inner div .main_logo {
        width: 90%; }
        @media screen and (max-width: 1080px) {
          .mv .inner div .main_logo {
            width: 100%; } }
      .mv .inner div .icon {
        width: 15%; }

.message {
  min-height: calc(100vh - 60px);
  width: 100%;
  background: #ff4b05;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: relative;
  margin-bottom: -1px; }
  @media screen and (max-width: 600px) {
    .message {
      min-height: inherit; } }
  .message div h2 {
    font-family: "bold";
    font-weight: 600;
    line-height: 1.8;
    font-size: min(2.7em, 6vw);
    margin: 1.5em auto 0; }
    .message div h2 span {
      font-family: "regular"; }
    .message div h2:nth-child(2) {
      margin-top: 0;
      margin-bottom: 1.5em; }
    @media screen and (max-width: 1080px) {
      .message div h2 {
        font-weight: 400;
        font-family: "regular"; } }
  .message div p {
    font-size: min(1.2em, 3.5vw);
    line-height: 2.0; }
    .message div p br {
      display: block; }
      @media screen and (max-width: 600px) {
        .message div p br {
          display: block; } }
  .message div:nth-child(2) {
    margin: 10% auto;
    display: flex;
    align-items: flex-end;
    justify-content: center; }
    @media screen and (max-width: 600px) {
      .message div:nth-child(2) {
        width: 100%;
        margin-bottom: 5%; } }
    @media screen and (max-width: 600px) {
      .message div:nth-child(2) img {
        width: calc(100%/4); } }
    .message div:nth-child(2) img:nth-child(2) {
      margin-bottom: 100px; }
      @media screen and (max-width: 600px) {
        .message div:nth-child(2) img:nth-child(2) {
          margin-bottom: 50px;
          width: 34%; } }
    @media screen and (max-width: 600px) {
      .message div:nth-child(2) img:nth-child(3) {
        width: 20%; } }
    .message div:nth-child(2) img:nth-child(4) {
      margin-left: 3%;
      margin-bottom: 60px; }
      @media screen and (max-width: 600px) {
        .message div:nth-child(2) img:nth-child(4) {
          width: 20%;
          margin-left: 0;
          margin-bottom: 30px; } }
  .message .cloud {
    position: absolute;
    animation: fuwafuwa 3s ease-in-out infinite alternate;
    z-index: 10; }
    @media screen and (max-width: 600px) {
      .message .cloud {
        width: 40%; } }
    .message .cloud.left {
      top: 40%;
      left: 5%; }
      @media screen and (max-width: 1080px) {
        .message .cloud.left {
          top: 25%;
          left: -10%; } }
    .message .cloud.right {
      top: 5%;
      right: 5%; }
      @media screen and (max-width: 1080px) {
        .message .cloud.right {
          top: -4%;
          right: -8%; } }
    .message .cloud.right2 {
      top: 60%;
      right: 5%; }
      @media screen and (max-width: 1080px) {
        .message .cloud.right2 {
          top: 50%;
          right: -19%; } }

.schedule {
  position: relative;
  background: #ebe1b4;
  padding: 5% 0;
  border-top: 150px solid #ff4b05; }
  @media screen and (max-width: 2000px) {
    .schedule {
      border-top: none; } }
  @media screen and (max-width: 600px) {
    .schedule {
      border-top: 120px solid #ff4b05; } }
  .schedule::before {
    content: "";
    background: url("../images/SVG/msg_line_2.svg") no-repeat;
    background-size: cover;
    background-position: left;
    position: absolute;
    top: -45px;
    left: 0;
    width: 100%;
    height: 90px; }
    @media screen and (max-width: 600px) {
      .schedule::before {
        height: 45px;
        top: -22.5px; } }
  .schedule h2 {
    color: #052882;
    text-align: left;
    font-size: min(2.7em, 6vw);
    width: 80%;
    margin: 0 auto 24px;
    font-weight: 600;
    letter-spacing: 0.2em; }
    @media screen and (max-width: 1080px) {
      .schedule h2 {
        padding-top: 10%; } }
  .schedule img {
    height: auto;
    width: 3697px;
    margin-bottom: 60px; }
    @media screen and (max-width: 2000px) {
      .schedule img {
        width: 3400px; } }
    @media screen and (max-width: 1500px) {
      .schedule img {
        width: 2500px; } }
    @media screen and (max-width: 1080px) {
      .schedule img {
        width: 3200px; } }

@media screen and (min-height: 1200px) {
  .schedule img {
    width: 4500px; } }
@media screen and (max-height: 700px) {
  .schedule img {
    width: 1800px; } }
.scroll-container {
  cursor: grab;
  width: 90%;
  margin: 0 0 0 auto;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  -ms-overflow-style: none;
  scrollbar-width: none; }
  .scroll-container::-webkit-scrollbar {
    display: none; }
  .scroll-container img {
    display: block;
    max-width: none;
    -webkit-user-drag: none;
    user-select: none; }
  .scroll-container.is-dragging {
    cursor: grabbing;
    user-select: none; }
  .scroll-container .simplebar-track.simplebar-horizontal {
    background: #ffffff !important;
    height: 10px !important;
    border-radius: 50vh;
    width: 90%; }
    @media screen and (max-width: 600px) {
      .scroll-container .simplebar-track.simplebar-horizontal {
        height: 8px !important; } }
  .scroll-container .simplebar-scrollbar::before {
    background: #052882 !important;
    border-radius: 50vh;
    height: 8px !important;
    left: 2px;
    right: 2px;
    top: -1px;
    opacity: 1 !important; }
    @media screen and (max-width: 600px) {
      .scroll-container .simplebar-scrollbar::before {
        height: 6px !important; } }
  .scroll-container .simplebar-scrollbar.simplebar-visible::before {
    opacity: 1 !important; }

.pin-spacer {
  background: #ebe1b4; }

.event {
  background: #476144; }
  .event .menu {
    padding-top: 25px;
    overflow: hidden; }
    .event .menu ul {
      display: flex;
      align-items: stretch;
      justify-content: center;
      border-top: 10px solid #a5873c; }
      .event .menu ul li {
        width: calc(100%/9);
        background: #ff82c8;
        position: relative; }
        @media screen and (max-width: 1080px) {
          .event .menu ul li {
            width: calc(100%/7); }
            .event .menu ul li:nth-child(2), .event .menu ul li:nth-child(8) {
              display: none; } }
        @media screen and (max-width: 600px) {
          .event .menu ul li {
            width: calc(100%/5); }
            .event .menu ul li:nth-child(1), .event .menu ul li:nth-child(2), .event .menu ul li:nth-child(8), .event .menu ul li:nth-child(9) {
              display: none; } }
        .event .menu ul li::before, .event .menu ul li::after {
          content: "";
          position: absolute;
          width: 20px;
          height: 35px;
          top: -35px;
          background: #ff82c8; }
        .event .menu ul li::before {
          right: 0; }
        .event .menu ul li::after {
          left: calc(50% - 10px);
          transform: translateX(-50%); }
        .event .menu ul li div {
          position: relative;
          width: 100%;
          height: 100%;
          display: flex;
          align-items: center;
          justify-content: center; }
          .event .menu ul li div::after {
            position: absolute;
            content: "";
            width: 7px;
            height: 90%;
            background-color: #476144;
            clip-path: polygon(50% 0%, 100% 100%, 0% 100%);
            bottom: -2px;
            right: 0;
            z-index: 100;
            transform-origin: center top;
            animation: yurayura 2.5s linear infinite; }
            @media screen and (max-width: 600px) {
              .event .menu ul li div::after {
                width: 5px;
                left: -2px;
                right: auto; } }
        .event .menu ul li p, .event .menu ul li a {
          color: #ffffff;
          padding: 24px 8px;
          writing-mode: vertical-rl;
          display: block;
          transform-origin: center top;
          animation: yurayura 2.5s linear infinite; }
          .event .menu ul li p span, .event .menu ul li a span {
            font-weight: 600;
            letter-spacing: 0.2em; }
        .event .menu ul li p {
          font-size: min(1.8em, 4vw);
          font-family: "bold"; }
          .event .menu ul li p span {
            font-size: 100%;
            border: 1px solid #ffffff;
            border-radius: 0.3em;
            padding: 0.2em; }
        .event .menu ul li a {
          font-size: min(1.3em, 3.5vw);
          position: relative;
          width: 100%;
          display: flex;
          align-items: center; }
          .event .menu ul li a::before, .event .menu ul li a::after {
            position: absolute;
            content: "";
            width: 15px;
            height: 1px;
            background: #ffffff;
            bottom: 10px;
            right: 20px; }
            @media screen and (max-width: 600px) {
              .event .menu ul li a::before, .event .menu ul li a::after {
                width: 10px;
                right: 10px; } }
          .event .menu ul li a::after {
            transform: rotate(90deg); }
  .event .eventBox {
    width: 100%;
    position: relative;
    overflow: hidden;
    background-color: #476144;
    background-image: radial-gradient(circle, #3f573c 50px, transparent 50px);
    background-size: 200px 200px;
    background-repeat: repeat;
    animation: moveDot 7s linear infinite; }
    @media screen and (max-width: 600px) {
      .event .eventBox {
        background-image: radial-gradient(circle, #3f573c 20px, transparent 20px);
        background-size: 100px 100px; } }
    .event .eventBox ul {
      padding: 10% 0;
      width: 80%;
      margin: 0 auto;
      display: flex;
      align-items: stretch;
      justify-content: flex-start;
      flex-wrap: wrap; }
      @media screen and (max-width: 1500px) {
        .event .eventBox ul {
          width: 95%; } }
      @media screen and (max-width: 600px) {
        .event .eventBox ul {
          width: 90%;
          padding-bottom: 30%; } }
      .event .eventBox ul li {
        width: calc(100%/3 - 2%);
        background: #ffffff;
        padding: 16px 16px 64px;
        color: #ff4b05;
        position: relative;
        margin: 0 1% 4% 1%; }
        @media screen and (max-width: 1080px) {
          .event .eventBox ul li {
            width: calc(100%/2 - 2%); } }
        @media screen and (max-width: 600px) {
          .event .eventBox ul li {
            width: 100%;
            margin-bottom: 6%; } }
        .event .eventBox ul li .flex {
          display: flex;
          align-items: center;
          justify-content: space-between;
          margin: 16px auto; }
        .event .eventBox ul li a {
          display: block;
          overflow: hidden; }
          .event .eventBox ul li a img:hover {
            transition: .8s;
            transform: scale(1.1); }
        .event .eventBox ul li p {
          font-size: min(0.8em, 2.9vw);
          text-align: left; }
          .event .eventBox ul li p.day {
            letter-spacing: 0.1em; }
            .event .eventBox ul li p.day span {
              font-size: 80%; }
          .event .eventBox ul li p.icon {
            padding: 0.1em 1.0em;
            border: 1px solid #ff4b05;
            font-weight: 600;
            border-radius: 50vh;
            font-size: min(0.8em, 2.8vw);
            letter-spacing: .2em;
            white-space: nowrap; }
        .event .eventBox ul li h3 {
          text-align: left;
          font-size: min(1.2em, 4vw);
          font-weight: 600;
          letter-spacing: 1px;
          margin-bottom: 16px; }
        .event .eventBox ul li .btn {
          position: absolute;
          background: #ff4b05;
          color: #ffffff;
          font-size: min(0.8em, 2.8vw);
          padding: 0.2em 1.0em;
          display: block;
          width: fit-content;
          bottom: 16px;
          right: 16px; }

.lp_footer {
  background: #052882;
  padding: 10% 20% 20%;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  position: relative; }
  @media screen and (max-width: 600px) {
    .lp_footer {
      padding: 30% 10% 30%; } }
  .lp_footer::after {
    content: "";
    background: url("../images/SVG/footer_line_2.svg") no-repeat;
    background-size: cover;
    background-position: left;
    position: absolute;
    top: -45px;
    left: 0;
    width: 100%;
    height: 90px; }
    @media screen and (max-width: 600px) {
      .lp_footer::after {
        top: -22.5px;
        height: 45px; } }
  .lp_footer .sns {
    display: flex;
    flex-direction: column; }
    .lp_footer .sns a {
      display: block;
      margin-bottom: 2.0em; }
      @media screen and (max-width: 600px) {
        .lp_footer .sns a {
          margin-bottom: 1.0em; } }
      @media screen and (max-width: 600px) {
        .lp_footer .sns a img {
          width: 15px; } }
  @media screen and (max-width: 600px) {
    .lp_footer .logo {
      width: 100px; } }

:root {
  --transition-scale: .6s cubic-bezier(.34, 1.56, .64, 1);
  /* 仮の値 */ }

.js .js-scale {
  opacity: 0;
  transform: scale(0) rotate(0.00001deg);
  transition: var(--transition-scale);
  transition-property: opacity, transform;
  transition-delay: calc(var(--i, 0) * .25s); }

.js .js-trigger.is-active .js-scale {
  opacity: 1;
  transform: scale(1) rotate(0.00001deg); }

@media (prefers-reduced-motion: reduce) {
  .js .js-scales > *,
  .js .js-scale {
    transition: none;
    opacity: 1;
    transform: none; } }
@keyframes fuwafuwa {
  0% {
    transform: translateY(10%); }
  100% {
    transform: translateY(-10%); } }
@keyframes moveDot {
  0% {
    background-position: 0 0; }
  100% {
    background-position: -200px 200px; } }
@keyframes yurayura {
  0% , 100% {
    transform: rotate(0deg); }
  50% {
    transform: rotate(-2deg); } }
