@charset "utf-8";


* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
body{
  margin: 0;
  font-family: sans-serif;
  color: #000;
  background: #fff;
  position: relative;
}

.sumikko-warp{
  position: relative;
  overflow: hidden;
  background: none;
}
.sumikko-warp::before{
  content:"";
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;

  background-image: url("/synced-assets/campaign_sumikkogurashi/img/bg.webp");
  background-repeat: repeat;
  background-size: 280px auto;

  animation: bgSlideUp 60s linear infinite;
}
.udon-section{
  position:relative;
  z-index:20;
}
.page,
.bg-decoration,
.bg-bottom,
.side-menu,
.sp-menu-btn,
.menu-overlay{
  position: relative;
  z-index: 1;
}

/* スライドアップ */
@keyframes bgSlideUp {
  from {
    background-position: 0 0;
  }
  to {
    background-position: 0 -1000px;
  }
}

@media (min-width: 959px) {
  .sumikko-warp {
    animation: bgSlideUp 60s linear infinite;
  }
}

.bg-bottom{
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  height: 100px;
  background: url("/synced-assets/campaign_sumikkogurashi/img/bg_bottom.webp") repeat-x center bottom;
  background-size: auto 100%;
  pointer-events: none;
  z-index: 1;
}

/* 背景キャラクター */
.sumikko-warp .bg-decoration{
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 2;
  animation: bgFloat 80s linear infinite;
}
@media (max-width: 768px) {
  .sumikko-warp .bg-decoration{
    display: none;
  }
}

.sumikko-warp .bg-decoration img{
  position: absolute;
  display: block;
}

/* 次コンテンツ */
.udon{
  position: relative;
  z-index: 1;
  background: #fff;
}

  .bg-decoration img{
    position:absolute;
    display:block;
  }
  .bg-decoration__01{
    bottom:0;
    left:0;
    max-width: 22%;
  }
  .bg-decoration__02{
    top: 60%;
    left: 15%;
    max-width: 3.9%;
    animation: float02 4s ease-in-out infinite;
    animation-delay: -1.5s;
  }
  .bg-decoration__03{
    top: 50%;
    left: 6%;
    max-width: 3.9%;
    animation: float03 4s ease-in-out infinite;
    animation-delay: -4s;
  }
  .bg-decoration__04{
    top: 24%;
    left: 8%;
    max-width: 3.9%;
    animation: float04 4s ease-in-out infinite;
    nimation-delay: -6s;
  }
  .bg-decoration__05{
    top:35%;
    left:20%;
    max-width: 3.9%;
    animation: float05 4s ease-in-out infinite;
    animation-delay: -2.5s;
  }
  .bg-decoration__06{
    top: 75%;
    left: 15%;
    max-width: 3.9%;
    animation: float03 4s ease-in-out infinite;
    animation-delay: -4s;
  }
  .bg-decoration__07{
    top:15%;
    right:8%;
    max-width: 3.9%;
    animation: float04 4s ease-in-out infinite;
    nimation-delay: -6s;
  }
  .bg-decoration__08{
    top: 80%;
    right: 13%;
    max-width: 3.9%;
    animation: float05 4s ease-in-out infinite;
    animation-delay: -2.5s;
  }
  .bg-decoration__09{
    bottom:0;
    right:3%;
    max-width: 12%;
  }

/* バウンス */
@keyframes float02 {
  0%,100%{
    transform: translateY(0) rotate(8deg);
  }
  50%{
    transform: translateY(-12px) rotate(11deg);
  }
}
@keyframes float03 {
  0%,100%{
    transform: translateY(0) rotate(-20deg);
  }
  50%{
    transform: translateY(-18px) rotate(-24deg);
  }
}

@keyframes float04 {
  0%,100%{
    transform: translateY(0) rotate(5deg);
  }
  50%{
    transform: translateY(-8px) rotate(2deg);
  }
}

@keyframes float05 {
  0%,100%{
    transform: translateY(0) rotate(-10deg);
  }
  50%{
    transform: translateY(-14px) rotate(-6deg);
  }
}
@keyframes float06 {
  0%,100%{
    transform: translateY(0) rotate(-20deg);
  }
  50%{
    transform: translateY(-18px) rotate(-24deg);
  }
}

@keyframes float07 {
  0%,100%{
    transform: translateY(0) rotate(5deg);
  }
  50%{
    transform: translateY(-8px) rotate(2deg);
  }
}

@keyframes float08 {
  0%,100%{
    transform: translateY(0) rotate(-10deg);
  }
  50%{
    transform: translateY(-14px) rotate(-6deg);
  }
}

img {
  display: block;
  width: 100%;
  height: auto;
}
*: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;
  }
}
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;
  }
}

/* 初期状態 */
.class-fuwa {
  opacity: 0;
  transform: translateY(24px);
  transition:
    opacity 0.8s ease,
    transform 0.8s ease;
}

/* 表示時 */
.class-fuwa.is-show {
  opacity: 1;
  transform: translateY(0);
}

.class-fade {
  opacity: 0;
  transition: opacity .8s ease;
}

.class-fade.is-show {
  opacity: 1;
}
.open__yane {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 20;
  width: 100%;
  height: 200px;
  overflow: hidden;
  pointer-events: none;
  background-image: url("/synced-assets/campaign_sumikkogurashi/img/yane.webp");
  background-repeat: repeat-x;
  background-position: center top;
  background-size: auto 200px;
  transition: transform 1.25s cubic-bezier(.19,1,.22,1);
}

.open.is-open .open__yane {
  transform: translateY(-120%);
}

.open{
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  pointer-events: none;
  --yane-h:200px;
  opacity: 1;
  transition: opacity .6s ease;
  overflow: hidden;
}

.open.is-hide{
  opacity: 0;
  visibility: hidden;
}

.open__door {
  --frame: clamp(12px, 2.4vw, 30px);
  position: relative;
  width: calc(50% + 1px);
  height: 100%;
  overflow: hidden;
  background: transparent;
}

.open__door--outer-l,
.open__door--outer-r{
  z-index:1;
}

.open__door--l,
.open__door--r{
  z-index:2;
}

