@charset "utf-8";

/* 変数---------------------- */
:root {
    --bg-color-1: #BB1818;
    --bg-color-2: #A40000;
    --bg-color-event: #F9EDDF;
    --font-color: #fff;
    --fz-s: 14px;
    --fz-m: 18px;
    --fz-l: 24px;
    --fz-ll: 28px;
    --color-event: #EF5801; 
}
/* -------------------------- */



/* フォントサイズ-------------- */
h2 {
    font-size: 32px;
    padding-bottom: 0.75em;
    @media (max-width: 768px) {
      font-size: 24px;
    }
}
.fz-s {
    font-size: var(--fz-s);
}
.fz-m {
    font-size: var(--fz-m);
}
.fz-l {
    font-size: var(--fz-l);
}
/* -------------------------- */


/* 初期化 */
html, body { height: 100%; }
img { border: none; }

html {
  scroll-behavior: smooth;
}

/* 基本設定 */
@font-face {
    font-family: "NotoSansJp";
    src: url("../fonts/NotoSansJP-VariableFont_wght.ttf") format("truetype");
  }

body {
    font-family: 'NotoSansJp', "游ゴシック", "Yu Gothic", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "Yu Gothic", sans-serif; 
    line-height: 1.5;
    letter-spacing: 0.05em;
    background: var(--bg-color-1);
    color: var(--font-color);
    overflow-x: hidden;
    width:100%;
    max-width: 2000px;
    margin: 0 auto;
}

img {
    max-width: 100%;
}

iframe {
  max-width: 100%;
  @media (max-width: 768px) {
    max-height: 320px;
  }  

}

a {
    text-decoration: none;
    color: var(--font-color);
    &:hover {
      opacity: 0.9;
      transition: 0.25s;
    }
}
li {
    list-style: none;
}

/* 見た目は非表示、SEO的には表示 */
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ↓スマホのときのみ表示させるクラス */
.sp { 
  display: none;
  @media (max-width: 768px) {
    display: block;
  }
}

/* ↓pcのときのみ表示させるクラス */
.pc { 
  @media (max-width: 768px) {
    display: none;
  }
}




.container {
    max-width: 1032px;
    margin: auto;
    padding: 0 16px;
}


/* ヘッダー　----------------------------------- */
header {
    padding: 20px;
    position: fixed;
    z-index: 9997;
    & .header-inner {
        display: flex;
        justify-content: space-between;
        align-items: center;
        & .header-left {
            & .header-logo {
                padding: 15px 0;
                width: 40vw;
                min-width: 170px;
                max-width: 250px;
            }
        }
    }
}

.header__insta-icon {
  position: fixed;
  top: 30px;
  right: 96px;
  z-index: 9999;
  width: 50px;
  height: 50px;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  opacity: 0.9;
  @media (max-width: 768px) {
    top: 35px;
    right: 86px;
    width: 38px;
    height: 38px;  
  }
}

