
:root{
  /* 端末のダークモードに追従しない。暗い配色だと発売日と価格が読みづらいため、
     明るい配色に固定する（color-scheme も light に固定して入力欄の見た目もそろえる）。 */
  color-scheme:light;
  --paper:#fdf8ef; --card:#fff; --ink:#17150f; --sub:#726a5c; --faint:#a89e8d;
  --rule:#e8e2d6; --rule2:#f1ece2;
  --pink:#ff3d78; --orange:#ff7a1a; --yellow:#ffc21a;
  --link:#0b4fc4;
  --gacha:#e8690a; --candy:#e0217d; --toy:#1f5fc4; --card-c:#00838f; --life:#0f8250;
  --prize:#7433d8; --kuji:#c62828; --figure:#b26500; --plamo:#5d6d7e; --gunpla:#37474f;
  --other:#8a8272;
  --s1:4px; --s2:8px; --s3:12px; --s4:18px; --s5:26px; --s6:40px;
  --jp:"Zen Kaku Gothic New",-apple-system,BlinkMacSystemFont,"Hiragino Sans","Noto Sans JP",sans-serif;
  --num:"Outfit","Zen Kaku Gothic New",sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:var(--paper);color:var(--ink);font-family:var(--jp);font-size:15px;line-height:1.7;
  /* 地紋。無地だと平坦なので、ごく薄いドットを敷く */
  background-image:radial-gradient(var(--rule) 1px,transparent 1px);background-size:14px 14px;
  font-weight:500;-webkit-text-size-adjust:100%;overflow-wrap:anywhere;
  font-feature-settings:"palt" 1}
a{color:inherit}
button{font-family:inherit;color:inherit}
.wrap{max-width:940px;margin:0 auto;padding:0 20px}
.num{font-family:var(--num);font-variant-numeric:tabular-nums}

/* ---------- ヘッダ ---------- */
header{border-bottom:1px solid var(--rule);
  background:repeating-linear-gradient(135deg,rgba(255,61,120,.10) 0 10px,rgba(255,122,26,.10) 10px 20px),
             var(--paper)}
.hd{display:flex;align-items:center;gap:var(--s4);padding:16px 0 14px}
.mark{flex:0 0 auto;display:block}
.tag{flex:1 1 auto;font-size:12.5px;color:var(--sub);line-height:1.6;letter-spacing:.01em;min-width:150px;
  font-weight:700}
.tag .note{display:block;margin-top:3px;font-size:10.5px;font-weight:400;color:var(--faint);line-height:1.55}
.lang{flex:0 0 auto;display:flex;align-items:center;gap:7px;font-family:var(--num);font-size:11.5px;
  font-weight:700;letter-spacing:.08em}
.lang button{border:none;background:none;cursor:pointer;padding:2px 0;color:var(--faint)}
.lang button.on{color:var(--ink);box-shadow:inset 0 -2px 0 var(--pink)}
.lang i{color:var(--rule);font-style:normal}

/* ---------- 月のタブ ---------- */
/* 月は横カルーセル。縦には動かさない（touch-action で横方向だけ受ける）。
   帯の地は端まで --paper で塗るので、ヘッダの柄が両端から覗かない。 */
.stick{position:sticky;top:0;z-index:40;background:var(--paper);border-bottom:1px solid var(--rule)}
.railwrap{background:var(--paper);border-bottom:1px solid var(--rule)}
.rail{display:flex;gap:var(--s5);overflow-x:auto;overflow-y:hidden;scrollbar-width:none;
  touch-action:pan-x;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
  scroll-snap-type:x proximity}
.rail::-webkit-scrollbar{display:none}
.mbtn{scroll-snap-align:center}
.mbtn{flex:0 0 auto;border:none;background:none;cursor:pointer;padding:9px 0 10px;
  display:flex;align-items:baseline;gap:6px;color:var(--faint);position:relative}
.mbtn .m{font-family:var(--num);font-size:16px;font-weight:700;letter-spacing:.01em}
.mbtn .n{font-family:var(--num);font-size:10.5px;font-weight:600}
.mbtn:hover{color:var(--sub)}
.mbtn.zero{opacity:.38}
.mbtn.on{color:var(--ink)}
.mbtn.on::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2.5px;background:var(--pink)}

/* ---------- 絞り込み ---------- */
.bar{background:var(--paper)}
.bar .in{display:flex;align-items:center;gap:0;padding:0;overflow-x:auto;overflow-y:hidden;
  scrollbar-width:none;touch-action:pan-x;overscroll-behavior:contain}
.bar .in::-webkit-scrollbar{display:none}
.fbtn{flex:0 0 auto;border:none;background:none;cursor:pointer;padding:11px 16px 11px 0;
  margin-right:16px;display:flex;align-items:center;gap:7px;font-size:13.5px;font-weight:700;
  color:var(--sub);white-space:nowrap;position:relative}
