@charset "UTF-8";
.pc {
  display: none !important;
}
.sp, .ssp {
  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;
  }
  .ssp {
    display: none !important;
  }
  .pc {
    display: none !important;
  }
}
/* PC用メディアクエリ */
@media (min-width: 768px) {
  .pc {
    display: block !important;
  }
  .sp {
    display: none !important;
  }
  .ssp {
    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;
}
/********************  アニメーション ********************/
.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-l {
  opacity: 0;
  transform: translate(-60px, 0);
  transition: 1.3s;
}
.effect-fade-r {
  opacity: 0;
  transform: translate(60px, 0);
  transition: 1.3s;
}
.effect-fade.on, .effect-fade-l.on, .effect-fade-r.on {
  opacity: 1;
  transform: translate(0, 0);
}
.fade-in,
 .fade-in-normal {
  opacity: 0;
  transition: opacity 1s ease-in-out; /* 1秒かけてフェードイン */
}
.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);
  }
}
/**** 汎用CSS ****/
.flex{
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0 20px;
}
@media (min-width: 768px) {
  .flex{
    gap: 30px;
  }
}
.fc_red{
  color: #f23;
}
.emp{
  font-weight: bold;
}
.badge_circle{
  width: 8vw;
  height: 8vw;
  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;
}
.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;
}
/**** フォントサイズ ****/
.fs_small--01{
  font-size: clamp(0.625rem, 0.536rem + 0.45vw, 0.75rem)!important;
}
.fs_small--02{
  font-size: clamp(0.75rem, 0.568rem + 0.91vw, 1.25rem)!important;
}
.fs_middle--01{
  line-height: 1.4;
  font-size: clamp(1.2rem, 0.42rem + 1.94vw, 2.125rem)!important;
}
.fs_middle--03{
  font-size: clamp(1rem, 0.42rem + 1.94vw, 1.5rem)!important;
}
.fs_large--01{
  font-size:clamp(1.5rem, -0.111rem + 8.05vw, 3rem)!important;
}
.fs_large--02{
  font-size:clamp(1.5rem, -0.111rem + 8.05vw, 3.75rem)!important;
}
@media (min-width: 768px) {
  .fs_small--01{
    font-size: 0.875rem!important;
  }
  .fs_middle--02{
    font-size: 1.875rem!important;
}
  .fs_large--02{
    font-size:clamp(4.75rem, 3.013rem + 3.48vw, 6.25rem)!important;
  }
}

/**** 追従header ****/
.fixed-header {
  position: fixed;
  width: 100%;
  top: 0;
  left: 0;
  z-index: 999999999999;
  transform: translateY(-100%);
  opacity: 0; /* ← 追加：最初は透明 */
  background: #e60012;
  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.45s ease-out,
    opacity 0.45s ease-out,
    background-color 0.25s ease,
    background 0.25s ease;
}

.fixed-header.is_active {
  transform: translateY(0);
  opacity: 1; /* ← 追加：表示時に不透明に */
}


/* 見出し部分は今までどおり */
.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: 50%;
  }
}

/* 画像を 100% 表示＆余計な隙間を消す */
.fixed-header .main_inner {
  padding: 0;
  box-shadow: none;
  background: transparent;
}
.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 0.5s ease;  /* ここを 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;
}

/* 背景色だけ state で変更（ここはそのまま使えます） */
.fixed-header--state1 {
  background: #e60012;   /* ガスト */
}
.fixed-header--state2 {
  background: #ffde61;   /* 半額ゾーン */
}
.fixed-header--state3 {
  background: #fadceb;   /* バーミヤン */
}

.fixed-header--no-fade .fixed-header__content {
  transition: none !important;
}

/* 見出し部分はそのまま */
.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: 50%;
  }
}




/**** メインコンテンツ ****/
.main_inner,
.under_notes{
  max-width: 1200px;
  margin: 0 auto;
}

/* メイン背景：スクロールに応じて色を変えるベース */
.main_wrap {
  position: relative;
  overflow: hidden;
}