.open__door::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(90deg,#d29459,#b97842) left top / var(--frame) 100% no-repeat,
    linear-gradient(90deg,#b97842,#d29459) right top / var(--frame) 100% no-repeat,
    linear-gradient(#c9854d,#c9854d) top center / calc(100% - var(--frame) * 2) var(--frame) no-repeat,
    linear-gradient(#b97842,#b97842) bottom center / calc(100% - var(--frame) * 2) var(--frame) no-repeat;
  box-shadow:
    inset 0 0 0 .18vw #8b552f,
    inset 0 0 0 .42vw rgba(255,210,150,.18);
}

.open__door::after {
  content: "";
  position: absolute;
  inset: calc(var(--frame) - 1px);
  z-index: 2;
  background: rgba(255,255,255,.22);
  border: .12vw solid rgba(140,90,50,.42);
  backdrop-filter: blur(8px) saturate(140%);
  -webkit-backdrop-filter: blur(8px) saturate(140%);
  box-shadow: inset 0 0 40px rgba(255,255,255,.16);
  pointer-events: none;
}

.open__door--l {
  border-right: none;
}

.open__door--r {
  border-left: .24vw solid #8b552f;
}

.open__sign,
.open__enter {
  position:absolute;
  left:50%;
  top:50%;
  z-index:5;
  --open-logo-y:80px;
  transform: translate(-50%,calc(-50% + var(--open-logo-y)));
  pointer-events:none;
}

.open__sign{
  width:150px;
  max-width:none;
  left:auto;
  right:14%;
  top:50%;
  opacity:1;
  animation:none;
  transform:
    translateY(calc(-50% + var(--open-logo-y)))
    scale(.9);
  transition:
    opacity .55s ease,
    transform .55s cubic-bezier(.22,1,.36,1);
}


.open__enter{
  width:190px;
  max-width:none;
  opacity:1;
  transform:
    translate(-50%,calc(-50% + var(--open-logo-y)))
    scale(.9);
  transition:
    opacity .55s ease,
    transform .55s cubic-bezier(.22,1,.36,1);
}


/* 1080px以上：4枚扉 */
@media screen and (min-width:1080px){
  .open__door{
    width:25%;
    transform:translateX(0);
    transition:transform 1.65s cubic-bezier(.19,1,.22,1);
  }

  .open__door::after{
    inset:calc(var(--frame) - 2px);
  }

  .open__door--outer-l,
  .open__door--outer-r{
    display:block;
  }

  .open.is-open .open__door--outer-l{
    transform:translateX(-130%);
  }

  .open.is-open .open__door--l{
    transform:translateX(-200%);
  }

  .open.is-open .open__door--r{
    transform:translateX(200%);
  }

  .open.is-open .open__door--outer-r{
    transform:translateX(130%);
  }

  .open__door--r{
    border-left:none;
  }
}

/* 1079px以下は2枚扉 */
@media screen and (max-width:1079px){

  .open__door--outer-l,
  .open__door--outer-r{
    display:none;
  }

  .open__door{
    width:50%;
    transition:transform .9s cubic-bezier(.16,1,.3,1);
  }

  .open.is-open .open__door--l{
    transform:translateX(-110%);
  }


  .open.is-open .open__door--r{
    transform:translateX(110%);
  }
}

.open__loading{
  position:absolute;
  left:50%;
  top:50%;
  z-index:10;
  --open-logo-y:80px;
  width:200px;
  height:200px;
  border-radius:50%;
  background:#fff;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  transform:translate(-50%,calc(-50% + var(--open-logo-y)));
  opacity:1;
  transition:
    opacity .45s ease,
    transform .45s ease;
  box-shadow:0 8px 20px rgba(0,0,0,.08);
}

.open.is-loaded .open__loading{
  opacity:0;
  transform:
    translate(-50%,calc(-50% + var(--open-logo-y)))
    scale(.9);
  pointer-events:none;
}

.open__loading-chara{
  display:flex;
  gap:6px;
  margin-bottom:8px;
}

.open__loading-chara img{
  width:28px;
  height:auto;
  animation:tapiWave .9s ease-in-out infinite;
}

.open__loading-chara img:nth-child(2){
  animation-delay:.15s;
}

.open__loading-chara img:nth-child(3){
  animation-delay:.3s;
}

.open__loading-text{
  color:#543016;
  font-size:16px;
  font-weight:700;
  letter-spacing:.08em;
}

.open__loading-text span{
  display:inline-block;
  animation:loadingWave .9s ease-in-out infinite;
}

.open__loading-text span:nth-child(2){animation-delay:.08s;}
.open__loading-text span:nth-child(3){animation-delay:.16s;}
.open__loading-text span:nth-child(4){animation-delay:.24s;}
.open__loading-text span:nth-child(5){animation-delay:.32s;}
.open__loading-text span:nth-child(6){animation-delay:.40s;}

@keyframes tapiWave{
  0%,100%{
    transform:translateY(0);
  }
  50%{
    transform:translateY(-10px);
  }
}

@keyframes loadingWave{
  0%,100%{
    transform:translateY(0);
  }
  50%{
    transform:translateY(-5px);
  }
}

.copy{
  font-size: 10px;
}

.food-edu__bottom .copy,
.open__enter .copy{
  margin: 5px auto;
  color: #543016;
}

@media (max-width: 768px) {
  .copy{
    font-size: 9px;
  }

  .open__enter .copy{
    font-size: 8px;
  }
}

@keyframes openFade{
  0%{
    opacity:0;
    transform:translate(-50%,calc(-50% + var(--open-logo-y))) scale(.86);
  }

  100%{
    opacity:1;
    transform:translate(-50%,calc(-50% + var(--open-logo-y))) scale(1);
  }
}

@media screen and (max-width:767px) {
  .open__door {
    --frame: 4vw;
  }

  .open__door::before {
    box-shadow:
      inset 0 0 0 .35vw #8b552f,
      inset 0 0 0 .8vw rgba(255,210,150,.18);
  }

  .open__door::after {
    border-width: .3vw;
  }

  .open__door--r {
    border-left-width: .45vw;
  }

  .open__sign,
  .open__enter{
    --open-logo-y:80px;
  }

  .open__sign {
    width:22vw;
    right:10%;
  }

  .open__enter {
    width:26vw;
  }
}


.page{
  position:relative;
  z-index:10;
  padding-top: 10px;
  opacity:0;
  animation:pageReady .25s ease forwards;animation-delay:.4s;
  overflow-x: hidden;
}
@keyframes pageReady{
  100%{opacity:1;}
}

.contents {
  position:relative;
  z-index:10;
  width: 100%;
  max-width: 580px;
  margin: 20px auto 50px;
  border: 7px solid #e57d2b;
  border-radius: 40px;
  background: #fffef1;
}
.contents::before{
  content:"";
  position: absolute;
  inset: -18px;
  border: 12px solid #fff;
  border-radius: 50px;
  pointer-events: none;
}
@media (max-width: 600px) {
  .contents {
    width: 96%;
    margin: 20px auto 12px;
    border-radius: 40px 40px 0 0;
  }
.contents::before{
    border-radius: 50px 50px 0 0;
}
}

/* ----------------------------------------
   横からにょき set01〜05
---------------------------------------- */
.intro.ct,
.present-box.set01,
.present-box.set02,
.present-box.set03,
.present-box.set04,
.present-box.set05{
  position:relative;
  overflow:visible;
}

/* ===== PC/基本：contents右端からの距離 ===== */
.intro.ct{
  --nozoki-content-w:580px;
  --nozoki-body-right:-1px;
  --nozoki-hand-right:-49px;
}
.present-box.set01{
  --nozoki-content-w:580px;
  --nozoki-body-right:-1px;
  --nozoki-hand-right:-49px;
}

.present-box.set02{
  --nozoki-content-w:580px;
  --nozoki-body-right:-1px;
  --nozoki-hand-right:-42px;
}

.present-box.set03{
  --nozoki-content-w:580px;
  --nozoki-body-right:-1px;
  --nozoki-hand-right:-45px;
}

.present-box.set04{
  --nozoki-content-w:580px;
  --nozoki-body-right:-1px;
  --nozoki-hand-right:-42px;
}

.present-box.set05{
  --nozoki-content-w:580px;
  --nozoki-body-right:-1px;
  --nozoki-hand-right:-42px;
}

/* 本体 */
.side-nozoki{
  position:fixed;
  right:calc((100vw - var(--nozoki-content-w)) / 2 + var(--nozoki-body-right));
  top:38vh;
  z-index:120;
  width:90px;
  pointer-events:none;
  overflow:hidden;
}

.side-nozoki__mask{
  display:block;
  width:48px;
  overflow:hidden;
  margin-left:auto;
}

.side-nozoki__body{
  display:block;
  width:90px;
  opacity:1;
  transform:translateX(100%) rotate(35deg);
  transform-origin:72% 68%;
}

/* 出る時 */
.side-nozoki.is-show .side-nozoki__body{
  transform:translateX(0) rotate(0deg);
  transition:transform .95s cubic-bezier(.22,1,.36,1);
}

/* 引っ込む時 */
.side-nozoki.is-hide .side-nozoki__body{
  transform:translateX(100%) rotate(35deg);
  transition:transform .58s ease-in-out;
}

/* set01の上書き対策 */
.present-box.set01 .side-nozoki.is-hide .side-nozoki__body{
  transform:translateX(100%) rotate(35deg);
  transition:transform .58s ease-in-out;
}
/* set01だけ：回転時の頭切れ対策 */
.present-box.set01 .side-nozoki{
  overflow:visible;
  height:190px;
  top:calc(38vh - 32px);
}

.present-box.set01 .side-nozoki__mask{
  width:48px;
  height:190px;
  overflow:hidden;
  padding-top:32px;
  box-sizing:border-box;
}

.present-box.set01 .side-nozoki__body{
  transform:translateX(100%) rotate(35deg);
  transform-origin:72% 68%;
}

.present-box.set01 .side-nozoki.is-show .side-nozoki__body{
  transform:translateX(0) rotate(0deg);
}
/* 手 */
.side-nozoki__hand{
  position:fixed;
  right:calc((100vw - var(--nozoki-content-w)) / 2 + var(--nozoki-hand-right));
  top:38vh;
  width:90px;
  z-index:9999;
  pointer-events:none;
  opacity:0;
  transition:opacity .10s ease;
}

.side-nozoki__hand.is-show{
  opacity:1;
}


/* ----------------------------------------
   600px以下：contentsが96%なので、それに合わせる
---------------------------------------- */
@media (max-width:600px){
  .intro.ct{
    --nozoki-content-w:96vw;
    --nozoki-body-right:6px;
    --nozoki-hand-right:-40px;
  }
  
  .present-box.set01{
    --nozoki-content-w:96vw;
    --nozoki-body-right:6px;
    --nozoki-hand-right:-40px;
  }

  .present-box.set02{
    --nozoki-content-w:96vw;
    --nozoki-body-right:6px;
    --nozoki-hand-right:-34px;
  }

  .present-box.set03{
    --nozoki-content-w:96vw;
    --nozoki-body-right:6px;
    --nozoki-hand-right:-36px;
  }

  .present-box.set04{
    --nozoki-content-w:96vw;
    --nozoki-body-right:6px;
    --nozoki-hand-right:-34px;
  }

  .present-box.set05{
    --nozoki-content-w:96vw;
    --nozoki-body-right:6px;
    --nozoki-hand-right:-33px;
  }

  .side-nozoki,
  .side-nozoki__body,
  .side-nozoki__hand{
    width:88px;
  }

  .side-nozoki__mask{
    width:50px;
  }
}


/* ----------------------------------------
   601〜766px：contents幅580px固定として計算
---------------------------------------- */
@media (min-width:601px) and (max-width:766px){
  .intro.ct{
    --nozoki-content-w:580px;
    --nozoki-body-right:-1px;
    --nozoki-hand-right:-47px;
  }

  .present-box.set01{
    --nozoki-content-w:580px;
    --nozoki-body-right:-1px;
    --nozoki-hand-right:-47px;
  }

  .present-box.set02{
    --nozoki-content-w:580px;
    --nozoki-body-right:-1px;
    --nozoki-hand-right:-41px;
  }

  .present-box.set03{
    --nozoki-content-w:580px;
    --nozoki-body-right:-1px;
    --nozoki-hand-right:-44px;
  }

  .present-box.set04{
    --nozoki-content-w:580px;
    --nozoki-body-right:-1px;
    --nozoki-hand-right:-41px;
  }

  .present-box.set05{
    --nozoki-content-w:580px;
    --nozoki-body-right:-1px;
    --nozoki-hand-right:-40px;
  }

  .side-nozoki,
  .side-nozoki__body,
  .side-nozoki__hand{
    width:88px;
  }

  .side-nozoki__mask{
    width:50px;
  }
}


.kv__wrap {
  position: relative;
  width: 100%;
  max-width: 580px;
  aspect-ratio: 1080 / 1581;
}
.kv__wrap img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
/* i01が一番後ろ */
.p01 { z-index: 1; }
.p02 { z-index: 2; }
.p03 { z-index: 3; }
.p04 { z-index: 4; }
.p05 { z-index: 5; }
.p06 { z-index: 6; }
.p07 { z-index: 7; }
.p08 { z-index: 8; }
.p09 { z-index: 9; }
.p10 { z-index: 10; }
.p11 { z-index: 11; }
.p12 { z-index: 12; }
.p13 { z-index: 13; }
.p14 { z-index: 14; }
.p15 { z-index: 15; }
.p16 { z-index: 16; }
.p17 { z-index: 17; }
.p18 { z-index: 18; }
.p19 { z-index: 18; }
.p20 { z-index: 18; }
.p21 { z-index: 18; }
.p22 { z-index: 18; }
.p23 { z-index: 18; }
.p24 { z-index: 18; }


/*すみっこ*/
.p01{
  border-radius: 32px 32px 0 0;
}
.p02{ animation: char02 2.8s ease-in-out infinite; transform-origin:50% 90%; }
.p03{ animation: char03 3.4s ease-in-out infinite; transform-origin:50% 90%; }
.p05{ animation: char05 3.0s ease-in-out infinite; transform-origin:50% 90%; }
.p06{ animation: char06 3.8s ease-in-out infinite; transform-origin:50% 90%; }
.p07{ animation: char07 2.6s ease-in-out infinite; transform-origin:50% 90%; }
@keyframes char02{
  0%,70%,100%{ transform:translateY(0) rotate(0deg); }
  35%{ transform:translateY(-1px) rotate(-0.35deg); }
  76%{ transform:translateY(0) scaleY(.98); }
  82%{ transform:translateY(-8px) rotate(-0.3deg) scaleY(1.02); }
  88%{ transform:translateY(0) rotate(0deg) scaleY(1); }
}
@keyframes char03{
  0%,68%,100%{ transform:translateY(0) rotate(0deg); }
  34%{ transform:translateY(-1px) rotate(0.25deg); }
  74%{ transform:translateY(0) scaleY(.98); }
  80%{ transform:translateY(-6px) rotate(0.3deg) scaleY(1.02); }
  86%{ transform:translateY(0) rotate(0deg) scaleY(1); }
}
@keyframes char05{
  0%,72%,100%{ transform:translateY(0) rotate(0deg); }
  36%{ transform:translateY(1px) rotate(0.3deg); }
  78%{ transform:translateY(0) scaleY(.98); }
  84%{ transform:translateY(-9px) rotate(0.25deg) scaleY(1.02); }
  90%{ transform:translateY(0) rotate(0deg) scaleY(1); }
}
@keyframes char06{
  0%,74%,100%{ transform:translateY(0) rotate(0deg); }
  37%{ transform:translateY(1px) rotate(-0.25deg); }
  80%{ transform:translateY(0) scaleY(.985); }
  86%{ transform:translateY(-7px) rotate(-0.25deg) scaleY(1.015); }
  92%{ transform:translateY(0) rotate(0deg) scaleY(1); }
}
@keyframes char07{
  0%,66%,100%{ transform:translateY(0) rotate(0deg); }
  33%{ transform:translateY(-1px) rotate(-0.25deg); }
  72%{ transform:translateY(0) scaleY(.98); }
  78%{ transform:translateY(-10px) rotate(-0.2deg) scaleY(1.02); }
  84%{ transform:translateY(0) rotate(0deg) scaleY(1); }
}

/*おさらのこ*/
.p08{
  animation: miniJump01 3.4s ease-in-out infinite;
  animation-delay: -.8s;
  transform-origin: 50% 100%;
}
.p09{
  animation: miniJump02 3.8s ease-in-out infinite;
  animation-delay: -1.7s;
  transform-origin: 50% 100%;
}
.p10{
  animation: miniJump03 3.2s ease-in-out infinite;
  animation-delay: -2.4s;
  transform-origin: 50% 100%;
}
@keyframes miniJump01{
  0%,72%,100%{
    transform:translateY(0);
  }
  78%{
    transform:translateY(-6px);
  }
  84%{
    transform:translateY(0);
  }
}

@keyframes miniJump02{
  0%,76%,100%{
    transform:translateY(0);
  }
  82%{
    transform:translateY(-7px);
  }
  88%{
    transform:translateY(0);
  }
}

@keyframes miniJump03{
  0%,74%,100%{
    transform:translateY(0);
  }
  80%{
    transform:translateY(-8px);
  }
  86%{
    transform:translateY(0);
  }
}

/*まるちゃん*/
.p11{
  animation: sub11 6s ease-in-out infinite;
}

.p12{
  animation: sub12 5.5s ease-in-out infinite;
  transform-origin: 50% 80%;
}

.p13{
  animation: sub13 6.2s ease-in-out infinite;
  transform-origin: 50% 80%;
}

@keyframes sub11{
  0%,100%{
    transform:translateX(0);
  }

  25%{
    transform:translateX(-1px);
  }

  50%{
    transform:translateX(0);
  }

  75%{
    transform:translateX(1px);
  }
}

@keyframes sub12{
  0%,75%,100%{transform:rotate(0);}
  80%{transform:rotate(2deg);}
  85%{transform:rotate(0);}
}

@keyframes sub13{
  0%,82%,100%{transform:rotate(0);}
  87%{transform:rotate(-2deg);}
  92%{transform:rotate(0);}
}


/*音符*/
.p14 {
  animation: note01 2.8s ease-in-out infinite;
  transform-origin: 50% 50%;
}

.p15 {
  animation: note02 3.2s ease-in-out infinite;
  transform-origin: 50% 50%;
}

.p16 {
  animation: note03 2.6s ease-in-out infinite;
  transform-origin: 50% 50%;
}

.p17 {
  animation: note04 3.5s ease-in-out infinite;
  transform-origin: 50% 50%;
}

@keyframes note01 {
  0%,100% {
    transform: translate(0,0) rotate(0deg);
    opacity: .85;
  }
  50% {
    transform: translate(8px,-5px) rotate(6deg);
    opacity: 1;
  }
}

@keyframes note02 {
  0%,100% {
    transform: translate(0,0) rotate(0deg);
    opacity: .85;
  }
  50% {
    transform: translate(-7px,-4px) rotate(-5deg);
    opacity: 1;
  }
}

@keyframes note03 {
  0%,100% {
    transform: translate(0,0) rotate(0deg);
    opacity: .8;
  }
  50% {
    transform: translate(6px,4px) rotate(4deg);
    opacity: 1;
  }
}

@keyframes note04 {
  0%,100% {
    transform: translate(0,0) rotate(0deg);
    opacity: .8;
  }
  50% {
    transform: translate(-9px,5px) rotate(-6deg);
    opacity: 1;
  }
}

/*湯気*/
.p18{
  z-index:8;
  top:30%!important;
  left:18%!important;
  width:32%!important;
  height:auto!important;
  animation:yuge01 4.5s ease-in-out infinite;
}
.p19{
  z-index:8;
  top:31%!important;
  left:43%!important;
  width:24%!important;
  height:auto!important;
  animation:yuge02 5.2s ease-in-out infinite;animation-delay:-1.7s;
}
.p20{
  z-index:8;
  top:31%!important;
  left:68%!important;
  width:22%!important;
  height:auto!important;
  animation:yuge03 4.8s ease-in-out infinite;animation-delay:-3.1s;
}
.p21{
  z-index:8;
  top:29%!important;
  left:0%!important;
  width:28%!important;
  height:auto!important;
  animation:yuge04 4.5s ease-in-out infinite;
}
.p22{
  z-index:8;
  top:31%!important;
  left:-9%!important;
  width:24%!important;
  height:auto!important;
  animation:yuge05 5.2s ease-in-out infinite;animation-delay:-4.7s;
}
.p23{
  z-index:8;
  top:31%!important;
  left:12%!important;
  width:28%!important;
  height:auto!important;
  animation:yuge06 4.8s ease-in-out infinite;animation-delay:-2.1s;
}
.p24{
  z-index:8;
  top:31%!important;
  left:0!important;
  width:24%!important;
  height:auto!important;
  animation:yuge07 5.2s ease-in-out infinite;animation-delay:-4.7s;
}
.p18,.p19,.p20,.p21,.p22,.p23,.p24{
  position:absolute;
  transform-origin:center bottom;
  pointer-events:none;
  opacity:.55;
  mix-blend-mode:normal;
}
@keyframes yuge01{
  0%{opacity:.2;transform:translateY(12px) translateX(0) scale(.95);}
  50%{opacity:.9;transform:translateY(-8px) translateX(-4px) scale(1);}
  100%{opacity:.2;transform:translateY(-20px) translateX(3px) scale(1.05);}
}
@keyframes yuge02{
  0%{opacity:.15;transform:translateY(10px) translateX(0) scale(.9);}
  50%{opacity:.8;transform:translateY(-10px) translateX(5px) scale(1);}
  100%{opacity:.15;transform:translateY(-24px) translateX(-4px) scale(1.08);}
}
@keyframes yuge03{
  0%{opacity:.2;transform:translateY(8px) scale(.95);}
  50%{opacity:1;transform:translateY(-6px) translateX(-3px) scale(1);}
  100%{opacity:.2;transform:translateY(-18px) translateX(4px) scale(1.03);}
}
@keyframes yuge04{
  0%{opacity:.15;transform:translateY(10px) translateX(0) scale(.9);}
  50%{opacity:.8;transform:translateY(-10px) translateX(5px) scale(1);}
  100%{opacity:.15;transform:translateY(-24px) translateX(-4px) scale(1.08);}
}
@keyframes yuge05{
  0%{opacity:.2;transform:translateY(8px) scale(.95);}
  50%{opacity:1;transform:translateY(-6px) translateX(-3px) scale(1);}
  100%{opacity:.2;transform:translateY(-18px) translateX(4px) scale(1.03);}
}
@keyframes yuge06{
  0%{opacity:.2;transform:translateY(12px) translateX(0) scale(.95);}
  50%{opacity:.9;transform:translateY(-8px) translateX(-4px) scale(1);}
  100%{opacity:.2;transform:translateY(-20px) translateX(3px) scale(1.05);}
}
@keyframes yuge07{
  0%{opacity:.2;transform:translateY(8px) scale(.95);}
  50%{opacity:1;transform:translateY(-6px) translateX(-3px) scale(1);}
  100%{opacity:.2;transform:translateY(-18px) translateX(4px) scale(1.03);}
}

.kv {
  position: relative;
  padding-bottom: 35px;
  contain: paint;
  transform: translateZ(0);
}
@media screen and (min-width: 440px) {
	.kv {
	  padding-bottom: 50px;
	}
}
@media screen and (max-width: 350px) {
	.kv {
	  padding-bottom: 28px;
	}
}
.main-copy {
  position:absolute;
  left:50%;
  top:93%;
  z-index:100;
  width:90%;
  opacity:0;
  transform:translate(-50%,-50%);
}

.main-copy.is-show {
  opacity:1;
  transition:opacity 1.2s ease;
}

.main-copy.is-show img,
.intro-copy.is-show img{
  animation:copyFloatText 4.5s ease-in-out infinite;
}

.food-educopy {
  margin:10px auto 0;
  width:60%;
  font-size:0.8rem;
}

.intro-copy{
  opacity:0;
  transition:opacity 1.2s ease;
}

.intro-copy.is-show{
  opacity:1;
}

@keyframes copyIn {
  from {
    opacity:0;
    filter:blur(24px);
    transform:translateX(-50%) scale(1.02);
  }
  to {
    opacity:1;
    filter:blur(0);
    transform:translateX(-50%) scale(1);
  }
}

@keyframes copyFloatText {
  0%,100%{
    transform:translateY(0);
  }

  50%{
    transform:translateY(-7px);
  }
}


.class-fuwa {
  opacity: 0;
  transform: translateY(24px);
  transition:
    opacity .7s ease,
    transform .7s cubic-bezier(.16,1,.3,1);
}

.intro-line img{
  padding: 30px 0 0;
}
.intro-title img{
  padding: 10px 0 5px;
}
.all-item {
  position: relative;
  padding: 0 15px;
}
@media screen and (max-width: 767px) {
  .all-item {
    padding: 0;
  }
}
.all-item .intro-top{
  z-index: 2;
  position: absolute;
}


.map-image {
  position: relative;
}
.map-link {
  text-indent: -9999px;
}
.link01 {
  position: absolute;
  top: 0;
  left: 2%;
  width: 46%;
  height: 10%;
}
.link02 {
  position: absolute;
  top: 0;
  right: 2%;
  width: 45%;
  height: 10%;
}
.link03 {
  position: absolute;
  top: 74%;
  left: 2%;
  width: 41%;
  height: 10%;
}
.link04 {
  position: absolute;
  top: 71%;
  right: 2%;
  width: 48%;
  height: 13%;
}
/*　軽量化対策　*/
.kv__wrap{
  transform: translateZ(0);
}

.kv__wrap img{
  backface-visibility: hidden;
}
.kv__wrap > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.kv__wrap .main-copy img {
  position: static;
  width: 100%;
  height: auto;
}
@media (min-width: 960px) {
  .kv__wrap img,
  .main-copy {
    backface-visibility: hidden;
    transform-style: preserve-3d;
  }

  .p18,
  .p19,
  .p20,
  .p21,
  .p22,
  .p23,
  .p24 {
    mix-blend-mode: normal;
    opacity: .45;
  }

  body {
    background-size: 360px auto;
  }
}

/* スクロール中だけKVキャラアニメ停止 */
.kv.is-scroll-paused .p02,
.kv.is-scroll-paused .p03,
.kv.is-scroll-paused .p05,
.kv.is-scroll-paused .p06,
.kv.is-scroll-paused .p07,
.kv.is-scroll-paused .p08,
.kv.is-scroll-paused .p09,
.kv.is-scroll-paused .p10,
.kv.is-scroll-paused .p11,
.kv.is-scroll-paused .p12,
.kv.is-scroll-paused .p13{
  animation-play-state: paused !important;
}
/*　軽量化対策　*/



.item-all-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0;
}
.item-all-grid{
  z-index: 2;
  position: absolute;
  top: 15%;
}
.item01{
  grid-column:1 / 3; /* 2列分使う */
}


.all-item .intro-bottom{
  z-index: 2;
  position: absolute;
  bottom: 5%;
}
.schedule{
  padding: 20px 0 30px;
}




section {
  margin: 0;
}
.open{z-index:99999;}
.contents{z-index:10;}


/* ----------------------------------------
   追従サイドメニュー
---------------------------------------- */
.side-menu{
  position:fixed;
  top:50%;
  left:calc(50% + 320px);
  transform:translateY(-50%);
  width:clamp(220px,22vw,320px);
  z-index:6;
  background-color:#fff3f4;
  border:5px solid #f0939c;
  border-radius:24px;
  overflow:visible;
}
.side-menu__inner{
  position:relative;
  padding: 5.6vw 2vw 3.6vw 2vw;
  display: flex;
  flex-wrap: wrap;
  overflow:hidden;
  gap: 22px;
}
.side-menu__inner::before{
  content:"";
  display:block;
  width:100%;
  aspect-ratio:320 / 64; /* 実画像比率に変更 */
  background:url("/synced-assets/campaign_sumikkogurashi/img/side-menu_top.webp") no-repeat center/contain;
  position:absolute;
  top: 0;
  left: 0;
  border-radius: 21px 21px 0 0;
}
.side-menu__inner::after{
  content:"";
  z-index:1;
  display:block;
  width:100%;
  aspect-ratio:320 / 34; /* 実画像比率に変更 */
  background:url("/synced-assets/campaign_sumikkogurashi/img/side-menu_bottom.webp") no-repeat center/contain;
  position:absolute;
  bottom: 0;
  left: 0;
}
.side-menu__inner img,
.side-menu__inner a{
  display:block;
  width:100%;
}
.side-menu a{
  position: relative;
  padding-left: 2.2vw;
}
.side-menu a:before{
  content:"";
  position:absolute;
  top:50%;
  left:0;
  transform:translateY(-50%);
  width: 1.3vw;
  height: 1.3vw;
  background:url("/synced-assets/campaign_sumikkogurashi/img/side-menu_arrow.webp") no-repeat center/contain;
}
.side-menu__inner a:hover{
  transform:translateX(-5px);
}
.side-menu hr{
  display:block;
  border: none;
  border-bottom: 4px dotted #f8b0b4;
  width: 100%;
}
.side-menu .copy{
  margin: 0 auto;
  color: #543016;
}
.sp-menu-btn{
  display:none;
}
.side-menu-hand{
  position:absolute;
  left: 6%;
  right: 6%;
  bottom:-4px;
  z-index:10;
  pointer-events:none;
}

.side-menu-hand img{
  display:block;
  width:100%;
}
.side-menu__inner::before,
.side-menu__inner::after,
.side-menu-hand,
.side-menu-hand img{
  pointer-events:none;
}

.side-menu__inner a{
  position:relative;
  z-index:3;
}

@media (max-width:959px){
  .sp-menu-btn{
    display: block;
    position:fixed;
    bottom:10px;
    right:15px;
    z-index:10001;
    width:50px;
    height:50px;
    border:2px solid #ff9b4d;
    border-radius:50%;
    background:#ff9b4d;
    cursor:pointer;
  }
  .sp-menu-btn span{
    display:block;
    position:relative;
    width:24px;
    height:2px;
    margin:auto;
    background:#fff;
    transition:.3s;
  }
  .sp-menu-btn span::before,
  .sp-menu-btn span::after{
    content:"";
    position:absolute;
    left:0;
    width:24px;
    height:2px;
    background:#fff;
    transition:.3s;
  }
  .sp-menu-btn span::before{
    top:-8px;
  }
  .sp-menu-btn span::after{
    top:8px;
  }
  .sp-menu-btn.is-open span{
  background:transparent;
}
  .sp-menu-btn.is-open span::before{
    top:0;
    transform:rotate(45deg);
  }
  .sp-menu-btn.is-open span::after{
    top:0;
    transform:rotate(-45deg);
  }
  .menu-overlay{
    position:fixed;
    inset:0;
    background:rgba(255,255,255,.7);
    opacity:0;
    visibility:hidden;
    transition:.3s;
    z-index:9998;
  }
  .menu-overlay.is-open{
    opacity:1;
    visibility:visible;
  }
  .side-menu{
    position:fixed;
    top:48%;
    left:50%;
    transform:translate(-50%,-50%) scale(.9);
    width: min(90vw, 340px);
    opacity:0;
    visibility:hidden;
    z-index:9999;
  }
  .side-menu__inner{
    padding:
      clamp(90px, 18vw, 120px)
      16px
      clamp(60px, 14vw, 80px)
      16px;
    gap: 18px;
  }
  .side-menu__inner img{
    width: 80%;
  }
  .side-menu a{
    padding-left: clamp(32px, 9vw, 56px);
  }
  .side-menu a:before{
    width: min(5.5vw, 28px);
    height: min(5.5vw, 28px);
  }
  .side-menu.is-open{
    opacity:1;
    visibility:visible;
    transform:translate(-50%,-50%) scale(1);
  }
  .side-menu-close{
    position:absolute;
    top:-40px;
    right:0;
    width:32px;
    height:32px;
    border:none;
    border-radius:50%;
    background:#fff;
    font-size:20px;
    cursor:pointer;
  }
}
.set-text{
  padding: 20px 0;
}
.present-box,
.set-warp{
  position: relative;
}
.set-title{
  position: absolute;
  top: -50px;
}
.set-warp h2{
  position: relative;
  z-index: 2;
}
.set-warp h2 img{
	padding: 0 5px;
}
.set-warp .udonfuda-modal-trigger{
  position: relative;
  z-index: 2;
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
}
.set-warp .udonfuda-modal-trigger h2{
  margin: 0;
}
.set-warp .udonfuda-modal-trigger img{
  width: 100%;
}
.set-warp .sumi-copy{
  position:absolute;
  left:50%;
  top:-130px;
  transform:translateX(-50%);
  z-index:2;
  opacity:1;
  pointer-events:none;
}
.set-warp .sumi-copy img{
  width:260px;
}
.set-warp .sumi-char{
  position:absolute;
  left:50%;
  top:20px;
  transform:translateX(-50%);
  z-index:1;
  opacity:0;
}
.sumi-char.is-show{
  animation:sumiPop .9s cubic-bezier(.22,1,.36,1) forwards;
}
@keyframes sumiPop{
  0%{
    top:20px;
    opacity:0;
  }
  100%{
    top:-45px;
    opacity:1;
  }
}
.set-warp .sumi-hand{
  position:absolute;
  left:50%;
  top:-45px;
  transform:translateX(-50%);
  z-index:3;
}

/* ------------------------------
   BOXコンテンツ回り
------------------------------ */
.box-text{
  padding: 5px 0 5px;
}
.box-info-map{
  position:relative;
  margin-bottom: 10px;
}

.box-info-link{
  position:absolute;
  z-index:5;
  width:60px;
  height:60px;
  border:0;
  padding:0;
  cursor:pointer;
}

/* 仮位置・仮色 */

.box-info-link--mat{
  width: 47%;
  height: 88%;
  bottom: 0;
  left: 2%;
  background:transparent;
}

.box-info-link--pick{
  width: 47%;
  height: 88%;
  bottom: 0;
  right: 2%;
  background:transparent;
}

/* モーダル本体 */
.c-modal,
.c-modal--box-info{
  z-index:999999 !important;
  position:fixed;
}

.c-modal--box-info .c-modal__inner{
  position:relative;
  width:min(90vw,680px);
  max-height:none;
  overflow:visible;
}

.box-info-modal{
  position:relative;
  background:#fff;
  border-radius:20px;
  padding:24px;
  max-height:86vh;
  overflow:auto;
}



/* タイトル */
.box-info-modal__text{
  margin:0 0 20px;
  text-align:center;
  font-weight:700;
  font-size:20px;
  line-height:1.6;
  color:#543016;
}

/* カルーセル */
.box-info-modal__carousel{
  position:relative;
}

.box-info-modal__stage{
  touch-action:pan-y;
}

.box-info-modal__item{
  display:none;
}

.box-info-modal__item.is-active{
  display:block;
  padding: 20px 0;
  background: #fefef9;
}

.box-info-modal__item img{
  display:block;
  width:100%;
  height:auto;
  margin:0 auto 12px;
}

#js-modal-box-mat .box-info-modal__item img{
  width:50%;
  max-height:56vh;
}
#js-modal-box-pick .box-info-modal__item img{
  width:35%;
  max-height:60vh;
}
@media screen and (max-width: 767px) {
  #js-modal-box-mat .box-info-modal__item img{
    width:90%;
  }
  #js-modal-box-pick .box-info-modal__item img{
    width:50%;
  }
}
/* 帯画像をカルーセル枠内に入れる */
.carousel--with-obi{
  padding-top:0;
}

