
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Hiragino Kaku Gothic ProN','Hiragino Sans',Meiryo,sans-serif;background:#f4f7fd;color:#1c2434;font-size:15px}
a{color:inherit;text-decoration:none}
header{background:#fff;border-bottom:3px solid #2e69f1}
.hd{max-width:1100px;margin:0 auto;padding:14px 16px;display:flex;align-items:center;gap:14px}
.logo{font-size:22px;font-weight:900;color:#2e69f1}
.logo span{color:#1c2434}
.hd .sub{font-size:12px;color:#5a6a86}
.hd .sp{flex:1}
.hbtn{border:1.5px solid #2e69f1;color:#2e69f1;border-radius:999px;padding:7px 15px;font-size:13px;font-weight:800;background:#fff;white-space:nowrap}
.hbtn:hover{background:#eaf1fe}
.hero{background:#fff;color:#1c2434;border-radius:14px;padding:20px 22px;margin:6px 0 16px;box-shadow:0 1px 6px rgba(23,50,110,.12)}
.hero h1{color:#174aB4}
.hero p{color:#5a6a86;opacity:1}
.stabs{display:flex;gap:8px;margin-top:14px}
.stab{border:1.5px solid #c9d8f8;background:#fff;color:#43536f;border-radius:999px;padding:8px 20px;font-size:14px;font-weight:800;cursor:pointer}
.stab.act{background:#2e69f1;border-color:#2e69f1;color:#fff}
.sbtn{border:0;border-radius:9px;background:#17a398;color:#fff;font-size:15px;font-weight:800;padding:0 22px;cursor:pointer;white-space:nowrap}
.searchbar input{background:#f4f6fb;border:1.5px solid #d8e2f5}
.keepbtn{display:inline-flex;align-items:center;gap:7px;margin:14px 0 2px 10px;border:1.5px solid #2e69f1;background:#fff;color:#2e69f1;border-radius:999px;padding:9px 20px;font-size:14.5px;font-weight:800;cursor:pointer}
.keepbtn.on{background:#2e69f1;color:#fff}
.castprof{display:flex;gap:20px;flex-wrap:wrap}
.castprof img.main{width:270px;max-width:100%;height:340px;object-fit:cover;border-radius:12px;background:#dbe6fb}
.listrow{display:flex;align-items:center;gap:12px;background:#fff;border-radius:12px;padding:10px 14px;margin:8px 0;box-shadow:0 1px 5px rgba(23,50,110,.10)}
.listrow img{width:52px;height:64px;object-fit:cover;border-radius:7px;background:#dbe6fb}
.listrow .tb{font-size:11px;font-weight:800;color:#fff;background:#2e69f1;border-radius:6px;padding:2px 8px}
.listrow .tb.cast{background:#ef5da8}
.listrow i{font-style:normal;font-size:12px;color:#8494b3}
.unkeep{margin-left:auto;border:1px solid #d8e2f5;background:#fff;color:#8494b3;border-radius:8px;padding:6px 12px;font-size:12px;cursor:pointer;white-space:nowrap}
.crumb{font-size:12.5px;color:#8494b3;margin:4px 0 12px}
.dtabs{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 18px}
.dtab{border:1.5px solid #bcd2f7;color:#2e69f1;background:#fff;border-radius:9px;padding:8px 14px;font-size:13px;font-weight:800}
.d2top{display:grid;grid-template-columns:1fr 1fr;gap:26px}
@media(max-width:760px){.d2top{grid-template-columns:1fr}}
.d2top .photo img{width:100%;height:340px;object-fit:cover;border-radius:10px;background:#dbe6fb}
.shopinfo h2{font-size:19px;border-bottom:2.5px solid #f04b8a;padding-bottom:8px;display:flex;align-items:center;gap:8px}
.iine{margin-left:auto;border:1.5px solid #f04b8a;color:#f04b8a;background:#fff;border-radius:999px;padding:6px 15px;font-weight:800;font-size:13.5px;cursor:pointer;white-space:nowrap}
.iine.on{background:#f04b8a;color:#fff}
.shopkeep{border:1.5px solid #d8e2f5;background:#fff;border-radius:9px;padding:6px 10px;font-size:14px;cursor:pointer;color:#b6c2d9}
.shopkeep.on{color:#f5a623;border-color:#f5a623}
.irow{display:flex;gap:12px;padding:11px 2px;border-bottom:1px solid #eef2fa;font-size:14px}
.irow b{color:#f04b8a;min-width:78px;font-weight:800}
.d2h{text-align:center;font-size:20px;margin:36px 0 8px;display:flex;align-items:center;gap:14px;justify-content:center}
.d2h::before,.d2h::after{content:'';flex:1;height:2px;background:linear-gradient(90deg,transparent,#f8a5c8,transparent)}
.d2h .st{color:#f04b8a}
.osu{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:14px;margin-top:14px}
@media(max-width:760px){.osu{grid-template-columns:1fr 1fr}}
.osucard{position:relative;background:#fff;border-radius:12px;box-shadow:0 1px 6px rgba(23,50,110,.12);overflow:hidden}
.osucard img{width:100%;height:200px;object-fit:cover;display:block;background:#dbe6fb}
.osucard.big img{height:290px}
.osucard .bd{padding:10px 12px}
.osucard .nm{font-weight:800;font-size:15.5px}
.osucard .sp2{font-size:12px;color:#8494b3}
.badge{position:absolute;top:10px;left:10px;background:#f04b8a;color:#fff;font-size:11.5px;font-weight:800;border-radius:6px;padding:3px 9px;z-index:2}
.kstar{position:absolute;top:8px;right:8px;width:34px;height:34px;border-radius:50%;border:0;background:rgba(255,255,255,.92);font-size:17px;color:#b6c2d9;cursor:pointer;z-index:2;line-height:1}
.kstar.on{color:#f5a623}
.shiftbox{background:#fdeef5;border-left:4px solid #f04b8a;border-radius:8px;padding:9px 12px;font-size:13px;margin-top:8px}
.shiftbox b{color:#d81b60;display:block;font-size:12px}
.shiftstrip{background:#fdeef5;color:#d81b60;text-align:center;font-size:12.5px;font-weight:700;padding:7px 4px}
.shiftstrip.on{background:#e6f7f3;color:#0d7a5f}
.morebtn{display:block;margin:12px auto 2px;background:#f04b8a;color:#fff;text-align:center;border-radius:9px;padding:10px;font-weight:800}
.revcard{background:#fff;border-radius:12px;box-shadow:0 1px 5px rgba(23,50,110,.10);padding:16px 18px;margin:12px 0;text-align:left}
.revcard .stars{color:#f5a623;font-size:16px;letter-spacing:2px}
.revcard .stars b{color:#1c2434;font-size:15px;letter-spacing:0;margin-left:6px}
.revcard .dt{font-size:12px;color:#8494b3}
.revcard .bd{background:#fdf6ec;border-radius:8px;padding:12px 14px;margin-top:10px;font-size:14px;line-height:1.7}
.revform{background:#fff;border-radius:12px;box-shadow:0 1px 5px rgba(23,50,110,.10);padding:18px;margin-top:14px}
.revform label{display:block;font-size:13px;font-weight:800;margin:12px 0 5px}
.revform input[type=text],.revform textarea,.revform select{width:100%;border:1.5px solid #d8e2f5;border-radius:8px;padding:9px 11px;font-size:14px;font-family:inherit;box-sizing:border-box}
.revform button{background:#2e69f1;color:#fff;border:0;border-radius:9px;padding:11px 26px;font-weight:800;font-size:14.5px;cursor:pointer;margin-top:14px}
.feetable{width:100%;border-collapse:collapse;background:#fff;font-size:14px;margin-top:12px}
.feetable th,.feetable td{border:1px solid #e3eaf6;padding:10px 8px;text-align:center}
.courseblk{background:#fff;border:1px solid #e3eaf6;border-radius:10px;padding:16px 18px;margin:12px 0}
.courseblk h3{font-size:16px;border-bottom:1px solid #eef2fa;padding-bottom:8px;margin:0 0 6px}
.courseblk .pr{display:flex;gap:16px;padding:9px 2px;border-bottom:1px solid #f4f6fb;font-size:14.5px}
.castgrid2{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:14px}
.ccard{position:relative;background:#fff;border-radius:12px;box-shadow:0 1px 5px rgba(23,50,110,.10);overflow:hidden}
.ccard img{width:100%;height:180px;object-fit:cover;display:block;background:#dbe6fb}
.ccard .bd{padding:8px 10px}
.ccard .nm{font-weight:800;font-size:14.5px}
.ccard .sp2{font-size:12px;color:#8494b3}
.wrap{max-width:1100px;margin:0 auto;padding:18px 16px 60px}
.hero{background:linear-gradient(120deg,#2e69f1,#174aB4);color:#fff;border-radius:14px;padding:22px;margin:6px 0 16px}
.hero h1{font-size:22px;margin-bottom:6px}
.hero p{font-size:13px;opacity:.92}
.searchbar{display:flex;gap:8px;margin-top:14px}
.searchbar input{flex:1;border:0;border-radius:9px;padding:12px 14px;font-size:15px}
.chips{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0 4px}
.chip{background:#fff;border:1.5px solid #c9d8f8;color:#2e69f1;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:700}
.chip:hover{background:#eaf1fe}
.prefhead{font-size:19px;margin:26px 0 12px;border-left:5px solid #2e69f1;padding-left:9px}
.prefhead span{font-size:12px;color:#5a6a86;margin-left:8px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 1px 5px rgba(23,50,110,.10);display:block}
.card .thumb{position:relative;height:150px;background:#dbe6fb}
.card .thumb img{width:100%;height:100%;object-fit:cover;display:block}
.badge{position:absolute;left:8px;bottom:8px;background:rgba(20,40,90,.82);color:#fff;font-size:11px;padding:3px 8px;border-radius:6px}
.card .body{padding:11px 13px 13px}
.card h3{font-size:16px;margin-bottom:4px}
.plat{font-size:11px;color:#8494b3;margin-bottom:5px}
.meta{font-size:12px;color:#43536f;line-height:1.55}
.todayrow{display:flex;align-items:center;gap:5px;margin-top:9px}
.cthumb{width:34px;height:44px;object-fit:cover;border-radius:5px}
.cmore{font-size:11px;font-weight:700;color:#2e69f1;background:#eaf1fe;border-radius:6px;padding:3px 7px}
.cmore.none{color:#8494b3;background:#eef1f6}
.back{font-size:13px;color:#2e69f1;font-weight:700}
.detail{background:#fff;border-radius:14px;padding:20px;box-shadow:0 1px 5px rgba(23,50,110,.10)}
.detail h1{font-size:24px;margin:4px 0 8px}
.kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px 18px;margin:12px 0;font-size:13.5px}
.kv b{color:#2e69f1;margin-right:6px}
table.fees{border-collapse:collapse;width:100%;margin:8px 0 4px;font-size:13.5px}
table.fees td,table.fees th{border:1px solid #d8e2f5;padding:7px 10px;text-align:left}
table.fees th{background:#eaf1fe;color:#174aB4}
h2.sec{font-size:17px;margin:22px 0 10px;border-left:5px solid #2e69f1;padding-left:9px}
.castgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:12px}
.cast{background:#f7faff;border:1.5px solid #d8e2f5;border-radius:10px;overflow:hidden;text-align:center;padding-bottom:8px}
.cast.on{border-color:#2e69f1;box-shadow:0 0 0 2px #bcd2fb}
.cast img{width:100%;height:150px;object-fit:cover;display:block;background:#dbe6fb}
.cast .nm{font-weight:700;font-size:13.5px;margin-top:6px}
.cast .sp{font-size:11.5px;color:#5a6a86}
.shift{display:inline-block;margin-top:4px;font-size:11px;font-weight:700;color:#fff;background:#2e69f1;border-radius:6px;padding:2px 7px}
.srcs{font-size:12px;color:#5a6a86;line-height:1.9}
.srcs a{color:#2e69f1;text-decoration:underline}
footer{max-width:1100px;margin:0 auto;padding:0 16px 40px;font-size:12px;color:#8494b3}
.prefhead{color:#174aB4}
.prefbox{border:2px solid #22304d;border-radius:14px;padding:16px 20px 12px;background:#fff;display:grid;grid-template-columns:1fr 1fr;gap:4px 36px;margin:6px 0 4px}
@media(max-width:680px){.prefbox{grid-template-columns:1fr}}
.pgroup{padding:7px 0}
.pgroup h3{font-size:15.5px;color:#2e69f1;margin-bottom:5px}
.plinks{display:flex;flex-wrap:wrap;gap:4px 0;font-size:14.5px}
.plinks a{color:#1c2434;font-weight:600;padding:2px 2px}
.plinks a:hover{color:#2e69f1;text-decoration:underline}
.plinks .sep{color:#79b34a;padding:2px 7px}
.plinks .poff{color:#a7b3c9;padding:2px 2px}
.majorcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));gap:10px;margin:12px 0 16px}
.mcard{display:flex;align-items:stretch;background:#fff;border:1px solid #d8e2f5;border-radius:10px;overflow:hidden;box-shadow:0 1px 5px rgba(23,50,110,.10);min-height:64px}
.mcard img{width:74px;height:auto;min-height:64px;object-fit:cover;display:block;background:#dbe6fb}
.mcard b{flex:1;display:flex;align-items:center;justify-content:center;font-size:16.5px}
.mcard.off{opacity:.5}
.rtabs{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.rtab{border:1.5px solid #2e69f1;background:#fff;color:#2e69f1;border-radius:9px;padding:9px 18px;font-size:14px;font-weight:700;cursor:pointer}
.rtab.act{background:#2e69f1;color:#fff}
.rkgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));gap:12px}
.rkc{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 1px 5px rgba(23,50,110,.10);display:block}
.rkband{display:block;text-align:center;color:#fff;font-weight:900;font-size:17px;padding:5px 0}
.rkband.b1{background:linear-gradient(180deg,#ffc93c,#f0a500)}
.rkband.b2{background:linear-gradient(180deg,#c3cedd,#9fb0c7)}
.rkband.b3{background:linear-gradient(180deg,#dd9a5f,#c97b3f)}
.rkband.b4{background:#ef5da8}.rkband.b5{background:#8b5cf6}.rkband.b6{background:#12a5a0}
.rkc img{width:100%;height:128px;object-fit:cover;display:block;background:#dbe6fb}
.rknoimg{width:100%;height:128px;display:flex;align-items:center;justify-content:center;background:#eef1f6;color:#a7b3c9;font-size:13px}
.rkname{display:block;font-weight:800;font-size:14.5px;padding:9px 11px 2px;line-height:1.4}
.rkmeta{display:block;font-size:12px;color:#5a6a86;padding:1px 11px}
.rkc .rkmeta:last-child{padding-bottom:10px}
.newgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:12px}
.newc{background:#fff;border:1.5px solid #b9ccf5;border-radius:14px;padding:12px;text-align:left;display:block}
.newc img{width:100%;height:118px;object-fit:cover;border-radius:9px;display:block;background:#eef1f6}
.newc .noimg{height:118px;border-radius:9px;background:#eef1f6;color:#a7b3c9;display:flex;align-items:center;justify-content:center;font-size:13px}
.newc .dt{display:block;text-align:center;background:#2e69f1;color:#fff;font-weight:800;font-size:13.5px;border-radius:999px;padding:5px 0;margin:11px 0 8px}
.newc b{font-size:14.5px;display:block;line-height:1.45;min-height:2.9em}
.newc i{font-style:normal;font-size:12.5px;color:#5a6a86}
.favbtn{display:inline-flex;align-items:center;gap:7px;margin:14px 0 2px;border:1.5px solid #ef5da8;background:#fff;color:#ef5da8;border-radius:999px;padding:9px 20px;font-size:14.5px;font-weight:800;cursor:pointer}
.favbtn.on{background:#ef5da8;color:#fff}
#ageGate{position:fixed;inset:0;background:rgba(13,22,44,.88);z-index:999;display:flex;align-items:center;justify-content:center;padding:18px}
.gate-box{background:#fff;border-radius:16px;max-width:430px;width:100%;padding:30px 26px;text-align:center;box-shadow:0 12px 44px rgba(0,0,0,.4)}
.gate-box .glogo{font-size:24px;font-weight:900;color:#2e69f1;margin-bottom:10px}
.gate-box .glogo span{color:#1c2434}
.gate-box h2{font-size:19px;margin-bottom:10px}
.gate-box p{font-size:13.5px;color:#43536f;line-height:1.7;margin-bottom:18px}
.gate-btn{display:block;width:100%;border:0;border-radius:10px;padding:14px;font-size:16px;font-weight:800;cursor:pointer;margin:9px 0;background:#2e69f1;color:#fff}
.gate-btn.sub{background:#e7edf9;color:#43536f}
#searchResults{display:none}
.noresult{padding:20px;color:#5a6a86}
