/*
Theme Name: 竹の塚西口商店街（たけにし）
Theme URI: https://takenishi-events.com/
Author: Takuya Kurihara
Description: 竹の塚西口駅前中央通り商店街の公式サイトテーマ。スクロール連動の街並みアニメーション、店舗CPT、クリックできるイラストマップ、秋祭り（イベント）札のON/OFF。
Version: 3.7.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: takenishi
*/
/* 竹の塚西口商店街（たけにし） 公式サイト v1 */
:root{
  --green:#2E6B4A; --dgreen:#1F4A34; --cream:#FBF6EA; --yellow:#F2C14E; --red:#D6453A; --orange:#E8863A;
  --ink:#2B2B2B; --sky:#E9F1F4; --paper:#F4EEDD; --line:#E3D9C3; --muted:#7A6E58;
  --ff-head:'Zen Maru Gothic','Noto Sans JP',sans-serif; --ff-body:'Noto Sans JP',sans-serif; --ff-num:'Zen Kaku Gothic New','Noto Sans JP',sans-serif;
  --wrap:1120px; --gutter:clamp(16px,4vw,40px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--ff-body);font-size:16px;line-height:1.9;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:var(--green)}
h1,h2,h3,h4{font-family:var(--ff-head);line-height:1.35;margin:0;font-weight:900}
.wrap{max-width:var(--wrap);margin:0 auto;padding-inline:var(--gutter)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---------- header ---------- */
.hd{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:10px var(--gutter);transition:background .3s,box-shadow .3s}
.hd.is-scrolled{background:rgba(251,246,234,.92);backdrop-filter:blur(8px);box-shadow:0 2px 12px rgba(31,74,52,.08)}
.hd__logo img{height:54px;width:auto}
.hd__nav{display:none;gap:26px;align-items:center}
.hd__nav a{font-family:var(--ff-head);font-weight:700;text-decoration:none;color:var(--dgreen);font-size:15px;position:relative}
.hd__nav a::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:3px;border-radius:3px;background:var(--yellow);transform:scaleX(0);transition:transform .25s;transform-origin:left}
.hd__nav a:hover::after{transform:scaleX(1)}
.hd__cta{background:var(--red);color:#fff!important;padding:9px 18px;border-radius:999px;font-size:14px!important}
.hd__cta::after{display:none}
.hd__burger{display:inline-flex;flex-direction:column;gap:5px;width:46px;height:46px;justify-content:center;align-items:center;border:0;background:var(--green);border-radius:12px;cursor:pointer}
.hd__burger span{display:block;width:22px;height:2.5px;background:#fff;border-radius:2px;transition:.25s}
.hd__burger.is-open span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.hd__burger.is-open span:nth-child(2){opacity:0}
.hd__burger.is-open span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
.drawer{position:fixed;inset:0;z-index:49;background:var(--dgreen);color:#fff;padding:96px var(--gutter) 40px;transform:translateY(-100%);transition:transform .4s cubic-bezier(.7,0,.3,1);display:flex;flex-direction:column;gap:6px}
.drawer.is-open{transform:none}
.drawer a{color:#fff;text-decoration:none;font-family:var(--ff-head);font-size:22px;font-weight:700;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.14)}
.drawer small{display:block;font-size:12px;opacity:.7;font-family:var(--ff-body);font-weight:400}
@media(min-width:960px){.hd__nav{display:flex}.hd__burger,.drawer{display:none}}

/* ---------- hero ---------- */
.hero{position:relative;height:auto;min-height:max(100svh,820px);display:flex;flex-direction:column;overflow:hidden;background:linear-gradient(#E9F1F4,#FDF3DC)}
.hero__copy{position:relative;z-index:3;padding:96px var(--gutter) 0;max-width:var(--wrap);margin:0 auto;width:100%;flex:none}
.hero__kicker{display:inline-flex;align-items:center;gap:8px;font-family:var(--ff-head);font-weight:700;color:var(--green);background:#fff;border-radius:999px;padding:5px 14px 5px 8px;font-size:13px;box-shadow:0 2px 8px rgba(31,74,52,.12)}
.hero__kicker i{width:10px;height:10px;border-radius:50%;background:var(--red);display:inline-block;animation:blink 1.6s infinite}
@keyframes blink{50%{opacity:.25}}
.hero__title{font-size:clamp(32px,5.4vw,64px);letter-spacing:.02em;color:var(--dgreen);margin:10px 0 6px;line-height:1.2}
.hero__title .l{display:block;overflow:hidden;padding-bottom:.08em}
.hero__title .l span{display:inline-block;transform:translateY(110%)}
.hero__title em{font-style:normal;color:var(--green);background:linear-gradient(transparent 62%,var(--yellow) 62%)}
.hero__lead{font-size:clamp(14px,1.4vw,17px);max-width:34em;color:#3d4a44;margin:0}
.hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}
.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--ff-head);font-weight:700;text-decoration:none;padding:13px 24px;border-radius:999px;font-size:15px;transition:transform .2s,box-shadow .2s;border:0;cursor:pointer}
.btn:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(31,74,52,.18)}
.btn--p{background:var(--green);color:#fff}
.btn--r{background:var(--red);color:#fff}
.btn--y{background:var(--yellow);color:var(--dgreen)}
.btn--o{background:#fff;color:var(--green);border:2px solid var(--green)}
.btn--lg{padding:16px 30px;font-size:17px}
.hero__art{position:relative;z-index:1;flex:1;min-height:420px;margin-top:-30px}
.hero__art svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.hero__fuda{position:absolute;z-index:4;right:var(--gutter);top:104px;width:min(300px,46vw);background:var(--yellow);border-radius:18px;padding:16px 18px;box-shadow:0 12px 30px rgba(31,74,52,.22);transform:rotate(3deg);text-decoration:none;color:var(--dgreen);border:3px solid #fff}
.hero__fuda:hover{transform:rotate(0) scale(1.03)}
.hero__fuda b{display:block;font-family:var(--ff-head);font-size:clamp(20px,3vw,28px);line-height:1.2}
.hero__fuda .d{font-family:var(--ff-num);font-weight:900;font-size:clamp(28px,4.5vw,44px);line-height:1;letter-spacing:-.02em;margin-top:6px;display:flex;align-items:baseline;gap:6px}
.hero__fuda .d small{font-size:.45em;font-weight:700}
.hero__fuda .t{font-family:var(--ff-num);font-weight:700;font-size:clamp(15px,2vw,20px);display:block}
.hero__fuda .go{display:inline-block;margin-top:8px;background:var(--red);color:#fff;font-size:12px;padding:5px 12px;border-radius:999px;font-weight:700}
.hero__fuda::before{content:"";position:absolute;left:50%;top:-16px;width:14px;height:22px;background:#3C4744;border-radius:3px;transform:translateX(-50%)}
.hero__scroll{position:absolute;left:50%;bottom:14px;z-index:4;transform:translateX(-50%);font-size:11px;letter-spacing:.2em;color:#fff;text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:6px;text-shadow:0 1px 3px rgba(0,0,0,.4)}
.hero__scroll i{width:1px;height:36px;background:#fff;display:block;animation:sc 1.6s infinite}
@keyframes sc{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
@media(max-width:959px){
  .hero{height:auto;min-height:100svh}
  .hero__copy{padding-top:84px}
  .hero__fuda{position:relative;right:auto;top:auto;width:auto;margin:16px 0 0;transform:rotate(-1.5deg);display:block}
  .hero__art{margin-top:4px;min-height:min(72vw,460px);flex:none;height:min(72vw,460px)}
}
/* SVG street animations */
.lantern{animation:sway 3.2s ease-in-out infinite}
.lantern:nth-child(odd){animation-duration:3.8s;animation-delay:-1.2s}
@keyframes sway{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}
.noren{animation:noren 4s ease-in-out infinite;transform-box:fill-box;transform-origin:50% 0}
@keyframes noren{0%,100%{transform:skewX(0)}50%{transform:skewX(-4deg)}}
.leaf{animation:fall 9s linear infinite;transform-box:fill-box;transform-origin:center}
@keyframes fall{0%{translate:0 -60px;rotate:0deg;opacity:0}8%{opacity:1}100%{translate:-60px 520px;rotate:360deg;opacity:0}}
.walker .legL{animation:leg .6s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:50% 0}
.walker .legR{animation:leg .6s ease-in-out infinite alternate-reverse;transform-box:fill-box;transform-origin:50% 0}
@keyframes leg{from{transform:rotate(-14deg)}to{transform:rotate(14deg)}}
@media(prefers-reduced-motion:reduce){.lantern,.noren,.leaf,.walker .legL,.walker .legR,.hero__kicker i,.hero__scroll i{animation:none!important}}

/* ---------- 共通セクション ---------- */
.sec{padding:clamp(64px,9vw,120px) 0;position:relative}
.sec__head{margin-bottom:clamp(28px,4vw,48px)}
.sec__en{font-family:var(--ff-num);font-weight:900;color:var(--yellow);font-size:13px;letter-spacing:.24em;text-transform:uppercase;display:flex;align-items:center;gap:10px}
.sec__en::before{content:"";width:28px;height:3px;background:var(--yellow);border-radius:3px}
.sec__title{font-size:clamp(26px,4vw,44px);color:var(--dgreen);margin-top:8px}
.sec__title em{font-style:normal;color:var(--red)}
.sec__lead{max-width:40em;color:#3d4a44;margin:12px 0 0}
.sec--paper{background:var(--paper)}
.sec--green{background:var(--dgreen);color:#fff}
.sec--green .sec__title{color:#fff}
.sec--green .sec__lead{color:rgba(255,255,255,.85)}
.reveal{opacity:0;transform:translateY(28px)}

/* 左ガター 道のライン（PC） */
.roadline{position:fixed;left:18px;top:0;bottom:0;width:36px;z-index:20;pointer-events:none;display:none}
.roadline svg{width:36px;height:100%}
.roadline .rl-path{stroke:var(--green);stroke-width:3;fill:none;stroke-dasharray:6 6}
.roadline .rl-prog{stroke:var(--yellow);stroke-width:4;fill:none}
.roadline .rl-walker{transition:transform .1s linear}
@media(min-width:1280px){.roadline{display:block}}

/* ---------- 秋祭り ---------- */
.fest{background:var(--yellow);overflow:hidden;position:relative}
.fest::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 40px,rgba(255,255,255,.18) 40px 80px)}
.fest .wrap{position:relative}
.fest__banner{background:var(--red);color:#fff;border-radius:16px;padding:14px 20px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;transform-origin:left;box-shadow:0 10px 24px rgba(214,69,58,.3)}
.fest__banner b{font-family:var(--ff-head);font-size:clamp(20px,3vw,30px);font-weight:900;letter-spacing:.04em}
.fest__banner .num{font-family:var(--ff-num);font-weight:900;font-size:clamp(26px,4vw,40px);line-height:1;letter-spacing:-.02em}
.fest__banner .num small{font-size:.5em;font-weight:700;margin:0 4px}
.fest__banner .place{font-size:14px;opacity:.95}
.fest__grid{display:grid;grid-template-columns:1.1fr .9fr;gap:36px;margin-top:36px;align-items:start}
.fest__poster{background:#fff;border-radius:18px;padding:10px;box-shadow:0 18px 40px rgba(31,74,52,.18);transform:rotate(-1.5deg)}
.fest__poster img{border-radius:10px}
.fest__poster figcaption{text-align:center;font-size:12px;color:var(--muted);padding:8px 0 2px}
.fest__title{font-size:clamp(28px,4.4vw,50px);color:var(--dgreen);line-height:1.2}
.fest__title span{display:block;font-size:.5em;color:var(--red);font-weight:700}
.fuda-list{list-style:none;padding:0;margin:20px 0 0;display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.fuda{background:#fff;border-radius:14px;padding:12px 14px 12px 12px;display:flex;gap:10px;align-items:center;box-shadow:0 6px 16px rgba(31,74,52,.1);transform-origin:top left}
.fuda i{flex:none;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-size:22px;background:var(--cream)}
.fuda b{display:block;font-family:var(--ff-head);font-size:15px;color:var(--dgreen);line-height:1.3}
.fuda small{display:block;font-size:12px;color:var(--muted);line-height:1.4}
.fuda .free{display:inline-block;background:var(--red);color:#fff;font-size:10px;padding:1px 7px;border-radius:999px;margin-left:4px;vertical-align:middle}
.fest__time{margin-top:20px;background:var(--dgreen);color:#fff;border-radius:16px;padding:16px 18px}
.fest__time h3{font-size:16px;color:var(--yellow);margin-bottom:8px}
.fest__time dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:4px 14px;font-size:14px}
.fest__time dt{font-family:var(--ff-num);font-weight:900;color:var(--yellow)}
.fest__time dd{margin:0}
.fest__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.fest__sign{position:absolute;right:var(--gutter);bottom:-10px;width:120px;opacity:.9}
@media(max-width:959px){.fest__grid{grid-template-columns:1fr}.fest__poster{order:2;max-width:420px;margin:0 auto}.fuda-list{grid-template-columns:1fr 1fr}.fest__sign{display:none}}
@media(max-width:480px){.fuda-list{grid-template-columns:1fr}}

/* ---------- こんな街 ---------- */
.about__grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.about__points{list-style:none;padding:0;margin:24px 0 0;display:grid;gap:14px}
.about__points li{display:flex;gap:14px;align-items:flex-start;background:#fff;border-radius:16px;padding:16px 18px;box-shadow:0 6px 18px rgba(31,74,52,.08)}
.about__points i{flex:none;width:48px;height:48px;border-radius:14px;background:var(--cream);display:grid;place-items:center;font-size:24px}
.about__points b{font-family:var(--ff-head);color:var(--dgreen);display:block;font-size:17px}
.about__points p{margin:2px 0 0;font-size:14px;color:#3d4a44;line-height:1.7}
.polas{position:relative;min-height:560px}
.pola{position:absolute;width:48%;background:#fff;padding:10px 10px 34px;box-shadow:0 14px 30px rgba(31,74,52,.18);border-radius:4px;transform:rotate(var(--r,0deg))}
.pola img{aspect-ratio:4/3;object-fit:cover;width:100%}
.pola figcaption{position:absolute;left:0;right:0;bottom:7px;text-align:center;font-family:var(--ff-head);font-size:13px;color:var(--dgreen)}
.pola--1{left:0;top:0;--r:-5deg;z-index:2}.pola--2{right:0;top:6%;--r:4deg;z-index:1}.pola--3{left:26%;bottom:0;--r:2deg;z-index:3}
@media(max-width:959px){.about__grid{grid-template-columns:1fr}.polas{min-height:min(120vw,520px);order:-1}}

/* ---------- お店 ---------- */
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.chip{border:2px solid var(--line);background:#fff;border-radius:999px;padding:7px 14px;font-family:var(--ff-head);font-weight:700;font-size:13px;color:var(--dgreen);cursor:pointer;transition:.2s}
.chip.is-on,.chip:hover{background:var(--green);border-color:var(--green);color:#fff}
.shops{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:18px;margin-top:26px;list-style:none;padding:0}
.shop{background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 8px 22px rgba(31,74,52,.08);text-decoration:none;color:var(--ink);display:block;position:relative;transition:transform .25s,box-shadow .25s}
.shop:hover{transform:translateY(-4px);box-shadow:0 16px 34px rgba(31,74,52,.16)}
.shop__noren{height:96px;position:relative;display:flex;align-items:flex-end;justify-content:center;padding-bottom:10px;background:var(--c,var(--green));overflow:hidden}
.shop__noren::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 31%,rgba(255,255,255,.35) 31% 33%,transparent 33% 64%,rgba(255,255,255,.35) 64% 66%)}
.shop__noren::after{content:"";position:absolute;left:0;right:0;top:0;height:10px;background:#8C5A3C}
.shop__noren span{position:relative;font-family:var(--ff-head);color:#fff;font-weight:900;font-size:18px;text-shadow:0 1px 2px rgba(0,0,0,.2)}
.shop__body{padding:14px 16px 16px}
.shop__cat{font-size:11px;color:var(--muted);font-weight:700;letter-spacing:.06em}
.shop__name{font-family:var(--ff-head);font-size:17px;color:var(--dgreen);font-weight:900;margin:2px 0 6px;line-height:1.3}
.shop__tel{font-size:13px;color:#3d4a44}
.shop__fest{margin-top:8px;font-size:12px;background:#FFF4D6;color:#8a5a00;border-radius:10px;padding:6px 10px;line-height:1.5}
.shop__fest::before{content:"秋祭り ";font-weight:900;color:var(--red)}
.shop.is-hidden{display:none}
.shops-more{text-align:center;margin-top:28px}

/* ---------- 地図 ---------- */
.mapwrap{background:#fff;border-radius:22px;padding:12px;box-shadow:0 14px 40px rgba(31,74,52,.12);position:relative}
.mapscroll{overflow:auto;border-radius:14px;-webkit-overflow-scrolling:touch}
.mapscroll svg{display:block;width:100%;min-width:760px;height:auto}
.map-tools{display:flex;gap:8px;justify-content:flex-end;margin-bottom:8px}
.map-tools button{border:2px solid var(--line);background:#fff;border-radius:10px;width:40px;height:40px;font-weight:900;font-size:18px;cursor:pointer;color:var(--dgreen)}
.map-tools .st{width:auto;padding:0 12px;font-size:13px;font-family:var(--ff-head)}
.mshop{cursor:pointer}
.mshop .dot{fill:#9AA79E;stroke:#fff;stroke-width:2}
.mshop .lbl{fill:#fff;stroke:#CFC5AE;stroke-width:1.5}
.mshop text{fill:#5a5142}
.mshop.is-member .dot{fill:var(--red)}
.mshop.is-member .lbl{fill:var(--green);stroke:var(--green)}
.mshop.is-member text{fill:#fff}
.mshop.is-fest .lbl{stroke:var(--yellow);stroke-width:3}
.mshop:hover .lbl,.mshop:focus .lbl,.mshop.is-active .lbl{fill:var(--red);stroke:var(--red)}
.mshop:hover text,.mshop:focus text,.mshop.is-active text{fill:#fff}
.mshop.is-active .dot{r:10}
.mapcard{margin-top:14px;background:var(--paper);border-radius:16px;padding:16px 18px;display:none;gap:16px;align-items:center;border:2px dashed var(--line)}
.mapcard.is-open{display:flex}
.mapcard__ico{flex:none;width:56px;height:56px;border-radius:16px;background:var(--green);display:grid;place-items:center;font-size:26px;color:#fff}
.mapcard b{font-family:var(--ff-head);font-size:18px;color:var(--dgreen);display:block}
.mapcard small{color:var(--muted);display:block;font-size:12px}
.mapcard p{margin:4px 0 0;font-size:13px}
.mapcard .btn{margin-left:auto;flex:none}
.mapcard__hint{display:block;margin-top:10px;font-size:12px;color:var(--muted)}
@media(max-width:600px){.mapcard{flex-wrap:wrap}.mapcard .btn{margin-left:0;width:100%;justify-content:center}}

/* ---------- お知らせ ---------- */
.news{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;list-style:none;padding:0;margin:0}
.news a{display:block;background:#fff;border-radius:16px;padding:18px 20px;text-decoration:none;color:var(--ink);box-shadow:0 6px 18px rgba(31,74,52,.08);height:100%}
.news time{font-family:var(--ff-num);font-weight:900;color:var(--green);font-size:13px}
.news .tag{display:inline-block;background:var(--yellow);color:var(--dgreen);font-size:11px;font-weight:700;padding:1px 8px;border-radius:999px;margin-left:8px}
.news b{display:block;font-family:var(--ff-head);margin-top:6px;line-height:1.5}
@media(max-width:800px){.news{grid-template-columns:1fr}}

/* ---------- アクセス ---------- */
.access{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:stretch}
.access__map{border-radius:18px;overflow:hidden;min-height:320px;box-shadow:0 10px 30px rgba(0,0,0,.15)}
.access__map iframe{width:100%;height:100%;min-height:320px;border:0;display:block}
.route{background:#fff;border-radius:18px;padding:22px 24px;position:relative}
.route svg{width:100%;height:auto}
.route dl{margin:16px 0 0;display:grid;grid-template-columns:auto 1fr;gap:8px 14px;font-size:14px}
.route dt{font-weight:700;color:var(--green)}
.route dd{margin:0}
@media(max-width:800px){.access{grid-template-columns:1fr}}

/* ---------- CTA / footer ---------- */
.cta{background:var(--green);color:#fff;text-align:center;padding:clamp(56px,8vw,90px) 0;position:relative;overflow:hidden}
.cta h2{font-size:clamp(24px,3.6vw,38px)}
.cta p{max-width:36em;margin:12px auto 22px;opacity:.9}
.cta .btn--y{font-size:17px;padding:16px 30px}
.ft{background:var(--dgreen);color:#fff;padding:40px 0 28px;font-size:13px}
.ft__grid{display:flex;flex-wrap:wrap;gap:24px 48px;align-items:flex-start;justify-content:space-between}
.ft__logo img{height:60px;filter:brightness(0) invert(1)}
.ft p{margin:6px 0 0;opacity:.85}
.ft__nav{display:flex;flex-wrap:wrap;gap:8px 20px}
.ft__nav a{color:#fff;text-decoration:none;opacity:.9}
.ft__ig{display:inline-flex;align-items:center;gap:8px;color:#fff;text-decoration:none;background:rgba(255,255,255,.12);padding:8px 14px;border-radius:999px;margin-top:10px}
.ft__copy{margin-top:26px;opacity:.6;font-size:12px;text-align:center}

/* ---------- 下層ページ ---------- */
.ph{padding:120px 0 40px;background:var(--paper);position:relative;overflow:hidden}
.ph h1{font-size:clamp(28px,4.6vw,48px);color:var(--dgreen)}
.ph .bc{font-size:12px;color:var(--muted);margin-bottom:8px}
.ph .bc a{color:var(--muted)}
.shop-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:36px;align-items:start}
.single__hero{border-radius:20px;overflow:hidden;aspect-ratio:4/3;background:var(--sky);display:grid;place-items:center;font-size:70px}
.single__hero img{width:100%;height:100%;object-fit:cover}
.single__body{margin-top:22px;font-size:16px}
.single__body h2{font-size:22px;color:var(--dgreen);margin:28px 0 10px;padding-left:14px;border-left:6px solid var(--yellow)}
.info{background:#fff;border-radius:18px;padding:20px 22px;box-shadow:0 8px 24px rgba(31,74,52,.08);position:sticky;top:90px}
.info h3{font-size:16px;color:var(--green);margin-bottom:10px}
.info dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:10px 14px;font-size:14px}
.info dt{font-weight:700;color:var(--muted);white-space:nowrap}
.info dd{margin:0}
.info .btn{width:100%;justify-content:center;margin-top:16px}
.info__fest{margin-top:16px;background:#FFF4D6;border-radius:12px;padding:12px 14px;font-size:13px}
.info__fest b{color:var(--red);display:block;font-family:var(--ff-head)}
@media(max-width:800px){.shop-layout{grid-template-columns:1fr}.info{position:static}}
.flyers{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.flyers a{display:block;background:#fff;padding:10px;border-radius:14px;box-shadow:0 10px 30px rgba(31,74,52,.14)}
@media(max-width:700px){.flyers{grid-template-columns:1fr}}
.tl{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.tl li{display:grid;grid-template-columns:90px 1fr;gap:14px;background:#fff;border-radius:12px;padding:12px 16px;align-items:center}
.tl time{font-family:var(--ff-num);font-weight:900;color:var(--red);font-size:20px}
.form{display:grid;gap:14px;max-width:640px}
.form label{font-weight:700;font-size:14px;color:var(--dgreen)}
.form label span{color:var(--red);font-size:11px;margin-left:6px}
.form input,.form textarea{width:100%;border:2px solid var(--line);border-radius:12px;padding:12px 14px;font:inherit;background:#fff}
.form textarea{min-height:160px}

/* ---------- 店舗ページ拡張 ---------- */
.single__ph{display:grid;place-items:center;font-size:64px;color:var(--muted)}
.single__ph small{font-size:13px;margin-top:6px}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.gallery a{display:block;aspect-ratio:4/3;border-radius:12px;overflow:hidden}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .3s}
.gallery a:hover img{transform:scale(1.05)}
.video{margin-top:14px;border-radius:14px;overflow:hidden;aspect-ratio:16/9;background:#000}
.video iframe,.video video{width:100%;height:100%;border:0;display:block}
.prep{color:var(--muted)}
.coupon{display:grid;grid-template-columns:1.2fr .8fr;border:2px dashed var(--red);border-radius:16px;overflow:hidden;background:#fff;margin-top:12px;position:relative}
.coupon::before,.coupon::after{content:"";position:absolute;top:50%;width:22px;height:22px;border-radius:50%;background:var(--cream);transform:translateY(-50%);border:2px dashed var(--red)}
.coupon::before{left:-13px}.coupon::after{right:-13px}
.coupon__l{padding:16px 20px;background:#FFF4F2}
.coupon__l small{font-family:var(--ff-num);font-weight:900;color:var(--red);letter-spacing:.2em;font-size:11px}
.coupon__l b{display:block;font-family:var(--ff-head);font-size:clamp(20px,3vw,28px);color:var(--red);line-height:1.2;margin-top:4px}
.coupon__l span{display:block;font-size:13px;color:#3d4a44;margin-top:4px}
.coupon__shop{display:inline-block;margin-top:6px;font-size:12px;color:var(--green);font-weight:700}
.coupon__r{padding:16px 18px;display:flex;flex-direction:column;justify-content:center;gap:4px;font-size:13px}
.coupon__r em{font-style:normal;font-family:var(--ff-num);font-weight:900;color:var(--dgreen)}
.coupon__r small{color:var(--muted);line-height:1.5}
.coupon__note{margin-top:6px;background:var(--dgreen);color:#fff;border-radius:8px;padding:6px 10px;font-size:12px;font-weight:700;text-align:center}
.news--list{grid-template-columns:1fr;gap:8px}
@media(max-width:600px){.coupon{grid-template-columns:1fr}.gallery{grid-template-columns:repeat(2,1fr)}}

/* ---------- ごあいさつ ---------- */
.greet{max-width:760px;background:#fff;border-radius:22px;padding:clamp(22px,4vw,44px);box-shadow:0 14px 40px rgba(31,74,52,.1);position:relative}
.greet::before{content:"";position:absolute;left:0;top:0;bottom:0;width:8px;border-radius:22px 0 0 22px;background:linear-gradient(var(--yellow),var(--red))}
.greet h2{font-size:clamp(20px,3vw,28px);color:var(--dgreen);margin:6px 0 14px}
.greet p{margin:0 0 1em;line-height:2}
.greet__sign{text-align:right;font-family:var(--ff-head);font-weight:700;color:var(--green)}

/* たけにし、よりみち日和。— スクロールアニメ トップページ */
:root{--ch-h:46vh;--ch-h-sp:34vh}
.story{overflow:hidden;background:var(--cream)}
.scene{position:relative;min-height:100svh;overflow:hidden;isolation:isolate}
.scene__bg{position:absolute;inset:-6% 0;z-index:0;will-change:transform}
.scene__bg img{width:100%;height:100%;object-fit:cover;object-position:center 70%;display:block}
.scene__tint{position:absolute;inset:0;z-index:1;pointer-events:none}
.scene__fx{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden}
.scene__chars{position:absolute;inset:0;z-index:3;pointer-events:none}
.scene__info{position:relative;z-index:4;max-width:var(--wrap);margin:0 auto;padding:14vh var(--gutter) 46vh;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start}
.scene__info--right{align-items:flex-end}
.scene__info--center{align-items:center;text-align:center}
.paper{background:rgba(255,250,240,.96);border-radius:20px;padding:22px 24px;box-shadow:0 18px 44px rgba(31,74,52,.18);max-width:560px;width:100%;border:2px solid #fff}
.paper--wide{max-width:820px}
.paper h2{font-size:clamp(22px,3vw,34px);color:var(--dgreen);line-height:1.3}
.paper h2 em{font-style:normal;color:var(--red)}
.paper .kicker{display:inline-flex;align-items:center;gap:8px;font-family:var(--ff-head);font-weight:700;color:var(--green);font-size:13px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:6px}
.paper .kicker::before{content:"";width:22px;height:3px;background:var(--yellow);border-radius:3px}
.paper p{margin:8px 0 0;font-size:15px;line-height:1.85;color:#3d4a44}
.paper .actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}

body[data-mode] .hd{background:rgba(251,246,234,.86);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
/* キャラ */
.ch{position:absolute;bottom:2vh;height:var(--ch-h);left:var(--x,50%);transform:translateX(-50%);will-change:transform}
.ch img{filter:drop-shadow(0 12px 10px rgba(0,0,0,.18))}
.ch img{position:absolute;bottom:0;left:50%;transform:translateX(-50%);height:100%;width:auto;max-width:none;opacity:0;transition:opacity .12s}
.ch img.is-on{opacity:1}
.ch--flip{transform:translateX(-50%) scaleX(-1)}
.ch.is-walking{animation:bob .55s ease-in-out infinite alternate}
@keyframes bob{from{translate:0 0}to{translate:0 -6px}}
.ch--sm{height:calc(var(--ch-h)*.78)}
.ch--xs{height:calc(var(--ch-h)*.5)}
.ch--md{height:calc(var(--ch-h)*.66)}
.ch:has(.bubble.is-on){z-index:7}
.ch__shadow{position:absolute;left:50%;bottom:-6px;width:60%;height:14px;border-radius:50%;background:rgba(0,0,0,.18);transform:translateX(-50%);filter:blur(4px)}
.ch .bubble{position:absolute;z-index:6;left:50%;bottom:calc(100% + 10px);transform:translateX(-10%) scale(.6);transform-origin:bottom left;background:#fff;border-radius:18px;padding:9px 15px;font-family:var(--ff-head);font-weight:900;color:var(--dgreen);font-size:clamp(13px,1.6vw,18px);box-shadow:0 8px 20px rgba(0,0,0,.15);white-space:nowrap;opacity:0;filter:none}
.ch .bubble::after{content:"";position:absolute;left:18px;bottom:-12px;border:8px solid transparent;border-top-color:#fff;border-left-color:#fff}
.ch .bubble.is-on{opacity:1;transform:translateX(-10%) scale(1)}
.ch .bubble--r{left:auto;right:50%;transform:translateX(10%) scale(.6);transform-origin:bottom right}.ch .bubble--r::after{left:auto;right:18px;border-left-color:transparent;border-right-color:#fff}
.ch .bubble--r.is-on{transform:translateX(10%) scale(1)}
.ch--flip .bubble{transform:translateX(-10%) scaleX(-1) scale(.6)}.ch--flip .bubble.is-on{transform:translateX(-10%) scaleX(-1) scale(1)}
.ch .bubble{transition:opacity .25s,transform .25s cubic-bezier(.5,1.6,.5,1)}
.ch .bubble--up{bottom:calc(100% + 64px)}
.prop{position:absolute;z-index:3;pointer-events:none;will-change:transform}
.prop img{height:100%;width:auto;max-width:none;display:block;filter:drop-shadow(0 10px 10px rgba(0,0,0,.18))}

/* シーン別 */
.sc-1 .scene__info{padding-top:15vh;padding-bottom:10vh;min-height:100svh;justify-content:center}
.hero-card{background:rgba(251,246,234,.82);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-radius:24px;padding:22px 26px 24px;max-width:640px;border:2px solid rgba(255,255,255,.8);box-shadow:0 18px 44px rgba(31,74,52,.18)}
.sc-1 .ch{bottom:0}
.sc-1 .title{font-size:clamp(34px,6.4vw,76px);color:var(--dgreen);line-height:1.18;text-shadow:0 2px 0 #fff,0 0 22px rgba(255,255,255,.9)}
.sc-1 .title .l{display:block;overflow:hidden;padding-bottom:.08em}
.sc-1 .title .l span{display:inline-block;transform:translateY(110%)}
.sc-1 .title em{font-style:normal;color:var(--green);background:linear-gradient(transparent 60%,var(--yellow) 60%)}
.sc-1 .sub{font-family:var(--ff-head);font-weight:700;font-size:clamp(15px,1.8vw,20px);color:var(--dgreen);text-shadow:0 1px 0 #fff,0 0 14px #fff;margin:4px 0 0}
.sc-1 .hero__fuda{position:relative;right:auto;top:auto;display:inline-block;margin-top:18px;width:min(300px,80vw)}
.sc-1 .hero__actions{margin-top:18px}
.sc-1 .kicker-tag{display:inline-flex;align-items:center;gap:8px;background:#fff;border-radius:999px;padding:6px 14px 6px 8px;font-family:var(--ff-head);font-weight:700;color:var(--green);font-size:13px;box-shadow:0 2px 8px rgba(31,74,52,.15)}
.sc-1 .kicker-tag i{width:10px;height:10px;border-radius:50%;background:var(--red);animation:blink 1.6s infinite}
.sc-1 .hero__scroll{color:#fff}

/* 掲示板（お知らせ） */
.board{background:#8C5A3C;border-radius:14px;padding:12px;box-shadow:0 18px 40px rgba(0,0,0,.25);border:6px solid #6d4530;position:relative}
.board::before{content:"";position:absolute;left:-6px;right:-6px;top:-22px;height:18px;background:#5a3826;border-radius:8px 8px 0 0}
.board__paper{background:#FFF8E9;border-radius:6px;padding:14px 16px;margin:0 0 10px;position:relative;transform:rotate(var(--r,0deg))}
.board__paper::before{content:"";position:absolute;left:50%;top:-8px;width:14px;height:14px;border-radius:50%;background:var(--red);transform:translateX(-50%);box-shadow:0 2px 4px rgba(0,0,0,.3)}
.board__paper a{text-decoration:none;color:var(--ink);display:block}
.board__paper time{font-family:var(--ff-num);font-weight:900;color:var(--green);font-size:13px}
.board__paper .tag{display:inline-block;background:var(--yellow);color:var(--dgreen);font-size:11px;font-weight:700;padding:1px 8px;border-radius:999px;margin-left:8px}
.board__paper b{display:block;font-family:var(--ff-head);margin-top:4px;line-height:1.5;font-size:15px}
.board__title{font-family:var(--ff-head);color:#fff;font-weight:900;font-size:16px;margin:0 0 10px 4px}

/* ノート（お店一覧） */
.sc-4{background:var(--paper)}
.sc-4 .scene__info{padding:12vh var(--gutter) 16vh;min-height:auto}
.sc-4 .scene__open{min-height:0!important}
.note{background:#fff;border-radius:16px;box-shadow:0 20px 50px rgba(31,74,52,.18);position:relative;max-width:900px;width:100%;overflow:hidden;transform-origin:50% 100%}
.note::before{content:"";position:absolute;left:0;top:0;bottom:0;width:26px;background:repeating-linear-gradient(180deg,transparent 0 22px,#E3D9C3 22px 26px);border-right:2px solid #E3D9C3}
.note__in{padding:24px 26px 26px 48px}
.note h2{font-size:clamp(22px,3vw,32px);color:var(--dgreen)}
.note h2 em{font-style:normal;color:var(--red)}
.shoplist{list-style:none;padding:0;margin:14px 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px 14px}
.shoplist a{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);padding:9px 10px;border-radius:10px;border-bottom:2px dashed #E3D9C3;transition:background .2s}
.shoplist a:hover{background:var(--cream)}
.shoplist i{flex:none;width:34px;height:34px;border-radius:10px;background:var(--c,var(--green));display:grid;place-items:center;font-size:17px;font-style:normal}
.shoplist b{font-family:var(--ff-head);font-size:15px;color:var(--dgreen);display:block;line-height:1.3}
.shoplist small{font-size:11px;color:var(--muted)}
.shoplist .fest-dot{margin-left:auto;font-size:11px;background:#FFF4D6;color:#8a5a00;padding:2px 8px;border-radius:999px;white-space:nowrap}
.shoplist li.is-hidden{display:none}

/* 季節のきっかけ（案内板） */
.signboard{background:var(--yellow);border:4px solid #fff;border-radius:18px;padding:18px 22px;box-shadow:0 16px 40px rgba(31,74,52,.22);max-width:520px;transform:rotate(-2deg)}
.signboard b{display:block;font-family:var(--ff-head);font-size:clamp(20px,3vw,30px);color:var(--dgreen);line-height:1.25}
.signboard .d{font-family:var(--ff-num);font-weight:900;font-size:clamp(30px,5vw,54px);line-height:1;color:var(--red);letter-spacing:-.02em;margin-top:6px}
.signboard .d small{font-size:.42em;color:var(--dgreen);margin:0 4px}
.signboard p{margin:8px 0 0;font-size:14px;color:var(--dgreen)}
.signboard.signboard--w{background:#fff;transform:rotate(2deg)}
.signboard.signboard--w .d{color:var(--dgreen)}

/* 主役シーン（秋祭り/歳末/通常） */
.sc-6 .paper{max-width:640px}
.fest-mini{list-style:none;padding:0;margin:12px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.fest-mini li{background:var(--cream);border-radius:10px;padding:8px 10px;font-size:13px;font-weight:700;color:var(--dgreen);display:flex;gap:8px;align-items:center}
.fest-mini li i{font-style:normal;font-size:18px}
.fest-mini li .free{margin-left:auto;background:var(--red);color:#fff;font-size:10px;padding:1px 6px;border-radius:999px}
.prizes{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:6px}
.prizes li{background:var(--cream);border-radius:10px;padding:8px 12px;font-size:14px;display:flex;gap:10px;align-items:center}
.prizes b{font-family:var(--ff-num);color:var(--red);font-size:16px;min-width:2.4em}
.cats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}
.cats a{background:var(--cream);border-radius:14px;padding:14px 10px;text-align:center;text-decoration:none;color:var(--dgreen);font-family:var(--ff-head);font-weight:900;font-size:14px}
.cats a i{display:block;font-size:26px;font-style:normal;margin-bottom:4px}
/* モード切替 */
[data-mode] .mode{display:none}
[data-mode="aki"] .mode--aki,[data-mode="saimatsu"] .mode--saimatsu,[data-mode="normal"] .mode--normal{display:block}
[data-mode="aki"] li.mode--aki,[data-mode="saimatsu"] li.mode--saimatsu,[data-mode="normal"] li.mode--normal{display:list-item}
[data-mode="aki"] .mode--aki.prop,[data-mode="saimatsu"] .mode--saimatsu.prop,[data-mode="normal"] .mode--normal.prop{display:block}

/* おすすめ札 */
.picks{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}
.pick{background:var(--cream);border-radius:14px;padding:12px;text-decoration:none;color:var(--ink);display:block;border-top:6px solid var(--c,var(--green))}
.pick small{font-size:11px;color:var(--muted);display:block}
.pick b{font-family:var(--ff-head);color:var(--dgreen);font-size:15px;display:block;line-height:1.3}
.pick span{font-size:12px;display:block;margin-top:4px;color:#3d4a44}

/* 地図シーン */
.sc-8{background:linear-gradient(#F6E7C8,#F4EEDD)}
.sc-8 .scene__info{padding-bottom:12vh}
.sc-8 .mapwrap{max-width:980px;width:100%;transform:rotate(-1deg)}

/* アクセス */
.sc-9 .access{max-width:980px;width:100%}
.sc-9 .glow{position:absolute;z-index:3;width:18vw;height:18vw;max-width:220px;max-height:220px;border-radius:50%;background:radial-gradient(circle,rgba(255,236,170,.9),rgba(255,220,120,0) 70%);opacity:0;pointer-events:none;filter:blur(4px)}

/* ラスト */
.sc-10{color:#fff}
.sc-10 .scene__tint{background:linear-gradient(transparent 40%,rgba(20,30,40,.55))}
.sc-10 .last{font-size:clamp(30px,5.5vw,64px);text-shadow:0 4px 20px rgba(0,0,0,.4);line-height:1.2}
.sc-10 .last small{display:block;font-size:.42em;font-weight:700;opacity:.95;margin-top:8px}
.sc-10 .scene__info{padding-bottom:44vh;justify-content:flex-start}
.sc-10 .actions{margin-top:18px;display:flex;flex-wrap:wrap;gap:10px;justify-content:center}

/* エフェクト（落ち葉・音符・提灯） */
.fx-leaf{position:absolute;top:-8%;animation:fxfall 10s linear infinite;opacity:0}
@keyframes fxfall{0%{transform:translate(0,0) rotate(0);opacity:0}8%{opacity:1}100%{transform:translate(-80px,110vh) rotate(420deg);opacity:0}}
.fx-note{position:absolute;font-size:28px;color:var(--red);animation:fxnote 3.6s ease-in-out infinite;opacity:0;text-shadow:0 2px 0 #fff}
@keyframes fxnote{0%{transform:translateY(0) rotate(-10deg);opacity:0}20%{opacity:1}100%{transform:translateY(-140px) rotate(12deg);opacity:0}}
.fx-lantern{position:absolute;top:0;left:0;right:0;height:22vh}
.fx-lantern svg{width:100%;height:100%}
.fx-snow{position:absolute;top:-4%;width:8px;height:8px;border-radius:50%;background:#fff;opacity:0;animation:fxsnow 9s linear infinite}
@keyframes fxsnow{0%{transform:translate(0,0);opacity:0}10%{opacity:.9}100%{transform:translate(30px,110vh);opacity:0}}
.fx-spark{position:absolute;width:10px;height:10px;background:var(--yellow);border-radius:50%;opacity:0;animation:fxspark 2.4s ease-in-out infinite}
@keyframes fxspark{0%,100%{opacity:0;transform:scale(.4)}50%{opacity:1;transform:scale(1.2)}}

/* スマホ下部ナビ */
.spnav{position:fixed;left:12px;right:12px;bottom:12px;z-index:48;display:flex;gap:6px;background:rgba(31,74,52,.94);backdrop-filter:blur(8px);border-radius:16px;padding:6px;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.spnav a{flex:1;text-align:center;color:#fff;text-decoration:none;font-family:var(--ff-head);font-weight:700;font-size:12px;padding:8px 4px;border-radius:12px}
.spnav a i{display:block;font-style:normal;font-size:18px}
.spnav a:active{background:rgba(255,255,255,.15)}
@media(min-width:960px){.spnav{display:none}}

/* ---------- スマホ ---------- */
@media(max-width:959px){
  :root{--ch-h:var(--ch-h-sp)}
  .sc-1 .scene__info{justify-content:flex-start;padding-bottom:44vh}
  .hero-card{padding:16px 16px 18px}
  .sc-1 .ch{bottom:9vh}
  .sc-1{--k1:62%;--s1:30%}
  .scene__info{padding:12vh var(--gutter) 50vh}
  .bubble--sphide{display:none}
  .scene__info--right{align-items:stretch}
  .paper{padding:16px 16px}
  .paper p{font-size:14px}
  .ch{bottom:9vh}
  .ch .bubble{font-size:13px;padding:7px 11px}
  .sc-1 .scene__info{padding-top:14vh;padding-bottom:38vh}
  .sc-4 .scene__info{padding-bottom:12vh}
  .shoplist{grid-template-columns:1fr}
  .fest-mini{grid-template-columns:1fr}
  .picks{grid-template-columns:1fr}
  .cats{grid-template-columns:repeat(3,1fr)}
  .sc-8 .mapwrap{transform:none}
  .sc-10 .scene__info{padding-bottom:40vh}
  .story{padding-bottom:70px}
}
@media(prefers-reduced-motion:reduce){
  .ch img{opacity:1}.ch img:not(:first-child){display:none}
  .fx-leaf,.fx-note,.fx-snow,.fx-spark,.ch.is-walking{animation:none!important}
  .ch .bubble{opacity:1}
}

/* ---------- ナビゲーター（右下常駐） ---------- */
#navi{position:fixed;right:14px;bottom:86px;z-index:47;width:min(26vw,120px);cursor:pointer;-webkit-tap-highlight-color:transparent}
#navi .navi__img{position:relative;width:100%;aspect-ratio:1/1.05}
#navi img{position:absolute;left:0;bottom:0;width:100%;height:auto;opacity:0;transition:opacity .15s;filter:drop-shadow(0 8px 10px rgba(0,0,0,.25))}
#navi img.is-on{opacity:1}
#navi.is-hop .navi__img{animation:navihop .7s cubic-bezier(.3,1.6,.5,1)}
@keyframes navihop{0%{transform:translateY(0)}40%{transform:translateY(-18px) rotate(-6deg)}70%{transform:translateY(0) rotate(3deg)}100%{transform:none}}
#navi .navi__img{animation:naviidle 2.6s ease-in-out infinite}
@keyframes naviidle{0%,100%{transform:translateY(0) scale(1,1)}50%{transform:translateY(-4px) scale(1.02,.98)}}
.navi__tip{position:absolute;right:calc(100% + 10px);bottom:55%;background:#fff;border-radius:16px;padding:9px 14px;font-family:var(--ff-head);font-weight:700;font-size:14px;color:var(--dgreen);box-shadow:0 8px 20px rgba(0,0,0,.18);white-space:nowrap;max-width:min(60vw,320px);white-space:normal;width:max-content;opacity:0;transform:translateX(8px) scale(.8);transform-origin:right center;transition:.25s;pointer-events:none}
.navi__tip::after{content:"";position:absolute;right:-12px;top:50%;border:7px solid transparent;border-left-color:#fff;transform:translateY(-50%)}
.navi__tip.is-on{opacity:1;transform:none}
.navi__menu{position:absolute;right:0;bottom:calc(100% + 8px);background:#fff;border-radius:16px;padding:8px;box-shadow:0 12px 30px rgba(0,0,0,.2);display:none;flex-direction:column;gap:4px;min-width:170px}
.navi__menu a{text-decoration:none;color:var(--dgreen);font-family:var(--ff-head);font-weight:700;font-size:14px;padding:9px 12px;border-radius:10px}
.navi__menu a:hover{background:var(--cream)}
#navi.is-open .navi__menu{display:flex}
#navi.is-open .navi__tip{opacity:0}
@media(min-width:960px){#navi{bottom:24px;width:130px}}

/* ---------- 主要店舗 横スクロール ---------- */
.sc-shops{background:linear-gradient(#DFF0F8,#FBF6EA 70%)}
.sc-shops .scene__info{position:absolute;inset:0;padding:10vh var(--gutter) 0;min-height:0;pointer-events:none;z-index:5;opacity:0}
.sc-shops .scene__info .paper{pointer-events:auto;max-width:420px;padding:16px 20px}
.strip-far{position:absolute;left:0;bottom:22vh;height:34vh;display:flex;gap:6vw;opacity:.5;z-index:0}
.strip-far i{display:block;width:16vw;height:100%;background:#cfe0ea;border-radius:8px 8px 0 0}
.strip{position:absolute;left:0;bottom:12vh;height:56vh;display:flex;gap:4vw;padding:0 12vw 0 40vw;z-index:1;will-change:transform}
.sf{position:relative;flex:none;width:min(58vh,520px);text-decoration:none;color:var(--ink);display:block;transition:transform .4s}
.sf img{width:100%;height:100%;object-fit:cover;border-radius:16px;box-shadow:0 18px 40px rgba(31,74,52,.22);border:4px solid #fff}
.sf .sf__name{position:absolute;left:12px;bottom:12px;background:rgba(255,255,255,.94);border-radius:12px;padding:8px 14px;font-family:var(--ff-head);font-weight:900;color:var(--dgreen);font-size:16px;box-shadow:0 6px 16px rgba(0,0,0,.15)}
.sf .sf__name small{display:block;font-size:11px;color:var(--muted);font-weight:700}
.sf .sf__tag{position:absolute;right:-6px;top:-10px;background:var(--red);color:#fff;font-family:var(--ff-head);font-weight:900;font-size:13px;padding:6px 12px;border-radius:999px;transform:rotate(6deg) scale(0);transition:transform .35s cubic-bezier(.4,1.6,.5,1)}
.sf.is-near{transform:translateY(-14px) scale(1.03)}
.sf.is-near .sf__tag{transform:rotate(6deg) scale(1)}
.sc-shops .ground{position:absolute;left:0;right:0;bottom:0;height:14vh;background:linear-gradient(#e9dfcf,#d9ccb6);z-index:1}
.sc-shops .scene__chars{z-index:2}
.sc-shops .ch{bottom:6vh}
@media(max-width:959px){.strip{height:44vh;bottom:22vh;padding-left:20vw;gap:6vw}.sf{width:min(70vw,360px)}.strip-far{bottom:34vh;height:26vh}.sc-shops .ground{height:22vh}.sc-shops .ch{bottom:8vh}.sc-shops .scene__info{padding-top:9vh}.sc-shops .scene__info .paper{max-width:100%}}

/* ---------- ローディング ---------- */
#loader{position:fixed;inset:0;z-index:999;background:var(--cream);display:grid;place-items:center;transition:opacity .6s,visibility .6s}
#loader.is-done{opacity:0;visibility:hidden;pointer-events:none}
.loader__in{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
.loader__cat{width:min(34vw,150px);animation:loadhop 1.1s cubic-bezier(.4,1.5,.5,1) infinite;filter:drop-shadow(0 10px 10px rgba(0,0,0,.18))}
@keyframes loadhop{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-22px) rotate(4deg)}}
.loader__logo img{height:56px;width:auto}
.loader__txt{font-family:var(--ff-head);font-weight:700;color:var(--dgreen);font-size:15px;letter-spacing:.06em}
.loader__txt::after{content:"";display:inline-block;width:1.2em;text-align:left;animation:dots 1.2s steps(4) infinite}
@keyframes dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}
.loader__bar{width:min(60vw,220px);height:8px;border-radius:99px;background:#E3D9C3;overflow:hidden}
.loader__bar i{display:block;height:100%;width:8%;background:linear-gradient(90deg,var(--green),var(--yellow));border-radius:99px;transition:width .3s}
.greet-short{font-size:14px;color:var(--dgreen);margin-top:8px}
.greet-short a{margin-left:8px;color:var(--red);font-weight:700}

/* ---------- スマホ：キャラ配置の上書き ---------- */
@media(max-width:959px){
  #c3-koharu{--x:18%!important}#c3-sota{--x:46%!important}#c3-midori{--x:82%!important}
  #c5-sota{--x:18%!important}#c5-koharu{--x:62%!important}
  #c6-koharu{--x:18%!important}#c6-sota{--x:50%!important}#c6-midori{--x:84%!important}
  #c7-koharu{--x:30%!important}#c7-haru{--x:78%!important}
  #c9-koharu{--x:20%!important}#c9-sota{--x:48%!important}
  #c10-koharu{--x:32%!important}#c10-sota{--x:66%!important}
  #c2-koharu{--x:18%!important}#c2-sota{--x:50%!important}
  .sc-6 .scene__open{min-height:0!important}
  .sc-6 .scene__info{padding:12vh var(--gutter) 46vh!important;justify-content:flex-start!important}
  .sc-6 .paper{max-width:100%}
  .sc-6 .ch{bottom:9vh}
  .sc-6 .prop{display:none}
}

/* ---------- WP用追記 ---------- */
.shop__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55}
.hd__nav li,.ft__nav li{list-style:none;display:inline}
.wp-block-image img,.single__body img{border-radius:12px}
.single__body p{margin:0 0 1em}
.nav-links{display:flex;gap:8px;justify-content:center}
.nav-links a,.nav-links span{padding:8px 14px;border-radius:999px;background:#fff;text-decoration:none;font-weight:700}
.nav-links .current{background:var(--green);color:#fff}
.admin-bar .hd{top:32px}
@media(max-width:782px){.admin-bar .hd{top:46px}}

/* ---------- 店舗ページ拡張 ---------- */
.single__ph{display:grid;place-items:center;font-size:64px;color:var(--muted)}
.single__ph small{font-size:13px;margin-top:6px}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.gallery a{display:block;aspect-ratio:4/3;border-radius:12px;overflow:hidden}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .3s}
.gallery a:hover img{transform:scale(1.05)}
.video{margin-top:14px;border-radius:14px;overflow:hidden;aspect-ratio:16/9;background:#000}
.video iframe,.video video{width:100%;height:100%;border:0;display:block}
.prep{color:var(--muted)}
.coupon{display:grid;grid-template-columns:1.2fr .8fr;border:2px dashed var(--red);border-radius:16px;overflow:hidden;background:#fff;margin-top:12px;position:relative}
.coupon::before,.coupon::after{content:"";position:absolute;top:50%;width:22px;height:22px;border-radius:50%;background:var(--cream);transform:translateY(-50%);border:2px dashed var(--red)}
.coupon::before{left:-13px}.coupon::after{right:-13px}
.coupon__l{padding:16px 20px;background:#FFF4F2}
.coupon__l small{font-family:var(--ff-num);font-weight:900;color:var(--red);letter-spacing:.2em;font-size:11px}
.coupon__l b{display:block;font-family:var(--ff-head);font-size:clamp(20px,3vw,28px);color:var(--red);line-height:1.2;margin-top:4px}
.coupon__l span{display:block;font-size:13px;color:#3d4a44;margin-top:4px}
.coupon__shop{display:inline-block;margin-top:6px;font-size:12px;color:var(--green);font-weight:700}
.coupon__r{padding:16px 18px;display:flex;flex-direction:column;justify-content:center;gap:4px;font-size:13px}
.coupon__r em{font-style:normal;font-family:var(--ff-num);font-weight:900;color:var(--dgreen)}
.coupon__r small{color:var(--muted);line-height:1.5}
.coupon__note{margin-top:6px;background:var(--dgreen);color:#fff;border-radius:8px;padding:6px 10px;font-size:12px;font-weight:700;text-align:center}
.news--list{grid-template-columns:1fr;gap:8px}
@media(max-width:600px){.coupon{grid-template-columns:1fr}.gallery{grid-template-columns:repeat(2,1fr)}}
