/*base     ======================================
フォントや文字色、ベースカラーなど
=================================================*/
/*SPサイズのときのみ左右をトリミング*/
@media screen and (max-width: 768px) {
.trimm{
  width: 130%;
  left: -15%;
  position: relative;
}
}



body {
  background-color: #b8d200;
}

/*layout   ======================================
header、footer、hamburger なども
=================================================*/
.main {
  position: relative;
  z-index: 1;
  overflow: hidden;
  margin: auto;
  max-width: 900px;
  filter: drop-shadow(0px 5px 5px rgba(0, 0, 0, 0.3));
}

.container {
  margin: auto;
  max-width: 900px;
  width: 100%;
}

.content {
  margin: auto;
  width: calc(100% - 40px);
}

.content--pdLess {
  max-width: 100%;
  width: 100%;
}

.columns {
  display: flex;
  flex-wrap: wrap;
  margin: auto;
  width: 100%;
  justify-content: center;
}

.column2 {
  width: calc(50%) !important;
}

.column3 {
  width: calc(33.333%) !important;
}

.column4 {
  width: calc(25%) !important;
}


/*component =====================================
サイト内で何度も使いまわしたいもの(btnや各ブロックのタイトルなど)
=================================================*/
.btn--img:hover,
a.btn--img:hover {
  opacity: 0.7;
  transition: 0.3s;
}

a.btn--img:hover img {
  opacity: 1;
}

.kiran-img2 {
  position: relative;
  max-width: 100%;
  overflow: hidden !important;
  z-index: 1;
  border-radius: 60px;
}

.kiran {
  height: 100%;
  width: 20px;
  position: absolute;
  top: -84px;
  left: 0;
  background-color: rgba(255, 247, 212, 0.6);
  opacity: 0;
  transform: rotate(20deg);
  animation: reflection 2s ease-in-out infinite;
  -webkit-transform: rotate(45deg);
  -webkit-animation: reflection 2s ease-in-out infinite;
}

@keyframes reflection {
  0% {
    transform: scale(0) rotate(45deg);
    opacity: 0;
  }
  30% {
    transform: scale(0) rotate(45deg);
    opacity: 0.5;
  }
  31% {
    transform: scale(4) rotate(45deg);
    opacity: 1;
  }
  100% {
    transform: scale(50) rotate(45deg);
    opacity: 0;
  }
}

@-webkit-keyframes reflection {
  0% {
    -webkit-transform: scale(0) rotate(45deg);
    opacity: 0;
  }
  30% {
    -webkit-transform: scale(0) rotate(45deg);
    opacity: 0.5;
  }
  31% {
    -webkit-transform: scale(4) rotate(45deg);
    opacity: 1;
  }
  100% {
    -webkit-transform: scale(50) rotate(45deg);
    opacity: 0;
  }
}


/*contents  ======================================
各コンテンツごとの設定
=================================================*/

/* セクション0: メインビジュアル */
#mainvisual {
  position: relative;
}

.mainvisual_title {
  position: absolute;
  width: 100%;
  top: 0;
  left: 0;
}

.mainvisual_title2 {
  position: absolute;
  width: 100%;
  top: 0%;
  left: 0;
}

/* コンテンツ背景色 */
.main {
  background-color: #7fba27;
}

/* セクション1: ゲスト */
#guest {
  background-color: #7fba27;
}

/* ゲストセクション全体ラッパー */
.guest_wrap {
  position: relative;
  width: 100%;
}

/* 背景円（土台）*/
.guest_bg {
  position: relative;
  width: 100%;
}

/* タイトル */
.guest_title {
  width: 46.1%;
  top: 30.6%;
  left: 27.7%;
}

/* ゲスト共通（position:absolute） */
.guest_pos {
  width: 28%;
}

/* 1: かなえADV（上・中央左） */
.guest_pos--1 {
  top: -1.6%;
  left: 32.3%;
  width: 23.8%;
}

/* 2: MIISA（上・中央右） */
.guest_pos--2 {
  top: 1.7%;
  left: 55%;
  width: 19.8%;
}

/* 3: 大関さおり（右） */
.guest_pos--3 {
  top: 21%;
  right: 7%;
  width: 23.1%;
}

/* 4: *saetube*（右下） */
.guest_pos--4 {
  top: 54.6%;
  right: 8.7%;
  width: 21.3%;
}

/* 5: ちりん（下・右寄り） */
.guest_pos--5 {
  bottom: 2.3%;
  left: 49.4%;
  width: 22.2%;
}