/* ハンバーガーメニュー----------------- */
/* fade-styles.css */
.hamburger-fade {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 9999;
    width: 60px;
    height: 60px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
  }
  
  .hamburger-fade__wrapper {
    position: relative;
    width: 30px;
    height: 20px;
    margin: 20px auto;
  }
  
  .hamburger-fade__line {
    position: absolute;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: #fff;
    transition: all 0.5s cubic-bezier(0.23, 1, 0.32, 1);
  }
  .hamburger-title {
    position: relative;
    top: 24px;
    right: 3px;
    font-size: 13px;
  }
  
  .hamburger-fade__line:nth-child(1) { top: 0; }
  .hamburger-fade__line:nth-child(2) { top: 9px; }
  .hamburger-fade__line:nth-child(3) { top: 18px; }
  
  .hamburger-fade.active .hamburger-fade__line {
    background-color: #fff;
  }
  
  .hamburger-fade.active .hamburger-fade__line:nth-child(1) {
    transform: translateY(9px) rotate(45deg);
  }
  
  .hamburger-fade.active .hamburger-fade__line:nth-child(2) {
    opacity: 0;
    transform: translateX(20px);
  }
  
  .hamburger-fade.active .hamburger-fade__line:nth-child(3) {
    transform: translateY(-9px) rotate(-45deg);
  }
  
  .nav-fade {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    visibility: hidden;
    z-index: 9998;
  }
  
  .nav-fade__bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.95);
    opacity: 0;
    transition: opacity 0.5s cubic-bezier(0.23, 1, 0.32, 1);
  }
  
  .nav-fade.active {
    visibility: visible;
  }
  
  .nav-fade.active .nav-fade__bg {
    opacity: 1;
  }
  
  .nav-fade__wrapper {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 100%;
    height: 100%;
    padding: 5vh 10vw;
  }
  
  .nav-fade__list {
    margin: 0;
    padding: 0;
    list-style: none;
  }
  
  .nav-fade__item {
    position: relative;
    margin-bottom: 2vh;
    padding-left: 60px;
    opacity: 0;
    transform: translateY(20px);
    transition: all 0.5s cubic-bezier(0.23, 1, 0.32, 1);
  }
  
  .nav-fade.active .nav-fade__item {
    opacity: 1;
    transform: translateY(0);
  }
  
  .nav-fade.active .nav-fade__item:nth-child(1) { transition-delay: 0.2s; }
  .nav-fade.active .nav-fade__item:nth-child(2) { transition-delay: 0.3s; }
  .nav-fade.active .nav-fade__item:nth-child(3) { transition-delay: 0.4s; }
  .nav-fade.active .nav-fade__item:nth-child(4) { transition-delay: 0.5s; }
  .nav-fade.active .nav-fade__item:nth-child(5) { transition-delay: 0.6s; }
  .nav-fade.active .nav-fade__item:nth-child(6) { transition-delay: 0.7s; }
  .nav-fade.active .nav-fade__item:nth-child(7) { transition-delay: 0.8s; }
  .nav-fade.active .nav-fade__item:nth-child(8) { transition-delay: 0.9s; }
  .nav-fade.active .nav-fade__item:nth-child(9) { transition-delay: 1.0s; }
  .nav-fade.active .nav-fade__item:nth-child(10) { transition-delay: 1.1s; }
  .nav-fade.active .nav-fade__item:nth-child(11) { transition-delay: 1.2s; }
  .nav-fade.active .nav-fade__item:nth-child(12) { transition-delay: 1.3s; }

  
  .nav-fade__number {
    position: absolute;
    left: 0;
    color: #666;
    font-size: 14px;
    font-family: 'Roboto', sans-serif;
  }
  
  .nav-fade__link {
    display: inline-block;
    color: #fff;
    font-size: 32px;
    text-decoration: none;
    transition: color 0.3s ease;
  }
  
  .nav-fade__link:hover {
    color: #4a90e2;
  }
  
  .nav-fade__info {
    margin-top: auto;
    padding-left: 60px;
    color: #666;
    font-size: 14px;
    opacity: 0;
    transform: translateY(20px);
    transition: all 0.5s cubic-bezier(0.23, 1, 0.32, 1) 0.6s;
  }
  
  .nav-fade.active .nav-fade__info {
    opacity: 1;
    transform: translateY(0);
  }
  
  .nav-fade__address,
  .nav-fade__tel {
    margin: 5px 0;
  }
  
  @media (max-width: 768px) {
    .nav-fade__link {
      font-size: 24px;
    }
  
    .nav-fade__item {
      padding-left: 40px;
      margin-bottom: 1.5vh;
    }
  
    .nav-fade__info {
      padding-left: 40px;
    }
  }
/* ハンバーガーメニューのCSSここまで ------------------*/


/* ヘッダーここまで　----------------------------------- */

/* メインビジュアルセクション　ここから-------------- */
.main-visual__section {
    padding-top: 100px;
    background: var(--bg-color-2);
    /* position: relative; */
}
.mv-table-area {
    padding: 10px 0 20px;
    & table {
        width: 100%;
        font-size: var(--fz-l);
    }
    & th,td {
        border-spacing: 0;
        border-bottom: 1px solid var(--bg-color-1);
        padding: 6px 0;
        line-height: 1em;
        
    }
    & .event-time {
        display: flex;
        margin-top: 12px;
        & div {
            margin-right: 10px;
        }
    }
    /* スマホサイズ以下 */
    @media (max-width: 768px) {
      th,td {
        display: block;
        text-align: left;
      }
      th {
        border: none;
      }
      td {
        padding-bottom: 10px;
      }
      .event-time {
        display: block;
        margin-top: 0;
      }
    }
}
/* メインビジュアルセクション　ここまで-------------- */

