@charset "UTF-8";
html {
  font-size: 62.5%; }

* {
  box-sizing: border-box; }

body {
  font-family: 'Noto Sans JP', sans-serif; }

body a img {
  transition: all 0.5s; }
body a:hover img {
  opacity: 0.5; }

@media (min-width: 768px) {
  .pcnone {
    display: none; } }

@media (max-width: 767px) {
  .spnone {
    display: none; } }

.indent {
  text-indent: -1em;
  padding-left: 1em; }

.top_wrap h3 {
  color: #fff;
  text-align: center;
  font-weight: 600; }
  @media (min-width: 768px) {
    .top_wrap h3 {
      font-size: 30px;
      font-size: 3rem;
      line-height: 1.6666666667; } }
  @media (max-width: 767px) {
    .top_wrap h3 {
      font-size: 20px;
      font-size: 2rem;
      line-height: 1.5; } }

.sp_top {
  width: 100%; }

@media (min-width: 768px) {
  body {
    background: url(../images/back.jpg) no-repeat center;
    background-attachment: fixed;
    background-size: cover;
    width: 100%;
    height: 100vh; }

  .top_wrap {
    position: fixed;
    width: 50%;
    height: 100vh;
    max-height: 1000px;
    top: 50%;
    transform: translateY(-50%);
    left: 5%;
    padding: 2em;
    margin: 0 0 0 auto; }
    .top_wrap div {
      background: url(../images/main_visual.png) no-repeat center;
      background-size: contain;
      width: 100%;
      height: 100%; }

  img {
    object-fit: contain; }

  .l-main {
    width: 40%;
    position: absolute;
    left: 57%;
    background: #fff; } }
.fes_top {
  background: url(../images/fes_top_back.jpg) no-repeat center;
  background-size: cover; }
  .fes_top_wrap {
    padding: 2em; }
    .fes_top_wrap p {
      padding: 3em 0;
      color: #fff;
      font-weight: 500; }
      @media (min-width: 768px) {
        .fes_top_wrap p {
          font-size: 20px;
          font-size: 2rem;
          line-height: 1.75; } }
    .fes_top_wrap .lowell {
      display: block;
      width: 80%;
      max-width: 350px;
      margin: 1em auto; }

.tent {
  background: #172a88;
  color: #fff; }
  .tent_title {
    padding: 3em 2em 0; }
    .tent_title img {
      width: 80%;
      max-width: 400px;
      display: block;
      margin: 0 auto; }
    .tent_title p {
      padding: 2em 0;
      font-weight: 500;
      text-align: center; }
      @media (min-width: 768px) {
        .tent_title p {
          font-size: 22px;
          font-size: 2.2rem;
          line-height: 1.5909090909; } }
  .tent .shop_wrap {
    padding: 1em;
    max-width: 600px;
    margin: 0 auto; }

.kiriko {
  background: #000; }
  .kiriko p {
    padding: 2em;
    color: #fff;
    font-weight: 500;
    font-size: 24px;
    font-size: 2.4rem;
    line-height: 1.6666666667; }

.hanabi {
  background: #f2b824; }
  .hanabi_wrap {
    padding: 2em; }
  .hanabi_toptext {
    font-weight: 500;
    font-size: 24px;
    font-size: 2.4rem;
    line-height: 1.6666666667; }
  .hanabi_tedutsu {
    background: #fff;
    border-radius: 20px;
    margin-top: 1em;
    padding: 2em 1em; }
  .hanabi ul {
    margin-top: 1em; }
    .hanabi ul li {
      text-indent: -1em;
      padding-left: 1em; }
      .hanabi ul li::before {
        content: '●'; }

.tyusenkai {
  padding: 2em;
  background: #c09b0f; }
  .tyusenkai p {
    text-align: center;
    font-weight: 500;
    margin-bottom: 1em; }
    @media (min-width: 768px) {
      .tyusenkai p {
        font-size: 22px;
        font-size: 2.2rem;
        line-height: 1.8181818182; } }
    @media (max-width: 767px) {
      .tyusenkai p {
        font-size: 20px;
        font-size: 2rem;
        line-height: 2; } }
    .tyusenkai p span {
      color: #fff; }
      @media (min-width: 768px) {
        .tyusenkai p span {
          font-size: 40px;
          font-size: 4rem;
          line-height: 1.25; } }
      @media (max-width: 767px) {
        .tyusenkai p span {
          font-size: 30px;
          font-size: 3rem;
          line-height: 1.3333333333; } }

.schedule {
  background: #bbbbdd;
  padding: 2em; }
  .schedule h3 {
    text-align: center;
    font-weight: 500;
    font-size: 26px;
    font-size: 2.6rem;
    line-height: 1.5384615385;
    margin-bottom: 10px; }
  .schedule_list {
    margin: 1em 0 2em; }
    .schedule_list > li {
      padding: 10px;
      font-weight: 500;
      font-size: 18px;
      font-size: 1.8rem;
      line-height: 1.6666666667; }
      @media (min-width: 768px) {
        .schedule_list > li {
          display: flex; } }
      .schedule_list > li:nth-child(odd) {
        background: #d3edfb; }
      .schedule_list > li:nth-child(even) {
        background: #a1cbed; }
      .schedule_list > li.fes {
        background: #036eb8;
        color: #fff; }
      @media (min-width: 768px) {
        .schedule_list > li .time {
          width: 150px; } }
      @media (min-width: 768px) {
        .schedule_list > li .event {
          width: calc(100% - 150px); } }
      .schedule_list > li p span {
        font-size: 15px;
        font-size: 1.5rem;
        line-height: 1.6666666667; }
  .schedule img {
    margin-bottom: 1em; }
  .schedule .parking {
    margin: 2em 0; }
    .schedule .parking_list {
      border-top: 1px solid #000; }
      .schedule .parking_list > li {
        padding: 1em;
        border-bottom: 1px solid #000; }
        .schedule .parking_list > li h4 {
          font-weight: 500;
          font-size: 22px;
          font-size: 2.2rem;
          line-height: 1.5909090909;
          margin-bottom: 10px; }
          .schedule .parking_list > li h4 span {
            display: block;
            font-weight: 400;
            font-size: 18px;
            font-size: 1.8rem;
            line-height: 1.6666666667; }
        .schedule .parking_list > li a {
          color: #000; }
          .schedule .parking_list > li a:hover {
            text-decoration: underline; }

iframe {
  width: 100%;
  height: 300px; }

.about {
  padding: 2em; }
  .about h3 {
    text-align: center;
    font-weight: 500;
    font-size: 26px;
    font-size: 2.6rem;
    line-height: 1.5384615385; }
  .about dl {
    margin: 2em 0; }
    @media (min-width: 768px) {
      .about dl {
        display: flex;
        flex-wrap: wrap; } }
    @media (max-width: 767px) {
      .about dl {
        border-top: 1px solid #000; } }
    .about dl dt, .about dl dd {
      padding: 5px 0; }
    @media (min-width: 768px) {
      .about dl dt {
        width: 90px; } }
    @media (max-width: 767px) {
      .about dl dt {
        padding-top: 1em;
        text-align: center; } }
    @media (min-width: 768px) {
      .about dl dd {
        text-indent: -1.5em;
        padding-left: 1.5em;
        width: calc(100% - 90px); } }
    @media (max-width: 767px) {
      .about dl dd {
        padding-bottom: 1em;
        border-bottom: 1px solid #000; } }
    @media (min-width: 768px) {
      .about dl dd::before {
        content: '／';
        padding-right: 0.5em; } }
    .about dl dd span {
      font-size: 14px;
      font-size: 1.4rem;
      line-height: 1.7857142857; }