/* 6: モトベはつこ（下・左寄り） */
.guest_pos--6 {
  bottom: 4.3%;
  left: 23.8%;
  width: 25.8%;
}

/* 7: おりきちゃんねる（左下） */
.guest_pos--7 {
  top: 42%;
  left: 7%;
  width: 23%;
}

/* 8: わっす（左） */
.guest_pos--8 {
  top: 13.7%;
  left: 11.4%;
  width: 23.4%;
}

/* セクション3: MAP */

/* 白背景・角丸カード 80%幅 */
.map_card {
  width: 70%;
  margin: 0 auto;
  background-color: #fff;
  border-radius: 20px;
  overflow: hidden;
  padding: 0;
}

/* タイトル・住所テキスト：カード内74%幅 */
.map_text {
  width: 74%;
  margin: 0 auto;
}

/* タイトル・住所テキスト：カード幅100% */
.map_text--full {
  width: 100%;
  margin: 0 auto;
}

/* 地図：カード幅いっぱい・アスペクト比固定でレスポンシブ */
.map_embed {
  position: relative;
  width: 100%;
  padding-top: 56.25%; /* 16:9 */
  overflow: hidden;
  margin: 0;
}

.map_embed iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

/* セクション4: ディーラーショップ グリッド */
.dealershop_grid {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  background-color: #fff;
  padding: 4%;
  box-sizing: border-box;
}

.dealershop_item {
  width: 33.333%;
  padding: 1%;
  box-sizing: border-box;
  position: relative;
}

.dealershop_item::after {
  content: '';
  position: absolute;
  top: 4px;
  left: 4px;
  width: calc(100% - 8px);
  height: calc(100% - 8px);
  background-color: #231815;
  z-index: 0;
}

.dealershop_item a,
.dealershop_item p {
  display: block;
  position: relative;
  top: -4px;
  left: -4px;
  border: 1px solid #231815;
  background-color: #fff;
  z-index: 1;
  transition: top 0.1s ease, left 0.1s ease;
}

.dealershop_item a:hover {
  top: 0;
  left: 0;
}

/* セクション5: サプライヤー グリッド */
.supplier_grid {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  background-color: #fff;
  padding: 4%;
  box-sizing: border-box;
}

.supplier_item {
  width: 33.333%;
  padding: 1%;
  box-sizing: border-box;
  position: relative;
}

.supplier_item::after {
  content: '';
  position: absolute;
  top: 4px;
  left: 4px;
  width: calc(100% - 8px);
  height: calc(100% - 8px);
  background-color: #231815;
  z-index: 0;
}

.supplier_item a,
.supplier_item p {
  display: block;
  position: relative;
  top: -4px;
  left: -4px;
  border: 1px solid #231815;
  background-color: #fff;
  z-index: 1;
  transition: top 0.1s ease, left 0.1s ease;
}

.supplier_item a:hover {
  top: 0;
  left: 0;
}

/* セクション6: キッチンカー グリッド */
.kichincar_grid {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  background-color: #fff;
  padding: 4%;
  box-sizing: border-box;
}

.kichincar_item {
  width: 50%;
  padding: 1%;
  box-sizing: border-box;
  position: relative;
}

.kichincar_item::after {
  content: '';
  position: absolute;
  top: 4px;
  left: 4px;
  width: calc(100% - 8px);
  height: calc(100% - 8px);
  background-color: #999;
  z-index: 0;
}

.kichincar_item a,
.kichincar_item p {
  display: block;
  position: relative;
  top: -4px;
  left: -4px;
  border: 1px solid #231815;
  background-color: #fff;
  z-index: 1;
  transition: top 0.1s ease, left 0.1s ease;
}

.kichincar_item a:hover {
  top: 0;
  left: 0;
}

/* セクション7: その他キッチンカー グリッド */
.other_kichincar_grid {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  background-color: #fff;
  padding: 4%;
  box-sizing: border-box;
}

.other_kichincar_item {
  width: 50%;
  padding: 1%;
  box-sizing: border-box;
  position: relative;
}

.other_kichincar_item::after {
  content: '';
  position: absolute;
  top: 4px;
  left: 4px;
  width: calc(100% - 8px);
  height: calc(100% - 8px);
  background-color: #231815;
  z-index: 0;
}

.other_kichincar_item a,
.other_kichincar_item p {
  display: block;
  position: relative;
  top: -4px;
  left: -4px;
  border: 1px solid #231815;
  background-color: #fff;
  z-index: 1;
  transition: top 0.1s ease, left 0.1s ease;
}

.other_kichincar_item a:hover {
  top: 0;
  left: 0;
}

