/* 案2「神社と縁起物」（wa2・2026-10-02）。飾りは wa2.js が差し込む。全部 body.jjw2 の下に書く
   足した色は朱 #e2401c と金 #c9a23a だけ（ほかはサイトの白・黒・赤・生成り・灰）。影なし
   動かすのは transform と opacity。繰り返しは見えているあいだ（.wa2-on）だけ。動きを減らす設定では止まった絵にする
   下層：本文の列の中は止まった絵か触ったときだけ（繰り返すのは頭・Read next の帯・フッターだけ）。本文の HTML と figure.jj-fig の中には効かせない
   DB：db.css の並びと大きさは変えない。開いたカードの判子は擬似要素（人が開いたときだけ・自動で開いたものには押さない） */

/* ── 絵（data URI）。何か所かで使うものは変数にしておく ── */
body.jjw2{
  --wa2-tor:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 20'><path fill='%23e2401c' d='M0 1.2Q12 4.4 24 1.2v2.4Q12 6.6 0 3.6zM11 5h2v3.4h-2zM2.5 8.4h19v2h-19zM5 4.6h2.4V20H5zm11.6 0H19V20h-2.4z'/></svg>");
  --wa2-ema:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 31'><path stroke='%23d10a11' stroke-width='1.4' d='M12 0v9'/><path fill='%23fdfdf6' stroke='%23131313' stroke-width='1.1' d='M2 12l10-6.5L22 12v18H2z'/><path fill='%23c9a23a' d='M1 12.4L12 5l11 7.4v2.4L12 7.4 1 14.8z'/><circle cx='12' cy='9.6' r='1' fill='%23131313'/></svg>");
  --wa2-st0:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 60'><filter id='r'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' seed='3'/><feDisplacementMap in='SourceGraphic' scale='2.2'/></filter><g filter='url(%23r)' fill='none' stroke='%23e2401c'><circle cx='30' cy='30' r='26' stroke-width='3.6'/><circle cx='30' cy='30' r='21' stroke-width='1.2'/><text x='30' y='40' font-family='Hiragino Mincho ProN,Yu Mincho,Noto Serif JP,Noto Serif CJK JP,serif' font-weight='600' font-size='27' text-anchor='middle' fill='%23e2401c' stroke='none'>可</text></g></svg>");
  --wa2-st1:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 60'><filter id='r'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' seed='3'/><feDisplacementMap in='SourceGraphic' scale='2.2'/></filter><g filter='url(%23r)' fill='%23e2401c' font-family='Hiragino Mincho ProN,Yu Mincho,Noto Serif JP,Noto Serif CJK JP,serif' font-weight='600' font-size='19' text-anchor='middle'><rect x='5' y='5' width='50' height='50' rx='4' fill='none' stroke='%23e2401c' stroke-width='3.6'/><text x='30' y='28'>条</text><text x='30' y='49'>件</text></g></svg>");
  --wa2-st2:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 60'><filter id='r'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' seed='3'/><feDisplacementMap in='SourceGraphic' scale='2.2'/></filter><g filter='url(%23r)' font-family='Hiragino Mincho ProN,Yu Mincho,Noto Serif JP,Noto Serif CJK JP,serif' font-weight='600' font-size='19' text-anchor='middle'><rect x='4' y='4' width='52' height='52' rx='5' fill='%23d10a11'/><text x='30' y='28'>不</text><text x='30' y='49'>可</text></g></svg>");
  --wa2-mincho:"Hiragino Mincho ProN","Yu Mincho","Noto Serif JP","Noto Serif CJK JP",serif;
}