.carousel--with-obi::before{
  top:0;
}

.carousel__obi{
  position: relative;
  z-index: 2;
  width: calc(100% - 49px);
  margin: 0 auto -25px;
  padding: 10px 0 0;
  transform: translateX(-1px);
}

.carousel__obi img{
  width:100%;
}

.carousel--with-obi .carousel__stage{
  margin-top:-4px;
}

@media screen and (max-width: 767px){
  .carousel__obi{
    width: calc(100% - 49px);
    padding: 14px 0 0;
  }
}
/* 下部ナビ */
.box-info-modal__count-wrap{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:18px;
  padding-top:15px;
  border-top: 2px dotted #e4dccf;
}

.box-info-modal__arrow{
  width:42px;
  height:42px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  border: 1.3px solid #553013;
  background:#fff;
  font-size:30px;
  line-height:1;
  cursor:pointer;
  transition:.25s;
  color: #543016;
  padding:0;
}
.box-info-modal__arrow span{
  display:block;
  transform:translateY(-4px);
}

.box-info-modal__arrow:hover{
  opacity:.7;
}

.box-info-modal__count{
  margin:0;
  min-width:70px;
  text-align:center;
  font-weight:700;
  color:#543016;
}

/* ------------------------------
   set01～03 にょき
------------------------------ */

