/* MEISO ポップな動きと立体感 */
:root{--pop-green:#2E6A4F;--pop-green-d:#1F4A37;--pop-ochre:#E2A93B;--pop-ochre-d:#B9821F;--pop-shadow:#E3D8BF;--pop-ease:cubic-bezier(.34,1.56,.64,1)}

/* ボタン：ぷっくり、押すと沈む */
a[style*="border-radius: 999px"][style*="background: #2E6A4F"],button[style*="border-radius: 999px"][style*="background: #2E6A4F"],[data-pay],[data-book]{box-shadow:0 5px 0 var(--pop-green-d);transition:transform .18s var(--pop-ease),box-shadow .18s ease}
a[style*="border-radius: 999px"][style*="background: #E2A93B"],[data-book],[data-pay]{box-shadow:0 5px 0 var(--pop-ochre-d)}
a[style*="border-radius: 999px"],button[style*="border-radius: 999px"],[data-pay],[data-book],[data-more]{transition:transform .18s var(--pop-ease),box-shadow .18s ease,background-color .2s}
a[style*="border-radius: 999px"]:hover,button[style*="border-radius: 999px"]:hover:not(:disabled),[data-book]:hover,[data-pay]:hover:not(:disabled){transform:translateY(-2px) scale(1.03)}
a[style*="border-radius: 999px"]:active,button[style*="border-radius: 999px"]:active,[data-book]:active,[data-pay]:active:not(:disabled){transform:translateY(4px) scale(.98);box-shadow:0 1px 0 var(--pop-green-d)}

/* カード：やわらかい段差の影で立体に */
[style*="background: #FFFDF8; border-radius: 2"],[style*="background: #FFFDF8; border-radius: 1"],[data-temple-grid] > a{box-shadow:0 6px 0 var(--pop-shadow)}
[data-temple-grid] > a{transition:transform .25s var(--pop-ease),box-shadow .25s ease}
[data-temple-grid] > a img{transition:transform .5s ease}
[data-temple-grid] > a:hover{transform:translateY(-6px) rotate(-.4deg);box-shadow:0 12px 0 var(--pop-shadow)}
[data-temple-grid] > a:hover img{transform:scale(1.06)}
#forwho [style*="background: #2E6A4F"]{box-shadow:0 6px 0 var(--pop-green-d)}

/* 見出しの上の英字ラベルを、丸いタグに */
p[style*="letter-spacing: 0.2em"]{display:inline-flex!important;align-items:center;gap:8px;align-self:flex-start;background:#FFFFFF;border:1.5px solid currentColor;border-radius:999px;padding:2px 14px 2px 10px!important;font-size:12px!important;letter-spacing:.16em!important}
p[style*="letter-spacing: 0.2em"]::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--pop-ochre);animation:pop-dot 2.4s ease-in-out infinite}
[style*="text-align: center"] > p[style*="letter-spacing: 0.2em"],p[style*="letter-spacing: 0.2em"][style*="text-align: center"]{align-self:center}
section[style*="background: #2E6A4F"] p[style*="letter-spacing: 0.2em"],[style*="background: #1D2A23"] p[style*="letter-spacing: 0.2em"]{background:transparent}