/* top-message-section ここから-------------------- */
.top-message__section {
    & .top-message-box {
        text-align: center;
        line-height: 2;
        margin: 50px 0;
        padding: 50px;
        background: var(--bg-color-2);
        @media (max-width: 768px) {
          padding: 16px;
          text-align: left;
        }    
    }
    & .slider-area {
        background: var(--bg-color-2);
        padding: 12px 0;
    }
}

/* 無限スクロールアニメーションのCSSここから ------------------- */
@keyframes infinity-scroll-left {
    from {
      transform: translateX(0);
    }
      to {
      transform: translateX(-100%);
    }
    }
    .scroll-infinity__wrap {
      display: flex;
      overflow: hidden;
      z-index: 1;
      position: relative;
    }
    .scroll-infinity__list {
      display: flex;
      list-style: none;
      padding: 0
    }
    .scroll-infinity__list--left {
      animation: infinity-scroll-left 80s infinite linear 0.5s both;
    }
    .scroll-infinity__item {
      width: calc(100vw / 6);
      @media (max-width: 768px) {
        width: calc(100vw / 3);
      }

    }
    .scroll-infinity__item>img {
      width: 100%;
    }
/* 無限スクロールアニメーションのCSSここまで ------------------- */
/* top-message-section ここまで-------------------- */

/* main-food__section ここから ---------------- */
.main-food__section {
    padding: 60px 0;
    background-image: url(../images/main-food-bg.webp);
    background-size: cover;
    background-repeat: repeat;
    & .shuuketu-title {
        font-size: 0;
        background: url("../images/daishuuketu.webp") no-repeat center;
        background-size: contain;
        height: 250px; /* 画像の高さに合わせる */
        /* スマホサイズ以下 */
        @media (max-width: 768px) {
            height: 76px;
        }
    }
    & .food-logo-images {
        padding: 50px 0;
        display: grid;
        grid-template-columns: 1fr 1fr;
        column-gap: 16px;
        row-gap: 30px;
        & img {
            margin: auto;
            max-height: 260px;
            @media (max-width: 768px) {
              max-height: 150px;   
            }
  
        }
        @media (max-width: 768px) {
            grid-template-columns: 1fr 1fr;
            column-gap: 8px;
            row-gap: 16px;    
        }
        & .logo-box {
          display: flex;
          justify-content: center; /* 左右中央 */
          align-items: center;     /* 上下中央 */
          width: 480px;            /* 適宜サイズ */
          height: 340px;
          background: #fff;
          padding: 30px 50px;
          @media (max-width: 768px) {
            width: 100%; 
            height: 180px;
            padding: 16px;
          }
        }
    }
    & .food-menu-title {
        margin-bottom: 30px;
        font-size: 0;
        background: url("../images/foodmenus-title-02.webp") no-repeat center;
        background-size: contain;
        height: 260px; /* 画像の高さに合わせる */
        /* スマホサイズ以下 */
        @media (max-width: 768px) {
            height: 150px;
            background: url("../images/foodmenus-title-sp.webp") no-repeat center;
            background-size: contain;
        }
    }
    & .shop-card {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 40px;
        margin-bottom: 30px;
        background: rgba(0, 0, 0, 0.3);
        padding: 50px;
        @media (max-width: 768px) {
            display: block;
            padding: 30px 16px;
        }
    }
    & .shop-image {
    text-align: right;
    @media (max-width: 768px) {
        text-align: left;
    }
    }

      
    & .shop-image img {
        /* width: 30vw;
        max-width: 500px; */
        height: auto;
        border-radius: 8px;
        width: 100%;
        object-fit: cover;
        @media (max-width: 768px) {
            width: 100%;
        }
      }
      
      & .shop-info {
        flex: 1;
      }
      
      & .shop-name {
        font-size: var(--fz-l);
        margin-bottom: 8px;
      }
      & .bg-black {
        background: #333;
        font-weight: bold;
        padding: 0.1em 1em;
        border-radius: 5px;
        margin-top: 14px;
        display: inline-block;
      }

      & .shop-location {
        background: #555555;
        font-size: 14px;
        border-radius: 5px;
        padding: 3px 10px;
      }
      
      & .shop-items {
        font-size: var(--fz-m);
        list-style: none;
        padding-left: 0;
      }
      
      & .shop-items li::before {
        content: "■";
        color: #d2b679;
        margin-right: 6px;
      }
      & .shop-guide {
        border-top: 1px solid #d2b679;
        border-bottom: 1px solid #d2b679;
        padding: 16px 0;
        margin-top: 16px;
      }
      
}
/* スライダー機能は使用しないため関連スタイル削除 */