.set01 .set-warp p.sumi-char img,
.set02 .set-warp p.sumi-char img,
.set03 .set-warp p.sumi-char img{
  width:260px;
}
/* set01 */
.set01 .sumi-char.is-show{
  animation:sumiPop01 .9s cubic-bezier(.22,1,.36,1) forwards;
}

@keyframes sumiPop01{
  0%{
    top:20px;
    opacity:0;
  }
  100%{
    top:-126px;
    opacity:1;
  }
}
.set02 .sumi-char.is-show,
.set03 .sumi-char.is-show{
  animation:sumiPop23 .9s cubic-bezier(.22,1,.36,1) forwards;
}

@keyframes sumiPop23{
  0%{
    top:20px;
    opacity:0;
  }
  100%{
    top:-126px;
    opacity:1;
  }
}

.set-warp p img{
  width: 80px;
}


.present-box.set01{
  position:relative;
  overflow:visible;
}


.present-box.set01,
.present-box.set02,
.presen
.present-box.set01{
  background: #feefed url("/synced-assets/campaign_sumikkogurashi/img/pett.png");
  background-size: 350px;
  border: 5px solid #ffdcd9;
  border-radius: 18px;
  margin-top: 240px;
  padding: 10% 0 24px;
}
.present-box.set02{
  background: #fff3cf url("/synced-assets/campaign_sumikkogurashi/img/pett.png");
  background-size: 350px;
  border: 5px solid #ffea8f;
  border-radius: 18px;
  margin-top: 250px;
  padding: 12% 0 3%;
}
.present-box.set03{
  background: #faeacd url("/synced-assets/campaign_sumikkogurashi/img/pett.png");
  background-size: 350px;
  border: 5px solid #f3d698;
  border-radius: 18px;
  margin-top: 280px;
  padding:14% 0 3%;
}
.present-box.set01 .set-title{
  position: absolute;
  top: -135px;
}
.present-box.set02 .set-title{
  position: absolute;
  top: -135px;
}
.present-box.set03 .set-title{
  position: absolute;
  top: -135px;
}
.present-box.set03 #clip h3{
	padding-bottom: 10px;
}
@media (max-width: 768px) {
  .present-box.set01{
    margin-top: 240px;
  }
  .present-box.set02{
    padding:12% 0 3%;
    margin-top: 260px;
  }
  .present-box.set03{
    padding:15% 0 3%;
    margin-top: 280px;
  }
  .present-box.set01 .set-title{
    position: absolute;
    top: -135px;
  }
  .present-box.set02 .set-title{
    position: absolute;
    top: -135px;
  }
  .present-box.set03 .set-title{
    position: absolute;
    top: -135px;
  }
}

