@charset "UTF-8";
*:target {
    scroll-margin-top: 80px;
  }
.pc {
  display: none !important;
}
.sp {
  display: block !important;
}
.tab {
  display: none !important;
}
@media (max-width: 600px) {
  .sp_none{
    display: none !important;
  }
}
/* タブレット用メディアクエリ */
@media (min-width: 600px) and (max-width: 767px) {
  .tab {
    display: block !important;
  }
  .sp {
    display: block !important;
  }
  .pc {
    display: none !important;
  }
}

/* PC用メディアクエリ */
@media (min-width: 768px) {
  .pc {
    display: block !important;
  }
  .sp {
    display: none !important;
  }
  .tab {
    display: block !important;
  }
}

/* 共通 */
body {
  overflow-x: hidden;
}
img {width: 100%;}
a {transition: 0.3s;}
a:hover {
  opacity: 0.7;
  cursor: pointer;
}
/**** 汎用CSS ****/
.flex{
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0 20px;
}
@media (min-width: 768px) {
  .flex{
    gap: 30px;
  }
}
.fc_red{
  color: #f23;
}
.fc_acc{
  color: #b7171e;
}
.emp{
  font-weight: bold;
}
.txt_center{
  text-align: center;
}
.border{
  border: 1px solid #b7171e;
}
.badge_circle{
  width: 8vw;
  height: 8vw; 
  background-color: #000;
  color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
  font-weight: bold;
}
.generic_btn{
  position: relative;
  width: fit-content;
  display: block;
  padding: 20px;
  background: #d2000f;
  color: #fff;
  text-align: center;
  font-weight: bold;
}
.wh_btn{
  position: relative;
  width: 100%;
  display: block;
  padding: 10px;
  background: #fff;
  border-radius: 50px;
  color: #41210f;
  text-align: center;
  font-weight: bold;
}
@media (min-width: 768px) {
  .wh_btn{
    width: fit-content;
    margin: 0 auto;
    padding: 20px;
  }
}
.arrow--right:after{
  content: '';
  position: absolute;
  top: 50%;
  width: 8px;
  height: 8px;
  margin-top: -5px;
  border-radius: 1px;
  right: 16px;
  left: inherit;
  -webkit-transform: rotate(455deg);
  transform: rotate(45deg);
  border-top: solid 2px #fff;
  border-right: solid 2px #fff;
}
/* 見出しのフォントサイズ（レスポンシブ対応） */
h1.heading {
  font-size: clamp(2rem, 5vw, 3rem); /* 最小32px, 最大48px */
  line-height: 1.3;
  font-weight: bold;
}

h2.heading {
  font-size: clamp(1.5rem, 4vw, 2.5rem); /* 最小24px, 最大40px */
  line-height: 1.4;
  font-weight: bold;
}

h3.heading {
  font-size: clamp(1.5rem, 3.5vw, 2rem); /* 最小24px, 最大32px */
  line-height: 1.5;
  font-weight: bold;
}

p.sub_heading {
  font-size: clamp(1rem, 2.5vw, 1.25rem); /* 最小16px, 最大20px */
  line-height: 1.4;
}
/* 小さい注意書き用 */
.note_text {
  line-height: 1.4;
  padding: 10px 0 0;
  font-size: clamp(0.6rem, 3vw, 0.68rem)!important; /* 最小10px, 最大11px */
}
.note_text.colab-set {
  line-height: 1.4;
  padding: 0 0 0;
  font-size: clamp(0.8rem, 3vw, 1rem) !important;
  font-weight: bold;
}
@media (min-width: 768px) {
  .note_text img {
    width: 740px;
  }
}
/********************  アニメーション ********************/
/* 点滅 */
.blinking{
	-webkit-animation:blink 1s ease-in-out infinite alternate;
    -moz-animation:blink 1s ease-in-out infinite alternate;
    animation:blink 1s ease-in-out infinite alternate;
}
@-webkit-keyframes blink{
    0% {opacity:0;}
    100% {opacity:1;}
}
@-moz-keyframes blink{
    0% {opacity:0;}
    100% {opacity:1;}
}
@keyframes blink{
    0% {opacity:0;}
    100% {opacity:1;}
}
.slide-in {
  overflow: hidden;
  display: inline-block;
}
.slide-in_inner {
  display: inline-block;
}
.leftAnime {
  opacity: 0; /* 事前に透過0にして消しておく */
}
.slideAnimeLeftRight {
  animation-name: slideTextX100;
  animation-duration: 0.8s;
  animation-fill-mode: forwards;
  opacity: 1;
}
.slideAnimeRightLeft {
  animation-name: slideTextX-100;
  animation-duration: 0.8s;
  animation-fill-mode: forwards;
  opacity: 1;
}
.effect-fade {
  opacity: 0;
  transform: translate(0, 60px);
  transition: 1.3s;
}
.effect-fade-up {
	opacity: 0;
	transform: translate(0, -50px);
  transition: 1.3s;
}
.effect-fade-l {
  opacity: 0;
  transform: translate(-60px, 0);
  transition: 1.8s;
}
.effect-fade-r {
  opacity: 0;
  transform: translate(60px, 0);
  transition: 1.8s;
}
.effect-fade.on,
.effect-fade-l.on,
.effect-fade-r.on,
.effect-fade-up.on {
  opacity: 1;
  transform: translate(0, 0);
}
.fade-in,
 .fade-in-normal {
    opacity: 0; /* 初期は透明 */
    transition: opacity 1s ease-in-out; /* フェードインのトランジション */
}
.fade-in.fadeIn,
 .fade-in-normal.fadeIn {
  opacity: 1;
}

@keyframes slideTextX100 {
  from {
    transform: translateX(-100%); /* 要素を左の枠外に移動 */
    opacity: 0;
  }
  to {
    transform: translateX(0); /* 要素を元の位置に移動 */
    opacity: 1;
  }
}