.fbtn::after{content:"";position:absolute;right:0;top:11px;bottom:11px;width:1px;background:var(--rule)}
.fbtn:last-of-type::after{display:none}
.fbtn:hover{color:var(--ink)}
.fbtn.act{color:var(--ink)}
.fbtn .cnt{font-family:var(--num);font-size:10.5px;font-weight:700;background:var(--pink);color:#fff;
  border-radius:999px;min-width:17px;height:17px;display:inline-flex;align-items:center;
  justify-content:center;padding:0 5px}
.fbtn .cv{font-family:var(--num);font-size:10.5px;font-weight:600;color:var(--faint)}
.fbtn .ch{width:8px;height:8px;border-right:1.8px solid currentColor;border-bottom:1.8px solid currentColor;
  transform:rotate(45deg) translate(-2px,-2px);opacity:.5}
.reset{border:none;background:none;cursor:pointer;color:var(--link);font-size:12px;font-weight:700;
  white-space:nowrap;padding:11px 0;margin-left:auto;flex:0 0 auto}
.hits{font-size:12px;color:var(--sub);padding:9px 0 0}
.hits b{font-family:var(--num);color:var(--ink);font-weight:700}

/* ---------- 一覧 ---------- */
main{padding:var(--s5) 0 var(--s6)}
.day{display:flex;gap:var(--s4);padding-bottom:var(--s5)}
.dbox{flex:0 0 72px;text-align:right;position:sticky;top:104px;align-self:flex-start;padding-top:2px}
.dnum{font-family:var(--num);font-size:38px;font-weight:800;line-height:.95;letter-spacing:-.035em;
  color:var(--pink)}
.dwd{font-family:var(--num);font-size:10.5px;font-weight:700;letter-spacing:.16em;color:var(--faint);
  margin-top:4px}
.dwd.sat{color:var(--toy)}.dwd.sun{color:var(--candy)}
.dper{font-size:17px;font-weight:900;line-height:1.2;letter-spacing:.02em}
.jlink{display:inline-block;margin-top:6px;font-size:11.5px;color:var(--link)}
.dper.rng{font-size:12.5px;letter-spacing:0;white-space:nowrap}
.dper .u{display:block;font-size:10px;font-weight:500;color:var(--faint);letter-spacing:.02em;margin-top:3px}
.cd{display:block;margin-top:7px;font-family:var(--num);font-size:10.5px;font-weight:700;
  letter-spacing:.02em;color:var(--faint)}
.cd.near{color:var(--pink)}
.cd.today{color:#fff;background:var(--pink);border-radius:4px;padding:3px 7px;display:inline-block;
  font-family:var(--jp);font-size:10px;line-height:1.35;text-align:center;letter-spacing:.02em}

.dlist{flex:1 1 auto;min-width:0;background:var(--card);border:1px solid var(--ink);border-radius:6px;
  box-shadow:3px 3px 0 var(--ink)}
.item{border-top:1px solid var(--rule2);padding:13px 16px}
.item:first-child{border-top:none}
.itop{display:flex;gap:12px;align-items:flex-start}
.cat{flex:0 0 auto;display:flex;align-items:center;gap:5px;font-size:10.5px;font-weight:700;
  letter-spacing:.04em;color:var(--sub);margin-top:4px;white-space:nowrap;min-width:74px}
.cat i{width:8px;height:8px;border-radius:50%;flex:0 0 auto}
.ttl{flex:1 1 auto;min-width:0}
.ttl>a,.ttl-plain{font-weight:700;text-decoration:none;letter-spacing:.005em;line-height:1.55;
  text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px;
  transition:text-decoration-color .12s}
.ttl>a:hover{text-decoration-color:var(--ink)}
.paren{font-weight:500;color:var(--sub);font-size:13px}
.paren b{font-weight:700;color:var(--link);cursor:pointer}
.paren b:hover{text-decoration:underline}
.meta{font-size:12px;color:var(--faint);margin-top:4px;display:flex;gap:10px;flex-wrap:wrap;
  align-items:baseline}
.price{font-family:var(--num);font-size:13.5px;font-weight:700;color:var(--ink)}
.pre{display:inline-block;border:1px solid var(--rule);border-radius:4px;padding:0 6px;
 font-size:11px;font-weight:700;color:var(--faint)}
