@charset "utf-8";
/* -------
 ●FV
 ●出店希望
 ●イベントについて
 ●イベント内容
 ●タイムスケジュール
 ●FAQ
 ●昨年の様子
 ●アクセス
------- */
@media screen and (max-width:768px) {
  .ttl_img {
    height: 1.6em;
    img {
      height: 100%;
    }
  }
}


/*===============================================
●FV
===============================================*/
#catch {
  background-size: 100%;
  background-repeat: no-repeat;
  margin-left: auto;
  margin-right: auto;
  position: relative;
  .fv_catch_wrap {
    margin: 0 auto;
    position: relative;
    z-index: 2;
    .note {
      font-size: 12px;
      font-weight: 400;
      letter-spacing: .05em;
      line-height: 2;
      text-align: center;
    }
  }
}

@media screen and (min-width: 769px){
  #catch {
    background-image:
      url("../images/2025/index/fv_fig.png"),
      url("../images/2025/index/fv_bg.svg");
      background-position: bottom 12px center, top center;
    .fv_date {
      position: absolute;
      top: 40px;
      left: 3%;
      width: 22%;
    }
    .fv_catch_wrap {
      padding-top: max(15.9vw, 180px);
      padding-bottom: max(7.9vw, 80px);
      width: 50%;
    }
  }
}
@media screen and (max-width: 768px){
  #catch {
    background-image:
      url("../images/2025/index/fv_bg-sp.svg");
      background-position: top center;
      padding-top: 60px;
    .fv_date {
      width: 98%;
      margin: 6% auto 0;
    }
    .fv_catch_wrap {
      padding-top: 30px;
      padding-bottom: 34vw;
      width: 98%;
      .catch_img {
        width: 80%;
      }
      .note {
        margin-top: 30px;
        letter-spacing: 0;
      }
    }
  }
}
/*===============================================
●出店希望
===============================================*/
#kibou {
  position: relative;
  .illust {
    position: absolute;
    left: 50%;
    top: -10.6vw;
    translate: -50% 0;
    width: 80%;
  }
  .box {
    background-color: var(--yellow);
    padding: min(7.2vw, 110px) 40px 80px;
    text-align: center;
  }
  .list_wrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 14px;
    max-width: 1400px;
    margin: 0 auto;
  }
  .link_list {
    display: flex;
    gap: 14px;
    li {
      flex: 1;
    }
    .btn {
      white-space: nowrap;
    }
  }
}

@media screen and (min-width: 769px){
  #kibou {
    margin-top: 86px;
   .box {
      border-radius: 80px;
    }
    .list_wrap {
      margin-top: 50px;
      .list_group {
        flex-grow: 1;
      }
    }
    .link_list {
      .btn {
        font-size: clamp(16px, 1.5vw, 22px);
      }
    }
  }
}

@media screen and (max-width: 768px){
  #kibou {
    .illust {
      top: -28.6vw;
      width: 99%;
    }
    .box {
      border-radius: 40px;
      padding:20vw 40px 16vw;
    }
    .list_wrap {
      flex-direction: column;
      margin-top: 30px;
    }
    .link_list {
      flex-direction: column;
      .btn {
        font-size: 1.4em;
      }
    }
  }
}
/*===============================================
●イベントについて
===============================================*/
#about {
  background-image: url(../images/2025/index/about_bg01.png), url(../images/2025/index/about_bg02.png);
  background-repeat: no-repeat no-repeat;
  background-position: bottom 56px left, top -54px right;
  padding: 150px 0 200px;
  text-align: center;
}
.about_desc {
  line-height: 2;
  margin-top: 70px;
  p {
    margin-top: 42px;
  }
  .emph {
    color: var(--pink_dark);
  }
}

@media screen and (min-width: 769px){
  .about_desc {
    font-size: 20px;
  }
}
@media screen and (max-width: 768px){
  #about {
    background-size: 60%, 60%;
    padding: 20% 0;
    .about_desc {
      margin: auto 5%;
    }
  }
}
/*===============================================
●イベント内容
===============================================*/
#event {
  background-color: var(--pink);
  background-image: url(../images/2025/bg_dots.png);
  border-radius: 80px;
  padding: 100px 0;
  position: relative;
  & > .illust {
    position: absolute;
    left: 52%;
    top: -10.6vw;
    translate: -50% 0;
    width: 90%;
    img {
      width: 95%;
    }
  }
}
.event_detail_wrap {
  margin-top: 100px;
  .ttl01 {
    color: #fff;
    font-size: 36px;
  }
}