@media (max-width:516px){
  .present-box.set01{
    padding:10% 0 3%;
    margin-top: 210px;
  }
  .present-box.set01 .set-title{
    position: absolute;
    top: -110px;
  }
  .present-box.set02{
    padding:13% 0 3%;
    margin-top: 230px;
  }
  .present-box.set02 .set-title{
    position: absolute;
    top: -110px;
  }
  .present-box.set03{
    padding:14% 0 3%;
    margin-top: 250px;
  }
  .present-box.set03 .set-title{
    position: absolute;
    top: -110px;
  }
}

@media (max-width:480px){
  .present-box.set01{
    padding:10% 0 3%;
    margin-top: 210px;
  }
  .present-box.set01 .set-title{
    position: absolute;
    top: -104px;
  }
  .present-box.set02{
    padding:14% 0 3%;
    margin-top: 220px;
  }
  .present-box.set02 .set-title{
    position: absolute;
    top: -100px;
  }
  .present-box.set03{
    padding:14% 0 3%;
    margin-top: 250px;
  }
  .present-box.set03 .set-title{
    position: absolute;
    top: -100px;
  }
}

@media (max-width:400px){
  .present-box.set01{
    padding:9% 0 3%;
    margin-top: 190px;
  }
  .present-box.set01 .set-title{
    position: absolute;
    top: -85px;
  }
  .present-box.set02{
    padding:13% 0 3%;
    margin-top: 210px;
  }
  .present-box.set02 .set-title{
    position: absolute;
    top: -85px;
  }
  .present-box.set03{
    padding:15% 0 3%;
    margin-top: 230px;
  }
  .present-box.set03 .set-title{
    position: absolute;
    top: -85px;
  }
}

@media (max-width:320px){
  .present-box.set02{
    padding:4% 0 3%;
    margin-top: 260px;
  }
  .present-box.set03{
    padding:4% 0 3%;
    margin-top: 260px;
  }
}
.box-cts p.label-position{
  position: relative;
  padding: 5px 25px 20px;
  z-index: 100;
}
p.box-in-item01{
  padding: 0 25px 20px;
}
p.box-in-item02{
  padding: 0 25px 0;
}
.box-cts p.w-box{
  padding: 0 25px!important;
}
@media screen and (max-width: 768px) {
  .box-cts p.w-box{
    padding: 0 12px!important;
  }
  .box-cts p.label-position{
    padding: 10px 30px 0;
  }
  p.box-in-item01{
    padding: 10px 25px 20px;
    z-index: 100;
  }
  p.box-in-item02{
    padding: 0 25px 10px;
    z-index: 100;
  }
}
.present-box.set04{
  background: #e6f6f6 url("/synced-assets/campaign_sumikkogurashi/img/pett.png");
  background-size: 350px;
  border: 5px solid #c3eaf5;
  border-radius: 18px;
  margin-top: 110px;
  padding: 16% 0 25px;
}
.present-box.set05{
  background: #fff4d4 url("/synced-assets/campaign_sumikkogurashi/img/pett.png");
  background-size: 350px;
  border: 5px solid #ffe9a9;
  border-radius: 18px;
  margin-top: 110px;
  padding: 15% 0 12px;
}
.box-cts .ebi{
  margin: 10px auto;
  width: 55px;
  animation: metronome 3s ease-in-out infinite;
  transform-origin: center bottom;
}
.kinoko,
.furoshiki{
  margin: 10px auto 6px;
  padding: 0;
  animation: jump 4s infinite;
  transform-origin: bottom center;
}
.kinoko{
  width: 45px;
}
.furoshiki{
  width: 42px;
}
@media screen and (max-width: 768px) {
  
}
@keyframes jump {
  0%, 75%, 100% {
    transform: translateY(0) scale(1);
  }
  /* しゃがむ */
  78% {
    transform: translateY(0) scaleX(1.08) scaleY(0.92);
  }
  /* ジャンプ */
  83% {
    transform: translateY(-20px) scaleX(0.95) scaleY(1.05);
  }
  /* 着地 */
  88% {
    transform: translateY(0) scaleX(1.05) scaleY(0.95);
  }
  /* ぷるっ */
  92% {
    transform: translateY(-3px) scale(1);
  }
}
@keyframes metronome {
  0% {
    transform: rotate(-10deg);
  }
  50% {
    transform: rotate(10deg);
  }
  100% {
    transform: rotate(-10deg);
  }
}

.photo-full{
  display:block;
  width:calc(100% + 24px);
  max-width:none;
  margin-left:-12px;
}

.box-cts .ebi2{
  margin: 10px auto 0!important;
}
.box-cts{
  position: relative;
  z-index: 99;
}
.box-cts .label-position .item-label-sono-bg{
  z-index: 1;
  position: absolute;
  top: 30px;
  right: 5px;
  animation: spin 8s linear infinite;
}
@keyframes spin{
  from{
    transform: rotate(0deg);
  }

  to{
    transform: rotate(360deg);
  }
}
.box-cts .label-position .item-label-sono-no{
  z-index: 2;
  position: absolute;
  top: 30px;
  right: 5px;
}
.box-cts .label-position .item-label-sono-bg,
.box-cts .label-position .item-label-sono-no{
  width: 90px;
  height: 90px;
}
.box-cts .label-position .item-label-ok{
  position: absolute;
  top: -50px;
  left: 5px;
}
.box-cts .label-position .item-label-ok{
  width: 70px;
  height: 70px;
}
.box-cts .sch-smoll{
  min-width: 300px;
  padding: 0 90px 0 0;
}
@media (min-width: 767px) {
  .box-cts .label-position .item-label-sono-bg{
    position: absolute;
    top: 80px;
    right: 14px;
  }
  .box-cts .label-position .item-label-sono-no{
    z-index: 2;
    position: absolute;
    top: 80px;
    right: 14px;
  }
  .box-cts .label-position .item-label-sono-bg,
  .box-cts .label-position .item-label-sono-no{
    width: 90px;
    height: 90px;
  }
  .box-cts .sch-smoll{
    padding: 0 80px;
  }
}