/* 背景画像レイヤー（常に下で固定） */
.main_wrap .bg-layer {
  position: absolute;
  inset: 0;
  z-index: -1;

  background-image: url("../images/bg.webp");
  background-repeat: repeat;
  background-position: center top;
  background-attachment: fixed;
  background-size: cover;

  opacity: 1;
  transition: opacity 0.35s ease;
}

/* ガストゾーン以降に入ったら画像をフェードアウト */
.main_wrap--gusto .bg-layer,
.main_wrap--half .bg-layer,
.main_wrap--bamy .bg-layer {
  opacity: 0;
}

/* ガストゾーン（shop01） */
.main_wrap--gusto {
  background-image: none;
  background-color: #e60027;
}

/* 半額ゾーン（#half） */
.main_wrap--half {
  background-image: none;
  background-color: #ffde61;
}

/* バーミヤンゾーン（shop02） */
.main_wrap--bamy {
  background-image: none;
  background-color: #f9dbe7;
}


.main_inner {
  background: #fff;
  box-shadow: 20px 0 20px 5px rgba(0, 0, 0, .10), -20px 0 20px 5px rgba(0, 0, 0, .10);
}
.layout {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}
.layout_item{
  position: relative;
}

.image--set{
  position: relative;
}
.image--set img.effect-fade{
  z-index: 1;
  position: absolute;
  top: 0;
  left: auto;
}

.box:before {
  content: "";
  z-index: -1;
  position: absolute;
  top: 0px;
  right: 0px;
  bottom: 0px;
  left: 0px;
  filter: blur(5px);
  border-radius: inherit;
}
.box::after {
  content: "";
  z-index: -1;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: inherit;
  border-radius: inherit;
}
.menu_text{
  font-feature-settings: "palt";
  margin-bottom: 5px;
  color: #fff;
  font-size: 0.85rem!important;
}
.menu_name{
  font-feature-settings: "palt";
  font-size: 1rem!important;
  line-height: 1.4;
}
@media (min-width: 375px) {
  .menu_text{
    margin-bottom: 10px;
  }
  .menu_name{
    font-size: 1.2rem!important;
  }
}
@media (min-width: 600px) {
  .menu_text{
    margin-bottom: 0;
    font-size: 1.4rem!important;
  }
  .menu_name{
    font-size: 1.8rem!important;
  }
}
.menu_size.box{
  display: flex;
  align-items: center;
  justify-content: center;
  width: 10vw;
  height: 10vw;
  min-width: 70px;
  min-height: 70px;
  background-color: #fff;
  border-radius: 50%; 
  box-sizing: border-box;
  text-align: center;
  line-height: 1.2;
  z-index: 2;
  margin-bottom: 10px;
  position: absolute;
  bottom: 100%;
  left: 0;
}
.menu_size.box p{
  font-size: 0.5rem!important;
}
.menu_size span{
  font-size: 1rem;
}
@media (min-width: 375px) {
  .menu_size.box p{
    font-size: 0.7rem!important;
  }
  .menu_size span{
    font-size: 1rem;
  }
}
@media (min-width: 600px) and (max-width: 767px) {
  .menu_size.box{
    width: 100px;
    height: 100px;
  }
}
@media (min-width: 768px) {
  .menu_size.box{
    width: 140px;
    height: 140px;
  }
  .menu_size.box p{
    font-size: 1rem!important;
  }
  .menu_size span{
    font-size: 2.5rem;
  }
}
.no_arrow:before{
  border:none;
}
/**** 金額 ****/
.menu_price,
.menu_price_wrap{
  display: flex;
  align-items:baseline;
  flex-wrap: wrap;
  font-weight: bold;
}
.menu_price_wrap{
  margin-left: auto;
  color: #f5d98f;
}
.menu_price{line-height: 1.1;
  padding-bottom: 5px;
  font-size: 1.4rem!important;
  color: #f5d98f;
}
.menu__cnt .menu_price{
  background-size: 60px 30px;
}
@media (min-width: 768px) {
  .menu__cnt .menu_price{
    background-size: 75px 38px;
  }
}
.menu_price .yen{
  font-size: 1.1rem!important;
}
span.cp-cp {
  display: block;
  padding-top: 10px;
  font-size: 1.1rem;
  font-weight: bold;
  color: #f5d98f;
}