/* キーワードが流れる帯 */
.pop-marquee{background:var(--pop-ochre);color:#1D2A23;overflow:hidden;white-space:nowrap;border-block:2px solid #1D2A23;font-family:'Zen Maru Gothic',sans-serif;font-weight:900;font-size:17px;padding:10px 0;position:relative;z-index:2}
.pop-marquee .track{display:inline-flex;gap:28px;padding-right:28px;animation:pop-marquee 28s linear infinite}
.pop-marquee .track span{display:inline-flex;align-items:center;gap:28px}
.pop-marquee .track span::after{content:"";width:10px;height:10px;border-radius:50%;background:#FFFDF8;border:2px solid #1D2A23}

/* セクションのつなぎ目を波線に */
.pop-wave{display:block;width:100%;height:28px;margin-bottom:-1px;position:relative;z-index:1}

/* ヒーロー：浮かぶ写真、波紋、ステッカー */
.pop-hero{position:relative;overflow:hidden}
.pop-hero img{animation:pop-float 6s ease-in-out infinite}
.pop-hero img:nth-of-type(2){animation-delay:-2s}
.pop-hero img:nth-of-type(3){animation-delay:-4s}
.pop-ring{position:absolute;border-radius:50%;border:2px solid rgba(255,253,248,.18);pointer-events:none;animation:pop-ring 9s ease-out infinite}
.pop-sticker{position:absolute;z-index:3;width:104px;height:104px;border-radius:50%;background:var(--pop-ochre);color:#1D2A23;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;font-family:'Zen Maru Gothic',sans-serif;font-weight:900;line-height:1.2;font-size:14px;border:2.5px solid #1D2A23;box-shadow:0 5px 0 #1D2A23;transform:rotate(-12deg);animation:pop-wobble 3.2s ease-in-out infinite}
.pop-sticker b{font-size:22px}

/* 読み込み時の登場 */
.pop-in{animation:pop-in .7s var(--pop-ease) both}
/* スクロールで登場（画面の外にある要素だけ。最初の画面は止まった状態で全部見える） */
.pop-pre{opacity:0;transform:translateY(28px) scale(.97)}
.pop-show{opacity:1;transform:none;transition:opacity .6s ease,transform .7s var(--pop-ease)}

.pd-0{animation-delay:0.00s;transition-delay:0.00s}.pd-1{animation-delay:0.08s;transition-delay:0.07s}.pd-2{animation-delay:0.16s;transition-delay:0.14s}.pd-3{animation-delay:0.24s;transition-delay:0.21s}.pd-4{animation-delay:0.32s;transition-delay:0.28s}.pd-5{animation-delay:0.40s;transition-delay:0.35s}.pd-6{animation-delay:0.48s;transition-delay:0.42s}.pd-7{animation-delay:0.56s;transition-delay:0.49s}.pd-8{animation-delay:0.64s;transition-delay:0.56s}.pd-9{animation-delay:0.72s;transition-delay:0.63s}.pd-10{animation-delay:0.80s;transition-delay:0.70s}.pd-11{animation-delay:0.88s;transition-delay:0.77s}
.pop-rel{position:relative}
.pop-sticker{left:-14px;top:-14px}
.pop-ring{border-color:rgba(255,253,248,.28)}
/* 予約：選んだときにぽんっと */
[aria-checked="true"] [data-check]{animation:pop-check .4s var(--pop-ease)}
[data-day][aria-pressed="true"]{animation:pop-check .35s var(--pop-ease)}
[data-people]{display:inline-block}
.pop-bump{animation:pop-check .3s var(--pop-ease)}
[data-day]{transition:transform .15s var(--pop-ease)}
[data-day]:active:not(:disabled){transform:scale(.92)}
[data-slot]{transition:transform .15s var(--pop-ease),border-color .2s}
[data-slot]:active:not(:disabled){transform:scale(.98)}

/* 予約完了：チェックが弾む＋紙ふぶき */
[data-complete-page] h1{animation:pop-in .7s var(--pop-ease) both .15s}
[data-complete-page] [style*="width: 76px"]{animation:pop-check .7s var(--pop-ease) both}
.pop-confetti{position:fixed;top:-12px;width:10px;height:14px;border-radius:2px;z-index:60;pointer-events:none;animation:pop-fall linear forwards}

@keyframes pop-in{from{opacity:0;transform:translateY(22px) scale(.94)}to{opacity:1;transform:none}}
@keyframes pop-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes pop-ring{0%{transform:scale(.4);opacity:0}15%{opacity:1}100%{transform:scale(1.6);opacity:0}}
@keyframes pop-wobble{0%,100%{transform:rotate(-12deg) scale(1)}50%{transform:rotate(-6deg) scale(1.06)}}
@keyframes pop-dot{0%,100%{transform:scale(1)}50%{transform:scale(1.5)}}
@keyframes pop-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes pop-check{0%{transform:scale(.6)}60%{transform:scale(1.15)}100%{transform:scale(1)}}
@keyframes pop-fall{to{transform:translate3d(var(--dx),110vh,0) rotate(var(--rot))}}

@media (max-width:640px){
  .pop-sticker{width:84px;height:84px;font-size:12px}
  .pop-sticker b{font-size:18px}
  .pop-marquee{font-size:15px;padding:8px 0}
  .pop-wave{height:20px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .pop-pre{opacity:1;transform:none}
}