.present-box.set04 .bnr{
  padding: 0 20px 20px;
}
.present-box.set04 .bnr img{
  border: 7px solid #fff;
  border-radius: 10px;
}
.present-box.set04 p a img{
  margin-top: 10px;
}
@media (min-width: 767px) {
  .present-box.set04 .bnr img{
    margin-top: 15px;
  }
}


/* ----------------------------------------
   タイル式
---------------------------------------- */
.set02 .gallery{
  background-color: #f6eeca;
}
.set03 .gallery{
  background-color: #e7d7b6;
}
.gallery__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 22px;
  margin: 0;
  padding: 10px;
  list-style: none;
}
.set01 .gallery__list{
  gap: 6px;
}
.gallery__list.three li {
  width: calc((100% - 44px) / 3);
}
.gallery__list.tow li {
  width: calc((100% - 22px) / 2);
}
.gallery__list.five li {
  width: calc(100% / 5 - 10px);
}
@media screen and (min-width: 768px) {
  .gallery__list {
    padding: 20px;
  }
}
.gallery__item {
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
  transition: transform .45s cubic-bezier(.22,1,.36,1);
  will-change: transform;
}
.gallery__item img {
  display: block;
  width: 100%;
  height: auto;
  border: 7px solid #fff;
  border-radius: 20px;
  background: #f1f2f3;
  transition: transform .7s cubic-bezier(.22,1,.36,1);
}
.set01 .gallery .gallery__item img,
.carousel--pink .carousel__item img{
  background: #fff5fa;
}
.carousel--blue .carousel__item img{
  background: #f2f7f9;
}
@media (max-width: 768px) {
  .set01 .gallery__item img{
    border: 4px solid #fff;
  }
}
.gallery__item:hover img{
  transform: scale(1.05);
}
.gallery__item::after{
  content: "";
  position: absolute;
  right: -2px;
  bottom: -2px;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #ff9b4d url("/synced-assets/campaign_sumikkogurashi/img/zoom.webp") center center / 16px no-repeat;
  pointer-events: none;
}
@media (max-width: 768px) {
  .gallery__item img{
    border-radius: 10px;
  }
  .gallery__item::after{
    width: 22px;
    height: 22px;
    background: #ff9b4d url("/synced-assets/campaign_sumikkogurashi/img/zoom.webp") center center / 11px no-repeat;
  }
}
.gallery__item:hover::after{
  transform: scale(1.1);
  transition: .2s;
}
.img-tips li {
  text-align: end;
  padding: 10px 10px 20px 0;
  font-weight: bold;
  font-size: 0.97rem;
  color: #553013;
}

.c-modal {
  position: fixed;
  inset: 0;
  z-index: 99999;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition:opacity .25s ease;
}
.c-modal.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.c-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(220,165,86,.5);
}

.c-modal__inner {
  position: absolute;
  top: 50%;
  left: 50%;
  /*width: min(90vw, 680px);*/
  max-height: 86vh;
  transform: translate(-50%, -50%) scale(.96);
  opacity: 0;
  background: #fff;
  border-radius: 18px;
  padding: 24px;
  box-sizing: border-box;
}
.c-modal.is-open .c-modal__inner {
  transform: translate(-50%, -50%) scale(1);
  opacity: 1;
}
.c-modal.is-open {
  display: block;
}
.c-modal__img {
  display: block;
  width: 100%;
  max-height: calc(86vh - 48px);
  object-fit: contain;
  background: #fff5fa;
}
.c-modal--wakunashi .c-modal__inner{
  background: transparent;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
  width: auto;
  max-width: 85vw;
}
.c-modal--wakunashi .c-modal__img{
  display: block;
  width: 100%;
  max-width: min(82vw, 1000px);
  height: auto;
}
.c-modal--wakunashi .c-modal__img{
  background: transparent;
}
@media (max-width: 768px) {
  .gallery__list {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }

  .c-modal__inner {
    width: calc(90% - 32px);
    padding: 16px;
    border-radius: 14px;
  }
  .c-modal--wakunashi .c-modal__inner{
    width: max-content;
  }
}

.c-modal__img.fuda-line{
  border: 1px solid #a4a5a6;
}

.set03 img.c-modal__img {
  border: 1px solid #a7a8a9;
}
.tips{
  line-height: 1.6;
  padding: 20px 30px 5px 40px;
  font-size: 0.785714286rem;
  font-weight: bold;
  color: #553013;
}
.c-in-tips{
  line-height: 1.6;
  font-size: 0.785714286rem;
  font-weight: bold;
  color: #553013;
}
.tips.none-shop{
  padding: 20px 30px 0 45px!important;
}

@media (max-width: 768px) {
  .tips,
  .c-in-tips{
    font-size: 0.70rem;
  }
}
.tips li{
  position: relative;
}
.tips li:before{
  content: "※";
  position: absolute;
  left: -20px;
  top: 0;
}
p.ctn-text,
p.btn{
  margin: 20px 0 0;
}
/* ----------------------------------------
   モーダル全体
---------------------------------------- */
.c-modal__inner{
  background:#faf8f2;
  border-radius:28px;
  padding:16px;
  box-shadow:
    0 20px 60px rgba(0,0,0,.15);
}

/* ----------------------------------------
   タイトル
---------------------------------------- */
.box-info-modal__text{
  position:relative;
  margin:0 0 18px;
  padding: 10px 0 18px;
  font-size:24px;
  font-weight:700;
  color:#5d3416;
  text-align:center;
}

@media (max-width: 768px) {
  .box-info-modal__text{
    position:relative;
    margin:0 0 15px;
    padding-bottom:16px;
    font-size:18px;
    font-weight:700;
    color:#5d3416;
    text-align:center;
  }
}
/* タイトル下のアクセント */
.box-info-modal__text::after{
  content:"";

  position:absolute;
  left:50%;
  bottom:0;

  width:60px;
  height:4px;

  transform:translateX(-50%);

  background:#f0a55c;
  border-radius:999px;
}

/* ----------------------------------------
   画像エリア
---------------------------------------- */
.box-info-modal__carousel{
  position:relative;

  border-top:2px dotted #e4dccf;
}

.c-modal__close{
  position:absolute;
  top:-14px;
  right:-14px;
  width:40px;
  height:40px;
  border: 1.3px solid #c9bcb4;
  border-radius:50%;
  background:#fff;
  color:#5d3416;
  font-size:24px;
  line-height:1;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:.25s;
  padding: 0 0 2px;
}

.c-modal__close:hover{
  background:#f6efe6;
}
.box-info-modal__arrow{
  width:48px;
  height:48px;

  border:1px solid #8b5b35;
  border-radius:50%;

  background:#fff;
  color:#5d3416;

  font-size:34px;
}
.box-info-modal__count{
  font-size:0.97rem;
  font-weight:700;
  color:#5d3416;
}


/* ----------------------------------------
   カルーセル
---------------------------------------- */
.carousel{
  text-align: center;
  --carousel-main-width: 52%;
  --carousel-side-width: 42%;
  --carousel-base-y: -50%;

  position: relative;
  width: 100%;
  padding: 0 0 10px;
  overflow: hidden;
}

.carousel::before{
  content:"";
  position:absolute;
  left:24px;
  right:24px;
  top:25px;
  bottom:0;
  border-radius:35px;
  z-index:0;
}
.set03 .carousel::before{
  top:15px!important;
}

.carousel--pink::before{
  background:rgb(255,200,220,0.3);
   border: 2px solid #fff;
  background-image: url("/synced-assets/campaign_sumikkogurashi/img/item-bg-pett.webp");
  background-size: 400px;
}

.carousel--blue::before{
  background:rgb(188,230,255,0.3);
  border: 2px solid #fff;
  background-image: url("/synced-assets/campaign_sumikkogurashi/img/item-bg-pett.webp");
  background-size: 400px;
}

.carousel > *{
  position: relative;
  z-index: 1;
}

.carousel__stage{
  position: relative;
  width: 90%;
  height: 400px;
  margin: 0 auto;
  overflow: visible;
  touch-action: pan-y;
}
.set01 .carousel__stage{
  width: 100%;
}
.carousel__item{
  position: absolute;
  top: 56%;
  left: 50%;
  padding: 0;
  border: 0;
  background: none;
  opacity: 0;
  pointer-events: none;
  cursor: pointer;
  transition:
    transform .55s cubic-bezier(.22,1,.36,1),
    opacity .35s ease;
}
.set02 .carousel__item{
  position: absolute;
  top: 55%;
}

.carousel__item img{
  display: block;
  width: 100%;
  height: auto;
  border: 7px solid #fff;
  border-radius: 20px;
  background: #f1f2f3;
  user-select: none;
  -webkit-user-drag: none;
  box-shadow: 0 0 0 1px #dad2cc; /* 追加 */
}
@media (max-width: 768px) {
  .set01 .carousel__item img{
    border: 4px solid #fff;
  }
}
.carousel__item.is-active{
  z-index: 3;
  width: var(--carousel-main-width);
  opacity: 1;
  pointer-events: auto;
  transform: translate(-50%, var(--carousel-base-y)) rotate(0deg) scale(1);
}

.carousel__item.is-prev{
  z-index: 2;
  width: var(--carousel-side-width);
  opacity: .72;
  transform: translate(-130%, calc(var(--carousel-base-y) + 6%)) rotate(-10deg) scale(.84);
}

.carousel__item.is-next{
  z-index: 2;
  width: var(--carousel-side-width);
  opacity: .72;
  transform: translate(30%, calc(var(--carousel-base-y) + 6%)) rotate(10deg) scale(.84);
}

.carousel__item.is-hidden{
  z-index: 1;
  width: var(--carousel-main-width);
  opacity: 0;
  transform: translate(-50%, var(--carousel-base-y)) scale(.7);
}