/* TOPボタン */
#page_top {
  position: fixed;
  right: 5px;
  bottom: 10px;
  z-index: 100;
  width: 45px;
  height: 45px;
  border-radius: 50%;
  background: #888888;
  opacity: 0.6;
  text-align: center;
  font-weight: bold;
}

#page_top a {
  position: relative;
  display: block;
  width: 45px;
  height: 45px;
  text-decoration: none;
  color: #FFF;
  padding: 25px 0px 0 3px;
  font-size: 10px;
}

#page_top a::before {
  position: absolute;
  top: -33px;
  right: -2px;
  bottom: 0;
  left: 0;
  margin: auto;
  width: 35px;
  height: 35px;
  color: #fff;
  content: '\f106';
  text-align: center;
  font-weight: 600;
  font-size: 35px;
  font-family: 'Font Awesome 5 Free';
}

/* 固定ボタン（オンライン決済） */
#fixed_btn {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  box-sizing: border-box;
  z-index: 200;
  background-color: #000;
  padding: 8px 16px 12px;
}

#fixed_btn form {
  display: block;
  width: 100%;
  max-width: 400px;
  margin: 0 auto;
  padding: 0;
  box-sizing: border-box;
}

#fixed_btn button.btn--img {
  display: block;
  width: 100%;
  background: #fff;
  border: none;
  border-radius: 50px;
  padding: 8px 16px;
  cursor: pointer;
  box-sizing: border-box;
}

#fixed_btn button.btn--img img {
  display: block;
  width: 80%;
  height: auto;
  margin: auto;
}

/*animation  ======================================
各コンテンツごとの設定
=================================================*/
/*fadein*/
.fadein {
  opacity: 0;
}

.fadein--show {
  -webkit-animation: fadein--show .7s;
  animation: fadein--show .7s;
  animation-fill-mode: forwards;
  -webkit-animation-fill-mode: forwards;
}

@-webkit-keyframes fadein--show {
  0% {
    opacity: 0;
    transform: translate(0%, 0%);
  }
  100% {
    opacity: 1;
    transform: translate(0%, 0%);
  }
}

@keyframes fadein--show {
  0% {
    opacity: 0;
    transform: translate(0%, 0%);
  }
  100% {
    opacity: 1;
    transform: translate(0%, 0%);
  }
}

/*slide-left: 左からシュッと*/
.slide-left.fadein--show {
  -webkit-animation: slide-left 0.2s ease-out;
  animation: slide-left 0.2s ease-out;
  animation-fill-mode: forwards;
  -webkit-animation-fill-mode: forwards;
}

@-webkit-keyframes slide-left {
  0% {
    opacity: 0;
    transform: translateX(-10px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes slide-left {
  0% {
    opacity: 0;
    transform: translateX(-10px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

/*slide-up: 下からシュッと*/
.slide-up.fadein--show {
  -webkit-animation: slide-up 0.3s ease-out;
  animation: slide-up 0.3s ease-out;
  animation-fill-mode: forwards;
  -webkit-animation-fill-mode: forwards;
}

@-webkit-keyframes slide-up {
  0% {
    opacity: 0;
    transform: translateY(15px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes slide-up {
  0% {
    opacity: 0;
    transform: translateY(15px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/*boyoyon*/
.boyoyon.fadein--show {
  -webkit-animation: boyoyon 0.5s;
  animation: boyoyon 0.5s;
  animation-delay: 0.3s;
  animation-fill-mode: forwards;
  -webkit-animation-fill-mode: forwards;
}

/* メインビジュアル〜ゲスト連動時間差 */
/* 1: 背景イラスト boyoyon → すぐ */
.mv-delay--1.fadein--show {
  animation-delay: 0s;
  -webkit-animation-delay: 0s;
}
/* 2: maintitle2 boyoyon → 背景と同タイミング(すぐ) */
.mv-delay--2.fadein--show {
  animation-delay: 0s;
  -webkit-animation-delay: 0s;
}
/* 3: maintitle slide-left → 少し遅れて(0.6s後) */
.mv-delay--3.fadein--show {
  animation-delay: 0.6s;
  -webkit-animation-delay: 0.6s;
}

@-webkit-keyframes boyoyon {
  0% {
    opacity: 0;
    transform: scale(1.2);
  }
  50% {
    transform: scale(0.9);
  }
  100% {
    opacity: 1;
    transform: scale(1.0);
  }
}

@keyframes boyoyon {
  0% {
    opacity: 0;
    transform: scale(1.2);
  }
  50% {
    transform: scale(0.9);
  }
  100% {
    opacity: 1;
    transform: scale(1.0);
  }
}