/* スライダーのCSS */
.swiper {
  width: 450px;
  height: 350px;
  @media (max-width: 768px) {
    width: 100%;
  }
}
.swiper-button-next, .swiper-button-prev {
  color: #ccc !important;
}
.swiper-pagination-bullet-active {
  background: #ccc !important;
}
.swiper-backface-hidden .swiper-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* main-food__section ここまで ---------------- */

/* bbq-corner__section ここから --------------- */
.bbq-corner__section {
  margin-bottom: 80px;
  & .bbq-section-title {
    background-image: url(../images/bbq-title-bg.webp);
    background-size: cover;
    background-position: center center;
    text-align: center;
    padding: 50px;
    border-top: 6px solid ;
    border-bottom: 6px solid ;
    border-image: linear-gradient(
    to right,      /* グラデーションの方向 */
    #C69A12 0%,
    #FFE9A5 50%,
    #D6A715 100%
    ) 1; /* ← この「1」はグラデーションを枠全体に広げる指定 */
    & .bbq-title-image {
      font-size: 0;
      background-image: url(../images/bbq-title.webp);
      background-position: center center;
      background-size: contain;
      height: 100px;
    }
    @media (max-width: 768px) {
      padding: 20px;
    }
  }
  & .tebura-bbq-title {
    margin: 60px auto;
    font-size: 0;
    background-image: url(../images/tebura-bbq-title.webp);
    background-size: contain;
    background-position: center center;
    height: 200px;
    @media (max-width: 768px) {
      margin: 0;
    }  
  }
  & p {
    text-align: center;
    line-height: 2;
  }
  & figure {
    text-align: center;
    margin: 60px auto;
    @media (max-width: 768px) {
      margin: 20px auto;
    }
    & img {
      max-width: 300px;
    }
  }
  & .bbq-image {
    text-align: center;
    & img {
      margin: auto;
    }
  }
}
/* bbq-corner__section ここまで --------------- */

/* oniku-hanbai__section ここから --------------- */
.oniku-hanbai__section {
  padding: 60px 0 120px;
  background: var(--bg-color-2);
  text-align: center;
  border-top: 6px solid ;
  border-image: linear-gradient(
  to right,      /* グラデーションの方向 */
  #C69A12 0%,
  #FFE9A5 50%,
  #D6A715 100%
  ) 1; /* ← この「1」はグラデーションを枠全体に広げる指定 */
  @media (max-width: 768px) {
    padding-bottom: 30px;
  }
  & h2 {
    margin: 40px 0;
    @media (max-width: 768px) {
      margin: 0;
    }
  }
  & figure {
    margin-bottom: 40px;
  }
}
/* oniku-hanbai__section ここまで --------------- */

/* marche__section ここから --------------- */
.marche__section {
  background: #CE180A;
  text-align: center;
  padding-bottom: 60px;
  @media (max-width: 768px) {
    padding-bottom: 20px;
  }
  & h2 {
    margin-bottom: 40px;
    font-size: 0;
    height: 300px;
    background-image: url(../images/maruche-title.webp);
    background-size: contain;
    background-position: center center;
    @media (max-width: 768px) {
      margin-bottom: 0;
      height: 210px;
    }
  }
  & .marche-image {
    margin: 40px 0 30px;
  }
  & h3 {
    margin: 40px 0;
  }
  .marche-btn {
    margin: 60px 0;
  }
}
/* marche__section ここまで --------------- */

/* kids-corner__section ここから --------------- */
.kids-corner__section {
  background-image: url(../images/kids-corner-bg.webp);
  background-size: cover;
  background-position: center top;
  padding-top: 200px;
  padding-bottom: 100px;
  text-align: center;
  @media (max-width: 768px) {
    padding-top: 80px;
    padding-bottom: 10px;
  }
  & .kids-corner-title-block {
    background: #EF5801;
    padding: 60px;
    border-radius: 30px;
    @media (max-width: 768px) {
      padding: 26px;
    }
    & h2 {
      font-size: 0;
      background-image: url(../images/kids-corner-title.webp);
      background-size: contain;
      background-position: center center;
      height: 250px;
      @media (max-width: 768px) {
        height: 100px;
      }
  
    }
    & h3 {
      margin: 30px 0;
    }
  }
  & .kids-corner-items {
    margin: 60px auto;
    /* display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    @media (max-width: 768px) {
      grid-template-columns: 1fr 1fr;
    } */

  }
}
/* kids-corner__section ここまで --------------- */