.carousel__arrow{
  position: absolute;
  top: 49%;
  transform: translateY(-50%);
  z-index: 5;
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 50%;
  background: #fff;
  color: #543016;
  font-size: 30px;
  line-height: 0.9;
  cursor: pointer;
  display: flex;
  justify-content: center;
}
.carousel__arrow.top61{
  position: absolute;
  top: 61%;
}
.carousel__arrow.top40{
  position: absolute;
  top: 43.5%;
}
.carousel__arrow.top42{
  position: absolute;
  top: 42%;
}
.carousel__arrow--prev{
  left: 120px;
  border: 1.3px solid #553013;
}
.carousel__arrow--next{
  right: 120px;
  border: 1.3px solid #553013;
}
.set01 .carousel__arrow--prev{
  left: 95px;
}
.set01 .carousel__arrow--next{
  right: 95px;
}
.carousel__count{
  position: relative;
  z-index: 6;
  display: inline-block;
  border-radius: 20px;
  background: #fff;
  border: 1px solid #c9bcb4;
  margin: 5px auto 0;
  padding: 8px 14px;
  text-align: center;
  font-size: 0.78rem;
  font-weight: bold;
  color: #543016;
}
.carousel .carousel__item.is-active::after{
  content: "";
  position: absolute;
  right: -19px;
  bottom: -20px;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #ff9b4d url("/synced-assets/campaign_sumikkogurashi/img/zoom.webp") center center / 22px no-repeat;
  pointer-events: none;
}
@media (max-width: 767px){
  .carousel{
    --carousel-main-width: 64%;
    --carousel-side-width: 70%;
  }
  .carousel__arrow{
    width: 34px;
    height: 34px;
    font-size: 28px;
    line-height: 0.9;
  }
  .carousel__arrow--prev{
    left: 35px;
  }
  .carousel__arrow--next{
    right: 35px;
  }
  .set01 .carousel__arrow--prev{
    left: 35px;
  }
  .set01 .carousel__arrow--next{
    right: 35px;
  }
  .carousel .carousel__item.is-active::after{
    width: 28px;
    height: 28px;
    right: -9px;
    bottom: -16px;
    background: #ff9b4d url("/synced-assets/campaign_sumikkogurashi/img/zoom.webp") center center / 16px no-repeat;
  }
}
/* ----------------------------------------
   非表示レイヤー対策
---------------------------------------- */
.open.is-hide{
  display: none !important;
}

.menu-overlay:not(.is-open){
  display: none !important;
  pointer-events: none !important;
}

.c-modal:not(.is-open){
  display: none !important;
  pointer-events: none !important;
}
/* ----------------------------------------
   食育活動
---------------------------------------- */
.food-edu {
  background: #fffdf3;
  font-family: "Yu Gothic", "YuGothic", sans-serif;
  color: #4a3428;
  position: relative;
  margin-top: 12%;
  z-index: -1;
}
.food-edu__inner {
  width: 100%;
  margin: 0 auto;
  position: relative;
}
.food-edu__inner .up{
  position: absolute;
  top: -20%;
  left: 0;
}
.food-edu__inner .up__in{
  aspect-ratio: 670 / 504;
}
.food-edu__inner .up__h{
  bottom: -6%;
}
.food-edu__inner .c3{
  left: 40%;
}
.food-edu__inner .up__bar{
  top: 60%;
}
.food-edu__top-img {
  width: 72px;
  margin-bottom: -8px;
}
.food-edu__box {
  position: relative;
}
.food-edu__box h2 {
  margin: 0 0 8px;
  color: #d85772;
  font-size: 25px;
  line-height: 1.3;
  font-weight: 800;
  letter-spacing: .04em;
}
.food-edu__box p {
  margin: 0;
  font-size: 14px;
  line-height: 1.7;
  font-weight: 700;
}
.food-edu__cards p {
  padding: 0 0 20px;
  font-weight: bold;
}
.food-edu__list{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin: 0 25px 25px;
}
.food-edu-card {
  color: inherit;
  text-decoration: none;
  display: flex;
  flex-direction: column;
}
.food-edu-card__image {
  min-height: 165px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.food-edu-card__image img {
  max-width: 100%;
  height: auto;
  display: block;
}
.food-edu-card p {
  margin: 12px 0 14px;
  font-size: 12px;
  line-height: 1.65;
  font-weight: 700;
  text-align: left;
}
.food-edu-card__more {
  margin-top: auto;
  text-align: center;
  font-size: 14px;
  font-weight: 800;
  color: #4a3428;
}
.food-edu-card__more::after {
  content: "▶";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  margin-left: 5px;
  border-radius: 50%;
  background: #f1c9df;
  color: #fff;
  font-size: 10px;
}
/* ----------------------------------------
   SNSシェア
---------------------------------------- */
.food-edu__share {
  margin-top: 30px;
  text-align: center;
}
.food-edu__share h3 {
  margin: 0 0 18px;
  color: #d85772;
  font-size: 32px;
  letter-spacing: .08em;
  font-weight: 800;
  font-family:
    "Hiragino Maru Gothic ProN",
    "ヒラギノ丸ゴ ProN W4",
    "Arial Rounded MT Bold",
    sans-serif;
}
.food-edu__sns {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  justify-content: center;
  gap: 24px;
}
.food-edu__sns img {
  width: 48px;
  height: 48px;
  display: block;
}
.food-edu__bottom{
  position:relative;
  overflow:hidden;
  padding-top:clamp(120px, 22vw, 170px);
}
.food-edu__bottom img{
  width:100%;
  margin:0 auto;
}
.food-edu__bottom .copy{
  width:min(80%, 480px);
  margin:5px auto 0;
  text-align:left;
}
.food-sumi{
  position:absolute;
  left:50%;
  bottom:113px;
  width:68%;
  z-index:1;
  opacity:0;
  transform:translateX(-50%);
}
.food-sumi img{
  width:100%;
}
@media (max-width:767px){
  .food-sumi{
    width:68%;
    bottom:35%;
  }
}
@media (max-width:420px){
  .food-sumi{
    width:68%;
    bottom:33%;
  }
}
@media (max-width:380px){
  .food-sumi{
    width:68%;
    bottom:33%;
  }
}

.food-sumi.is-show{
  animation: foodSumiIn .8s cubic-bezier(.22,1,.36,1) forwards;
}
.food-maru{
  position:relative;
  z-index:2;
  width:min(80%, 480px);
  margin:0 auto;
}
.food-maru img{
  width:100%;
}

@keyframes foodSumiIn{
  0%{
    opacity:0;
    transform:translateX(-50%) translateY(70px);
  }

  70%{
    opacity:1;
    transform:translateX(-50%) translateY(-3px);
  }

  100%{
    opacity:1;
    transform:translateX(-50%) translateY(0);
  }
}
@media (max-width:375px){
  @keyframes foodSumiIn{
    0%{
      opacity:0;
      transform:translateX(-50%) translateY(90px);
    }

    65%{
      opacity:1;
      transform:translateX(-50%) translateY(-3px);
    }

    100%{
      opacity:1;
      transform:translateX(-50%) translateY(0);
    }
  }
}

.food-edu__bottom {
  margin: 15px auto 40px;
  text-align: center;
  max-width: 70%;
}

/* ----------------------------------------
   下部共通
---------------------------------------- */
.udon-section {
  padding: 120px 0 80px;
  background-color: #fbf7ef;
  overflow-x: hidden;
}

.udon-section__inner {
  background-image: linear-gradient(180deg, transparent 48px, #fcefce 0, #fcefce 528px, transparent 0, transparent);
}

.udon-section__block{
  max-width: 960px;
  margin: 0 auto;
}

.udon-section__text {
  margin: 0 auto;
  margin-bottom: 70px;
  display: grid;
  gap: 50px;
  writing-mode: vertical-rl;
  text-orientation: upright;
  width: fit-content;
  max-width: 100%;
}

.udon-section__text h2,
.udon-section__text p {
  margin: 0;
  font-family: Shuei ShogoMincho,serif;
  color: #111;
}

.udon-section__text h2 {
  font-size: 32px;
  line-height: 1.6;
  letter-spacing: 0.08em;
  font-weight: 700;
}

.udon-section__text p {
  font-size: 16px;
  line-height: 2;
  letter-spacing: 0.08em;
  font-weight: 600;
  margin-top: 24px;
}

.udon-section__visual {
  position: relative;
  max-width: 960px;
  margin: 0 auto;
}

.udon-section__visual img {
  display: block;
  width: 100%;
  height: auto;
}

.udon-section__copy {
  position: absolute;
  left: 9%;
  top: 20%;
  margin: 0;
  color: #fff;
  font-family: Shuei ShogoMincho,serif;
  font-size: 36px;
  line-height: 1.45;
  letter-spacing: 0.16em;
  font-weight: 700;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  text-shadow: 0 2px 8px rgba(0, 0, 0, .8);
}

.udon-section__btn {
  position: absolute;
  right: 4%;
  bottom: 8%;
  min-width: 260px;
  padding: 20px 28px;
  background: #fff;
  border-radius: 4px;
  color: #222;
  text-align: center;
  text-decoration: none;
  font-family: serif;
  font-size: 18px;
  font-weight: 700;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
}

.quote::before {
  content: "〝";
  margin-top: -10px;
}

.quote::after {
  content: "〟";
  margin-bottom: -6px;
}

/* SP */
@media (max-width: 640px) {
  .udon-section {
    padding: 80px 0 80px;
  }

  .udon-section__inner {
    background-image: linear-gradient(180deg, transparent 40px, #fcefce 0, #fcefce);
  }

  .udon-section__text {
    width: 100%;
    max-width: 100%;
    margin: 0 auto 45px;
    padding: 0 16px;

    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 54px;

    writing-mode: horizontal-tb;
    text-orientation: mixed;
  }

  .udon-section__text h2,
  .udon-section__text p {
    writing-mode: vertical-rl;
    text-orientation: upright;
    white-space: nowrap;
  }

  .udon-section__text h2 {
    font-size: 26px;
    line-height: 1.6;
    letter-spacing: 0.08em;
    text-align: left;
  }

  .udon-section__text p {
    font-size: 15px;
    line-height: 1.65;
    letter-spacing: 0.04em;
    margin-top: 0;
  }

  .udon-section__copy {
    left: 8%;
    top: 15%;
    font-size: 32px;
  }

  .udon-section__btn {
    right: 50%;
    bottom: 6%;
    transform: translateX(50%);
    min-width: 220px;
    padding: 14px 20px;
    font-size: 13px;
  }
}

/* iPhone SE対策 */
@media (max-width: 375px) {
  .udon-section__text {
    padding: 0 10px;
    gap: 48px;
  }

  .udon-section__text h2 {
    font-size: 23px;
    line-height: 1.55;
    letter-spacing: 0.06em;
  }

  .udon-section__text p {
    font-size: 13px;
    line-height: 1.45;
    letter-spacing: 0.02em;
  }

  .udon-section__copy {
    font-size: 28px;
  }

  .udon-section__btn {
    min-width: 200px;
    font-size: 12px;
  }
}
/* ----------------------------------------
   フッター
---------------------------------------- */
.o-footer__bottom {
  background-image: url("/synced-assets/campaign_sumikkogurashi/img/paper_bg.webp");
  background-size: cover;
  padding: 30px;
  border-radius: 0 0 39px 39px;
  overflow: hidden;
}
.a-logo {
  display: block;
  width: 240px;
  margin-bottom: 32px;
}
.o-content-width {
  width: 100%;
}
.o-footer__navigation-corporate-list{
  display: flex;
  gap: 20px;
}
@media (max-width: 640px) {
  .o-footer__bottom{
    padding: 20px;
  }
  .a-logo {
    display: block;
    width: 140px;
    margin-bottom: 18px;
  }
  .o-footer__navigation-corporate-list{
    font-size: 14px;
  }
}
.carousel img,
.carousel a,
.carousel button{
  -webkit-user-drag: none;
  user-drag: none;
  user-select: none;
}
.anchor-point{
  display:block;
  width:100%;
  height:1px;
  margin:0;
  padding:0;
  overflow:hidden;
  scroll-margin-top:0 !important;
}


/* ========================================
   BOX情報モーダル：斜線アウトライン完成版
======================================== */

.c-modal--box-info .c-modal__box{
  position:fixed;
  top:50%;
  left:50%;
  width:min(88vw, 620px);
  transform:translate(-50%, -50%);
  overflow:visible;
  z-index:2;
}

.c-modal--box-info .c-modal__inner,
.c-modal--box-info.is-open .c-modal__inner{
  position:relative;
  top:auto;
  left:auto;
  transform:none;
  opacity:1;

  width:100%;
  max-height:86vh;
  overflow-y:auto;
  overflow-x:hidden;

  padding:35px;
  border-radius:34px;
  background:url("/synced-assets/campaign_sumikkogurashi/img/bg.webp") center top / 250px auto repeat;
  box-shadow:0 18px 45px rgba(84,48,22,.20);
}

.c-modal--box-info .c-modal__inner::before{
  content:"";
  display:block !important;
  position:absolute;
  inset:0;
  z-index:0;
  padding:14px;
  border-radius:34px;
  background:
    repeating-linear-gradient(
      -45deg,
      #feefed 0 9px,
      #fef5f3 9px 18px
    );
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  pointer-events:none;
}

.c-modal--box-info .c-modal__inner::after{
  content:"";
  display:block !important;
  position:absolute;
  inset:14px;
  z-index:1;
  border:2px solid #fff;
  border-radius:24px;
  pointer-events:none;
}

.c-modal--box-info .box-info-modal__text,
.c-modal--box-info .box-info-modal__carousel{
  position:relative;
  z-index:2;
}

.c-modal--box-info .box-info-modal__text{
  display:table;
  margin:0 auto 24px;
  padding:10px 28px;
  border:1px solid #c9bcb4;
  border-radius:999px;
  background:rgba(255,255,255,.95);
  box-shadow:0 4px 12px rgba(84,48,22,.06);
  color:#543016;
  font-size:22px;
  font-weight:700;
  line-height:1.4;
  text-align:center;
}

.c-modal--box-info .box-info-modal__text::before,
.c-modal--box-info .box-info-modal__text::after,
.c-modal--box-info .box-info-modal__carousel::before{
  display:none !important;
}

.c-modal--box-info .box-info-modal__carousel,
.c-modal--box-info .box-info-modal__count-wrap{
  border-top:none !important;
}

.c-modal--box-info .box-info-modal__item.is-active{
  display:block;
  max-width:100%;
  overflow:hidden;
  padding:24px 14px 18px;
  border:1px solid #c9bcb4;
  border-radius:24px;
  background:#fff;
  box-shadow:
    0 0 0 1px rgba(84,48,22,.06),
    0 8px 20px rgba(84,48,22,.05);
}

.c-modal--box-info .box-info-modal__item img{
  width:auto;
  max-width:100%;
  max-height:60vh;
  margin:auto;
}

.c-modal--box-info .box-info-modal__count-wrap{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
}

.c-modal--box-info .box-info-modal__count{
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:80px;
  height:42px;
  padding:0 18px;
  border:1px solid #c9bcb4;
  border-radius:999px;
  background:rgba(255,255,255,.95);
  box-shadow:0 4px 12px rgba(84,48,22,.06);
  color:#543016;
  font-weight:700;
}

.c-modal--box-info .box-info-modal__arrow{
  display:flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  padding:2px 0 0;
  border:1.3px solid #c9bcb4;
  border-radius:50%;
  background:#fff;
  color:#543016;
  font-size:24px;
  font-weight:700;
  line-height:1;
}

.c-modal--box-info .c-modal__close{
  position:absolute;
  top:-18px;
  right:-18px;
  z-index:1000000;

  display:flex;
  align-items:center;
  justify-content:center;

  width:44px;
  height:44px;
  padding:0 0 2px;

  border:1.3px solid #c9bcb4;
  border-radius:50%;
  background:#fffef8;
  box-shadow:0 4px 12px rgba(84,48,22,.16);

  color:#543016;
  line-height:1;
  transform:none;
}

@media (max-width:767px){
  .c-modal--box-info .c-modal__box{
    width:calc(100vw - 32px);
  }

  .c-modal--box-info .c-modal__inner,
  .c-modal--box-info.is-open .c-modal__inner{
    width:100%;
    padding:25px 20px;
    border-radius:30px;
  }

  .c-modal--box-info .c-modal__inner::before{
    padding:10px;
    border-radius:30px;
  }

  .c-modal--box-info .c-modal__inner::after{
    inset:10px;
    border-radius:22px;
  }

  .c-modal--box-info .box-info-modal__text{
    margin-top:5px;
    padding:8px 20px;
    font-size:1.05rem;
  }

  .c-modal--box-info .box-info-modal__count{
    min-width:70px;
    height:38px;
    font-size:.8rem;
  }

  .c-modal--box-info .box-info-modal__arrow{
    width:38px;
    height:38px;
  }

  .c-modal--box-info .c-modal__close{
    top:-14px;
    right:-10px;
    width:40px;
    height:40px;
  }
}
/* うどん札モーダルだけ：縦長画像を大きめに表示 */
#js-modal-fuda01 .box-info-modal,
#js-modal-fuda02 .box-info-modal{
  padding:26px;
}

#js-modal-fuda01 .box-info-modal__text,
#js-modal-fuda02 .box-info-modal__text{
  margin-bottom:14px;
  padding:7px 22px;
}

#js-modal-fuda01 .box-info-modal__item.is-active,
#js-modal-fuda02 .box-info-modal__item.is-active{
  padding:12px 10px;
}