@keyframes slideTextX-100 {
  from {
    transform: translateX(100%); /* 要素を右の枠外に移動 */
    opacity: 0;
  }
  to {
    transform: translateX(0); /* 要素を元の位置に移動 */
    opacity: 1;
  }
}

@keyframes poyo {
  from, to {
    transform: none;
  }
  10% {
    transform: scale(1.2);
  }
  40% {
    transform: scale(.9);
  }
  60% {
    transform: scale(1.04);
  }
  80% {
    transform: scale(.98);
  }
}
/**** メインビジュアル ****/

.main-visual {
  position: relative;
  width: 100%;
  overflow: hidden;
  background-color: #fef222;
  background-image: url("../images/bg_product-transform.webp");
  background-repeat: repeat;
  background-size: 900px auto;
  animation: mainBgScroll 40s linear infinite;
}

@keyframes mainBgScroll {
  from {
    background-position: 0 0;
  }
  to {
    background-position: 0 -1000px;
  }
}

.main-visual picture,
.main-visual img {
  display: block;
  width: 100%;
}

.main-visual__waku {
  position: relative;
  z-index: 2;
  opacity: 0;
  animation: mainWakuFadeIn 1.2s ease-out forwards;
}

.main-visual__main {
  position: absolute;
  inset: 0;
  z-index: 1;

  opacity: 0;
  transform: translateY(30px) scale(1.2);
  transform-origin: center bottom;

  animation:
    mainVisualFadeIn 1.8s cubic-bezier(0.19, 1, 0.22, 1) forwards;
}

@keyframes mainWakuFadeIn {
  to {
    opacity: 1;
  }
}