/* stage-event__section ここから --------------- */
.stage-event__section {
  color: var(--color-event);
  background: var(--bg-color-event);
  position: relative;
  text-align: center;
  padding-bottom: 60px;
  &::before {
    content: "";
    position: absolute;
    top: -145px;
    left: 50%;
    transform: translateX(-50%);
    display: block;
    width: 100%;
    max-width: 2000px;
    height: 148px;
    background-image: url(../images/stage-event-bg-top.webp);
    background-repeat: no-repeat;
    background-position: center top;
    background-size: cover;
    pointer-events: none;
    @media (max-width: 768px) {
      top: -70px; /* 高さの半分を基準に縮小時の見切れを調整 */
      height: 74px;
    }
  }
  & h2 {
    font-size: 0;
    background-image: url(../images/stage-event-title.webp);
    background-size: contain;
    background-position: center center;
    height: 500px;
    @media (max-width: 768px) {
      height: 300px;
    }
    @media (max-width: 450px) {
      height: 150px;
    }


  }
  & h3 {
    margin: 20px 0;
    font-size: var(--fz-l);
  }
  & .gest-list-block {
    background-image: url(../images/gest-list-bg.webp);
    border: 4px solid #FFEEA1;
    border-radius: 10px;
    margin: 40px auto;
    & ul {
      padding: 30px;
      display: grid;
      grid-template-columns: 1fr 1fr 1fr 1fr;
      @media (max-width: 768px) {
        grid-template-columns: 1fr 1fr;
      }
      @media (max-width: 450px) {
        display: block;
      }  
      & li {
        font-weight: bold;
        padding: 10px;
        font-size: var(--fz-l);
      }  
    }
  }
  & .stage-event-btn {
    margin: 60px 0;
  }
}
/* stage-event__section ここまで --------------- */

/* access__section ここから ---------------------- */
.access-section {
  padding: 60px 0;
  border-top: 6px solid ;
  border-image: linear-gradient(
  to right,      /* グラデーションの方向 */
  #C69A12 0%,
  #FFE9A5 50%,
  #D6A715 100%
  ) 1; /* ← この「1」はグラデーションを枠全体に広げる指定 */
  & h2 {
    text-align: center;
    &:before {
      content: "Access";
      font-size: var(--fz-m);
      display: block;
    }
  }
  & .accses-guide {
    /* max-width: 700px; */
    margin: 0 auto 40px;
  }
  & .accsess-media {
    padding: 40px 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    border-top: 2px solid #fff;
    @media (max-width: 768px) {
      display: block;
    }  
    & .accsess-info {
      & dt {
        font-size: var(--fz-l);
        font-weight: bold;
      }
      & dd {
        padding-bottom: 10px;
      }
      & .location-name {
        font-weight: bold;
        display: inline-block;
        padding: 10px 0;
        margin: 10px 0;
        border-radius: 3px;
      }
    }
  }
}
/* access__section ここまで ---------------------- */