#js-modal-fuda01 .box-info-modal__item img,
#js-modal-fuda02 .box-info-modal__item img{
  width:auto;
  max-height:60vh;
  margin:auto;
}


/* iPhone SEなど高さが低い端末 */
@media (max-height:700px){
  #js-modal-fuda01 .box-info-modal,
  #js-modal-fuda02 .box-info-modal{
    padding-top:16px;
    padding-bottom:14px;
  }

  #js-modal-fuda01 .box-info-modal__text,
  #js-modal-fuda02 .box-info-modal__text{
    margin-bottom:10px;
    padding:6px 18px;
  }

  #js-modal-fuda01 .box-info-modal__item.is-active,
  #js-modal-fuda02 .box-info-modal__item.is-active{
    padding:8px 8px;
  }

  #js-modal-fuda01 .box-info-modal__item img,
  #js-modal-fuda02 .box-info-modal__item img{
    max-height:54vh;
  }

  #js-modal-fuda01 .box-info-modal__count-wrap,
  #js-modal-fuda02 .box-info-modal__count-wrap{
    margin-top:8px;
  }
}
/* コースターモーダル */
#js-modal-coaster .box-info-modal__item img{
  width:60%;
  max-height:60vh;
}

@media screen and (max-width:767px){
  #js-modal-coaster .box-info-modal__item img{
    width:86%;
    max-height:56vh;
  }
}
/* クリップモーダル */
#js-modal-clip .box-info-modal__item img{
  width:62%;
  max-height:60vh;
}

@media screen and (max-width:767px){
  #js-modal-clip .box-info-modal__item img{
    width:88%;
    max-height:56vh;
  }
}

/* ----------------------------------------
   キャンペーン終了マスク
---------------------------------------- */
.is-ended{
  position:relative;
  pointer-events:none;
  padding: 10px 0;
}

.is-ended::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:99;
  pointer-events:none;

  background:
    rgba(255,255,255,.78)
    url("/synced-assets/campaign_sumikkogurashi/img/cp_end.webp")
    center center / min(100%, 480px) auto
    no-repeat!important;
}

/* 終了時は矢印・カウントも薄くする */
.is-ended .carousel__arrow,
.is-ended .carousel__count{
  opacity:.25;
}


/* ----------------------------------------
   本番環境調整ハック
---------------------------------------- */

.o-mobile-header{
  z-index: 99999!important;
}
.o-mobile-navbar{
  z-index: 9999!important;
}
.a-logo {
  width: auto!important;
  margin-bottom: 0!important;
}
@media (max-width: 640px) {
  .a-logo {
    width: auto!important;
    margin-bottom: 0!important;
  }
}
#component-statement {
  background: #fbf7ef!important;
  z-index: 99!important;
}
#component-footer {
  z-index: 99!important;
}

.set01 .set-warp p.sumi-char img, .set02 .set-warp p.sumi-char img, .set03 .set-warp p.sumi-char img {
  max-width: none!important;
}
.set-warp .sumi-copy img {
  max-width: none!important;
}
.side-nozoki__body {
  max-width: none!important;
}
@media (max-width: 600px) {
  .side-nozoki, .side-nozoki__body, .side-nozoki__hand {
    max-width: none!important;
  }
}
@media (min-width: 601px) and (max-width: 766px) {
  .side-nozoki, .side-nozoki__body, .side-nozoki__hand {
    max-width: none!important;
  }
}
.bg-decoration__01 {
  bottom: 50px;
}
@media (max-width: 959px) {
  .sp-menu-btn {
    bottom: calc(65px + env(safe-area-inset-bottom));
  }
}
.side-menu {
  z-index: 9999!important;
}
@media (max-width: 1280px) {
  .o-footer__bottom {
    padding: 30px 30px 85px;
  }
}
@media (max-width: 640px) {
  .o-footer__bottom {
    padding: 20px 20px 90px;
  }
}