.tab_wrap {
  margin-top: 30px;
  input {
    border: 0 !important;
    clip: rect( 0, 0, 0, 0 ) !important;
    height: 1px !important;
    margin: -1px !important;
    overflow: hidden !important;
    padding: 0 !important;
    position: absolute !important;
    white-space: nowrap !important;
    width: 1px !important;
  }
  .tab_list {
    background-color: #fff;
    margin: 0 auto 10px;
    border-radius: 100px;
    overflow: hidden;
    padding: 4px;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  .tab_item {
    border-radius: 3em;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-grow: 1;
    height: 2.6em;
    background-color: #fff;
    font-size: clamp( 11px, 3.5vw, 16px );
    font-weight: bold;
    transition: all 0.2s ease;
    cursor: pointer;
    position: relative;
    overflow: hidden;
  }
  .tab_item:hover,
  .tab_item:has(input:focus) {
    background-color: var(--pink);
    color: #fff;
    opacity: .7;
  }
  .tab_item:has(input:checked),
  .tab_item:has(input:focus:checked),
  .tab_item.select {
    background-color: var(--pink_dark);
    color: #fff;
    opacity: 1;
  }
}

.tab_content {
  background-color: #fff;
  border-radius: 30px;
  overflow: hidden;
  position: absolute;
  height: 0;
  &.is_show {
    overflow: visible;
    position: static;
    height: 440px;
    padding: 10px;
  }
}

.event_detail_box {
  display: flex;
  justify-content: space-between;
  position: relative;
  height: 100%;
  .btn {
    width: 240px;
    min-width: fit-content;
  }
  .detail_img {
    overflow: hidden;
    img {
      height: 100%;
      object-fit: cover;
    }
  }
  .detail_text {
    display: flex;
    flex-direction: column;
    line-height: 1.8;
    height: 100%;
    .ttl {
      text-align: left;
    }
    .btn {
      margin-top: auto;
      margin-bottom: 40px;
      justify-self: flex-end;
      align-self: flex-end;
    }
  }
}

@media screen and (min-width : 769px ){
  #event {
    .inner {
      width: 1064px;
      margin-left: auto;
      margin-right: auto;
    }
    .ttl {
      font-size: 24px;
      margin: 40px 0;
    }
  }
  .event_detail_box {
    .detail_img {
      border-radius: 25px 0 0 25px;
      width: 36%;
    }
    .detail_text {
      width: 59%;
      padding-right: 4%;
    }
  }
  .tabWrapStage {
    .tab_list {
      width: 62%;
    }
  }
}

@media screen and (max-width:768px){
  #event {
    border-radius: 40px;
    padding: 20% 0;
    .inner {
      margin-left: 5%;
      margin-right: 5%;
      position: relative;
    }
    .ttl {
      font-size: 1.4em;
      margin: 30px 0;
    }
  }
  .event_detail_wrap {
    margin-top: 60px;
    .ttl01 {
      font-size: 24px;
    }
  }
  .event_detail_box {
    flex-direction: column;
    .detail_img {
      border-radius: 25px 25px 0 0;
      height: 65vw;
      img {
        width: 100%;
      }
    }
    .detail_text {
      .btn {
        margin-top: 30px;
      }
    }
  }
  .tab_wrap {
    .tab_list {
      border-radius: 20px;
      flex-wrap: wrap;
    }
  }
  .tab_content {
    &.is_show {
      height: auto;
    }
  }
}

/*===============================================
●タイムスケジュール
===============================================*/
#timeschedule {
  background-color: var(--blue);
  background-image: url(../images/2025/bg_dots.png);
  border-radius: 80px;
  padding: 120px 0;
  position: relative;
  margin-top: 16.6vw;
  & > .illust {
    position: absolute;
    left: 50%;
    top: -10.6vw;
    translate: -50% 0;
    width: 82%;
    img {
      width: 100%;
    }
  }
}
.timeschedule_table {
  border-radius: 30px;
  overflow: hidden;
  margin-top: 50px;
  width: 100%;
  tr {
    background-color: #fff;
    display: block;
    margin-bottom: 2px;
  }
  th {
    color: var(--blue);
    letter-spacing: .05em;
    text-align: center;
  }
  td {
    text-align: left;
  }
}

@media screen and (min-width : 769px ){
  #timeschedule {
    .inner {
      margin-left: auto;
      margin-right: auto;
      width: 900px;
    }
    th {
      font-size: 24px;
      padding: 0.8em 20px;
      width: 7em;
    }
    td {
      font-size: 20px;
      padding: 20px 0.8em 20px 0;
    }
  }
}