/* sponsor__section　ここから -------------------- */
.sponser__section {
  padding-bottom: 60px;
  text-align: center;
  border-top: 6px solid ;
  border-bottom: 6px solid ;
  border-image: linear-gradient(
  to right,      /* グラデーションの方向 */
  #C69A12 0%,
  #FFE9A5 50%,
  #D6A715 100%
  ) 1; /* ← この「1」はグラデーションを枠全体に広げる指定 */
  & h2 {
    background: var(--bg-color-2);
    padding: 1em 0;
  }
  & h3 {
    margin: 40px auto;
    font-size: var(--fz-l);
  }
  & .keishouryaku {
    /* color: var(--bg-color-1); */
    display: block;
    margin-top: 20px;
    margin-bottom: 5px;
  }
  & .sponsers-box {
    background: #fff;
    padding: 40px;
    margin: 20px auto 40px;
    @media (max-width: 768px) {
      padding: 40px 10px 10px 10px;
    }
    & figure {
      & img {
        width: 95%;
        @media (max-width: 768px) {
          width: 100%
        }
    
      }
    }
    & li {
      @media (max-width: 768px) {
        margin: 5px;
      }
    }
    & .sponsor-list-10 {
      display: grid;
      place-items: center;
      grid-template-columns: 1fr;
      & li {
        margin: 10px;
        color: #333;
        font-weight: bold;
        font-size: var(--fz-m);
        @media (max-width: 768px) {
          margin: 5px;
        }
      }
    }

    & .sponsor-list-5 {
      display: grid;
      place-items: center;
      grid-template-columns: 1fr 1fr;
      @media (max-width: 768px) {
        grid-template-columns: 1fr 1fr;
      }  
      & li {
        margin: 10px;
        color: #333;
        font-weight: bold;
        font-size: var(--fz-m);
      }
    }

    & .sponsor-list-3 {
      display: grid;
      place-items: center;
      grid-template-columns: 1fr 1fr 1fr;
      @media (max-width: 768px) {
        grid-template-columns: 1fr 1fr;
      }  
      & li {
        margin: 10px;
        color: #333;
        font-weight: bold;
        font-size: var(--fz-m);
      }
    }

    & .sponsor-list-2 {
      display: grid;
      place-items: center;
      grid-template-columns: 1fr 1fr 1fr 1fr;
      @media (max-width: 768px) {
        grid-template-columns: 1fr 1fr;
      }  
      & li {
        margin: 10px;
        color: #333;
        font-weight: bold;
        font-size: var(--fz-m);
      }
    }


    & .sponsor-list-1 {
      display: grid;
      place-items: center;
      grid-template-columns: 1fr 1fr 1fr 1fr;
      @media (max-width: 768px) {
        grid-template-columns: 1fr 1fr;
      }  
      & li {
        margin: 10px;
        color: #333;
        font-weight: bold;
        font-size: var(--fz-m);
      }
    }

    & .sponsor-border {
      border-top: 2px solid #e7d1d1;
      margin: 40px 0;
      height: 1px;
    }
  }
}
/* sponsor__section　ここまで -------------------- */

/* precautions__section ここから ----------------- */
.precautions__section {
  background: var(--bg-color-2);
  padding: 60px 0;
  & .precautions-box {
    color: var(--bg-color-1);
    background: #fff;
    padding: 60px;
    margin: 60px 0;
    @media (max-width: 768px) {
      padding: 20px;
    }  

    & h2 {
      text-align: center;
      & .min-text {
        display: block;
        font-size: var(--fz-s);
      }
    }
    & h3 {
      border-top: 2px solid var(--bg-color-2);
      padding: 16px 0;
    }
    & .sponsor-border {
      border-top: 1px solid var(--bg-color-1);
      margin: 40px 0;
      height: 1px;
    }
    & ul {
      margin-bottom: 20px;
      & li {
        list-style: inside;
        text-indent: -1.3em;
        padding-left: 1.3em;
        margin-bottom: 0.75em;
      }
    }
  }
}
/* precautions__section ここまで ----------------- */

/* last-message__section ここから ----------------- */
.last-message__section {
  padding: 60px 0;
  text-align: center;
  border-top: 6px solid ;
  border-bottom: 6px solid ;
  border-image: linear-gradient(
  to right,      /* グラデーションの方向 */
  #C69A12 0%,
  #FFE9A5 50%,
  #D6A715 100%
  ) 1; /* ← この「1」はグラデーションを枠全体に広げる指定 */
  & .last-message {
    max-width: 700px;
    line-height: 2;
    margin: auto;
  }
  & .info-btn {
    margin: 30px 0;
  }
}
/* last-message__section ここまで ----------------- */

/* contact__section ここから ---------------------- */
.contact__section {
  text-align: center;
  background: var(--bg-color-2);
  padding: 60px 0;
  & h2 {
    padding: 20px 0;
    &:before {
      content: "contact";
      display: block;
      font-size: var(--fz-m);
    }
  }
  .contant-btns {
    margin: 40px 60px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    text-align: center;
    @media (max-width: 768px) {
      display: block;
      margin: 40px 0;
    }  
    & .tel-btn,
    & .contact-btn {
      text-align: center;
      margin: 10px;
      & a {
        color: var(--bg-color-1);
        font-weight: bold;
        display: block;
        padding: 30px 0;
        border-radius: 100vh;
        background: #fff;
        font-size: var(--fz-m);
        @media (max-width: 768px) {
          max-width: 300px;
          margin: 20px auto;
        }      
      }
    }
  }
}
/* contact__section ここまで ---------------------- */

/* footer ここから -------------------------------- */
footer {
  background: #8F0B0B;
  text-align: center;
  padding: 50px;
  font-weight: bold;
  font-size: var(--fz-s);
}

/* ↓ページトップボタン */
.pagetop {
  height: 70px;
  width: 70px;
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 2;
  @media (max-width: 768px) {
    height: 50px;
    width: 50px;
  }  
}