@keyframes mainVisualFadeIn {
  0% {
    opacity: 0;
    transform: translateY(30px) scale(1.2);
  }

  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
@keyframes mainVisualShakeLoop {
  0%, 92%, 100% {
    transform: translateY(0) scale(1) rotate(0deg);
  }

  94% {
    transform: translateY(1px) scale(1) rotate(-0.35deg);
  }

  96% {
    transform: translateY(-1px) scale(1) rotate(0.35deg);
  }

  98% {
    transform: translateY(1px) scale(1) rotate(-0.2deg);
  }
}

.main-visual__main img,
.main-visual__waku img {
  min-height: clamp(0px, 75vw, 840px);
  object-fit: cover;
}

@media (min-width: 768px) {
  .main-visual__main img,
  .main-visual__waku img {
    min-height: 840px;
  }
}

@media screen and (max-width: 1120px) {
  .main-visual__main img,
  .main-visual__waku img {
    min-height: 740px;
  }
}


/**** メインコンテンツ ****/
.main_wrap{
  background: url("../images/body_bg.webp");
  /*
  background-color: #fff100;
  background-position: center center;
  background-repeat: no-repeat;
  background-attachment: fixed;
  background-size: cover;
  overflow: hidden;
  */
}
.main_inner{
  width: 100%;
  background: #fff;
  max-width: 1180px;
  margin: 0 auto;
  position: relative;
}

.block::before,
.block::after{
  content: "";
  position: absolute;
  top: 0;
  width: 16px;
  height: 100%;
  background-image: url('../images/film_img.webp');
  background-repeat: repeat-y;
  background-size: contain;
  z-index: 2;
  animation: scroll-vertical 160s linear infinite;
  mix-blend-mode: multiply;
}
.block::before{
  left: -1px;
  transform: scaleX(-1);
}
.block::after{
  right: 0;
}
@media (min-width: 375px) {
  .block::before,
  .block::after{
    width: 12px;
  }
}
@media (min-width: 768px) {
  .block{
    padding: 0;
  } 
  .block::before,
  .block::after{
    width: 22px;
  }
}
@keyframes scroll-vertical {
  0% {
    background-position: 0 100%;
  }
  100% {
    background-position: 0 0;
  }
}
/**** 金額 ****/
p.menu_text{
  font-size: clamp(0.813rem, 4.3vw, 1.5rem); /* 最小13px, 最大24px */
  font-weight: bold;
  line-height: 1.2;
  color: #f23;
  font-feature-settings: "palt";
  margin-bottom: 10px;
}
.menu_name{
  width: 100%;
  font-size: 0.9375rem;
  font-weight: bold;
  line-height: 1.2;
  font-feature-settings: "palt";
  margin-bottom: 5px;
}
.menu_name span{
  display: block;
  margin-bottom: 5px;
  font-size: 0.9375rem;
}
@media (min-width: 375px) {
  .menu_name{
    font-size: clamp(1rem, 5.3vw, 2.125rem); /* 最小16px, 最大34px */
  }
  .menu_name span{
    font-size: clamp(1rem, 3.5vw, 1.25rem); /* 最小16px, 最大20px */
  }
}
@media (min-width: 768px) {
  p.menu_text{
    font-size: clamp(1.313rem, 2vw, 1.5rem); /* 最小21px, 最大24px */
    margin-bottom: 18px;
  }
  .menu_name{
    font-size: clamp(1.875rem, 2.8vw, 2.125rem); /* 最小30px, 最大34px */
    margin-bottom: 0px;
  }
  .menu_name span{
    font-size: 20px;
    margin-bottom: 10px;
  }
}
.menu_price,
.menu_price_wrap{
  display: flex;
  align-items:baseline;
  justify-content: flex-end;
  flex-wrap: wrap;
  font-weight: bold;
  line-height: 1.2;
  margin-left: auto;
} 
.kara{
  display: inline-block;
  padding: 0 5px;
}
p.menu_price{
  font-size: clamp(1.125rem, 6vw, 2.75rem); /* 最小18px, 最大44px */
}
p.menu_price .yen,
p.menu_price .kara{
  font-size: clamp(1.125rem, 5vw, 2.125rem); /* 最小18px, 最大34px */
}
p.menu_tax{
  font-size: clamp(1rem, 3vw, 1.5rem); /* 最小16px, 最大24px */
  font-weight: bold;
  font-feature-settings: "palt";
}
p.menu_tax .yen{
  font-size: clamp(0.875rem, 3vw, 1.25rem); /* 最小14px, 最大20px */
}
p.menu_tax span{
  font-size: clamp(0.75rem, 3vw, 1rem); /* 最小12px, 最大16px */
}
.topping{
  position: relative;
}
.topping .to_title h2{
  width: 100%;
  margin-bottom: 10px;
  padding: 0px 0 4px 0;
  background: #f1712e;
  border-radius: 50px;
  border: 2px solid #fff;
  font-size: 1.6rem;
  color: #fff;
}
.topping_list{
  display:flex;
  justify-content: center;
  flex-wrap:wrap;
  gap:15px;
}
.topping_list .to_box{
  width:calc(50% - 7.5px);
}
.topping_list .to_box:first-child{
  width:100%;
  display:flex;
  justify-content:center;
}
.topping_list .to_box:first-child picture img{
  border-radius: 30px;
  border: 1px solid #bae3f9;
}
.topping_list .to_box .to_img img{
  border-radius: 20px;
  border: 1px solid #c1c2c3;
}
@media (min-width:768px){
  .topping_list{
    justify-content:center;
    gap:30px;
  }
  .topping_list .to_box{
    width:calc((100% - 40px) / 3);
    max-width:300px;
  }
  .topping_list .to_box:nth-child(-n+2){
    width:calc((100% - 20px) / 2);
    max-width:300px;
  }
  .topping_list .to_box:first-child .to_img{
    width: 100%;
  }
}
.topping .to_price_wrap{
  display: flex;
  justify-content: flex-start;
  align-items: flex-end;
  width: 100%;
  gap: 0;
}
.topping .to_title{
  text-align: center;
  justify-content: center!important;
  padding-bottom: 10px;
  font-weight: bold;
  font-size: 2.0rem;
  font-family: '游明朝','Yu Mincho',YuMincho,'Hiragino Mincho Pro',serif;
}
.topping .to_name{
  font-size: clamp(1.12rem, 3.5vw, 1.2rem);
  font-weight: bold;
  line-height: 1.2;
  font-feature-settings: "palt";
  margin-bottom: 5px;
}
.topping .to_price{
  font-size: clamp(1.063rem, 4.5vw, 1.6rem);
}
.topping .to_price .yen{
  font-size: clamp(1rem, 3vw, 1.5rem); /* 最小16px, 最大24px */
}
.topping .to_tax{
  font-size: clamp(0.813rem, 3.5vw, 1.25rem); /* 最小13px, 最大20px */
  font-weight: bold;
  font-feature-settings: "palt";
}
.topping .to_tax .yen{
  font-size: clamp(0.75rem, 3vw, 1rem); /* 最小12px, 最大16px */
}
.topping .to_tax span{
  font-size: clamp(0.75rem, 3vw, 1rem); /* 最小12px, 最大16px */
}
@media (min-width: 768px) {
  .topping .to_title h2{
    width: fit-content;
    text-align: center;
    border: 4px solid #fff;
    margin-bottom: 10px;
    padding: 14px 40px 20px;
    font-size: 1.8rem;
    position: absolute;
    top: -6%;
    left: 50%;
    transform: translateX(-50%);
  }
  .topping .to_title{
    line-height: 0.9;
    padding-bottom: 0;
    font-size: 2.2rem;
  }
}
.topping .note_text{
  margin-top: 0;
}
  
/**** メニューのリスト ****/
.menu_container{
  position: relative;
  padding: 5px 3% 30px;
  /*
  z-index: 999;
  */
  background: #37419b;
}
@media (min-width: 768px) {
  .menu_container{
    padding: 20px 20px 40px;
  }
}
.menu_list {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 20px;
}
.menu_list li{
  width: calc(80% / 2);
  text-align: center;
}
.menu_link{
  position: relative;
  width: 100%;
  padding-top: 100%;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  isolation: isolate;
}
/* 背景画像用 */
.menu_link::before{
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background-size: 100%;
  background-repeat: no-repeat;
  transform: scale(0.85);

  /* 通常時は今まで通りゆったり */
  transition: transform 0.18s cubic-bezier(0.22, 1, 0.36, 1);
}

/* hover時だけ少し早めに膨らむ */
.menu_link:hover::before{
  transform: scale(1);
}

.menu_list_text{
  color: #d87c35;
  text-align: center;
  font-weight: bold;
  margin-bottom: 20px;
}
.menu_list li:nth-child(1) .menu_link{
  background-size: 100%;
  background-position: center 0;
  background-repeat: no-repeat;
}
.menu_list li:nth-child(2) .menu_link{
  background-size: 100%;
  background-position: center 0;
  background-repeat: no-repeat;
}
.menu_list li:nth-child(3) .menu_link{
  background-size: 100%;
  background-position: center 0;
  background-repeat: no-repeat;
}
.menu_list li:nth-child(4) .menu_link{
  background-size: 100%;
  background-position: center 0;
  background-repeat: no-repeat;
}
.menu_list li:nth-child(5) .menu_link{
  background-size: 100%;
  background-position: center 0;
  background-repeat: no-repeat;
}
.menu_list li:nth-child(1) .menu_link::before{
  background-image: url("../images/menu-img-01.webp");
}

.menu_list li:nth-child(2) .menu_link::before{
  background-image: url("../images/menu-img-02.webp");
}

.menu_list li:nth-child(3) .menu_link::before{
  background-image: url("../images/menu-img-03.webp");
}

.menu_list li:nth-child(4) .menu_link::before{
  background-image: url("../images/menu-img-04.webp");
}

.menu_list li:nth-child(5) .menu_link::before{
  background-image: url("../images/menu-img-05.webp");
}
.menu_link span{
  width: 100%;
  font-weight: bold;
  font-size: clamp(0.75rem, 3.5vw, 1.25rem); /* 最小12px, 最大20px */
  line-height: 1.25;
  color: #fff!important;
  margin-top: 10px;
}
.menu_link button{
  width: 100%;
  color: #37419b;
  font-weight: bold;
  font-size: clamp(0.75rem, 3vw, 0.9375rem);
  background: #fff;
  border-radius: 50px;
  padding: 2px 10px;
  margin-top: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.menu_link button:after{
  content: "";
  width: 8px;
  height: 8px;
  border: 0;
  border-bottom: solid 3px #37419b;
  border-right: solid 3px #37419b;
  transform: rotate(45deg);
  margin: -3% 0 0 5%;
}
@media (min-width: 768px) {
  .menu_list li {
    width: calc(60% / 4);
  }
  .menu_link{
    font-size: 20px;
  }
  .menu_link:after{
    width: 15px;
    height: 15px;
    border-width: 4px 4px 0 0;
  }
}
/**** コラボグッズ ****/
.collabo{
  position: relative;
  z-index: 1;
  width: 100%;
  left: 50%;
  transform: translateX(-50%);
  background-color: #fef222;
  background-size: contain;
  background-position: center top;
  background-repeat: repeat-y;
  padding: 20px 4%;
  color: #37419b;
}
.collabo .goods{
  position: relative;
  background: #fff;
  border: 9px solid #fb5a64;
  border-radius: 20px;
  margin: 0 10px;
}
.collabo .goods h2{
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  font-size: 1.2rem;
  font-weight: bold;
}
.collabo .goods h2:not(:first-child){
}
.collabo .goods h2 img{
  width: 85%;
  padding-bottom: 30px;
}
.collabo .goods hr{
  width: 100%;
  border-top: 3px dashed #999;
  margin: 10px 0 20px;
}
@media (min-width: 768px) {
  .collabo .goods h2{
    justify-content: center;
    padding-top: 0;
    font-size: 2.2rem;
  }
  .collabo .goods h2 img{
    width: 400px;
  }
  .collabo .goods hr{
    margin: 40px 0;
  }
}
.collabo .goods:before,
.collabo .goods:after {
  content: "";
  position: absolute;
  background-repeat: no-repeat;
  background-size: contain;
  pointer-events: none;
}
/*
.collabo .goods:before {
  z-index: 99;
  top: 130px;
  right: -37px;
  width: 120px;
  height: 120px;
  background-image: url("../images/goods-image-mini-02.webp");
}
.collabo .goods:after {
  bottom: -33px;
  left: -30px;
  width: 140px;
  height: 140px;
  background-image: url("../images/goods-image-mini-01.webp");
}*/
@media (min-width: 768px) {
  .collabo .goods{
    border: 13px solid #fb5a64;
    border-radius: 50px;
    margin: 0 70px;
  }
  .collabo .goods:before {
    top: 140px;
    right: -50px;
    width: 240px;
    height: 240px;
  }
  .collabo .goods:after {
    bottom: -80px;
    left: -70px;
    width: 220px;
    height: 220px;
  }
}
.collabo .heading{
  position: relative;
  width: 100%;
  margin: 0 auto 15px auto;
  background-color: #fb5a64;
  padding: 0 0 30vw;
}
.collabo .heading img{
  display: block;
  margin: 0 auto;
}
.collabo .heading picture{
  position: absolute;
  left: 0;
  width: 100%;
}
.collabo .heading img:nth-child(1){
  width: 90%;
  padding: 10px 0 10px;
}
.collabo .heading img:nth-child(2){
  width: 100%;
  padding-bottom: 20px;
}
.collabo .content__two-column {
  padding: 0 20px;
}
.collabo .content__two-column-item {
  padding-bottom: 20px;
}
.collabo .content__two-column-item p {
  padding: 20px 0 0;
  font-size: 0.97rem;
  font-weight: bold;
}
@media (min-width: 768px) {
  .collabo{
    width: 100%;
    padding: 30px 0 60px;
  }
  .collabo:after{
    display: none;
  }
  .collabo .heading{
    text-align: center;
    margin: 0 auto 20px auto;
    border-radius: 30px 30px 0 0;
    padding: 0 0 170px;
  }
  .collabo .heading img:nth-child(1){
    width: 680px;
    padding: 0;
  }
  .collabo .heading img:nth-child(2){
    width: 100%;
  }
  .collabo .content__two-column {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    padding: 20px 70px;
  }
  .collabo .content__two-column-item {
    width: calc((100% - 10px) / 2);
  }
  .collabo .content__two-column-item p {
    padding: 20px 40px 0;
  }
  .collabo .content__two-column-item:nth-of-type(3) p {
    padding: 20px 40px 0 80px;
  }
}
/*
.collabo_img img {
  margin: 0 auto;
  text-align: center;
  animation: fluffyFloat 5s ease-in-out infinite;
}
.content__two-column-item:nth-child(2) .collabo_img img {
  animation-delay: 1s;
}
.content__two-column-item:nth-child(3) .collabo_img img {
  animation-delay: 2s;
}
.content__two-column-item:nth-child(4) .collabo_img img {
  animation-delay: 3s;
}
@keyframes fluffyFloat {
  0% {
    transform: translateY(0px) rotate(0deg);
  }
  25% {
    transform: translateY(-8px) rotate(1deg);
  }
  50% {
    transform: translateY(0px) rotate(0deg);
  }
  75% {
    transform: translateY(8px) rotate(-1deg);
  }
  100% {
    transform: translateY(0px) rotate(0deg);
  }
}
*/
.collabo .note_text{
  padding: 10px 20px 30px;
}

@media (min-width: 768px) {
  .collabo_img img{
    width: 100%;
  }
  .collabo .note_text{
    padding: 10px 30px 30px;
  }
}

/**** コラボメニューリスト****/
.menu_heading_wrap{
  padding: 20px 20px 12px 20px;
  background: linear-gradient(90deg, #37419b, #4650a9, #37419b);
}
.menu_heading_wrap .heading{
  line-height: 1.2;
  text-align: center;
  color: #fff;
}
.menu_heading_wrap h2.heading{
  letter-spacing: 0.08em;
  font-size: clamp(1.375rem, 4vw, 2.25rem); /* 最小22px, 最大36px */
}
.menu_heading_wrap span{
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: clamp(1.875rem, 5vw, 4.5rem); /* 最小30px, 最大72px */
}
.menu_heading_wrap strong{
  font-size: clamp(2.5rem, 5vw, 5.125rem); /* 最小40px, 最大82px */
}
@media (min-width: 768px) {
  .menu_heading_wrap{
    padding: 30px 30px 18px 30px;
  }
  .menu_heading_wrap h2.heading{
    font-size: 36px;
  }
  .menu_heading_wrap span{
    font-size: 72px;
  }
  .menu_heading_wrap strong{
    font-size: 82px;
  }
}
.content__one-column {
  background-position: top center;
  background-repeat: no-repeat;
  position: relative;
}
.content__one-column,
.special{
  border-bottom: 4px solid #000;
}
.collabo_menu{
  border-top: 4px solid #000;
}
@media (min-width: 768px) {
  .content__one-column,
  .special{
    border-bottom: 8px solid #000;
  }
  .collabo_menu{
    border-top: 8px solid #000;
  }
}
.menu01{
  background-image: url("../images/bg_menu01-sp.webp");
  background-size: cover;
}
.menu02{
  background-image: url("../images/bg_menu02-sp.webp");
  background-size: cover;
}
.menu03{
  background-image: url("../images/bg_menu03-sp.webp");
  background-size: cover;
}
.menu04{
  background-image: url("../images/bg_menu04-sp.webp");
  background-size: cover;
}
@media (min-width: 768px) {
  .menu01{
    background-image: url("../images/bg_menu01-pc.webp");
    background-size: contain;
  }
  .menu02{
    background-image: url("../images/bg_menu02-pc.webp");
    background-size: contain;
  }
  .menu03{
    background-image: url("../images/bg_menu03-pc.webp");
    background-size: contain;
  }
  .menu04{
    background-image: url("../images/bg_menu04-pc.webp");
    background-size: contain;
  }
}
.collabo_menu .flex:not(:last-child){
  margin-bottom: 5px;
}
@media (min-width: 768px) {
  .collabo_menu .flex,
  .arrange .flex{
    gap: 0 10px;
  }
  .collabo_menu .flex:not(:last-child),
  .arrange .flex:not(:last-child){
    margin-bottom: 0;
  }
  .collabo_menu .flex .menu_name,
  .arrange .flex .menu_name{
    margin-bottom: 0;
    width: 67%;
  }
  .collabo_menu .flex .menu_price_wrap,
  .arrange .flex .menu_price_wrap{
    flex: 1;
  }
}
.collabo_menu .menu_detail_wrap{
  width: 100%;
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  z-index: 1;
}
.collabo_menu .menu_detail,
.arrange .menu_detail{
  width: 88.4%;
  margin: 0 auto;
  padding: 4%;
  background-color: #fff;
  border-radius: 7px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0 20px;
  position: relative;
}
.collabo_menu .menu_detail:after{
  content: "";
  background-image: url(../images/img_kusa.webp);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: contain;
  position: absolute;
  left: 50%;
  bottom: -4vw;
  transform: translateX(-50%);
  z-index: 3;
  width: 100%;
  padding-top: 6.35%;
}
.collabo_menu .menu_detail_note,
.arrange .menu_detail_note{
  background: #f23;
  border: 2px solid #fff;
  border-radius: 10px;
  color: #fff;
  padding: 5px;
  position: absolute;
  right: -10px;
  top: -10px;
  font-size: clamp(0.68rem, 3vw, 1rem);
  font-weight: bold;
  line-height: 1.2;
  text-align: center;
}
.t10 {
  padding-top: 10px;
}
@media (min-width: 768px) {
  .collabo_menu .menu_detail_wrap{
    bottom: 0;
  }
  .collabo_menu .menu_detail,
  .arrange .menu_detail{
    width: 85%;
    padding: 20px 25px 30px 25px;

  }
  .collabo_menu .menu_detail:after{
    bottom: -40px;
    padding-top: 6.5%;
  }
  .collabo_menu .menu_detail_note,
  .arrange .menu_detail_note{
    border-radius: 14px;
    padding: 10px;
    right: 18px;
    top: 18px;
  }
  .menu05 .menu_name span{
    margin-bottom: 15px;
  }
  .menu05 .menu_detail_wrap{
    width: 70%;
    left: inherit;
    transform: none;
    right: 0;
    bottom: 8%;
  }
  .menu05 .menu_detail:after{
    bottom: -14%;
  }
}
/**** スペシャルセット ****/
.sub_cont{
  background-color: #fef222;
  background-size: 150px;
}
.special{
  color: #40220c;
  padding: 20px 6%;
}
.special .heading{
  margin-bottom: 10px;
}
@media (min-width: 375px) {
  .special{
    padding: 20px 6%;
  }
}
.special .content__two-column {
  margin-bottom: 25px;
}
@media (min-width: 768px) {
  .sub_cont{
    background-size: 300px;
  }
  .special{
    padding: 80px 80px 20px;
    position: relative;
  }
  .special .heading{
    position: absolute;
    z-index: 1;
    top: 40px;
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    width: 94%;
  }
  .special .content__two-column {
    display: flex;
    margin-top: 150px;
    margin-bottom: 0;
    gap: 30px;
  }
}
.special .content__two-column-item:first-of-type {
  margin-bottom: 20px;
}
.special .content__two-column-item img {
  border-radius: 20px;
}
/**** スペシャルセット金額 ****/
.sub_cont .menu_text{
  margin-bottom: 10px;
}
.special .menu_name{
  font-size: clamp(1.063rem, 4.5vw, 1.5rem); /* 最小17px, 最大24px */
  font-feature-settings: "palt";
}
.special .menu_name span{
  display: block;
  margin-bottom: 10px;
  font-size: clamp(0.875rem, 3.5vw, 1rem); /* 最小14px, 最大16px */
}
@media (max-width: 374px) {
  .special .menu_name{
    font-size: 16px;
  }
}
@media (min-width: 768px) {
  .sub_cont .menu_text{
    margin-bottom: 20px;
  }
  .special .menu_name{
    font-size: 24px;
  }
  .special .menu_name span{
    font-size: 20px;
    margin-bottom: 10px;
  }
  .special .menu_price .yen
  .arrange .menu_price .yen{
    font-size: 30px
  }
  .sub_cont .menu_tax{
    font-size: 20px;
  }
  .sub_cont .yen{
    font-size: 16px;
  }
  .sub_cont .menu_tax span{
    font-size: 12px;
  }
}
/**** パンケーキアレンジ ****/
.arrange{
  background: url(../images/bg_product-transform-none.webp) top center / 100% repeat;
  padding: 20px 6%;
}
.arrange h2 {
  border-radius: 10px;
  font-size: clamp(1.25rem, 5vw, 2.5rem); /* 最小20px, 最大40px */
  font-weight: bold;
  text-align: center;
  line-height: 1.4;
  padding: 7px 0;
  margin: 15px 0;
  background: #37419b;
  color: #fff;
}
@media (min-width: 768px) {
  .arrange h2{
    font-size: 30px;
    padding: 13px 0;
    margin-bottom: 30px;
  }
}
.arrange .heading{
  margin-bottom: 20px;
}
.arrange .heading{
  margin-bottom: 20px;
}
.arrange .menu_detail_wrap{
  margin-top: 20px;
}
.arrange .menu_detail .flex{
  margin-bottom: 5px;
  justify-content: flex-end;
}
.arrange .menu_detail{
  width: 100%;
}
@media (min-width: 768px) {
  .arrange{
    padding: 60px;
  }
  .arrange .heading{
    width: 90%;
    margin: 0 auto 40px auto;
  }
  .arrange .menu_detail_wrap{
    margin-top: 40px;
  }
  .arrange .menu_detail .flex{
    width: 100%;
    justify-content: flex-start;
    gap: 0 10px;
    margin-bottom: 0;
  }
}
.arrange .note_text{
  margin-top: 10px;
}
/**** コラボ店舗 ****/
.collabo_shop{
  background: url(../images/bg_product-transform.webp) top center / 100% repeat;
}
.collabo_shop_inner{
  position: relative;
  padding: 5%;
}
.collabo_shop .content_wrap{
  position: relative;
  z-index: 2;
}
.photo-panel img {
  border-radius: 20px;
}
@media (min-width: 768px) {
  .collabo_shop_inner{
    padding: 60px 60px 30px;
  }
  .collabo_shop_inner:before{
    border-radius: 40px;
  }
}
.collabo_shop_inner .logo{
  width: 80%;
  margin: 10px auto;
  margin-bottom: 5px;
}
.collabo_shop_inner .text{
  border-radius: 10px;
  font-size: clamp(1.25rem, 5vw, 2.5rem); /* 最小20px, 最大40px */
  font-weight: bold;
  text-align: center;
  line-height: 1.4;
  padding: 7px 0;
  margin: 15px 0;
  background: #37419b;
  color: #fff;
}
.collabo_shop_inner .note_text{
  margin-top: 10px;
}
@media (min-width: 768px) {
  .collabo_shop_inner .logo{
    width: 345px;
    margin-bottom: 15px;
  }
  .collabo_shop_inner .text{
    font-size: 30px;
    padding: 13px 0;
    margin-bottom: 30px;
  }
  .collabo_shop_inner .img{
    width: 326px;
    margin-bottom: 0;
  }
  .collabo_shop_inner .note_text{
    margin-top: 20px;
  }
}

.message{
  display: flex;
  flex-direction: column;
  gap: 20px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.message li{
  background: #fff;
  border-radius: 20px;
  padding: 30px;
}
.message li p:first-child{
  aspect-ratio: 3 / 2;
  overflow: hidden;
  margin: 0 0 16px;
  border-radius: 12px;
}
.message li p:first-child img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.message li p:last-child{
  margin: 0;
  font-weight: bold;
  line-height: 1.6;
}
.message li p span{
  display: block;
  font-weight: normal;
  font-size: 0.78rem;
}
@media (min-width: 768px) {
  .message{
    flex-direction: row;
    flex-wrap: wrap;
    gap: 30px;
    padding: 0 0 10px;
  }
  .message li{
    width: calc((100% - 30px) / 2);
  }
}

/**** STORY ****/
.story{
  background-image:
  url("../images/movie_visual.webp"),
  linear-gradient(
    to bottom,
    #000 0%,
    #000 40%,
    #151515 100%
  );
  background-repeat: no-repeat, no-repeat;
  background-size: contain, cover;
  background-position: top left, top left;
  color: #fff;
  padding: 200px 7% 7% 7%;
  position: relative;
}
.story_inner{
  position: relative;
}
.story h2{
  width: 85%;
  margin: 0 auto 20px auto;
}
.story_inner p{
  font-size: clamp(0.938rem, 3.5vw, 1.125rem); /* 最小15px, 最大18px */
  font-weight: bold;
  font-feature-settings: "palt";
  line-height: 1.8;
}
p.w_btn {
  text-align: center;
  margin: 15px 0 5px;
}
p.w_btn a {
  display: block;
  background: #fff;
  border-radius: 50px;
  margin: 0 auto;
  padding: 13px 0;
  width: 80%;
  font-size: 1.0rem;
  font-weight: bold;
  color: #000;
}
@media (min-width: 768px) {
  .story{
    padding: 600px 0 100px 0;
  }
  .story_inner{
    max-width: 800px;
    margin: 0 auto;
  }
  .story h2{
    width: 372px;
    margin: 0 auto 50px auto;
  }
  .story_inner p{
    font-size: 18px;
    line-height: 2.3;
    text-align: center;
    font-feature-settings:normal;
  }
  p.w_btn {
    margin: 40px 0 0;
  }
  p.w_btn a {
    padding: 15px 0;
    width: 40%;
    font-size: 1.1rem;
  }
}
.area-footer ._btn-pagetop {
  width: 50px!important;
  height: 50px!important;
}
.area-footer ._btn-pagetop a{
  background-image: url("../images/pagetop.webp");
  background-size: contain;
  background-color: inherit;
}
.area-footer ._btn-pagetop a::before{
  display: none;
}
.js-pagetop._btn-pagetop.is-active {
  z-index: 9999;
}
.cp-tx{
display:block;
  background: #fef222;
text-align:center;
word-break: normal !important;
padding:10px;
color:#37419b;
}
/**** 下部注釈 ****/
.under_notes{
  max-width: 1180px;
  margin: 0 auto;
}
.mod-wrap-sp{
  padding: 0;
}
.area-contents.under_notes{
  padding-bottom: 0;
}
.area-contents.lp__inner{
  margin: 0 auto;
}
.area-contents.mod-wrap{
  margin: 0 auto;
  padding: 0 4vw;
}
.lp .area-contents .under{
  margin: 20px;
}

.youtube{
  padding-bottom: 20px;
}
.youtube .youtube_inner{
  margin: 0 auto;
  width:100%;
  aspect-ratio:16 / 9.1;
}
.youtube .youtube_inner iframe{
  width:100%;
  height:100%;
}
@media (min-width: 768px){
  .youtube{
    padding-bottom: 30px;
  }
  .youtube .youtube_inner{
    max-width:1000px;
  }
  .youtube .youtube_inner iframe{
    border:5px solid #000;
  }
}


html,
body {
  overflow-x: hidden;
}

/* 湯気　*/
.menu__pic,
.special .content__two-column-item {
  position: relative;
  display: inline-block;
}
.menu__pic > img,
.special .content__two-column-item > img {
  display: block;
  width: 100%;
  height: auto;
}
.menu__pic picture{
  position: relative;
}
.menu__pic picture img{
  background: linear-gradient(to bottom, rgba(255,255,255,0.5) 0%, rgba(255,255,255,1) 100%);
  border-radius: 15px 15px 0 0;
}
.steam_box {
  position: absolute;
  inset: 0;           /* 料理画像と同じ範囲に重ねる */
  pointer-events: none;
}
.steam_box ul {
  list-style: none;
  margin: 0 5%;
  padding: 0;
  width: 100%;
  height: 100%;
  position: relative;
}
.steam_img {
  position: absolute;
  left: 45%;
  top: 12%;          /* 皿のあたりから出ている感じ */
  transform: translateX(-50%);
  opacity: 0.7;
}
.steam_img img {
  display: block;
  max-width: 100%;
}
.menu02 .steam_img {
  position: absolute;
  left: 45%;
  top: 8%;          /* 皿のあたりから出ている感じ */
}
.menu03 .steam_img {
  position: absolute;
  top: 14%;          /* 皿のあたりから出ている感じ */
  left: 53%;
}
.special .content__two-column-item .steam_img {
  position: absolute;
  top: 16%;          /* 皿のあたりから出ている感じ */
  left: 33%;
}
@media (min-width: 768px) {
  .steam_img {
    top: 18%;          /* 皿のあたりから出ている感じ */
  }
  .menu02 .steam_img {
    top: 12%;          /* 皿のあたりから出ている感じ */
  }
  .menu03 .steam_img {
    position: absolute;
    top: 19%;          /* 皿のあたりから出ている感じ */
    left: 50%;
  }
}
@keyframes steamAnime {
  0% {
    transform: translateY(0) scale(1);
    opacity: 0;
  }
  10% {
    opacity: 1;
  }
  60% {
    opacity: 1;
  }
  100% {
    transform: translateY(-40px) scale(1.05); /* 上方向に移動 */
    opacity: 0;
  }
}

/* 3 枚とも同じ動き。ただしタイミングだけずらす */
.steam_move1,
.steam_move2,
.steam_move3 {
  animation-name: steamAnime;
  animation-duration: 4s;
  animation-timing-function: cubic-bezier(.32, 1, .67, 1);
  animation-iteration-count: infinite;
  will-change: transform, opacity;
}
.steam_move1 { animation-delay: 0s; }
.steam_move2 { animation-delay: 1.2s; }
.steam_move3 { animation-delay: 2.4s; }

.collabo_menu .content__one-column li{
  width: 85%;
}
.collabo_menu .content__one-column.menu03 li{
  width: 55%;
}
.special .content__two-column-item li{
  width: 70%;
}
@media (min-width: 768px) {
  .collabo_menu .content__one-column li{
    width: 70%;
  }
  .collabo_menu .content__one-column.menu03 li{
    width: 45%;
  }
}
.item_infor{
  display: flex;
  flex-direction: column;
  align-items: center;
  background: #fff;
  border-radius: 20px;
  margin: 0 10px 20px;
  padding: 10px 16px;
  font-weight: bold;
  font-size: 1.3rem;
}
.item_infor dt{
  text-align: center;
  background: #fef222;
  border-radius: 50px;
  margin-bottom: 10px;
  padding: 8px 16px 7px;
  width: 100px;
  font-size: 1.1rem;
}
.item_infor dd{
  text-align: center;
  line-height: 1.4;
}
.item_infor dd span{
  display: block;
}
@media (min-width: 768px) {
  .item_infor{
    display: flex;
    flex-direction: row;
    align-items: center;
    border-radius: 30px;
    margin: 0 70px 30px;
    padding: 20px;
  }
  .item_infor dt{
    background: #fef222;
    border-radius: 50px;
    margin: 0;
    padding: 10px 20px 9px;
    width: 120px;
  }
  .item_infor dd{
    padding-left: 20px;
    font-size: 1.78rem;
  }
  .item_infor dd span{
    display: inline;
  }
}
@media (min-width: 1180px) {
  .item_infor dd{
    padding-left: 20px;
    font-size: 2.1rem;
  }
}
@media (max-width: 460px) {
  .item_infor dd{
    font-size: 1.0rem;
  }
}
@media (max-width: 360px) {
  .item_infor dd{
    font-size: 0.9rem;
  }
}


/**** 追従header ****/
.fixed-header {
  position: fixed;
  width: 100%;
  top: 0;
  left: 0;
  z-index: 999999999999;
  transform: translateY(-100%);        /* 最初は上に隠しておく */
  background: transparent !important;  /* state1 初期色 */
  background-position: top center;
  background-repeat: no-repeat;
  background-attachment: fixed;
  background-size: cover;
  box-shadow: 0 2px 5px rgba(0,0,0,0.2);
  border-bottom: 5px solid #fff;
  /* 背景色とスライドのアニメーション */
  transition: transform 0.5s, background-color 0.5s, background 0.5s;
}

/* 背景用レイヤー */
.fixed-header::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:#e60012; /* 初期（state1相当） */
  transition: opacity .35s ease, background-color .35s ease, background-image .35s ease;
}

/* 中身を背景より前へ */
.fixed-header__inner{
  position: relative;
  z-index: 1;
}

/* state別背景は「::before」に当てる */
.fixed-header--state1::before{
  background-image: url("../images/bg_product-transform.webp");
  background-size: 50%;
  background-repeat: repeat;
  background-position: center top;
  background-attachment: fixed;
}
/*
.fixed-header--state2::before{
  background-color:#fef3c2;
}

.fixed-header--state3::before{
  background:#fff226;
  background-image:none;
}
*/
.fixed-header.is_active {
  transform: translateY(0);
}

/* 見出し部分は今までどおり */
.fixed-header__heading{
  background: #fff;
}
.fixed-header__heading img{
  margin: 0 auto;
  padding: 10px;
  width: 90%;
}
@media (min-width: 768px) {
  .fixed-header__heading img{
    padding: 15px;
    width: 55%;
  }
}

.fixed-header__inner{
  max-width: none;
  margin: 0 auto;
}
.fixed-header__heading{
  width: 100%;
}
.fixed-header__heading .flex{
  width: 100%;
  justify-content: center;
}
/* 画像を 100% 表示＆余計な隙間を消す */
.fixed-header .main_inner {
  max-width: 1200px;   /* 念のため（innerと揃える） */
  margin: 0 auto;      /* 念のため */
  padding: 0;
  box-shadow: none;
  background: transparent;
  position: relative;
  overflow: hidden;
}
.fixed-header__image,
.fixed-header__image picture,
.fixed-header__image img{
  display: block;
  width: 100%;
  height: auto;
}

/* ▼ ここからが「フェードしながら切り替える」部分 ▼ */

/* 画像エリア：高さは画像に任せる＆重ね用に relative */
.fixed-header .main_inner {
  padding: 0;
  box-shadow: none;
  background: transparent;
  position: relative;
  overflow: hidden;
}

/* 画像は横100％（既存どおり） */
.fixed-header__image img {
  display: block;
  width: 100%;
  height: auto;
}

/* ▼ フェードしながら切り替える部分 ▼ */

/* state1 はフローに残して高さを作る。デフォルトは透明 */
.fixed-header__content {
  position: relative;             /* state1 用：高さを決める */
  opacity: 0 !important;
  transition: opacity .8s cubic-bezier(.22, 1, .36, 1);  /* ここを 1s などに変えればフェード時間変更できます */
  pointer-events: none;           /* 非表示状態はクリック不可 */
}

/* state2 / state3 は state1 の上に重ねる */
.fixed-header__content--state2,
.fixed-header__content--state3 {
  position: absolute;
  inset: 0;                       /* top/right/bottom/left:0 */
}

/* アクティブ state だけフェードイン＋クリック可能 */
.fixed-header--state1 .fixed-header__content--state1,
.fixed-header--state2 .fixed-header__content--state2,
.fixed-header--state3 .fixed-header__content--state3 {
  opacity: 1 !important;
  pointer-events: auto;
}

/* さらに「ちょい遅れてフェードイン」させると“さっ”感が減る */
.fixed-header--state2 .fixed-header__content--state2,
.fixed-header--state3 .fixed-header__content--state3{
  transition-delay: .06s;
}

/* =================================
   ★追従ヘッダ 背景色（今回の仕様に合わせて調整）
   - state1: sec01〜sec02
   - state2: sec02〜sec05
   - state3: half〜
   ================================= */
.fixed-header--state1 {
  background-image: url("../images/bg_product-transform.webp");
  background-repeat: repeat;
  background-position: center top;
  background-attachment: fixed;
  background-size: cover;
}
/*
.fixed-header--state2 {
  background: #fff;
}
.fixed-header--state3 {
  background: #fff226;
}
*/
.fixed-header--no-fade .fixed-header__content {
  transition: none !important;
}