.coupon{
  background: #fff;
  border-radius: 15px 15px 0 0;
  padding: 10px 20px;
  font-size: 2.0rem!important;
}
#shop01 .coupon{
  color: #e60012;
}
#shop02 .coupon{
  color: #e4007f;
}
.coupon span{
  font-size: 0.95rem!important;
}
@media (min-width: 375px) {
  .menu_price{
    font-size: 1.15rem!important;
  }
  .menu_price .yen{
    font-size: 1.0rem!important;
  }
}
@media (min-width: 500px) {
  .menu_price_wrap{
    margin-left: inherit;
  }
  .menu_price{
    font-size: 1.6rem!important;
  }
  .menu_price .yen{
    font-size: 1.2rem!important;
  }
  .coupon{
    font-size: 2.8rem!important;
  }
  .coupon span{
    font-size: 1.05rem!important;
  }
}
.menu_tips{
  line-height: 1.3;
  padding: 10px 0;
  font-size: 0.7rem!important;
}
.menu_tips span{
  color: #fff800;
}
@media (min-width: 768px) {
  .menu_tips{
    line-height: 1.4;
  font-size: 0.8rem!important;
  }
}
.menu_period{
  display: flex;
  align-items: flex-end;
  line-height: 1.3;
  border-top: 2px dotted #fff;
  padding: 10px 0 5px;
  font-size: 0.7rem !important;
  font-weight: bold;
}
.warp{
  display: flex;
  align-items: baseline;
}
.menu_period em{
  display: inline-block;
  background: #fff;
  border-radius: 5px;
  margin: 2px 10px 0 0;
  padding: 3px 6px;
  font-style: normal;
  color: #e60012;
}
#shop02 .menu_period em{
  color: #e4007f;
}
.menu_period strong{
  font-size: 1.0rem;
}
.menu_period span.end{
  padding-left: 5px;
  color: #fff800;
}
@media (min-width: 768px) {
  .menu_period{
    line-height: 1.4;
    font-size: 0.8rem!important;
  }
}