/* footer ここまで -------------------------------- */

/* Instagram埋め込み */
/* .insta-widget {
  & h3 {
    font-size: var(--fz-ll);
    margin-bottom: 10px;
  }
} */

/* ----------------------------------------------- */
/* マルシェ店舗一覧ページ */
/* ----------------------------------------------- */

.marche-top-message {
  text-align: center;
  /* margin-bottom: 40px; */
}
.marche-list-page {
  padding-top: 100px;
  & .top-h2 {
    margin-top: 80px;
  } 
  & h2 {
    text-align: center;
    margin: 16px 0;
    padding: 0;
  }
  & .kitchencar-section {
    /* background: #e94511; */
    background-image: url(../images/orange-bg-d.webp);
    background-size: cover;
    padding: 40px 0 80px;
    margin-top: 20px;
    & h2 {
      text-align: center;
      & img {
        width: 80%;
        @media (max-width: 768px) {
          width: 100%;
        }    
      }
    }

    & .food-shops {
      display: grid;
      grid-template-columns: 1fr 1fr 1fr;
      @media (max-width: 768px) {
        display: block;
      }      
      & .food-shop {
        background: #fff;
        /* border: 2px solid var(--bg-color-2); */
        border-radius: 6px;
        padding: 16px 16px 30px 16px;
        margin: 10px;
        color: #333;
        box-shadow: 0px 2px 4px #bf3500;
        & figure {
          text-align: center;
        }
        img {
          width: 280px;
          height: 210px;
          object-fit: cover;
        }
        @media (max-width: 768px) {
          max-width: 450px;
          margin: 26px auto;
        }        
        & h3 {
          padding: 6px 0;
          & .small {
            font-size: 14px;
            padding: 0 5px;
          }
        }
        & .shop-location {
          background: #676767;
          color: #fff;
          font-size: 14px;
          padding: 0.1em 0.5em;
          border-radius: 5px;
        }
        & ul {
          border-bottom: 1px solid;
          padding-top: 12px;
          padding-bottom: 12px;
          margin-bottom: 6px;
          font-weight: bold;
          & li::before {
            content: "■";
          }
        }
      }
    }
  }
  & .marche-list__section {
    padding: 60px 0;
    text-align: center;
  }
  /* & h2 {
    margin-bottom: 40px;
  } */
  & .marche-list-box {
    background: #FFF4F4;
    padding: 60px;
    border: 4px solid #8B1E1F;
    border-radius: 20px;
    margin: 60px auto 0;
    color: #CA2424;
    @media (max-width: 768px) {
      padding: 20px;
    }
    & h3 {
      & img {
        width: 80%;
        @media (max-width: 768px) {
          width: 100%;
        }    
      }
    }
    & .order-text {
      font-weight: bold;
      display: block;
      margin-bottom: 1em;
    }
    & .shop {
      display: flex;
      align-items: center;
      border-bottom: 1px dotted #CA2424; 
      padding: 1em 0;
      text-align: left;
      & .menus {
        color: #CA2424;
        font-weight: bold;
      }
      @media (max-width: 768px) {
        display: block;
        text-align: left;
        .menus {
          margin-top: 0.5em;
          & span {
          display: block;
          }
        }
      }
      & span {
        display: block;
      }
      & .open-date {
        background: #ffdcda;
        padding: 6px 10px;
        border-radius: 5px;
        font-weight: bold;
        margin-right: 15px;
        min-width: 170px;
        font-size: 14px;
        @media (max-width: 768px) {
          padding: 0.5em;
          margin-right: 0;
          border-radius: 0;
        }  
      }   
      & .shop-name {
        background: #CA2424;
        color: #fff;
        padding: 0.5em 2em;
        border-radius: 5px;
        margin-right: 20px;
        font-weight: bold;
        width: 300px;
        @media (max-width: 768px) {
          padding: 0.5em;
          margin-right: 0;
          border-radius: 0;
          width: 100%;
        }  
    
      }
    }
  }
}

.return__section {
  padding-bottom: 60px;
  margin: 60px 0;
  text-align: center;
  & .toppage-btn {
    background: #fff;
    font-weight: bold;
    color: var(--bg-color-1);
    border-radius: 100vh;
    padding: 30px 60px;
    border-radius: 100vh;
  }
}