@media screen and (max-width:768px){
  #timeschedule {
    border-radius: 40px;
    margin-top: 20%;
    padding: 20% 0;
    .inner {
      position: relative;
      margin-left: 5%;
      margin-right: 5%;
    }
    th, td {
      padding: 1em 14px;
    }
    th {
      width: 6em;
    }
  }
}
/*===============================================
●FAQ
===============================================*/
#faq {
  background-color: var(--yellow);
  position: relative;
  text-align: center;
  .lead {
    line-height: 2;
    margin-top: 40px;
  }
  .btn {
    margin: 40px auto 0;
  }
  .fig01, .fig02 {
    position: absolute;
  }
  .fig01 {
    bottom: -40px;
  }
  .fig02 {
    bottom: -30px;
  }
}

@media screen and (min-width : 769px ){
  #faq {
    border-radius: 80px;
    margin-top: 100px;
    padding-top: 70px;
    padding-bottom: 70px;
    .lead {
      font-size: 20px;
    }
    .btn {
      font-size: 22px;
      width: 360px;
    }
    .fig01 {
      left: 8%;
    }
    .fig02 {
      right: 8%;
    }
  }
}

@media screen and (max-width:768px){
  #faq {
    border-radius: 40px;
    margin-top: 10%;
    padding-top: 20%;
    padding-bottom: 20%;
    .btn {
      width: 300px;
      min-width: fit-content;
    }
    .fig01 {
      left: 5%;
      width: 30%;
    }
    .fig02 {
      right: 5%;
      width: 32%;
    }
  }
}

/*===============================================
●昨年の様子
===============================================*/
#main-carousel {
  margin-top: 50px;
  li {
    border-radius: 30px;
    overflow: hidden;
    height: 600px;
    img {
      height: 100%;
      width: 100%;
      object-fit: cover;
    }
  }
  .splide__arrow {
    background-color: #fff;
    border: 2px solid var(--brown);
    border-radius: 5em;
    cursor: pointer;
    width: 80px;
    height: 80px;
    position: absolute;
    top: calc(50% - 40px);
  }
  .splide__arrow--prev {
    left: -50px;
  }
  .splide__arrow--prev svg {
    rotate: 180deg;
  }
  .splide__arrow--next {
    right: -50px;
  }
}
#thumbnail-carousel {
  width: 990px;
  margin: 30px auto;
}
#thumbnail-carousel-list {
  flex-wrap: wrap;
  gap: 14px 0;
  li {
    border-radius: 8px;
    overflow: hidden;
    position: relative;
    &::before {
      content: '';
      display: block;
      width: 100%;
      height: 100%;
    }
  }
  .splide__slide.is-active {
    &::before {
      background-color: var(--pink);
      opacity: 0.8;
    }
  }
}
@media screen and (min-width : 769px ){
  #kyonen {
    padding-top: 140px;
  }
  #kyonen .inner {
    width: 1064px;
    margin-left: auto;
    margin-right: auto;
    position: relative;
  }
}
@media screen and (max-width:768px){
  #kyonen {
    padding-top: 30%;
  }
  #kyonen .inner {
    width: 90%;
    margin-left: auto;
    margin-right: auto;
  }
  #main-carousel {
    margin-top: 40px;
    li {
      height: 68vw;
    }
    .splide__arrow {
      width: 50px;
      height: 50px;
      top: calc(50% - 25px);
    }
    .splide__arrow--prev {
      left: -5%;
    }
    .splide__arrow--next {
      right: -5%;
    }
  }
  #thumbnail-carousel {
    width: 94%;
    margin: 20px auto;
  }
  #thumbnail-carousel-list {
    gap: 14px 3%;
  }
}
/*===============================================
●アクセス
===============================================*/
#access {
  text-align: center;
  iframe {
    width: 100%;
  }
  .text_addres {
    margin-top: 10px;
  }
}
@media screen and (min-width: 769px){
  #access {
    padding-top: 160px;
    .text_place {
      font-size: 32px;
      margin-top: 60px;
    }
    .text_addres {
      font-size: 20px;
    }
    iframe {
      margin-top: 30px;
      height: 440px;
    }
  }
}

@media screen and (max-width:768px){
  #access {
    padding-top: 20%;
    .text_place {
      font-size: 1.5em;
      margin-top: 40px;
    }
    iframe {
      margin-top: 5%;
      height: 60vw;
    }
  }
}