/**** セール ****/
.anchor {
  display: flex;
  justify-content: center;
  padding: 0 5px;
}
.anchor p{
  padding: 20px 5px;
  width: 100%;
}
.anchor p a{
  line-height: 1.3em;
  display: flex;
  align-items: center;
  position: relative;
  background: #e60012;
  padding: 15px 15% 15px 8%;
  border: 4px solid #f1f2f3;
  border-radius: 20px;
  box-shadow: 0 5px 0 #e1e2e3;
  font-size: 1.1em;
  font-weight: bold;
  color: #fff;
}
.anchor p:nth-of-type(2) a{
  background: #e4007f;
}
@media screen and (min-width:499px) {
  .anchor p a span{
    display: block!important;
  }
}
@media screen and (max-width:500px) {
  .anchor p a span{
    display: contents;
  }
}
.anchor p a::after{
  content: "▼";
  position: absolute;
  right: 15px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 0.8em;
}
.anchor p a img{
  width: 50px;
  padding-right: 10px;
}
@media screen and (min-width:768px) {
  .anchor p{
    padding: 30px 15px;
    width: auto;
  }
  .anchor p a{
    padding: 15px 70px 15px 30px;
    font-size: 1.3em;
  }
  .anchor p a span{
    display: inline;
  }
  .anchor p a::after{
    position: absolute;
    right: 30px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 0.9em;
  }
  .anchor p a img{
    width: 60px;
  }
}
h2{
  position: relative;
  padding: 1rem;
  color: #353535;
  font-weight: bold;
  text-align: center;
}
h2 img{
  width: 90px;
}
h2:before,
h2:after {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  content: '◆ ◆ ◆ ◆ ◆ ◆ ◆';
  font-size: 0.6rem;
  color: #fff;
}
h2:before {
  left: 50%;
  margin-left: -140px;
}
h2:after {
  margin-left: 8px;
}
@media screen and (min-width:768px) {
  h2{
    font-size: 26px;
  }
  h2 img{
    width: 130px;
  }
  h2:before {
    left: 50%;
    margin-left: -240px;
  }
  h2:after {
    margin-left: 14px;
  }
  h2:before,
  h2:after {
    font-size: 1.1rem;
  }
}
.ter{
  background: #e60012;
}
.ter_inner{
  background-size: contain;
  padding-left: 4%;
  padding-right: 4%;
}
#shop01{
  background: #f1d3b2;
}
#shop01 h2{
  background-image: linear-gradient(90deg, #e60027, #e84145 50%, #e60027);
}
#shop02{
  background: #fadceb;
}
#shop02 h2{
  background-image: linear-gradient(90deg, #e4007f, #f9499e 50%, #e4007f);
}
.ter_heading{
  background-image: url("../images/bg_sale.webp");
  background-repeat: no-repeat;
  background-size: contain;
  padding-top: 43.34%;
  position: relative;
  display: flex;
}
.ter .centered{
  width: 93%;
  display: flex;
  gap: 20px;
  justify-content: flex-end;
  align-items: center;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
}
.ter .centered_inner{
  width: 85%;
  padding: 5px 15px 5px 5px
}
.snstips{
  display: block;
  line-height: 1.2em;
  padding-top: 5px;
  font-size: 0.6rem;
  color: #fff;
}
.ter .qr_box{
  padding: 5% 4% 6%;
  background: #fff;
  border-bottom: 1px solid #ececec;
}
.ter .qr_box .flex{
  justify-content: space-between;
  gap: 3px;
}
.ter .qr_box .flex li{
  width: calc(100% / 2 - 3px);
  padding: 13px 0;
  border: 1px solid #aaa;
  border-radius: 6px;
  font-size: 0.73rem;
  text-align: center;
  font-feature-settings: "palt";
}
.ter .qr_box .flex li img{
  width: 10%;
  margin-right: 5px;
  display: inline-block;
  vertical-align: middle;
}
.ter .qr_box .emp{
  margin-bottom: 10px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-feature-settings: "palt";
  text-align: center;
  font-size: clamp(0.813rem, -0.028rem + 3.8vw, 1.75rem)!important;
}
.ter .qr_box .emp:before{
  content: "";
  width: 38px;
  height: 2px;
  transform: rotate(70deg);
  background-color: #f23;
}
.ter .qr_box .emp:after{
  content: "";
  width: 38px;
  height: 2px;
  transform: rotate(-70deg);
  background-color: #f23;
}
@media screen and (min-width:375px) {
  .ter .qr_box .flex li{
    font-size: 0.8rem;
  }
}
@media screen and (min-width:768px) {
  .ter .centered{
    width: 93%;
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    align-items: center;
    position: absolute;
    top: 50%;
    left: 49%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
  }
  .ter .centered_inner{
    width: 60%;
  }
  .ter_heading{
    background-size: contain;
    padding-top: 28.67%;
  }
  .snstips{
    padding-top: 10px;
    font-size: 0.7rem;
  }
  .ter .qr_box {
    width: 20%;
    padding: 0;
    border-radius: 6px;
  }
}
.ter .info_list{
  padding: 20px 0 1px;
}
@media screen and (min-width:768px) {
  .ter .info_list{
    padding: 40px 0 20px;
  }
}
.ter .info{
  margin-bottom: 25px;
  color: #e70013;
}
.ter .info_list .info:not(:last-child){
  margin-bottom: 10px;
}
.ter .info_inner{
  display: flex;
  align-items: center;
  gap: 5px;
  font-feature-settings: "palt";
}
.ter .info_header{
  width: 22vw; 
}
.ter .info_header.first_child{
  top: 50%;
  left: -2%;
}
.ter .info_period{
  text-align: center;
  font-weight: bold;
  font-size: 1rem;
  line-height: 1.4;
  flex-grow: 1;
  margin-top: -6px;
}
@media screen and (min-width:375px) {
  .ter .info_period{
    font-size: 1.2rem;
  }
}
.ter .info_period span{
  font-size: 1rem;
}
.ter .info_period .small{
  font-size: 0.8rem;
}
.ter .info_period br{
  display: inline;
}
.ter .info_period .and{
  display: block;
  width: fit-content;
  margin: 5px auto 2px auto;
  font-size: 0.8rem;
  border: 1px solid #e70013;
  color: #e70013;
  padding: 2px 20px;
  border-radius: 50px;
}
.ter .info_notes{
  margin-top: 10px;
  text-align: center;
  font-feature-settings: "palt";
  font-size: 0.875rem !important;
}
.ter .info_period .date{
  display: block;
  margin-top: 5px;
}
@media screen and (min-width:500px) {
  .ter .info_header{
    width: 18vw; 
  }
  .ter .info_period{
    font-size: 1.8rem;
    line-height: 1.2;
  }
  .ter .info_period span{
    font-size: 1.4rem;
  }
  .ter .info_period .small{
    font-size: 1rem;
  }
  .ter .info_period .and{
    font-size: 1rem;
    margin: 10px auto;
    padding: 5px 20px;
  }
  .ter .info_period .date{
    margin-top: dpx;
  }
}
@media screen and (min-width:768px) {
  .ter .info{
    margin-top: 0;
    margin-bottom: 40px;
  }
  .ter .info_list .info:not(:last-child){
    margin-bottom: 20px;
  }
  .ter .info_header{
    width: 160px;
  }
  .ter .info_period{
    font-size: 3.4rem;
    line-height: 1.2;
  }
  .ter .info_period span{
    font-size: 1.8rem;
  }
  .ter .info_period .small{
    font-size: 2rem;
}
  .ter .info_notes{
    text-align: left;
  }
}
.coming-soon {
  margin-top: 5px;
  text-align: center;
  color: #000;
  font-weight: bold;
}
@media (min-width: 768px) {
  .coming-soon {
    position: absolute;
    right: 20px;
    bottom: 10px;
  }
}
.ter .menu__list{
  display: flex;
  align-items: stretch;
  flex-wrap: wrap;
  gap: 20px;
  padding: 4% 0;
}
.ter .menu__list li{
  width: 100%;
  color: #fff;
}
.menu__pic{
  position: relative;
  display: inline-block;
}
.menu__pic > img {
  display: block;
  width: 100%;
  height: auto;
}
.menu__pic p{
  position: relative;
}
.menu__pic p 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;
  padding: 0;
  width: 100%;
  height: 100%;
  position: relative;
}
.steam_img {
  position: absolute;
  left: 50%;
  bottom: 40%;          /* 皿のあたりから出ている感じ */
  transform: translateX(-50%);
}
.steam_img img {
  display: block;
  max-width: 100%;
}
@media (max-width: 768px) {
  .steam_img img {
    margin: 0 auto;
    max-width: 50%!important;
  }
}
@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; }