/* キッチンカーの画像スライダー */
.kitchencar-swiper {
  width: 280px;
  height: 210px;
  /* @media (max-width: 768px) {
    width: 100%;
  }         */
}
/* マルシェ店舗一覧ページ　ここまで --------------------- */ 

/* ----------------------------------------------- */
/* イベントスケジュールページ */
/* ----------------------------------------------- */
.stage-page {
  padding-top: 100px;
  & .stage-image {
    & img {
      width: 100%;
      margin-bottom: -5px;
    }
  }
  & .stage__section {
    text-align: center;
    padding: 60px 0;
    background: var(--bg-color-event);
    color: var(--color-event);
    & article {
      & p {
        margin: 0 0 30px 0;
      }
    } 

    & .event-Schedule-box {
      background: var(--color-event);
      border-radius: 20px;
      padding: 20px;
      & h2 {
        color: #FFF830;
        padding: 10px 0;
        text-align: center;
      }
      & .box-inner {
        text-align: left;
        background: #fff;
        border-radius: 20px;
        padding: 20px;
        display: grid;
        grid-template-columns: 1fr 1fr;
        @media (max-width: 768px) {
          display: block;
        }  
        & .day1, .day2 {
          padding: 30px;
          @media (max-width: 768px) {
            padding: 0;
          }    
        }
        & .day1 {
          border-right: 1px solid var(--color-event);
          @media (max-width: 768px) {
            border: none;
            padding-bottom: 30px;
          }    
        }
        & h3 {
          border-bottom: 2px solid var(--color-event);
          padding-bottom: 0.5em;
          margin-bottom: 0.5em;
        }
        .performance {
          border-bottom: 1px dotted var(--color-event);
          padding: 20px 0;
          color: #333;
          & .time {
            color: var(--color-event);
            font-weight: bold;
            font-size: var(--fz-m);
          }
          & .performer {
            font-weight: bold;
          }
        }
      }
    }
    & .gest-list-block {
      background-image: url(../images/gest-list-bg.webp);
      border: 4px solid #FFEEA1;
      border-radius: 10px;
      margin: 40px auto;
      & ul {
        padding: 30px;
        display: grid;
        grid-template-columns: 1fr 1fr 1fr 1fr;
        @media (max-width: 768px) {
          grid-template-columns: 1fr 1fr;
        }
        /* @media (max-width: 450px) {
          display: block;
        }   */
        & li {
          font-weight: bold;
          padding: 10px;
          font-size: var(--fz-m);
        }  
      }
    }
  }
  & .stage__return__section {
    background: var(--bg-color-event);
    margin: 0;
    padding-bottom: 90px;
    & .toppage-btn {
      color: var(--color-event);
    }
  }
}
/* イベントスケジュールページここまで　------------ */



/* ----------------------------------------------- */
/* イベント詳細ページ */
/* ----------------------------------------------- */
.info-page {
  padding-top: 100px;
  & .info__section {
    padding: 60px 0;
  }
}

/* テーブル */
.event-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 60px;
  border-top: 1px solid #fff;
}

.event-table th,
.event-table td {
  border-bottom: 1px solid #fff;
  padding: 15px;
  text-align: left;
  vertical-align: top;
  @media (max-width: 768px) {
    display: block;
  }  
}

.event-table th {
  width: 150px;
  font-weight: bold;
  color: #fff;
  white-space: nowrap;
  @media (max-width: 768px) {
    border: none;
    padding-bottom: 0;
  }  
}

.event-table td small {
  display: block;
  margin-top: 5px;
  font-size: 13px;
  color: #ffcccc;
}

/* 出店店舗 */
.shop-list {
  margin-bottom: 40px;
}

.shop-list h2 {
  font-size: 20px;
  margin-bottom: 15px;
  padding-bottom: 5px;
  border-bottom: 1px solid #fff;
}

.shop-list dl {
  margin: 0;
  padding: 0;
}

.shop-list dt {
  font-weight: bold;
  margin-top: 10px;
}

.shop-list dd {
  margin: 0 0 10px 20px;
  color: #eee;
}

/* 協賛企業 */
.sponsor-list {
  /* column-count: 2; */
  column-gap: 20px;
  line-height: 1.8;
}

/* スマホ対応 */
@media (max-width: 768px) {
  .event-table th {
    width: 100px;
  }

  h1.event-title {
    font-size: 22px;
  }

  .shop-list h2 {
    font-size: 18px;
  }

  .sponsor-list {
    column-count: 1;
  }
}
/* イベント詳細ページここまで　------------ */