.pre.open{color:#0b7a3b;border-color:#0b7a3b}     /* いま予約できる */
.pre.soon{color:var(--pink);border-color:var(--pink)}  /* これから予約が始まる */
.ipl{color:var(--link);cursor:pointer;font-weight:700}
.ipl:hover{text-decoration:underline}
/* 購入先リンクのある行だけ目立たせる（.buy）。無い行は控えめのまま */
.more.buy{color:#fff;background:var(--pink);border:1px solid var(--pink);border-radius:5px;
 padding:5px 11px;font-weight:700;font-size:11.5px;letter-spacing:.02em;white-space:nowrap}
.more.buy:hover{background:#e5306a;border-color:#e5306a;box-shadow:none}
.more.buy.on{color:var(--pink);background:#fff}
.more{flex:0 0 auto;border:none;background:none;cursor:pointer;color:var(--faint);font-size:11.5px;
  font-weight:700;padding:4px 0;margin-top:2px;white-space:nowrap;
  box-shadow:inset 0 -1px 0 var(--rule)}
.more:hover{color:var(--ink);box-shadow:inset 0 -1px 0 var(--ink)}
.detail{display:none;margin-top:11px;padding-top:11px;border-top:1px dashed var(--rule);
  font-size:12.5px;color:var(--sub)}
.detail.open{display:block}
.detail b{color:var(--ink);font-weight:700}
.shops{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}
.shop{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--rule);border-radius:5px;
  padding:5px 11px;font-size:12.5px;font-weight:700;text-decoration:none;color:var(--ink);
  background:var(--paper)}
.shop:hover{border-color:var(--ink)}
.shop.official{border-color:var(--ink);font-weight:700}   /* 公式ショップは太字で区別 */
/* 景品表示法のステマ規制。アフィリエイトのときは広告であることを必ず出す */
.admark{display:inline-block;border:1px solid var(--pink);color:var(--pink);font-size:9.5px;
  font-weight:700;border-radius:3px;padding:0 4px;margin-left:6px;vertical-align:1px;letter-spacing:.04em}
.shophint{margin-top:7px;font-size:11.5px;color:var(--faint)}
/* ガチャ・プライズ・一番くじの注意書き。**購入先リンクの上に出す。**
   定価と通販価格がかけ離れるので、押す前に読める位置に置く */
.catnote{margin:0 0 9px;font-size:12px;line-height:1.7;color:var(--sub)}
.catnote b{color:var(--ink)}
.foldbtn{display:block;width:100%;border:none;border-top:1px solid var(--rule2);
  background:repeating-linear-gradient(135deg,var(--rule2) 0 6px,transparent 6px 12px);
  color:var(--sub);padding:11px;font-size:12px;font-weight:700;cursor:pointer;letter-spacing:.02em}
.foldbtn:hover{background:var(--rule2);color:var(--ink)}
.empty{text-align:center;color:var(--sub);padding:70px 20px;font-size:14px;line-height:2}

/* ---------- モーダル ---------- */
.ov{position:fixed;inset:0;z-index:60;background:rgba(23,21,15,.4);display:flex;
  align-items:center;justify-content:center;padding:24px}
.ov[hidden]{display:none}
.sheet{background:var(--card);border-radius:10px;width:min(660px,100%);max-height:min(82vh,740px);
  display:flex;flex-direction:column;box-shadow:0 24px 70px rgba(20,15,5,.28);overflow:hidden}
.sh-h{display:flex;align-items:center;gap:10px;padding:16px 20px 14px;border-bottom:1px solid var(--rule)}
.sh-h h2{font-size:15px;margin:0;flex:1 1 auto;font-weight:900;letter-spacing:.02em}
.sh-x{border:1px solid var(--rule);background:none;color:var(--sub);width:28px;height:28px;
  border-radius:5px;font-size:15px;cursor:pointer;line-height:1}
.sh-x:hover{border-color:var(--sub);color:var(--ink)}
.sh-s{padding:12px 20px 0}
/* iOS は 16px 未満の入力欄にフォーカスすると自動でズームする。16px にして防ぐ */
.sh-s input{width:100%;border:1px solid var(--rule);background:var(--paper);color:var(--ink);
  border-radius:5px;padding:9px 12px;font-size:16px;font-family:inherit;outline:none}
.sh-s input:focus{border-color:var(--ink)}
.sh-b{overflow-y:auto;padding:10px 20px 6px;display:grid;gap:2px;
  grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
.opt{display:flex;align-items:center;gap:10px;padding:8px 9px;border-radius:5px;cursor:pointer;
  font-size:13.5px;font-weight:500}
.opt:hover{background:var(--rule2)}
.opt.on{font-weight:700}
.opt input{width:16px;height:16px;accent-color:var(--pink);flex:0 0 auto;margin:0}
.opt .nm{flex:1 1 auto;min-width:0}
.opt .n{font-family:var(--num);font-size:11px;color:var(--faint);font-weight:600;flex:0 0 auto}
.opt i{width:9px;height:9px;border-radius:2px;flex:0 0 auto}
.sh-f{display:flex;gap:10px;padding:14px 20px;border-top:1px solid var(--rule);align-items:center}
.sh-f .sp{flex:1 1 auto;font-size:12px;color:var(--sub)}
.btn{border:1px solid transparent;border-radius:5px;padding:9px 20px;font-size:13px;font-weight:700;
  cursor:pointer}
.btn.p{background:var(--ink);color:var(--paper)}
.btn.s{background:none;border-color:var(--rule);color:var(--sub)}
.btn.s:hover{border-color:var(--sub);color:var(--ink)}
.sh-none{padding:30px 18px;color:var(--sub);font-size:13.5px;text-align:center;grid-column:1/-1}

.sitenav{margin-bottom:14px;font-size:12px;line-height:2.1;color:var(--sub)}
.sitenav b{display:block;color:var(--ink);font-size:11.5px;letter-spacing:.06em;margin-top:8px}
.sitenav a{color:var(--link);margin-right:12px;white-space:nowrap;text-decoration:none}
.sitenav a:hover{text-decoration:underline}
/* 広告枠。ヘッダ直下と一覧の下の2箇所だけ。
   「広告」と分かる表示を必ず出す（景品表示法のステマ規制）。
   商品の行との間に余白を取って、広告と中身の境目をはっきりさせる。 */
/* 週の区切り。日付の列と本文の間に細い線を引いて、週のまとまりを見せる。 */
/* 目には出さないが、読み上げと検索エンジンには拾われる見出し。
   ロゴは文字をアウトライン化したSVGなので、これが無いとページ上に
   「リリカレ」という文字列がほぼ存在しないことになる。 */
.sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0}
.wkline{display:flex;align-items:center;gap:10px;margin:22px 0 10px;
  font-size:11px;letter-spacing:.06em;color:var(--faint)}
.wkline::before,.wkline::after{content:"";flex:1;height:1px;background:var(--rule)}
.wkline span{white-space:nowrap}
.adslot.inlist{margin:6px 0 18px}
.adslot{margin:12px 0 20px}
.adslot .lbl{display:block;font-size:10px;letter-spacing:.1em;color:var(--faint);margin:0 0 5px 2px}
.adslot .box{display:flex;justify-content:center;align-items:center;overflow:hidden}
footer{border-top:1px solid var(--rule);padding:18px 0 48px;font-size:11px;color:var(--faint);line-height:1.9}



@media(max-width:640px){
  .wrap{padding:0 14px}
  .hd{flex-wrap:wrap;gap:10px;padding:13px 0 11px}
  .tag{order:3;width:100%;font-size:11.5px}
  .rail{gap:18px}
  .dbox{flex:0 0 62px;position:static;text-align:left}
  .dnum{font-size:29px}
  .dper{font-size:15px}
  .day{gap:12px;padding-bottom:20px}
  .item{padding:12px 13px}
  .itop{flex-wrap:wrap}
  .cat{min-width:0;order:1}
  .more{order:2;margin-left:auto}
  .ttl{order:3;flex-basis:100%}
  .hits{display:none}
  .ov{padding:0;align-items:flex-end}
  .sheet{max-height:88vh;border-radius:12px 12px 0 0;width:100%}
  .sh-b{grid-template-columns:1fr 1fr}
}

main h1{font-size:21px;margin:4px 0 4px;font-weight:900;letter-spacing:.01em;line-height:1.5}
.lead{font-size:13px;color:var(--sub);margin:0 0 16px}
/* ここが唯一の出口なので、いちばん目立たせる。
   カードと同じ「黒枠＋ずらした影」で、サイトの中で浮かないようにする */
.cta{display:inline-flex;align-items:center;gap:10px;background:var(--pink);color:#fff;
 text-decoration:none;border:2px solid var(--ink);border-radius:9px;padding:15px 28px;
 font-size:18px;font-weight:900;letter-spacing:.02em;margin:2px 0 26px;
 box-shadow:5px 5px 0 var(--ink);transition:transform .08s,box-shadow .08s}
.cta::after{content:"→";font-size:19px;line-height:1}
.cta:hover{transform:translate(2px,2px);box-shadow:3px 3px 0 var(--ink)}
.cta:active{transform:translate(5px,5px);box-shadow:0 0 0 var(--ink)}
@media(max-width:640px){
  .cta{font-size:16px;padding:13px 22px;width:100%;justify-content:center}
}
nav.links{margin:26px 0;font-size:13px;line-height:2.2}
nav.links a{color:var(--link);margin-right:14px;white-space:nowrap}
.day .dbox{top:12px}          /* TOPの絞り込みバーが無いぶん上に詰める */
footer.wrap{margin-top:26px}
.lang a{text-decoration:none;padding:2px 0;color:var(--faint);line-height:normal}
.lang a.on{color:var(--ink);box-shadow:inset 0 -2px 0 var(--pink)}
