:root{
  --pk:#e8447a;--pk2:#f0608e;--pk3:#f88fb0;--pk4:#fce4ed;--pk5:#fff0f5;
--pk-border:rgba(232,68,122,0.3);
  --gold:#c8a84b;--wh:#fff;--bg:#fff;--bg2:#fdf5f8;--bg3:#fce4ed;
  --tx:#333;--tx2:#666;--mt:#999;--bd:#e8d0d8;  --card:#fff;--shadow:0 2px 12px rgba(232,68,122,0.12);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{-webkit-tap-highlight-color:transparent;background:#fff;}
body{background:var(--bg);color:var(--tx);font-family:'BIZ UDPMincho','Noto Serif JP',serif;font-size:14px;overflow-x:hidden;min-height:100vh;}

/* HEADER */
.hdr{position:sticky;top:0;z-index:300;background:var(--wh);border-bottom:2px solid var(--pk);
  box-shadow:0 2px 8px rgba(232,68,122,0.15);}
.hdr-in{display:flex;align-items:center;max-width:1040px;margin:0 auto;
  padding:0 0.7rem;height:52px;gap:0.5rem;}
.hdr-logo img{height:34px;filter:drop-shadow(0 0 6px rgba(232,68,122,0.4));}
.hdr-nav{display:none;gap:0;margin-left:auto;}
.pc-main-col{flex:1;min-width:0;}
.hnb{background:none;border:none;color:var(--tx2);font-family:inherit;
  font-size:0.62rem;padding:0.38rem 0.55rem;cursor:pointer;white-space:nowrap;
  border-bottom:2px solid transparent;letter-spacing:0.05em;}
.hnb:hover,.hnb.on{color:var(--pk);border-bottom-color:var(--pk);}
.hdr-login{display:flex;gap:0.3rem;margin-left:0.4rem;}
.hlbtn{font-size:0.58rem;padding:0.32rem 0.65rem;border-radius:14px;cursor:pointer;
  font-family:inherit;white-space:nowrap;position:relative;z-index:100;font-family:'BIZ UDPMincho','Noto Serif JP',serif;}
.hlbtn-cast{background:var(--pk4);border:1px solid var(--pk-border);color:var(--pk);}
.hlbtn-admin{background:var(--bg2);border:1px solid var(--bd);color:var(--tx2);}

/* HERO */
.hero-wrap{width:100%;line-height:0;position:relative;}
.hero-wrap img{width:100%;height:auto;display:block;}

/* INFO BAR */
.info-bar{background:var(--pk);color:#fff;padding:0.5rem 1rem;font-size:0.62rem;text-align:center;line-height:1.8;}
.info-bar strong{font-weight:600;}

/* MAIN TABS */
.main-tabs{display:grid;grid-template-columns:repeat(3,1fr);background:var(--wh);border-bottom:2px solid var(--pk);
  position:sticky;top:52px;z-index:200;}
.main-tab{padding:0.6rem 0.2rem;background:none;border:none;
  color:var(--mt);font-family:inherit;font-size:0.65rem;cursor:pointer;
  border-bottom:3px solid transparent;margin-bottom:-2px;white-space:nowrap;transition:all 0.18s;text-align:center;}
.main-tab.on{color:var(--pk);border-bottom-color:var(--pk);background:var(--pk5);}

/* DECO TICKER */
.ticker{overflow:hidden;background:var(--pk4);border-bottom:1px solid var(--pk-border);
  padding:0.38rem 0;}
.ticker-inner{display:inline-block;white-space:nowrap;animation:ticker 20s linear infinite;
  font-size:0.72rem;color:var(--pk);letter-spacing:0.1em;}
@keyframes ticker{0%{transform:translateX(100vw);}100%{transform:translateX(-100%);}}

/* PAGES */
.pg{display:none;background:var(--bg);min-height:100vh;}.pg.on{display:block;}
.wrap{max-width:1040px;margin:0 auto;padding:1rem 0.8rem 5rem;}

/* SECTION HEADER */
.sec-hd{display:flex;align-items:center;justify-content:space-between;
  padding:0.6rem 0.8rem;background:var(--pk4);border-left:4px solid var(--pk);
  margin-bottom:0.8rem;}
.sec-tt{font-size:0.82rem;font-weight:700;color:var(--pk);letter-spacing:0.05em;}
.sec-more{font-size:0.62rem;color:var(--pk);text-decoration:none;
  background:var(--wh);border:1px solid var(--pk-border);border-radius:10px;
  padding:0.2rem 0.6rem;}

/* SHOP META */
.shop-meta{background:var(--wh);border-bottom:1px solid var(--bd);
  padding:0.8rem 1rem;display:flex;align-items:center;gap:0.8rem;flex-wrap:wrap;}
.shop-name{font-size:1.3rem;font-weight:700;color:var(--tx);letter-spacing:0.05em;}
.shop-sub{font-size:0.6rem;color:var(--mt);margin-top:0.1rem;}
.shop-stats{display:flex;border:1px solid var(--pk-border);border-radius:6px;
  overflow:hidden;margin-left:auto;}
.sstat{padding:0.45rem 0.8rem;text-align:center;border-right:1px solid var(--pk-border);}
.sstat:last-child{border-right:none;}
.ssl{font-size:0.48rem;color:var(--pk);margin-bottom:0.1rem;letter-spacing:0.1em;}
.ssv{font-size:0.88rem;color:var(--tx);font-weight:600;}
@media(max-width:480px){.shop-stats{margin-left:0;width:100%;}.sstat{flex:1;}}

/* DATE SLIDER (cityheaven風) */
.date-slider-wrap{background:var(--wh);border-bottom:1px solid var(--bd);padding:0.5rem 0.3rem;}
.date-slider{display:flex;overflow-x:auto;scrollbar-width:none;gap:2px;}
.date-slider::-webkit-scrollbar{display:none;}
.date-btn{flex-shrink:0;width:52px;text-align:center;padding:0.45rem 0.2rem;
  border-radius:6px;cursor:pointer;border:1px solid var(--bd);background:var(--wh);
  font-family:inherit;transition:all 0.18s;}
.date-btn.on{background:var(--pk);border-color:var(--pk);color:#fff;}
.date-btn .db-day{font-size:0.58rem;color:var(--mt);}
.date-btn.on .db-day{color:rgba(255,255,255,0.8);}
.date-btn .db-num{font-size:1.1rem;font-weight:700;color:var(--tx);}
.date-btn.on .db-num{color:#fff;}
.date-btn.sun .db-num{color:#e04040;}
.date-btn.sat .db-num{color:#4060c0;}
.date-btn.on.sun .db-num,.date-btn.on.sat .db-num{color:#fff;}
.date-btn .db-cnt{font-size:0.52rem;color:var(--pk);margin-top:1px;}
.date-btn.on .db-cnt{color:rgba(255,255,255,0.9);}
.date-btn .db-dow{font-size:0.56rem;color:var(--mt);margin-top:-2px;}
.date-btn.on .db-dow{color:rgba(255,255,255,0.85);}
.date-btn.sun .db-dow{color:#e04040;}
.date-btn.sat .db-dow{color:#4060c0;}
.date-btn.on.sun .db-dow,.date-btn.on.sat .db-dow{color:#fff;}

/* SUB TABS */
.sub-tabs{display:flex;background:var(--wh);border-bottom:1px solid var(--bd);
  position:sticky;top:100px;z-index:190;}
.sub-tab{flex-shrink:0;padding:0.6rem 0.9rem;background:none;border:none;
  color:var(--mt);font-family:inherit;font-size:0.65rem;cursor:pointer;
  border-bottom:2px solid transparent;white-space:nowrap;transition:all 0.18s;}
.sub-tab.on{color:var(--pk);border-bottom-color:var(--pk);}
.sub-tab .sc{font-size:0.55rem;color:var(--pk);margin-left:0.2rem;font-weight:600;}

/* CAST GRID */
.cgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:0.6rem;}
@media(min-width:500px){.cgrid{grid-template-columns:repeat(3,1fr);}}
@media(min-width:700px){.cgrid{grid-template-columns:repeat(4,1fr);}}
.ccard{background:var(--card);border:1px solid var(--bd);border-radius:8px;
  overflow:hidden;cursor:pointer;box-shadow:var(--shadow);transition:transform 0.18s;}
.ccard:hover{transform:translateY(-2px);}
.ccard.today{border-color:var(--pk);border-width:2px;}
.cphoto{width:100%;aspect-ratio:3/4;background:linear-gradient(160deg,#f8e8f0,#fce4ed);
  position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.cphoto img{width:100%;height:100%;object-fit:cover;display:block;}
.cphoto svg{width:50%;height:auto;fill:rgba(232,68,122,0.12);}
.cgrad{position:absolute;bottom:0;left:0;right:0;height:55%;
  background:linear-gradient(transparent,rgba(0,0,0,0.65));pointer-events:none;}
.cbadges{position:absolute;top:0.3rem;left:0.3rem;display:flex;flex-direction:column;gap:2px;z-index:3;}
.cbg{font-size:0.46rem;padding:0.12rem 0.4rem;border-radius:2px;font-weight:700;}
.cb-t{background:var(--pk);color:#fff;}
.cb-s{background:#5060e0;color:#fff;}
.cb-b{background:var(--gold);color:#fff;}
.cb-n{background:#20a060;color:#fff;}
.cplate{position:absolute;bottom:0;left:0;right:0;z-index:2;padding:0.45rem 0.5rem;}
.cname{font-size:1.0rem;font-weight:700;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,0.8);}
.cage{font-size:0.48rem;color:rgba(255,255,255,0.8);margin-left:0.2rem;}
.cspec{font-size:0.5rem;color:rgba(255,255,255,0.75);margin-top:0.1rem;}
.ctime{font-size:0.52rem;color:#fff;margin-top:0.15rem;
  background:rgba(232,68,122,0.85);padding:0.1rem 0.35rem;border-radius:2px;display:inline-block;}
.cshift{padding:0.35rem 0.45rem;border-top:1px solid var(--bd);background:var(--bg2);}
.srow{display:flex;gap:1px;}
.sd{flex:1;text-align:center;font-size:0.44rem;padding:0.18rem 0;background:var(--bg);color:var(--mt);border-radius:2px;}
.sd.on{background:var(--pk4);color:var(--pk);}
.sd.ton{background:var(--pk);color:#fff;}
.ctags{padding:0.35rem 0.45rem;display:flex;gap:0.2rem;flex-wrap:wrap;border-top:1px solid var(--bd);}
.ctag{font-size:0.44rem;padding:0.1rem 0.35rem;border:1px solid var(--pk-border);
  border-radius:10px;color:var(--pk);background:var(--pk5);}

/* BLOG LIST */
.blist{display:grid;gap:0.7rem;}
.bitem{background:var(--card);border:1px solid var(--bd);border-radius:8px;
  overflow:hidden;display:flex;box-shadow:var(--shadow);}
.bthumb{width:96px;flex-shrink:0;align-self:stretch;min-height:96px;background:var(--bg3);
  display:flex;align-items:center;justify-content:center;overflow:hidden;}
.bthumb img{width:100%;height:100%;object-fit:cover;display:block;}
.bthumb img{width:100%;height:100%;object-fit:cover;}
.bthumb svg{width:40%;fill:var(--pk3);}
.bbody{padding:0.75rem 0.85rem;flex:1;min-width:0;}
.bmeta{display:flex;align-items:center;gap:0.4rem;margin-bottom:0.35rem;flex-wrap:wrap;}
.bchip{font-size:0.55rem;padding:0.12rem 0.45rem;background:var(--pk);color:#fff;border-radius:10px;}
.bdt{font-size:0.55rem;color:var(--mt);}
.btbg{font-size:0.5rem;color:#fff;background:var(--gold);padding:0.1rem 0.4rem;border-radius:2px;}
.bttl{font-size:0.88rem;font-weight:600;color:var(--tx);line-height:1.45;margin-bottom:0.3rem;}
.btxt{font-size:0.7rem;color:var(--tx2);line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.bshr{display:flex;gap:0.35rem;margin-top:0.5rem;align-items:center;}
.slbl{font-size:0.55rem;color:var(--mt);}
.sbtn{display:inline-flex;align-items:center;gap:0.2rem;padding:0.25rem 0.6rem;
  border-radius:3px;font-size:0.55rem;cursor:pointer;border:none;text-decoration:none;}
.sbtn-x{background:#000;color:#fff;}
.sbtn-ig{background:linear-gradient(135deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888);color:#fff;}

/* NEW CAST (3col grid) */
.new-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0.5rem;}
.new-card{border-radius:6px;overflow:hidden;cursor:pointer;position:relative;
  border:1px solid var(--bd);box-shadow:var(--shadow);}
.new-photo{width:100%;aspect-ratio:3/4;background:var(--bg3);overflow:hidden;
  display:flex;align-items:center;justify-content:center;}
.new-photo img{width:100%;height:100%;object-fit:cover;}
.new-photo svg{width:50%;fill:var(--pk3);}
.new-info{background:rgba(0,0,0,0.65);padding:0.35rem 0.4rem;}
.new-name{font-size:0.75rem;font-weight:700;color:#fff;}
.new-date{font-size:0.48rem;color:rgba(255,255,255,0.75);}

/* SYSTEM */
.sys-wrap{max-width:480px;margin:0 auto;padding:1rem 0.8rem 5rem;}
.sys-card{background:var(--wh);border:2px solid var(--pk);border-radius:12px;
  overflow:hidden;box-shadow:0 4px 24px rgba(232,68,122,0.15);}
.sys-hdr{text-align:center;padding:1.3rem 1rem 0.8rem;
  background:linear-gradient(135deg,var(--pk4),var(--pk5));border-bottom:1px solid var(--pk-border);}
.sys-name{font-size:1.5rem;font-weight:800;color:var(--pk);}
.sys-sub{font-size:0.62rem;color:var(--pk2);border:1px solid var(--pk-border);
  padding:0.12rem 0.9rem;display:inline-block;margin-top:0.2rem;border-radius:10px;}
.sys-blk{padding:0.9rem 1.1rem;}
.sys-blk+.sys-blk{border-top:1px solid var(--pk4);}
.sys-cat{text-align:center;margin:0.7rem 0 0.5rem;}
.sys-cl{display:inline-block;background:var(--pk4);border:1px solid var(--pk-border);
  color:var(--pk);font-size:0.65rem;padding:0.2rem 1rem;border-radius:10px;}
.sys-cl.gold{background:#fffae8;border-color:rgba(200,168,75,0.4);color:var(--gold);}
.sys-row{display:flex;align-items:center;padding:0.5rem 0;border-bottom:1px solid var(--pk5);}
.sys-row:last-child{border-bottom:none;}
.sys-rl{font-size:0.72rem;color:var(--tx2);flex:1;}
.sys-rm{font-size:0.6rem;color:var(--mt);min-width:55px;}
.sys-rp{font-size:1.2rem;font-weight:700;color:var(--pk);min-width:85px;text-align:right;}
.sys-rp span{font-size:0.65rem;font-weight:400;}
.sys-ft{background:var(--pk5);border-top:1px solid var(--pk-border);padding:0.8rem 1.1rem;text-align:center;}
.sys-ft-r{font-size:0.62rem;color:var(--tx2);line-height:2.1;}
.sys-ft-r strong{color:var(--pk);}

/* MAP */
.map-wrap{max-width:680px;margin:0 auto;padding:1rem 0.8rem 5rem;}
.map-card{background:var(--wh);border:1px solid var(--bd);border-radius:10px;
  overflow:hidden;margin-bottom:1rem;box-shadow:var(--shadow);}
.map-info{padding:0.9rem;}
.map-row{display:flex;gap:0.8rem;padding:0.55rem 0;border-bottom:1px solid var(--bd);}
.map-row:last-child{border-bottom:none;}
.map-rl{color:var(--mt);font-size:0.62rem;min-width:75px;}
.map-rv{font-size:0.75rem;color:var(--tx2);line-height:1.7;}

/* FORMS */
.fpage{max-width:600px;margin:0 auto;padding:1rem 0.8rem 5rem;}
.fcard{background:var(--wh);border:1px solid var(--bd);border-radius:10px;
  padding:1.2rem;margin-bottom:1rem;box-shadow:var(--shadow);}
.fcard-tt{font-size:1.0rem;font-weight:600;color:var(--tx);
  margin-bottom:1rem;padding-bottom:0.6rem;border-bottom:2px solid var(--pk4);}
.fg{margin-bottom:0.9rem;}
.fl{display:block;font-size:0.58rem;color:var(--mt);margin-bottom:0.35rem;}
.fc{width:100%;background:var(--wh);border:1px solid var(--bd);border-radius:6px;
  color:var(--tx);font-family:inherit;font-size:0.82rem;padding:0.6rem 0.85rem;outline:none;}
.fc:focus{border-color:var(--pk);}
textarea.fc{resize:vertical;min-height:110px;line-height:1.8;}
.frow{display:flex;gap:0.5rem;flex-wrap:wrap;}
.frow .fg{flex:1;min-width:110px;}
.fhint{font-size:0.55rem;color:var(--mt);margin-top:0.25rem;}
.btn-p{background:linear-gradient(135deg,var(--pk),var(--pk2));color:#fff;border:none;
  border-radius:20px;padding:0.75rem 1.8rem;font-family:inherit;font-size:0.75rem;
  font-weight:600;cursor:pointer;transition:opacity 0.18s;}
.btn-p:hover{opacity:0.88;}
.btn-g{background:var(--wh);border:1px solid var(--bd);color:var(--tx2);
  padding:0.58rem 1.1rem;border-radius:20px;font-family:inherit;font-size:0.7rem;cursor:pointer;}
.btn-d{background:var(--wh);border:1px solid rgba(224,64,64,0.4);color:#e04040;
  padding:0.58rem 1.1rem;border-radius:20px;font-family:inherit;font-size:0.7rem;cursor:pointer;}
.btn-gn{background:linear-gradient(135deg,#1a8050,#20a060);color:#fff;border:none;
  border-radius:20px;padding:0.65rem 1.4rem;font-family:inherit;font-size:0.72rem;cursor:pointer;}
.brow{display:flex;gap:0.5rem;flex-wrap:wrap;align-items:center;}
.tag-irow{display:flex;gap:0.4rem;}
.tag-list{display:flex;gap:0.3rem;flex-wrap:wrap;margin-top:0.4rem;}
.tag-item{font-size:0.6rem;padding:0.18rem 0.5rem;background:var(--pk5);
  border:1px solid var(--pk-border);border-radius:10px;color:var(--pk);
  display:flex;align-items:center;gap:0.3rem;}
.tag-item button{background:none;border:none;color:var(--mt);cursor:pointer;font-size:0.75rem;}

/* DASHBOARD */
.adm-wrap{max-width:800px;margin:0 auto;padding:1rem 0.8rem 5rem;}
.adm-sec{margin-bottom:1.8rem;}
.adm-sec-tt{font-size:0.68rem;color:var(--pk);font-weight:600;
  margin-bottom:0.7rem;padding-bottom:0.4rem;border-bottom:2px solid var(--pk4);}
.dash-tabs{display:flex;overflow-x:auto;scrollbar-width:none;
  border-bottom:2px solid var(--pk);margin-bottom:1rem;}
.dash-tabs::-webkit-scrollbar{display:none;}
.dash-tab{flex-shrink:0;padding:0.7rem 1rem;background:none;border:none;
  color:var(--mt);font-family:inherit;font-size:0.68rem;cursor:pointer;
  border-bottom:2px solid transparent;margin-bottom:-2px;white-space:nowrap;}
.dash-tab.on{color:var(--pk);border-bottom-color:var(--pk);background:var(--pk5);}
.dp{display:none;}.dp.on{display:block;}
.cadm-list{display:grid;gap:0.5rem;}
.cadm-row{background:var(--wh);border:1px solid var(--bd);border-radius:8px;
  padding:0.75rem 0.9rem;display:flex;align-items:center;gap:0.9rem;box-shadow:var(--shadow);}
.cadm-ph{width:42px;height:42px;border-radius:50%;background:var(--bg3);
  flex-shrink:0;border:1px solid var(--pk-border);
  display:flex;align-items:center;justify-content:center;font-size:1.1rem;overflow:hidden;}
.cadm-ph img{width:100%;height:100%;object-fit:cover;}
.cadm-info{flex:1;min-width:0;}
.cadm-name{font-size:0.85rem;font-weight:600;color:var(--tx);}
.cadm-meta{font-size:0.58rem;color:var(--mt);margin-top:0.12rem;}
.cadm-acts{display:flex;gap:0.3rem;}
.ibtn{background:none;border:1px solid var(--bd);color:var(--tx2);
  width:28px;height:28px;border-radius:4px;cursor:pointer;font-size:0.78rem;
  display:flex;align-items:center;justify-content:center;}
.ibtn.del{border-color:rgba(224,64,64,0.35);color:#e04040;}
.badm-list{display:grid;gap:0.4rem;}
.badm-row{background:var(--wh);border:1px solid var(--bd);border-radius:6px;
  padding:0.65rem 0.9rem;display:flex;align-items:center;gap:0.7rem;box-shadow:var(--shadow);}
.badm-info{flex:1;min-width:0;}
.badm-tt{font-size:0.78rem;font-weight:500;color:var(--tx);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.badm-mt{font-size:0.56rem;color:var(--mt);margin-top:0.08rem;}

/* MYPAGE TABS */
.my-br{border-bottom:1px solid var(--bd);padding:0.75rem 0;display:flex;align-items:flex-start;gap:0.7rem;}
.my-br:last-child{border-bottom:none;}
.my-bi{flex:1;min-width:0;}
.my-btt{font-size:0.83rem;font-weight:500;color:var(--tx);margin-bottom:0.18rem;}
.my-bdt{font-size:0.58rem;color:var(--mt);}
.my-bpv{font-size:0.68rem;color:var(--tx2);margin-top:0.2rem;line-height:1.5;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.my-ba{display:flex;gap:0.25rem;flex-shrink:0;}

/* CALENDAR */
.cal-day{border-radius:6px;padding:0.28rem 0.1rem;text-align:center;cursor:pointer;
  background:var(--wh);border:1px solid var(--bd);min-height:42px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;}
.cal-day.empty{background:transparent;border-color:transparent;cursor:default;}
.cal-day.on{background:var(--pk4);border-color:var(--pk);}
.cal-day.today{border-color:var(--gold);border-width:2px;}
.cal-day.selecting{border-color:#4a90d9;border-width:2px;box-shadow:0 0 6px rgba(74,144,217,0.5);}
.cal-day-num{font-size:0.66rem;color:var(--tx);}
.cal-day.on .cal-day-num{color:var(--pk);font-weight:600;}
.cal-day-time{font-size:0.46rem;color:var(--pk);margin-top:1px;}
.cal-day.sun .cal-day-num{color:#e04040;}
.cal-day.sat .cal-day-num{color:#4060c0;}

/* LOGIN MODAL */
.modal-bg{position:fixed;inset:0;z-index:600;background:rgba(0,0,0,0.7);
  display:flex;align-items:center;justify-content:center;}
.modal-bg.off{display:none;}
.modal-box{background:var(--wh);border-radius:16px;padding:1.8rem;
  max-width:370px;width:90%;box-shadow:0 8px 40px rgba(0,0,0,0.2);}
.modal-tt{font-size:1.1rem;font-weight:700;color:var(--tx);margin-bottom:0.25rem;}
.modal-sub{font-size:0.65rem;color:var(--mt);margin-bottom:1.1rem;line-height:1.7;}
.m-tabs{display:flex;background:var(--bg2);border-radius:8px;overflow:hidden;margin-bottom:1.2rem;}
.m-tab{flex:1;padding:0.6rem;background:none;border:none;color:var(--mt);
  font-family:inherit;font-size:0.68rem;cursor:pointer;}
.m-tab.on{background:var(--pk);color:#fff;border-radius:8px;}

/* SHARE MODAL */
.share-bg{position:fixed;inset:0;z-index:600;background:rgba(0,0,0,0.7);
  display:flex;align-items:center;justify-content:center;}
.share-bg.off{display:none;}
.share-box{background:var(--wh);border-radius:14px;padding:1.6rem;
  max-width:430px;width:90%;box-shadow:0 8px 40px rgba(0,0,0,0.2);}
.share-tt{font-size:1.1rem;font-weight:700;color:var(--tx);margin-bottom:0.4rem;}
.share-prev{background:var(--bg2);border:1px solid var(--bd);border-radius:6px;
  padding:0.75rem;font-size:0.68rem;color:var(--tx2);line-height:1.9;
  white-space:pre-wrap;word-break:break-all;margin-bottom:0.9rem;max-height:100px;overflow-y:auto;}
.share-btns{display:flex;gap:0.4rem;flex-wrap:wrap;}
.share-foot{display:flex;justify-content:flex-end;margin-top:0.8rem;}

/* TOAST */
.toast{position:fixed;bottom:5rem;right:0.8rem;z-index:700;
  background:var(--wh);border:1px solid var(--pk-border);border-radius:10px;
  padding:0.8rem 1.1rem;font-size:0.72rem;color:var(--pk);
  max-width:250px;display:none;box-shadow:0 4px 20px rgba(0,0,0,0.15);}
.toast.show{display:block;}
.toast.ok{color:#20a060;border-color:rgba(32,160,96,0.4);}
.toast.ng{color:#e04040;border-color:rgba(224,64,64,0.35);}

/* BOTTOM NAV */
.bnav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:400;
  background:var(--wh);border-top:2px solid var(--pk);
  box-shadow:0 -2px 12px rgba(232,68,122,0.12);}
.nb{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:0.18rem;background:none;border:none;color:var(--mt);font-family:inherit;
  font-size:0.5rem;padding:0.45rem 0.1rem 0.55rem;cursor:pointer;}
.nb svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.5;}
.nb.on{color:var(--pk);}

/* FOOTER */
.footer{background:var(--pk4);border-top:1px solid var(--pk-border);
  padding:0 0 1.6rem;text-align:center;margin-bottom:4rem;}
.footer img{width:100%;max-width:none;height:auto;margin-bottom:0.8rem;border-radius:0;display:block;}
.footer .fi, .footer .fc2, .footer > div{padding-left:1rem;padding-right:1rem;}
.fi{font-size:0.6rem;color:var(--tx2);line-height:2.1;}
.fc2{font-size:0.52rem;color:var(--mt);margin-top:0.6rem;}
.login-footer{display:flex;justify-content:center;gap:0.5rem;margin-top:1.1rem;position:relative;z-index:100;}

/* ============================================================
   PC レイアウト（シティヘブン風）
   @media min-width: 900px
   ============================================================ */

@media (min-width: 900px) {

  /* ── ボディ全体 ── */
  body {
    font-size: 13px;
    background: #f5f0f3;
  }

  /* ── ヘッダー ── */
  .hdr-in {
    height: 64px;
    padding: 0 1.5rem;
    gap: 1rem;
  }
  .hdr-logo img { height: 44px; }
  .hnb {
    font-size: 0.72rem;
    padding: 0.45rem 0.9rem;
  }
  .hlbtn { font-size: 0.68rem; padding: 0.38rem 0.9rem; }

  /* ── メインタブ → PCではサイドバーに移動するので非表示 ── */
  .main-tabs { display: none; }
  .ticker { display: none; }
  .hdr-nav { display: flex; }
  .bnav { display: none; }

  /* ── ページ全体のラッパー ── */
  #pg-top.on, #pg-cast.on, #pg-blog.on, #pg-system.on, #pg-map.on {
    display: flex;
    gap: 0;
    max-width: 1200px;
    margin: 0 auto;
    align-items: flex-start;
    padding: 0;
  }

  /* 料金・アクセス・カレンダー・イベントでは出勤情報カード非表示 */
  body[data-page="system"] #pc-cast-card,
  body[data-page="map"] #pc-cast-card,
  body[data-page="schedule"] #pc-cast-card,
  body[data-page="events"] #pc-cast-card { display: none !important; }

  /* ── 左サイドバー（PC専用） ── */
  .pc-sidebar-left {
    display: block !important;
    width: 200px;
    flex-shrink: 0;
    position: sticky;
    top: 64px;
    height: calc(100vh - 64px);
    overflow-y: auto;
    background: #fff;
    border-right: 1px solid var(--bd);
    padding: 1rem 0;
  }
  .pc-sidebar-left .sb-nav-item {
    display: block;
    width: 100%;
    padding: 0.75rem 1.2rem;
    border: none;
    background: none;
    text-align: left;
    font-family: inherit;
    font-size: 0.8rem;
    color: var(--tx2);
    cursor: pointer;
    border-left: 3px solid transparent;
    transition: all 0.15s;
  }
  .pc-sidebar-left .sb-nav-item:hover {
    background: var(--pk5);
    color: var(--pk);
  }
  .pc-sidebar-left .sb-nav-item.on {
    color: var(--pk);
    background: var(--pk5);
    border-left-color: var(--pk);
    font-weight: 600;
  }
  .pc-sidebar-left .sb-section-title {
    font-size: 0.6rem;
    color: var(--mt);
    padding: 0.8rem 1.2rem 0.3rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
  }
  .pc-sidebar-left .sb-shop-info {
    padding: 0.8rem 1rem;
    border-top: 1px solid var(--bd);
    margin-top: 0.5rem;
  }
  .pc-sidebar-left .sb-shop-name {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--pk);
    margin-bottom: 0.4rem;
  }
  .pc-sidebar-left .sb-shop-row {
    font-size: 0.62rem;
    color: var(--tx2);
    margin-bottom: 0.25rem;
    display: flex;
    gap: 0.3rem;
  }
  .pc-sidebar-left .sb-shop-row span:first-child {
    color: var(--mt);
    min-width: 36px;
  }

  /* ── メインコンテンツエリア ── */
  .pc-main-content {
    flex: 1;
    min-width: 0;
    padding: 1rem 1.2rem;
    background: #f5f0f3;
  }

  /* ── 右サイドバー ── */
  .pc-sidebar-right {
    display: block !important;
    width: 220px;
    flex-shrink: 0;
    position: sticky;
    top: 64px;
    height: calc(100vh - 64px);
    overflow-y: auto;
    padding: 1rem 0.8rem;
    background: #fff;
    border-left: 1px solid var(--bd);
  }
  .pc-sidebar-right .sb-card {
    background: var(--bg2);
    border: 1px solid var(--bd);
    border-radius: 8px;
    padding: 0.8rem;
    margin-bottom: 0.8rem;
  }
  .pc-sidebar-right .sb-card-title {
    font-size: 0.65rem;
    font-weight: 700;
    color: var(--pk);
    margin-bottom: 0.5rem;
    padding-bottom: 0.3rem;
    border-bottom: 1px solid var(--pk-border);
  }
  .pc-sidebar-right .sb-card-row {
    font-size: 0.62rem;
    color: var(--tx2);
    margin-bottom: 0.3rem;
    display: flex;
    gap: 0.3rem;
    align-items: flex-start;
  }
  .pc-sidebar-right .sb-card-row .lbl {
    color: var(--mt);
    min-width: 36px;
    flex-shrink: 0;
  }
  .pc-sidebar-right .sb-cast-count {
    display: flex;
    gap: 0.4rem;
    flex-wrap: wrap;
  }
  .pc-sidebar-right .sb-count-item {
    flex: 1;
    text-align: center;
    background: #fff;
    border: 1px solid var(--pk-border);
    border-radius: 6px;
    padding: 0.4rem 0.2rem;
  }
  .pc-sidebar-right .sb-count-item .num {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--pk);
  }
  .pc-sidebar-right .sb-count-item .lbl {
    font-size: 0.48rem;
    color: var(--mt);
  }

  /* ── ヒーロー画像 PC ── */
  #hero-wrap {
    height: 320px !important;
    border-radius: 0;
  }

  /* ── shop-meta PC ── */
  .shop-meta { display: none; }

  /* ── date-slider PC ── */
  .date-slider-wrap {
    background: #fff;
    border-radius: 8px;
    margin-bottom: 0.8rem;
    border: 1px solid var(--bd);
  }

  /* ── sub-tabs PC ── */
  .sub-tabs {
    position: static;
    border-radius: 8px 8px 0 0;
    background: var(--pk4);
    border-bottom: 2px solid var(--pk);
  }

  /* ── キャストグリッド PC ── */
  .cgrid {
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 0.8rem;
  }

  /* ── wrap PC ── */
  .wrap {
    max-width: 100%;
    padding: 0;
  }

  /* ── ブログリスト PC ── */
  .blist { gap: 0.8rem; }
  .bitem {
    border-radius: 8px;
  }
  .bthumb { width: 120px; }
  .bttl { font-size: 0.92rem; }

  /* ── sys-wrap PC ── */
  .sys-wrap {
    max-width: 100%;
    padding: 0;
  }
  .sys-card { border-radius: 8px; }

  /* ── map-wrap PC ── */
  .map-wrap {
    max-width: 100%;
    padding: 0;
  }

  /* ── セクションヘッダー PC ── */
  .sec-hd { border-radius: 4px; }

  /* ── 検索ボックス PC ── */
  #cast-search { font-size: 0.85rem; }

  /* ── ページ内 wrap パディング調整 ── */
  #pg-cast .wrap,
  #pg-blog .wrap,
  #pg-map .map-wrap,
  #pg-system .sys-wrap {
    padding: 0;
  }

}

/* ============================================================
   PC サイドバーはスマホでは非表示
   ============================================================ */
.pc-sidebar-left,
.pc-sidebar-right {
  display: none;
}




/* ============================================================
   v11 改善CSS - シティヘブン風PC強化版
   ============================================================ */

/* ── PC全体フォントサイズアップ ── */
@media (min-width: 900px) {
  body { font-size: 15px; }

  /* ── ヘッダー強化 ── */
  .hdr { height: 68px; border-bottom: 3px solid var(--pk); }
  .hdr-in { height: 68px; max-width: 1280px; padding: 0 2rem; gap: 1.2rem; }
  .hdr-logo img { height: 48px; }
  .hnb { font-size: 0.75rem; padding: 0.5rem 0.6rem; font-weight: 500; }
  .hlbtn { font-size: 0.72rem; padding: 0.4rem 1rem; border-radius: 16px; }

  /* ── PCレイアウト全体 ── */
  #pc-layout-wrapper {
    max-width: 1280px;
    margin: 0 auto;
    display: flex;
    min-height: calc(100vh - 68px);
  }

  /* ── 左サイドバー強化 ── */
  .pc-sidebar-left {
    width: 210px;
    top: 68px;
    height: calc(100vh - 68px);
    border-right: 1px solid var(--bd);
    padding: 0.8rem 0;
  }
  .pc-sidebar-left .sb-nav-item {
    font-size: 0.85rem;
    padding: 0.8rem 1.3rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
  }
  .pc-sidebar-left .sb-shop-info {
    padding: 0.9rem 1rem;
    margin-top: 0.5rem;
  }
  .pc-sidebar-left .sb-shop-name {
    font-size: 1rem;
    font-weight: 800;
    color: var(--pk);
    margin-bottom: 0.5rem;
  }
  .pc-sidebar-left .sb-shop-row {
    font-size: 0.68rem;
    margin-bottom: 0.3rem;
  }

  /* ── 右サイドバー強化 ── */
  .pc-sidebar-right {
    width: 240px;
    top: 68px;
    height: calc(100vh - 68px);
    padding: 1rem;
  }
  .pc-sidebar-right .sb-card { margin-bottom: 1rem; border-radius: 10px; }
  .pc-sidebar-right .sb-card-title { font-size: 0.72rem; margin-bottom: 0.6rem; }
  .pc-sidebar-right .sb-count-item .num { font-size: 1.3rem; }
  .pc-sidebar-right .sb-card-row { font-size: 0.68rem; margin-bottom: 0.35rem; }

  /* ── ヒーロー PC ── */
  #hero-wrap { height: 360px !important; }
  #hero-wrap img { object-position: center top; }

  /* ── INFOバー PC ── */
  .info-bar { font-size: 0.78rem; padding: 0.6rem 1.5rem; }

  /* ── キャストグリッド PC強化 ── */
  .cgrid {
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 1rem;
  }
  .ccard { border-radius: 10px; }
  .cphoto { aspect-ratio: 3/4; }
  .cname { font-size: 1.15rem !important; }
  .cage { font-size: 0.6rem !important; }
  .cspec { font-size: 0.6rem !important; }
  .ctime { font-size: 0.65rem !important; padding: 0.15rem 0.5rem !important; }
  .ctag { font-size: 0.55rem !important; padding: 0.12rem 0.5rem !important; }
  .sd { font-size: 0.55rem !important; padding: 0.22rem 0 !important; }

  /* ── ブログリスト PC強化 ── */
  .bitem { border-radius: 10px; }
  .bthumb { width: 130px; height: 130px; }
  .bthumb img { width: 100%; height: 100%; object-fit: cover; }
  .bttl { font-size: 1rem !important; }
  .btxt { font-size: 0.78rem !important; -webkit-line-clamp: 3 !important; }
  .bchip { font-size: 0.65rem !important; }
  .bdt { font-size: 0.65rem !important; }

  /* ── セクションヘッダー PC ── */
  .sec-hd { padding: 0.7rem 1rem; margin-bottom: 1rem; border-radius: 6px; }
  .sec-tt { font-size: 0.95rem !important; }

  /* ── 日付スライダー PC ── */
  .date-slider-wrap { border-radius: 8px; margin-bottom: 1rem; }
  .date-btn { width: 60px; padding: 0.5rem 0.2rem; border-radius: 8px; }
  .date-btn .db-num { font-size: 1.25rem !important; }
  .date-btn .db-day { font-size: 0.65rem !important; }
  .date-btn .db-cnt { font-size: 0.6rem !important; }

  /* ── サブタブ PC ── */
  .sub-tabs { border-radius: 8px 8px 0 0; }
  .sub-tab { font-size: 0.78rem !important; padding: 0.75rem 1.2rem !important; }

  /* ── 検索ボックス PC ── */
  #cast-search { font-size: 0.9rem !important; border-radius: 24px !important; }

  /* ── 絞り込みタグ PC（右サイドバーに追加） ── */
  .pc-filter-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    margin-top: 0.4rem;
  }
  .pc-filter-tag {
    font-size: 0.62rem;
    padding: 0.2rem 0.55rem;
    border: 1px solid var(--pk-border);
    border-radius: 12px;
    color: var(--pk);
    background: var(--pk5);
    cursor: pointer;
    transition: all 0.15s;
  }
  .pc-filter-tag:hover, .pc-filter-tag.on {
    background: var(--pk);
    color: #fff;
  }

  /* ── キャスト詳細モーダル PC ── */
  #cast-modal {
    align-items: center !important;
  }
  #cast-modal > div {
    border-radius: 16px !important;
    max-width: 640px !important;
    max-height: 80vh !important;
  }

  /* ── sys・map ── */
  .sys-wrap, .map-wrap { max-width: 100%; padding: 0; }
  .sys-card { border-radius: 10px; }
  .sys-row { padding: 0.6rem 0; }
  .sys-rl { font-size: 0.82rem !important; }
  .sys-rp { font-size: 1.3rem !important; }

  /* ── トップページ PC ── */
  #pg-top .wrap { padding-top: 0 !important; }

  /* ── 新人グリッド PC ── */
  .new-grid { grid-template-columns: repeat(4, 1fr) !important; gap: 0.8rem; }
  .new-name { font-size: 0.85rem !important; }

  /* ── wrap padding ── */
  .wrap { padding: 0.5rem 0 3rem !important; }
  .wrap > * + * { margin-top: 0; }

  /* ── キャストページ 検索エリア ── */
  #pg-cast > div:first-child {
    border-radius: 8px;
    margin-bottom: 0.5rem;
    border: 1px solid var(--bd);
  }

  /* ── フッター的な余白 ── */
  #pg-top .wrap, #pg-cast .wrap, #pg-blog .wrap {
    padding-bottom: 3rem !important;
  }
}

/* ── キャスト詳細モーダル：プロフィール表 ── */
.cast-profile-table { width: 100%; border-collapse: collapse; margin-top: 0.5rem; }
.cast-profile-table tr { border-bottom: 1px solid var(--pk5); }
.cast-profile-table td { padding: 0.4rem 0.6rem; font-size: 0.72rem; }
.cast-profile-table td:first-child { color: var(--mt); width: 80px; }
.cast-profile-table td:last-child { color: var(--tx); font-weight: 500; }

/* ── 本日出勤バナー（PC トップ） ── */
@media (min-width: 900px) {
  .today-banner {
    background: linear-gradient(135deg, var(--pk), var(--pk2));
    color: #fff;
    border-radius: 10px;
    padding: 0.8rem 1.2rem;
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
  }
  .today-banner .tb-count {
    font-size: 2.2rem;
    font-weight: 800;
    line-height: 1;
  }
  .today-banner .tb-label {
    font-size: 0.72rem;
    opacity: 0.9;
  }
  .today-banner .tb-names {
    font-size: 0.78rem;
    opacity: 0.95;
    flex: 1;
  }
}



/* ── BIZ UDP明朝 フォント統一 ── */
button, input, select, textarea {
  font-family: 'BIZ UDPMincho', 'Noto Serif JP', serif;
}
.hdr-nav .hnb,
.main-tab,
.sub-tab,
.date-btn,
.btn-p, .btn-g, .btn-d, .btn-gn,
.dash-tab {
  font-family: 'BIZ UDPMincho', 'Noto Serif JP', serif;
}
/* キャスト名・ブログタイトルは太字で */
.cname { font-weight: 700; letter-spacing: 0.04em; }
.bttl { font-weight: 700; letter-spacing: 0.03em; }
.sys-name { letter-spacing: 0.08em; }

/* ── PC キャストページ レイアウト修正 ── */
@media (min-width: 900px) {
  /* sub-tabs と date-slider の sticky を解除 */
  .sub-tabs {
    position: static !important;
    border-radius: 8px 8px 0 0;
    border-bottom: 2px solid var(--pk);
  }
  .date-slider-wrap {
    position: static !important;
  }
  /* 検索ボックスをdivから通常フローに */
  #pg-cast > div:first-child {
    position: static !important;
  }
  /* cast page 全体を普通のフローに */
  #pg-cast {
    display: block !important;
  }
  /* サブタブと日付スライダーをまとめるラッパー */
  .cast-ctrl-area {
    background: #fff;
    border-radius: 8px;
    border: 1px solid var(--bd);
    margin-bottom: 0.8rem;
    overflow: hidden;
  }
  .cast-ctrl-area .sub-tabs {
    border-radius: 0;
  }
  .cast-ctrl-area .date-slider-wrap {
    border-radius: 0;
    border: none;
    border-top: 1px solid var(--bd);
    margin: 0;
  }
}