.menu__pic p img.poff{
  z-index: 1;
  position: absolute;
  right: 7px;
  bottom: 7px;
  width: 26%;
  border-radius: 15px;
}
.ter .menu__cnt {
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 10px;
}
.ter .menu__detail {
  border-radius: 0 0 15px 15px;
  padding: 20px 20px 12px 20px;
  width: 100%;
}
#shop01 .menu__detail {
  background: #e60012;
}
#shop02 .menu__detail {
  background: #e4007f;
}
@media (min-width: 768px) {
  .ter .menu__list{
    gap: 50px 20px;
  }
  /*
  .ter .menu__list li:first-child{
    width: 100%;
  }
  */
  .ter .menu__list li{
    width: calc(100% / 2 - 10px);
  }
  .ter .menu__list li:not(:first-child) div.menu__detail {
    display: flow;
  }
  .ter .menu__detail {
    padding: 25px 30px 20px 30px;
  }
}
.ter.brand--01 .menu__desc:before{
  content: "";
  background: url(../images/shop-ico01.webp) left no-repeat;
  background-size: 60px 60px;
  min-height: 60px;
  width: 60px;
  flex-shrink: 0;
}
.ter.brand--02 .menu__desc:before{
  content: "";
  background: url(../images/shop-ico02.webp) left no-repeat;
  background-size: 60px 60px;
  min-height: 60px;
  width: 60px;
  flex-shrink: 0;
}
.ter .menu__desc {
  display: flex;
  align-items: center;
  gap: 15px;
  font-weight: bold;
  font-size: 1.2rem;
  line-height: 1.4;
}
@media (min-width: 768px) {
  .ter .menu__desc {
    background-size: 34px 34px;
    font-size: 1.4rem;
  }
}
.ter .menu__name {
  width: 100%;
  margin-bottom: 5px;
  font-weight: bold;
  font-size: 1.3rem;
  line-height: 1.2;
  font-feature-settings: "palt";
}
.karai {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.karai::after {
  content: "";
  width: 35px;
  height: 35px;
  background-image: url("../images/tougarashi.png"); /* 画像パス */
  background-size: contain;
  background-repeat: no-repeat;
  display: inline-block;
}
.ter .menu__name span {
  font-size: 1rem;
}
.ter .menu_price--before{
  width: 100%;
  display: flex;
  align-items: baseline;
}
.ter .menu_price--before span{
  display: inline-block;
  padding-right: 10px;
  font-size: 0.78rem;
}
.ter .menu_price--before p{
  font-size: 0.85rem;
  text-decoration:line-through;
}
.menu__appeal {
  width: 100%;
  color: #c98c0a;
  font-weight: bold;
}
@media (min-width: 768px) {
  .ter .menu__name {
    font-size: 1.55rem !important;
  }
  .ter .menu__name span {
    font-size: 1.4rem;
  }
  .ter .menu_price--before span{
    font-size: 0.9rem;
  }
  .ter .menu_price--before p{
    font-size: 1.2rem;
  }
  .menu__appeal {
    font-size: 1.3rem;
  }
}
.ter .menu__price {
  font-size: 2rem;
}
@media (min-width: 768px) {
  .menu__price {
    font-size: 2.4rem;
  }
}
.ter .menu__tax {
  font-size: 1.0rem;
  font-weight: bold;
}
@media (min-width: 768px) {
  .ter .menu__tax {
    font-size: 1.4rem;
  }
}
.under{
  padding: 4% 4% 0!important;
}
.under span{
  font-weight: bold;
  color: #f11;
}

/* 高さ揃え */
@media (min-width: 768px) {
  .menu__name.unify{
    height: 61px
  }
  .menu_tips.unify{
    height: 91px
  }
}

.app--link{
  text-align: center;
  padding: 0 4% 6%;
}
.app--link a{
  position: relative;
  display: block;
  background: #e70013 url("../images/01774-tmb.png") no-repeat;
  background-position: 24px 18px;
  background-size: 10%;
  border: 6px solid #fff;
  border-radius: 30px;
  box-shadow: 0 6px 0 #c1c2c3; 
  margin: 0 auto;
  padding: 20px;
  width: 100%;
  font-weight: bold;
  font-size: 1.1rem;
  color: #fff;
}
.app--link a::after{
  content: "";
  position: absolute;
  width: 18px;
  height: 18px;
  background: url("../images/arrow.png") no-repeat center / contain;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
}
.app--link a span{
  display: block;
  font-size: 0.95rem;
}
@media (min-width: 768px) {
  .app--link{
    padding: 0 0 4%;
  }
  .app--link a{
    background: #e70013 url("../images/01774-tmb.png") no-repeat;
    background-position: 20px 20px;
    background-size: 50px;
    border: 10px solid #fff;
    width: 50%;
    min-width: 480px;
    font-size: 1.4rem;
    }
  .app--link a::after{
    content: "";
    position: absolute;
    width: 30px;
    height: 30px;
    background: url("../images/arrow.png") no-repeat center / contain;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
  }
  .app--link a span{
    font-size: 1.05rem;
  }
}

/* 半額コンテンツ */
.half_wrap{
  background: #ffdd5e;
}
.half_inner{
  display: flex;
  padding: 2% 4% 4%;
  gap: 30px;
}
.half--box{
  width: 100%;
}
.half--box .half--menu{
  text-align: center;
  background: #333;
  border-radius: 10px;
  padding: 3% 8%;
  font-weight: bold;
  font-size: 1.5rem;
  color: #fff;
}
.half--box .half--menu span{
  padding-left: 15px;
  font-size: 1.0rem;
}
.half--box ul{
  gap: 30px;
}
.half--box ul li{
  position: relative;
  display: flex;
  align-items: center;
  background: #fff;
  border: 6px solid #e4e5e6;
  border-radius: 30px;
  margin-top: 20px;
  padding: 30px;
}
.half--box ul li p.hangaku-ico{
  position: absolute;
  top: -10px;
  right: -10px;
}
.half--box ul li p.hangaku-ico img{
  width: 60px;
  height: 60px;
}
.half--box ul li picture img{
  width: 100%;
  max-width: 200px;
}
.half--box ul li dl{
  padding-left: 20px;
}
.half--box ul li dl dt{
  padding-bottom: 10px;
  font-size: clamp(1.0rem, calc(0.6rem + 0.51vw), 1.2rem);
}
@media (min-width: 768px) {
  .half--box ul li dl dt {
    min-height: 3.6em;
  }
}
.half--box ul li dl dd:nth-of-type(1){
  text-decoration: line-through;
  font-size: 0.85rem;
}
.half--box ul li dl dd:nth-of-type(2){
  font-size: clamp(0.9rem, calc(0.9rem + 0.3vw), 1.2rem);
  font-weight: bold;
  color: #e70013;
}
.half--box ul li dl dd:nth-of-type(2) span{
  font-size: 1.0rem;
  color: #e70013;
}
@media (max-width: 768px) {
  .half_inner{
    display: flex;
    flex-direction: column;
  }
  .half--box .half--menu{
    font-size: 1.3rem;
  }
  .half--box .half--menu span{
    font-size: 0.9rem;
  }
  .half--box ul li{
    padding: 20px;
  }
  .half--box ul li picture img{
    width: 100%;
    min-width: 200px;
  }
  .half--box ul li dl dt{
    line-height: 1.5;
    padding-bottom: 10px;
    font-size: 1.2rem;
  }
  .half--box ul li dl dd:nth-of-type(2){
    font-size: 1.5rem;
  }
  .half--box ul li dl dd:nth-of-type(2) span{
    font-size: 0.85rem;
  }
  br.sw{
    display: block!important;
  }
}
@media (max-width: 570px) {
  .half--box ul li dl dt{
    font-size: 0.9rem;
  }
  .half--box ul li dl dd:nth-of-type(2){
    font-size: 1.4rem;
  }
}
@media (max-width: 500px) {
  .half--box ul li{
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 18px;
  }
  .half--box ul li picture img{
    width: 100%;
    max-width: 100%;
  }
  .half--box ul li dl{
    padding-left: 0;
    padding: 13px 20px 0;
    width: 100%;
  }
  .half--box ul li dl dt{
    font-size: 1.2rem;
    padding-bottom: 0;
  }
  .half--box ul li dl dd:nth-of-type(2){
    font-size: 1.15rem;
  }
  .half--box ul li dl dd{
    text-align: right;
  }
}