/* ── 土台（:where で弱くしておき、部品ごとの指定が勝つようにする） ── */
body.jjw2 .wa2-sp{position:absolute;width:0;height:0;overflow:hidden}
body.jjw2 :where([data-wa]){position:absolute;display:block;z-index:3;box-sizing:border-box}
body.jjw2 [data-wa][hidden]{display:none!important}
body.jjw2 :where([data-wa]) svg{position:relative;display:block;width:100%;height:100%;overflow:visible}
body.jjw2 :where([data-wa]) text{font-family:var(--wa2-mincho);font-weight:600}
body.jjw2 :where(span[data-wa],i[data-wa]){pointer-events:none}
body.jjw2 :where([data-wa] button,button[data-wa]){pointer-events:auto;display:block;margin:0;padding:0;border:0;border-radius:0;background:none;color:inherit;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
body.jjw2 :where([data-wa]) :focus-visible,body.jjw2 :where([data-wa]):focus-visible{outline:2px solid #d10a11;outline-offset:3px}
/* 飾りを重ねる箱に position:relative を足すだけ（大きさ・位置・余白は変えない）。収益の枠の中には付けない */
body.jjw2 :is(.mg-feat__main,.mg-todo__ul>li,.mg-cards3>li,.mg-band,.mg-card,.mg-dest,.mg-rg__it,.mg-ess__big,.mg-col,.mg-dark,.mg-row,.mg-wrap:has(>.mg-credits),footer.site,.mg-ahd__fig,.mg-ahd__tx,.mg-lhd,.mg-hit,.jjdb,.jjdb-badges--big,.jjdb-grp__hd),
body.jjw2.home :is(.mg-lbl,.mg-lbl2):not(aside *),body.jjw2:not(.home) :is(.mg-lbl,.mg-lbl2):not(.widget *,.offers *),body.jjw2 .mg-pg:not(.jja)>.mg-crumb{position:relative}
body.jjw2 .wa2-pre{visibility:hidden}
body.jjw2.wa2-off [data-wa],body.jjw2.wa2-off [data-wa] *{animation-play-state:paused!important}

/* ── 共通の動き（ゆっくり・小さく） ── */
@keyframes wa2-sway{0%,100%{transform:rotate(0)}25%{transform:rotate(var(--a,2deg))}75%{transform:rotate(calc(var(--a,2deg) * -1))}}
@keyframes wa2-swing{0%,100%{transform:rotate(0)}14%{transform:rotate(16deg)}32%{transform:rotate(-11deg)}50%{transform:rotate(7deg)}68%{transform:rotate(-4deg)}84%{transform:rotate(2deg)}}
@keyframes wa2-ring{0%,100%{transform:rotate(0)}12%{transform:rotate(22deg)}26%{transform:rotate(-18deg)}40%{transform:rotate(13deg)}55%{transform:rotate(-8deg)}70%{transform:rotate(4deg)}85%{transform:rotate(-2deg)}}
@keyframes wa2-twist{0%{opacity:0;transform:rotate(-150deg) scale(.4)}65%{opacity:1;transform:rotate(4deg) scale(1.12)}100%{opacity:1;transform:rotate(-8deg)}}
@keyframes wa2-rip{0%{opacity:.75;transform:scale(.7)}100%{opacity:0;transform:scale(1.6)}}
@keyframes wa2-slam{0%{opacity:0;transform:translateY(-30px) rotate(-26deg) scale(1.5)}60%{opacity:1;transform:rotate(-12deg) scale(1.07,.86)}80%{transform:rotate(-12deg) scale(.97,1.04)}100%{opacity:1;transform:rotate(-12deg)}}
@keyframes wa2-blink{0%,90%,96%,100%{transform:scaleY(1)}93%{transform:scaleY(.1)}}

/* ── 章の札の前の鳥居（触ると後ろが明るくなる。トップのスマホだけ見えているあいだゆっくり明滅） ── */
body.jjw2 .wa2-tm{width:16px;height:13.4px}
body.jjw2 .wa2-tm::before,body.jjw2 .wa2-tm::after{content:"";position:absolute}
body.jjw2 .wa2-tm::before{left:-10px;top:-11px;width:36px;height:36px;border-radius:50%;background:radial-gradient(closest-side,rgba(201,162,58,.7),rgba(201,162,58,0));opacity:0;transition:opacity .45s}
body.jjw2 .wa2-tm::after{inset:0;background:var(--wa2-tor) no-repeat center/contain}
body.jjw2 :is(section,.mg-wrap):hover .wa2-tm::before{opacity:1}
@media(hover:none){body.jjw2.home .wa2-tm.wa2-on::before{animation:wa2-glow 4.8s ease-in-out infinite alternate}}
@keyframes wa2-glow{from{opacity:.08}to{opacity:.85}}

/* ── しめ縄と紙垂（トップの帯・記事の Read next・記事の写真の上・固定ページのパンくずの下） ── */
body.jjw2 .wa2-sn{left:0;right:0;top:-8px;height:26px}
body.jjw2 .wa2-sd{top:10px;width:19px;height:38px;margin-left:-9.5px;transform-origin:50% 0;background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 40'><path fill='%23fff' stroke='%23858585' stroke-width='1.2' d='M3 .5h8v10h6v10h-6v10h6V40H9v-9.5H3v-10h6v-10H3z'/></svg>") no-repeat center/contain}
body.jjw2 .wa2-sn.wa2-on .wa2-sd{--a:5deg;animation:wa2-sway 3.8s ease-in-out infinite}
body.jjw2 .wa2-sn--ph{top:-9px}
body.jjw2 .wa2-sn--b{top:auto;bottom:-14px}
body.jjw2 .wa2-sn--b .wa2-sd{width:14px;height:28px;margin-left:-7px}

/* ── 実務データの列のお守り（触った項目が揺れる。トップのスマホだけ見えているあいだ順にゆれる） ── */
body.jjw2 .wa2-om{width:19px;height:32px;transform-origin:50% 10%}
@media(hover:none){body.jjw2.home .wa2-om.wa2-on{--a:5deg;animation:wa2-sway 3.6s ease-in-out var(--d) infinite}}
body.jjw2 .wa2-om.wa2-sw{animation:wa2-swing 1.3s ease-out}

/* ── 判子（トップのレール・検索の判定・持ち込みの個別ページ） ── */
body.jjw2 .wa2-st{top:12px;right:12px;width:72px;height:72px;transform:rotate(-12deg);background:no-repeat center/contain}
body.jjw2 .wa2-st0{background-image:var(--wa2-st0)}
body.jjw2 .wa2-st1{background-image:var(--wa2-st1)}
body.jjw2 .wa2-st2{background-image:var(--wa2-st2)}
body.jjw2 .wa2-st.wa2-pon{animation:wa2-slam .55s cubic-bezier(.3,1.3,.5,1) both}
@media(max-width:1023px){body.jjw2 .wa2-st{top:10px;right:10px;width:50px;height:50px}}
@media(max-width:767px){body.jjw2 .wa2-st{width:60px;height:60px}}
body.jjw2 :is(.mg-hit,.jjdb-badges--big) .wa2-st{right:auto;width:36px;height:36px}

/* ══ トップだけの部品 ══ */
/* hero：朱の判子「日本」（篆書ふうの枠・朱肉のかすれ。読み込みで1回ポン・押すと押し直す・朱がにじむ） */
body.jjw2 .wa2-hk{transform:rotate(-8deg)}
body.jjw2 .wa2-hk::before,body.jjw2 .wa2-hk::after{content:"";position:absolute}
body.jjw2 .wa2-hk::before{inset:8%;border-radius:14px;background:#e2401c;filter:blur(8px);opacity:0}
body.jjw2 .wa2-hk::after{inset:0;background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><filter id='r'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' seed='7'/><feDisplacementMap in='SourceGraphic' scale='2.4'/></filter><g filter='url(%23r)'><rect x='4' y='4' width='92' height='92' rx='8' fill='%23e2401c'/><g fill='none' stroke='%23fdfdf6'><rect x='9.5' y='9.5' width='81' height='81' rx='4' stroke-width='2'/><path stroke-width='5' d='M28 17h44v23H28zm0 11.5h44M18 56h64M50 46v41m0-28c-5 12-17 20-30 24m30-24c5 12 17 20 30 24M38 77h24'/></g><g fill='%23fdfdf6' opacity='.55'><circle cx='16' cy='38' r='1.5'/><circle cx='85' cy='68' r='1.8'/><circle cx='13' cy='64' r='1.1'/><circle cx='61' cy='93' r='1.4'/><circle cx='88' cy='21' r='1.2'/><circle cx='34' cy='92' r='1'/><circle cx='72' cy='13' r='1.3'/></g></g></svg>") no-repeat center/contain}
body.jjw2 .wa2-hk.wa2-pon{animation:wa2-pon .62s cubic-bezier(.3,1.25,.5,1) both}
body.jjw2 .wa2-hk.wa2-pon::before{animation:wa2-bleed .9s ease-out .34s both}
body.jjw2 .wa2-hk:focus-visible{outline-color:#fff}
@media(hover:hover) and (prefers-reduced-motion:no-preference){body.jjw2 .wa2-hk{transition:transform .25s}body.jjw2 .wa2-hk:hover{transform:rotate(-5deg) scale(1.05)}}
@keyframes wa2-pon{0%{opacity:0;transform:rotate(-30deg) scale(2.3)}55%{opacity:1;transform:rotate(-6deg) scale(.88)}78%{transform:rotate(-9deg) scale(1.05)}100%{opacity:1;transform:rotate(-8deg) scale(1)}}
@keyframes wa2-bleed{0%{opacity:0;transform:scale(.85)}25%{opacity:.55}100%{opacity:0;transform:scale(1.32)}}

/* feat：赤いひもの絵馬「旅行安全」（見えているあいだ風にゆれる・押すと大きく揺れる） */
body.jjw2 .wa2-em{width:92px;height:103px;transform-origin:50% 2%;background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 112'><path fill='none' stroke='%23d10a11' stroke-width='2.2' d='M50 31c-8-8-6-22 0-27 6 5 8 19 0 27'/><circle cx='50' cy='4' r='3.2' fill='%23d10a11'/><path fill='%23fdfdf6' stroke='%23131313' stroke-width='2.2' d='M8 40l42-22 42 22v68H8z'/><path fill='%23c9a23a' stroke='%23131313' stroke-width='1.6' stroke-linejoin='round' d='M3 38l47-25 47 25v7L50 20 3 45z'/><circle cx='50' cy='31' r='2.6' fill='%23131313'/><path fill='none' stroke='%23c9a23a' d='M16 52c10 2 18-1 26 1m16 43c8 1 16-2 26 0'/><g font-family='Hiragino Mincho ProN,Yu Mincho,Noto Serif JP,Noto Serif CJK JP,serif' font-weight='600' font-size='17' text-anchor='middle' fill='%23131313'><text x='63' y='64'>旅</text><text x='63' y='84'>行</text><text x='37' y='64'>安</text><text x='37' y='84'>全</text></g><rect x='14' y='91' width='12' height='12' rx='1.5' fill='%23e2401c'/><path stroke='%23fdfdf6' stroke-width='1.6' d='M17 95h6m-3 0v6m-3 0h6'/></svg>") no-repeat center/contain}
body.jjw2 .wa2-em.wa2-on{--a:2deg;animation:wa2-sway 6s ease-in-out infinite}
body.jjw2 .wa2-em.wa2-sw{animation:wa2-swing 1.6s ease-out}
@media(max-width:767px){body.jjw2 .wa2-em{width:66px;height:74px}}

/* todo の紅葉（カードの写真の中だけに舞う） */
body.jjw2 .wa2-lv{left:0;top:0;width:100%;aspect-ratio:1;overflow:hidden}
body.jjw2 .wa2-lv i{position:absolute;left:0;top:0;animation:wa2-fall 2.4s linear both}
body.jjw2 .wa2-lv svg{animation:wa2-flut .8s ease-in-out infinite alternate}
@keyframes wa2-fall{from{transform:translate(var(--x),-24px) rotate(0)}to{transform:translate(calc(var(--x) + var(--dx)),var(--h)) rotate(var(--r))}}
@keyframes wa2-flut{to{transform:scaleX(.4) translateX(3px)}}

/* black：写真の角からのぞく狐の面（見えているあいだまばたき・押すと首をかしげる） */
body.jjw2 .wa2-fx{top:0;right:0;width:180px;height:186px;overflow:hidden}
body.jjw2 .wa2-fxb{position:absolute;right:-40px;top:6px;width:152px;height:166px;transform:rotate(-24deg)}
body.jjw2 :is(.wa2-fx,.wa2-hf) .wa2-ey path{transform-box:fill-box;transform-origin:center}
body.jjw2 :is(.wa2-fx,.wa2-hf).wa2-on .wa2-ey path{animation:wa2-blink 4.6s infinite}
body.jjw2 .wa2-fxb.wa2-tilt{animation:wa2-tilt 1.4s ease-in-out}
body.jjw2 .wa2-fx .wa2-fxb:focus-visible{outline:0}
body.jjw2 .wa2-fx:has(:focus-visible){outline:2px solid #fff;outline-offset:-4px}
@media(max-width:1023px){body.jjw2 .wa2-fx{width:104px;height:110px}body.jjw2 .wa2-fxb{right:-24px;top:4px;width:88px;height:96px}}
@keyframes wa2-tilt{0%,100%{transform:rotate(-24deg)}30%,68%{transform:rotate(-44deg)}}

/* dest：招き猫（見えているあいだ手招き・押すと鈴が鳴って小判が回る） */
body.jjw2 .wa2-nk .wa2-pw{transform-box:view-box;transform-origin:101px 80px}
body.jjw2 .wa2-nk .wa2-nb{transform-box:view-box;transform-origin:60px 94px}
body.jjw2 .wa2-nk .wa2-kb{transform-box:fill-box;transform-origin:center}
body.jjw2 .wa2-nk.wa2-on .wa2-pw{animation:wa2-wave 2.8s ease-in-out infinite}
body.jjw2 .wa2-nk.wa2-ring{animation:wa2-hop .5s ease-out}
body.jjw2 .wa2-nk.wa2-ring .wa2-nb{animation:wa2-ring .9s ease-out}
body.jjw2 .wa2-nk.wa2-ring .wa2-kb{animation:wa2-spin 1s ease-in-out .1s}
@keyframes wa2-wave{0%,55%,100%{transform:rotate(0)}14%,40%{transform:rotate(-16deg)}27%{transform:rotate(-3deg)}}
@keyframes wa2-hop{0%,100%{transform:none}40%{transform:translateY(-8px)}}
@keyframes wa2-spin{0%,100%{transform:scaleX(1)}25%,75%{transform:scaleX(.06)}50%{transform:scaleX(-1)}}

/* reg：御朱印（見えた1回目に北から順に押す・触るとポン） */
body.jjw2 .wa2-gs{top:6px;right:6px;width:clamp(30px,34%,50px);aspect-ratio:1;transform:rotate(-8deg)}
body.jjw2 :is(.wa2-gs,.wa2-se,.wa2-ds)::after{content:"";position:absolute;inset:-3px;border:2px solid #e2401c;border-radius:50%;opacity:0}
body.jjw2 :is(.wa2-gs,.wa2-se,.wa2-ds).wa2-pon{animation:wa2-twist .6s cubic-bezier(.3,1.3,.5,1) both}
body.jjw2 :is(.wa2-gs,.wa2-se,.wa2-ds).wa2-pon::after{animation:wa2-rip .7s ease-out .3s both}
@media(max-width:767px){body.jjw2 .mg-rg__it:first-child .wa2-gs{width:clamp(30px,26%,58px)}}

/* ess：片目のだるま（見えているあいだ筆がふわふわ・押すと筆で目が入る。もう一度押すと起き上がりこぼし） */
body.jjw2 .wa2-dm .wa2-dr{transform-box:view-box;transform-origin:50px 108px}
body.jjw2 .wa2-dm .wa2-e2{transform-box:fill-box;transform-origin:center;transform:scale(0)}
body.jjw2 .wa2-dm.wa2-eyed .wa2-e2{transform:none}
body.jjw2 .wa2-dm .wa2-fd{transform-box:view-box;transform-origin:28px 33px}
body.jjw2 .wa2-dm.wa2-on .wa2-fd{animation:wa2-bob 2.2s ease-in-out infinite alternate}
body.jjw2 .wa2-dm.wa2-eyed .wa2-fd{opacity:0;animation:none}
body.jjw2 .wa2-dm.wa2-paint .wa2-fd{animation:wa2-brush 1.5s ease-in-out both}
body.jjw2 .wa2-dm.wa2-paint .wa2-e2{animation:wa2-dot .45s ease-out .55s both}
body.jjw2 .wa2-dm.wa2-paint .wa2-dr{animation:wa2-rock 1s ease-in-out .95s}
body.jjw2 .wa2-dm.wa2-rock .wa2-dr{animation:wa2-rock 1.2s ease-in-out}
@keyframes wa2-bob{to{transform:translate(1px,-4px)}}
@keyframes wa2-brush{0%{opacity:1;transform:none}26%{transform:translate(9px,11.5px)}36%{transform:translate(10px,10.5px) rotate(-12deg)}46%{transform:translate(8px,12.5px) rotate(10deg)}56%{transform:translate(9px,11.5px)}78%{opacity:1;transform:translate(-5px,-5px)}100%{opacity:0;transform:translate(-12px,-12px)}}
@keyframes wa2-dot{from{transform:scale(0)}}
@keyframes wa2-rock{0%,100%{transform:rotate(0)}18%{transform:rotate(10deg)}38%{transform:rotate(-8deg)}58%{transform:rotate(5deg)}78%{transform:rotate(-2deg)}}

/* cols：神社の鈴と紅白の鈴緒（触ると綱が揺れて鈴が震える） */
body.jjw2 .wa2-bl{right:14px;width:44px;height:138px}
body.jjw2 .wa2-bl svg{width:36px;margin:0 auto}
body.jjw2 .wa2-bl .wa2-ro{transform-box:view-box;transform-origin:20px 33px}
body.jjw2 .wa2-bl .wa2-sz{transform-box:view-box;transform-origin:20px 9px}
body.jjw2 .wa2-bl.wa2-on .wa2-ro{--a:1.5deg;animation:wa2-sway 5.2s ease-in-out infinite}
body.jjw2 .wa2-bl.wa2-ring .wa2-ro{animation:wa2-swing 1.4s ease-out}
body.jjw2 .wa2-bl.wa2-ring .wa2-sz{animation:wa2-ring .8s ease-out}
@media(max-width:767px){body.jjw2 .wa2-bl{height:114px}body.jjw2 .wa2-bl svg{width:30px}}

/* ── おみくじ（トップの黒い枠・記事の終わり・404） ── */
body.jjw2 .wa2-kj{display:flex;flex-direction:column;align-items:flex-start;gap:14px;pointer-events:none}
body.jjw2 .wa2-kx{display:block;width:calc(84px * var(--s,1));aspect-ratio:70/146;transform-origin:50% 85%;pointer-events:auto;cursor:pointer}
body.jjw2 .wa2-kj.wa2-on .wa2-kx{animation:wa2-nudge 5s ease-in-out infinite}
body.jjw2 .wa2-kx.wa2-shake{animation:wa2-shake .95s ease-in-out}
body.jjw2 .wa2-kx .wa2-ks{transition:transform .5s cubic-bezier(.3,1.4,.5,1)}
body.jjw2 .wa2-kx.wa2-out .wa2-ks{transform:translateY(-44px)}
body.jjw2 .wa2-kd{pointer-events:auto;min-height:48px;padding:12px 18px;background:#fff;color:#000;border:2px solid #fff;font:500 11px/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase;text-align:center;transition:background .2s,color .2s,border-color .2s}
body.jjw2 .wa2-kd:hover{background:#e2401c;border-color:#e2401c;color:#fff}
html:is([lang^=zh],[lang^=ja],[lang^=ko]) body.jjw2 .wa2-kd{font-size:13px;letter-spacing:.06em}
body.jjw2 .wa2-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* 狭い画面は箱の左にボタン。文言が「もう一度引く」に変わっても位置と大きさを変えない（CLS 0） */
@media(max-width:1023px){body.jjw2 .wa2-kj{flex-direction:row-reverse;align-items:flex-end;gap:10px}body.jjw2 .wa2-kx{width:58px}body.jjw2 .wa2-kd{width:176px;height:58px;padding:0 14px}}
@keyframes wa2-nudge{0%,84%,100%{transform:rotate(0)}88%{transform:rotate(-4deg)}92%{transform:rotate(3deg)}96%{transform:rotate(-1.5deg)}}
@keyframes wa2-shake{0%,100%{transform:rotate(0)}10%{transform:rotate(-15deg) translateY(-5px)}25%{transform:rotate(13deg)}40%{transform:rotate(-13deg) translateY(-5px)}55%{transform:rotate(10deg)}70%{transform:rotate(-7deg)}85%{transform:rotate(3deg)}}
/* おみくじの紙（生成りに朱の枠。紙が開いてから字が出る） */
body.jjw2 .wa2-kp{width:240px;padding:6px 18px 18px;z-index:5;color:#131313;text-align:center;font:400 14px/1.4 var(--sans)}
body.jjw2 .wa2-kp__bg{position:absolute;inset:0;background:#fdfdf6;border:1px solid #131313;transform-origin:50% 0}
body.jjw2 .wa2-kp__bg::after{content:"";position:absolute;inset:5px;border:1px solid #e2401c}
body.jjw2 .wa2-kp__in{position:relative}
body.jjw2 .wa2-kp__no,body.jjw2 .wa2-kp__k{font-family:var(--wa2-mincho);font-weight:600}
body.jjw2 .wa2-kp__no{margin:0 -12px;padding:11px 0 10px;background:#e2401c;color:#fdfdf6;font-size:13px;line-height:1;letter-spacing:.3em}
body.jjw2 .wa2-kp__k{margin:16px 0 6px;font-size:48px;line-height:1.05;letter-spacing:.08em;color:#e2401c}
body.jjw2 .wa2-kp__t{font:500 15px/1.35 var(--sans)}
body.jjw2 .wa2-kp__l{margin:16px 0 6px;padding-top:14px;border-top:1px solid #c9a23a;font:500 11px/13px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#747474}
html:is([lang^=zh],[lang^=ja],[lang^=ko]) body.jjw2 .wa2-kp__l{letter-spacing:.06em}
body.jjw2 .wa2-kp__a{display:block;padding:4px 0;font:500 16px/20px var(--sans);color:#000;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
body.jjw2 .wa2-kp__a[hidden]{display:none}
body.jjw2 .wa2-kp__a:hover{color:#d10a11}
body.jjw2 .wa2-kp__x{position:absolute;top:0;right:0;width:44px;height:44px;display:grid;place-items:center;color:#fdfdf6}
body.jjw2 .wa2-kp__x svg{width:13px;height:13px;margin-top:-2px}
body.jjw2 .wa2-kp.wa2-open .wa2-kp__bg{animation:wa2-unfold .5s cubic-bezier(.2,.9,.3,1.1) both}
body.jjw2 .wa2-kp.wa2-open .wa2-kp__in{animation:wa2-in .35s ease-out .4s both}
@media(max-width:1023px){body.jjw2 .wa2-kp{width:min(256px,calc(100% - 32px))}}
@keyframes wa2-unfold{from{transform:scaleY(.05)}}
@keyframes wa2-unfoldx{from{transform:scaleX(.05)}}
@keyframes wa2-in{from{opacity:0}}
/* 下層のおみくじの台（記事の終わりは本文の列にそろえる・404 は実務データの列の下）。止まったまま、押したときだけ動く */
body.jjw2 .wa2-kow{position:relative;z-index:auto;max-width:1600px;margin:48px auto 0;padding:0 var(--mg-pad,24px)}
@media(min-width:1024px){body.jjw2 .wa2-kow{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,640px) minmax(32px,2.3fr) minmax(0,304px);margin-top:56px}body.jjw2 .wa2-kow>.wa2-ko{grid-column:2;width:100%}}
body.jjw2 .mg-empty .wa2-kow{display:block;margin:20px 0 0;padding:0}
body.jjw2 .wa2-ko{position:relative;display:flex;align-items:center;justify-content:center;gap:18px;max-width:640px;height:124px;margin:0 auto;background:#fdfdf6;border:1px solid #e9e9e9;--s:.56}
body.jjw2 .wa2-ko .wa2-kx{width:47px}
body.jjw2 .wa2-rk{display:block;width:76px;height:58px}
@media(max-width:379px){body.jjw2 .wa2-rk{display:none}}
body.jjw2 .wa2-ko .wa2-kd{width:176px;height:58px;padding:0 14px;background:#000;color:#fff;border-color:#000}
body.jjw2 .wa2-ko .wa2-kd:hover{background:#e2401c;border-color:#e2401c}
/* 横向きの紙（台と同じ大きさで台の上に開く） */
body.jjw2 .wa2-kp--h{position:absolute;inset:0;width:auto;max-width:440px;margin:0 auto;padding:0}
body.jjw2 .wa2-kp--h .wa2-kp__bg{transform-origin:0 50%}
body.jjw2 .wa2-kp--h.wa2-open .wa2-kp__bg{animation-name:wa2-unfoldx}
body.jjw2 .wa2-kp--h .wa2-kp__in{display:grid;grid-template-columns:30px 84px minmax(0,1fr);grid-template-rows:1fr auto 1fr;align-items:center;height:100%;padding:6px 40px 6px 6px;box-sizing:border-box;text-align:left}
body.jjw2 .wa2-kp--h .wa2-kp__no{grid-row:1/4;grid-column:1;align-self:stretch;margin:0;padding:8px 0;writing-mode:vertical-rl;text-align:center;letter-spacing:.24em;font-size:12px}
body.jjw2 .wa2-kp--h .wa2-kp__k{grid-row:1/4;grid-column:2;margin:0;font-size:36px;letter-spacing:.04em;text-align:center}
body.jjw2 .wa2-kp--h .wa2-kp__t{grid-column:3;grid-row:1;align-self:end}
body.jjw2 .wa2-kp--h .wa2-kp__l{grid-column:3;grid-row:2;margin:6px 0 2px;padding-top:6px}
body.jjw2 .wa2-kp--h .wa2-kp__a{grid-column:3;grid-row:3;align-self:start;padding:0;font-size:15px;line-height:19px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
body.jjw2 .wa2-kp--h .wa2-kp__x{color:#131313}

/* more：よくある質問の頭の絵馬・一覧のカードの絵馬（乗せると裏返って「叶」。トップのスマホだけ見えているあいだ順に裏返る） */
body.jjw2 .wa2-ek{top:0;left:14px;width:38px;height:49px;perspective:300px}
body.jjw2 .wa2-ek i{position:absolute;inset:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}
body.jjw2 .wa2-ek i+i{transform:rotateY(180deg)}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
  body.jjw2 .wa2-ek i{transition:transform .6s cubic-bezier(.3,1.3,.5,1)}
  body.jjw2 :is(.mg-row,.mg-pc,.mg-feat__main,.mg-side__it):hover .wa2-ek i{transform:rotateY(-180deg)}
  body.jjw2 :is(.mg-row,.mg-pc,.mg-feat__main,.mg-side__it):hover .wa2-ek i+i{transform:none}
}
@media(hover:none){body.jjw2 .wa2-ek.wa2-on i{animation:wa2-f1 13.6s ease-in-out var(--d) infinite}body.jjw2 .wa2-ek.wa2-on i+i{animation-name:wa2-f2}}
@media(max-width:1023px){body.jjw2 .wa2-ek{width:32px;height:41px}}
@media(max-width:767px){body.jjw2 .wa2-ek{left:12px;width:26px;height:33.6px}}
body.jjw2 .wa2-ek--pc{left:12px;width:30px;height:38.8px}
@keyframes wa2-f1{0%,6%,22%,100%{transform:none}10%,18%{transform:rotateY(-180deg)}}
@keyframes wa2-f2{0%,6%,22%,100%{transform:rotateY(180deg)}10%,18%{transform:none}}

/* ── footer：フッターの上の縁に立つ鳥居と石灯籠の影絵（フッターと同じ色。縄のおみくじが風に揺れ、灯りがゆらぐ）
   高さは50px以下（クレジットの下からフッターまでの空き51px に収まる。クレジットを開いても重ならない） ── */
body.jjw2 .wa2-yd{bottom:100%;right:max(16px,calc((100% - 1180px) / 2 + 24px));width:min(320px,calc(100% - 32px));aspect-ratio:320/50}
body.jjw2 .wa2-yd .wa2-pp{transform-box:fill-box;transform-origin:50% 0}
body.jjw2 .wa2-yd.wa2-on .wa2-pp{--a:8deg;animation:wa2-sway 2.8s ease-in-out infinite}
body.jjw2 .wa2-yd.wa2-on .wa2-lt{animation:wa2-flick 3s ease-in-out infinite alternate}
@keyframes wa2-flick{30%{opacity:.68}55%{opacity:.95}80%{opacity:.78}}

/* ══ 記事と固定ページ ══ */
/* 頭：写真の右下にカテゴリの御朱印（画面に入った1回目にポン・押すと押し直す） */
body.jjw2 .wa2-se{transform:rotate(-10deg)}
body.jjw2 .wa2-se:focus-visible{outline-color:#fff}
/* 本文の h2：PC の左の余白に、番号（一・二・三…）を書いた小さな絵馬。止まった絵（文字は動かさない） */
@media(min-width:1024px){
  body.jjw2 :is(.mg-art,.mg-pg:not(.jja)) .mg-body{counter-reset:wa2h}
  body.jjw2 :is(.mg-art,.mg-pg:not(.jja)) .mg-body h2{position:relative;counter-increment:wa2h}
  body.jjw2 :is(.mg-art,.mg-pg:not(.jja)) .mg-body h2::before{content:counter(wa2h,cjk-ideographic);content:counter(wa2h,cjk-ideographic)/"";position:absolute;left:-52px;top:-3px;width:28px;height:36px;padding-top:16px;box-sizing:border-box;background:var(--wa2-ema) no-repeat center/contain;font:600 11px/1 var(--wa2-mincho);letter-spacing:-.06em;color:#131313;text-align:center;pointer-events:none}
}
/* 目次の題の前に鳥居（止まった絵・PC の余白だけ） */
@media(min-width:1024px){
  body.jjw2 :is(.mg-art,.mg-pg:not(.jja)) .mg-toc .mg-toc__h{position:relative}
  body.jjw2 :is(.mg-art,.mg-pg:not(.jja)) .mg-toc .mg-toc__h::before{content:"";position:absolute;left:-22px;top:16px;width:16px;height:13.4px;background:var(--wa2-tor) no-repeat center/contain}
}

/* ══ 一覧・検索・404 ══ */
/* 一覧の題を囲む朱の鳥居（柱は字の外。題の左右に紙垂が揺れる） */
body.jjw2 .wa2-gp{background:linear-gradient(to top,#131313 9px,#e2401c 9px)}
body.jjw2 .wa2-sd--g{width:15px;height:30px;margin-left:-7.5px}
body.jjw2 .wa2-sd--g.wa2-on{--a:5deg;animation:wa2-sway 3.8s ease-in-out infinite}
/* 検索と404：題の横の狐の面（まばたき・押すと首をかしげる） */
body.jjw2 .wa2-hf.wa2-nod{animation:wa2-nod 1.4s ease-in-out}
@keyframes wa2-nod{0%,100%{transform:rotate(0)}30%,68%{transform:rotate(-16deg)}}

/* ══ 実務データ（DB） ══ */
/* PC：頭の右の御朱印帳の1ページ（朱の印は画面に入った1回目に押す） */
body.jjw2 .wa2-gb{transform:rotate(3deg)}
body.jjw2 .wa2-gb .wa2-gsl{transform-box:fill-box;transform-origin:center}
body.jjw2 .wa2-gb.wa2-pre2 .wa2-gsl{opacity:0}
body.jjw2 .wa2-gb.wa2-pon .wa2-gsl{animation:wa2-sealin .6s cubic-bezier(.3,1.25,.5,1) both}
body.jjw2 .wa2-gb.wa2-pon .wa2-gsl+.wa2-gsl{animation-delay:.2s}
@keyframes wa2-sealin{0%{opacity:0;transform:scale(1.9) rotate(-24deg)}60%{opacity:1;transform:scale(.9)}100%{opacity:1;transform:none}}
/* スマホとタブレット：パンくずと頭の境目の丸い御朱印 */
body.jjw2 .wa2-ds{transform:rotate(-8deg)}
/* 群れの見出しの上の線の左端に、線の上に立つ小さな鳥居（止まった絵） */
body.jjw2 .jjdb-grp__hd::before{content:"";position:absolute;left:0;top:-16px;width:18px;height:15px;background:var(--wa2-tor) no-repeat center bottom/contain;pointer-events:none}
/* 畳んだカードを人が開いたとき、中の一番下（「全部を見る」の横）に判子。持ち込みは判定（可・条件・不可）、ほかは DB の字 */
body.jjw2 .jjdb{--wa2-cc:"旅"}
body.jjw2 .jjdb[data-jjdb-key=airports]{--wa2-cc:"港"}
body.jjw2 .jjdb[data-jjdb-key=airlines]{--wa2-cc:"翼"}
body.jjw2 .jjdb[data-jjdb-key=airport-transfers]{--wa2-cc:"道"}
body.jjw2 .jjdb[data-jjdb-key=holidays]{--wa2-cc:"祝"}
body.jjw2 .jjdb[data-jjdb-key=taxfree]{--wa2-cc:"免"}
body.jjw2 .jjdb:is([data-jjdb-key=autumn-leaves],[data-jjdb-key=koyo]){--wa2-cc:"紅"}
body.jjw2 .jjdb[data-jjdb-key=bring] .jjdb-card:has(.jjdb-mark[style*="15653a"]){--wa2-cs:var(--wa2-st0)}
body.jjw2 .jjdb[data-jjdb-key=bring] .jjdb-card:has(.jjdb-mark[style*="7a4506"]){--wa2-cs:var(--wa2-st1)}
body.jjw2 .jjdb[data-jjdb-key=bring] .jjdb-card:has(.jjdb-mark[style*="b71c1c"]){--wa2-cs:var(--wa2-st2)}
body.jjw2 .jjdb-fold[open]:not([data-auto])>.jjdb-fold__in:has(>.jjdb-more:last-child){position:relative}
body.jjw2 .jjdb-fold[open]:not([data-auto])>.jjdb-fold__in:has(>.jjdb-more:last-child)::after{content:var(--wa2-cc);content:var(--wa2-cc)/"";position:absolute;right:6px;bottom:-4px;display:grid;place-items:center;width:54px;height:54px;box-sizing:border-box;border:3px double #e2401c;border-radius:50%;color:#e2401c;font:600 23px/1 var(--wa2-mincho);transform:rotate(-12deg);pointer-events:none;animation:wa2-slam .55s cubic-bezier(.3,1.3,.5,1) both}
body.jjw2 .jjdb[data-jjdb-key=bring] .jjdb-fold[open]:not([data-auto])>.jjdb-fold__in:has(>.jjdb-more:last-child)::after{content:"";border:0;border-radius:0;background:var(--wa2-cs,none) no-repeat center/contain}

/* ── 動きを減らす設定：一切動かさない（おみくじは結果だけ出す・開いたカードの判子は止まった絵で出す） ── */
@media(prefers-reduced-motion:reduce){
  body.jjw2 [data-wa],body.jjw2 [data-wa] *,body.jjw2 [data-wa]::before,body.jjw2 [data-wa]::after,body.jjw2 [data-wa] *::before,body.jjw2 [data-wa] *::after,body.jjw2 .jjdb-fold__in::after{animation:none!important;transition:none!important}
}
