:root{
  --bg:#F8F5FB; --surface:#FFFFFF; --surface-2:#F1ECF7; --line:#E6DEEF;
  --ink:#3A3346; --ink-2:#6D6479; --ink-3:#9A91A6;
  --pink:#E27496; --pink-soft:#FBE3EB; --on-pink:#FFFFFF;
  --acc:#E27496; --acc-soft:#FBE3EB; --on-acc:#FFFFFF;
  --mint:#3E9C83; --mint-soft:#DDF2EA;
  --butter:#B7871C; --butter-soft:#FBF0CF;
  --sky:#5A87C4; --sky-soft:#E1EBF8;
  --grey-soft:#EEEAF1;
  --shadow:0 1px 0 rgba(58,51,70,.04),0 6px 18px -10px rgba(58,51,70,.18);
  --r:18px;
  --display:"Zen Maru Gothic","Hiragino Maru Gothic ProN","Rounded Mplus 1c",system-ui,sans-serif;
  --body:"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP","Noto Sans CJK JP","Yu Gothic UI","Meiryo",system-ui,sans-serif;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  color-scheme:dark;
  --bg:#1D1A23; --surface:#282430; --surface-2:#312C3A; --line:#3C3647;
  --ink:#F1ECF6; --ink-2:#C2B9CE; --ink-3:#8F869C;
  --pink:#F095B0; --pink-soft:#4A2B37; --on-pink:#2A1720;
  --acc:#F095B0; --acc-soft:#4A2B37; --on-acc:#2A1720;
  --mint:#8FD3BF; --mint-soft:#213B34;
  --butter:#E8C96A; --butter-soft:#40361C;
  --sky:#9DBDEB; --sky-soft:#253247;
  --grey-soft:#34303C;
  --shadow:0 1px 0 rgba(0,0,0,.2),0 8px 20px -12px rgba(0,0,0,.6);
}}
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#1D1A23; --surface:#282430; --surface-2:#312C3A; --line:#3C3647;
  --ink:#F1ECF6; --ink-2:#C2B9CE; --ink-3:#8F869C;
  --pink:#F095B0; --pink-soft:#4A2B37; --on-pink:#2A1720;
  --acc:#F095B0; --acc-soft:#4A2B37; --on-acc:#2A1720;
  --mint:#8FD3BF; --mint-soft:#213B34;
  --butter:#E8C96A; --butter-soft:#40361C;
  --sky:#9DBDEB; --sky-soft:#253247;
  --grey-soft:#34303C;
  --shadow:0 1px 0 rgba(0,0,0,.2),0 8px 20px -12px rgba(0,0,0,.6);
}
/* 推しカラー */
:root[data-oshi="chiikawa"]{--acc:#E27496;--acc-soft:#FBE3EB;--on-acc:#FFFFFF;--bg:#FBF6F8;--surface-2:#F6ECF1;--line:#EEDDE5}
:root[data-oshi="hachiware"]{--acc:#4A74B5;--acc-soft:#E0E9F6;--on-acc:#FFFFFF;--bg:#F4F7FB;--surface-2:#E8EEF7;--line:#D8E2EF}
:root[data-oshi="usagi"]{--acc:#C4961A;--acc-soft:#FAF0CE;--on-acc:#2B2210;--bg:#FCFAF2;--surface-2:#F5EFDC;--line:#EAE0C2}
:root[data-oshi="momonga"]{--acc:#8A68C8;--acc-soft:#ECE5F8;--on-acc:#FFFFFF;--bg:#F8F6FC;--surface-2:#EEE9F8;--line:#E0D8F0}
:root[data-oshi="kuri"]{--acc:#9C6A3F;--acc-soft:#F2E5D8;--on-acc:#FFFFFF;--bg:#FAF6F1;--surface-2:#F2EAE0;--line:#E6D9CA}
:root[data-oshi="furuhon"]{--acc:#D0533C;--acc-soft:#FADDD6;--on-acc:#FFFFFF;--bg:#FCF6F4;--surface-2:#F7EAE6;--line:#EED8D2}
:root[data-oshi="rakko"]{--acc:#7A6A5E;--acc-soft:#ECE6E1;--on-acc:#FFFFFF;--bg:#F7F5F3;--surface-2:#EEEAE6;--line:#E0DAD4}
:root[data-oshi="shisa"]{--acc:#D8731C;--acc-soft:#FCE6D2;--on-acc:#FFFFFF;--bg:#FCF8F3;--surface-2:#F7EDE2;--line:#EEDDCB}
@media (prefers-color-scheme:dark){
  :root[data-oshi="chiikawa"]:not([data-theme="light"]){--acc:#F095B0;--acc-soft:#4A2B37;--on-acc:#2A1720;--bg:#1F1A21;--surface-2:#322A35;--line:#443A46}
  :root[data-oshi="hachiware"]:not([data-theme="light"]){--acc:#8FB2E8;--acc-soft:#243248;--on-acc:#101A2A;--bg:#191D24;--surface-2:#262D38;--line:#353E4C}
  :root[data-oshi="usagi"]:not([data-theme="light"]){--acc:#E8C45A;--acc-soft:#3E3519;--on-acc:#221B08;--bg:#1E1C16;--surface-2:#2E2A20;--line:#3E3829}
  :root[data-oshi="momonga"]:not([data-theme="light"]){--acc:#B79CEB;--acc-soft:#342A4A;--on-acc:#1C1430;--bg:#1C1A24;--surface-2:#2C2838;--line:#3B3548}
  :root[data-oshi="kuri"]:not([data-theme="light"]){--acc:#D4A276;--acc-soft:#3D2E21;--on-acc:#23180E;--bg:#1E1A17;--surface-2:#2E2822;--line:#3F362D}
  :root[data-oshi="furuhon"]:not([data-theme="light"]){--acc:#F08A74;--acc-soft:#48271F;--on-acc:#2A120C;--bg:#211A19;--surface-2:#322726;--line:#443432}
  :root[data-oshi="rakko"]:not([data-theme="light"]){--acc:#BCA99A;--acc-soft:#37302B;--on-acc:#1D1713;--bg:#1C1A19;--surface-2:#2B2826;--line:#3A3633}
  :root[data-oshi="shisa"]:not([data-theme="light"]){--acc:#F2A25C;--acc-soft:#46301B;--on-acc:#2A1605;--bg:#1F1B17;--surface-2:#302822;--line:#423629}
}
:root[data-theme="dark"][data-oshi="chiikawa"]{--acc:#F095B0;--acc-soft:#4A2B37;--on-acc:#2A1720;--bg:#1F1A21;--surface-2:#322A35;--line:#443A46}
:root[data-theme="dark"][data-oshi="hachiware"]{--acc:#8FB2E8;--acc-soft:#243248;--on-acc:#101A2A;--bg:#191D24;--surface-2:#262D38;--line:#353E4C}
:root[data-theme="dark"][data-oshi="usagi"]{--acc:#E8C45A;--acc-soft:#3E3519;--on-acc:#221B08;--bg:#1E1C16;--surface-2:#2E2A20;--line:#3E3829}
:root[data-theme="dark"][data-oshi="momonga"]{--acc:#B79CEB;--acc-soft:#342A4A;--on-acc:#1C1430;--bg:#1C1A24;--surface-2:#2C2838;--line:#3B3548}
:root[data-theme="dark"][data-oshi="kuri"]{--acc:#D4A276;--acc-soft:#3D2E21;--on-acc:#23180E;--bg:#1E1A17;--surface-2:#2E2822;--line:#3F362D}
:root[data-theme="dark"][data-oshi="furuhon"]{--acc:#F08A74;--acc-soft:#48271F;--on-acc:#2A120C;--bg:#211A19;--surface-2:#322726;--line:#443432}
:root[data-theme="dark"][data-oshi="rakko"]{--acc:#BCA99A;--acc-soft:#37302B;--on-acc:#1D1713;--bg:#1C1A19;--surface-2:#2B2826;--line:#3A3633}
:root[data-theme="dark"][data-oshi="shisa"]{--acc:#F2A25C;--acc-soft:#46301B;--on-acc:#2A1605;--bg:#1F1B17;--surface-2:#302822;--line:#423629}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:15px;line-height:1.65;padding-inline:16px;padding-block:0 48px;-webkit-font-smoothing:antialiased}
.wrap{max-width:880px;margin:0 auto}
a{color:inherit}
button{font:inherit;color:inherit}
:focus-visible{outline:2.5px solid var(--acc);outline-offset:2px;border-radius:10px}
.num{font-variant-numeric:tabular-nums}

/* header */
.top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-block:22px 6px}
.brand{display:flex;align-items:center;gap:10px}
.brand svg{flex:none}
.brand h1{font-family:var(--display);font-weight:900;font-size:24px;letter-spacing:.02em;margin:0;line-height:1.1}
.brand p{margin:2px 0 0;font-size:12px;color:var(--ink-2)}
.today{font-family:var(--display);font-weight:700;font-size:13px;color:var(--ink-2);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:6px 12px;white-space:nowrap}
.pr{font-size:11.5px;color:var(--ink-3);margin:6px 0 14px}

/* summary */
.sum{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}
.sum button{all:unset;cursor:pointer;background:var(--surface);border-radius:var(--r);padding:12px 14px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:2px;border:1px solid transparent}
.sum button:hover{border-color:var(--line)}
.sum button:focus-visible{outline:2.5px solid var(--acc)}
.sum .k{font-size:12px;color:var(--ink-2);font-weight:500}
.sum .v{font-family:var(--display);font-weight:900;font-size:28px;line-height:1.1}
.sum .v small{font-size:13px;font-weight:700;margin-left:2px;color:var(--ink-2)}
.sum .s1 .v{color:var(--butter)} .sum .s2 .v{color:var(--pink)} .sum .s3 .v{color:var(--mint)}

/* tabs */
.tabs{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:var(--bg);padding-block:8px;display:flex;gap:6px}
.tabs button{flex:1;border:0;background:var(--surface-2);border-radius:999px;padding:9px 6px;font-family:var(--display);font-weight:700;font-size:14px;cursor:pointer;color:var(--ink-2)}
.tabs button[aria-selected="true"]{background:var(--acc);color:var(--on-acc)}
.tabs .cnt{display:inline-block;min-width:20px;margin-left:4px;padding:0 6px;border-radius:999px;background:var(--surface);color:var(--ink);font-size:11.5px;line-height:18px}

/* filters */
.filters{display:flex;flex-direction:column;gap:8px;margin:8px 0 14px}
.search{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:0 12px}
.search input{flex:1;border:0;background:transparent;padding:11px 0;font:inherit;color:var(--ink);outline:none;min-width:0}
.search:focus-within{border-color:var(--acc)}
.chips{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.chips::-webkit-scrollbar{display:none}
.chip{flex:none;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:5px 12px;font-size:13px;cursor:pointer;color:var(--ink-2);white-space:nowrap}
.chip[aria-pressed="true"]{background:var(--acc-soft);border-color:var(--acc);color:var(--ink);font-weight:700}
.row{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12.5px;color:var(--ink-2)}
.row select{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:4px 8px}

/* cards */
.list{display:flex;flex-direction:column;gap:12px}
.card{background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow);display:grid;grid-template-columns:68px 1fr;overflow:hidden}
.card.ended{opacity:.62}
.stamp{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;padding:10px 4px;background:var(--surface-2);font-family:var(--display);text-align:center;border-right:1.5px dashed var(--line)}
.stamp .m{font-size:12px;font-weight:700;color:var(--ink-2)}
.stamp .d{font-size:28px;font-weight:900;line-height:1}
.stamp .w{font-size:11px;color:var(--ink-3);margin-top:2px}
.stamp .fz{font-size:15px;font-weight:900;line-height:1.2}
.body{padding:12px 14px 12px;display:flex;flex-direction:column;gap:6px;min-width:0}
.meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.pill{font-size:11.5px;font-weight:700;border-radius:999px;padding:2px 9px;line-height:1.6;white-space:nowrap}
.st-ending{background:var(--pink-soft);color:var(--pink)}
.st-soon{background:var(--butter-soft);color:var(--butter)}
.st-on{background:var(--mint-soft);color:var(--mint)}
.st-upcoming{background:var(--sky-soft);color:var(--sky)}
.st-ended{background:var(--grey-soft);color:var(--ink-3)}
.cat{font-size:11.5px;color:var(--ink-2)}
.card h3{margin:0;font-family:var(--display);font-weight:700;font-size:16.5px;line-height:1.45;text-wrap:balance;overflow-wrap:anywhere}
.period{font-size:13px;color:var(--ink-2);display:flex;flex-wrap:wrap;gap:2px 10px}
.period b{color:var(--ink);font-weight:700}
.info{margin:0;font-size:13px;color:var(--ink-2);display:grid;grid-template-columns:auto 1fr;gap:1px 8px}
.info dt{color:var(--ink-3)}
.info dd{margin:0;overflow-wrap:anywhere}
.acts{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.btn{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:5px 11px;font-size:12.5px;font-weight:700;text-decoration:none;cursor:pointer;color:var(--ink)}
.btn:hover{border-color:var(--ink-3)}
.btn.buy{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.btn.buy .tag{font-size:10px;opacity:.7;font-weight:500}
.btn.want[aria-pressed="true"]{background:var(--acc);border-color:var(--acc);color:var(--on-acc)}
.btn.got[aria-pressed="true"]{background:var(--mint);border-color:var(--mint);color:var(--bg)}
.grpbox{display:flex;flex-direction:column;gap:12px}
.grp{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px;margin:14px 2px 0;font-family:var(--display);font-weight:900;font-size:17px;line-height:1.3}
.grpbox:first-child .grp,.list>.grp:first-child{margin-top:0}
.grp .grpn{font-size:12.5px;font-weight:700;color:var(--ink-2);background:var(--surface-2);border-radius:999px;padding:1px 9px}
.grp small{flex-basis:100%;font-family:var(--body);font-size:12px;font-weight:500;color:var(--ink-3)}
.empty{text-align:center;color:var(--ink-2);padding:40px 12px;background:var(--surface);border-radius:var(--r)}

.ad{border:1.5px dashed var(--line);border-radius:var(--r);padding:18px;text-align:center;color:var(--ink-3);font-size:12.5px;background:transparent}
.ad b{display:block;font-size:10.5px;letter-spacing:.12em;margin-bottom:2px}

/* calendar */
.calhead{display:flex;align-items:center;justify-content:space-between;margin:6px 0 10px}
.calhead h2{font-family:var(--display);font-weight:900;font-size:20px;margin:0}
.calhead button{border:1px solid var(--line);background:var(--surface);border-radius:999px;width:36px;height:36px;cursor:pointer;font-size:16px}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;background:var(--surface);border-radius:var(--r);padding:10px;box-shadow:var(--shadow)}
.cal .dow{text-align:center;font-size:11.5px;color:var(--ink-3);font-weight:700;padding-bottom:4px}
.cal .dow:first-child{color:var(--pink)} .cal .dow:last-child{color:var(--sky)}
.day{all:unset;box-sizing:border-box;cursor:pointer;min-height:58px;border-radius:12px;padding:5px 4px;display:flex;flex-direction:column;align-items:center;gap:3px;font-family:var(--display);font-weight:700;font-size:13.5px}
.day:hover{background:var(--surface-2)}
.day:focus-visible{outline:2.5px solid var(--acc)}
.day.out{visibility:hidden}
.day.today .n{background:var(--ink);color:var(--bg);border-radius:999px;width:24px;height:24px;display:grid;place-items:center}
.day.sel{background:var(--acc-soft)}
.marks{display:flex;flex-wrap:wrap;justify-content:center;gap:2px;max-width:40px}
.mk{width:7px;height:7px;border-radius:50%}
.mk.s{background:var(--mint)} .mk.e{border:1.8px solid var(--pink);box-sizing:border-box}
.legend{display:flex;gap:14px;font-size:12px;color:var(--ink-2);margin:10px 2px 16px;flex-wrap:wrap}
.legend span{display:inline-flex;align-items:center;gap:5px}
.agdate{font-family:var(--display);font-weight:900;font-size:15px;margin:10px 2px -4px;padding-top:8px;border-top:1px dashed var(--line);color:var(--ink)}
.agdate.is-today{color:var(--acc)}
.agtag{font-size:12px;font-weight:700;margin:0 2px -6px;color:var(--mint)}
.agtag.end{color:var(--pink)}
.dayhead{font-family:var(--display);font-weight:900;font-size:17px;margin:4px 2px 10px}


/* review (admin) */
.tabs button.rv{flex:0 0 auto;padding-inline:14px}
.rvintro{background:var(--surface);border-radius:var(--r);padding:14px 16px;font-size:13.5px;color:var(--ink-2);margin-bottom:12px;box-shadow:var(--shadow)}
.rvintro b{color:var(--ink)}
.cand{background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow);padding:14px 16px;display:flex;flex-direction:column;gap:10px;border:1.5px solid var(--line)}
.cand h3{margin:0;font-family:var(--display);font-size:16.5px;line-height:1.45;overflow-wrap:anywhere}
.why{font-size:13px;color:var(--ink-2);background:var(--surface-2);border-radius:12px;padding:8px 12px;overflow-wrap:anywhere}
.why a{color:var(--sky)}
.diff{font-size:12.5px;color:var(--ink-2)}
.diff b{color:var(--pink)}
.form{display:grid;grid-template-columns:1fr 1fr;gap:8px 10px}
.form label{display:flex;flex-direction:column;gap:3px;font-size:11.5px;color:var(--ink-3);font-weight:700;min-width:0}
.form .wide{grid-column:1/-1}
.form input,.form select,.form textarea{font:inherit;font-size:14px;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:7px 9px;width:100%;min-width:0}
.form textarea{resize:vertical;min-height:52px}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--acc)}
.cand .acts{margin-top:0}
.btn.ok{background:var(--mint);border-color:var(--mint);color:var(--bg)}
.btn.no{color:var(--ink-2)}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(16px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--bg);border-radius:999px;padding:9px 18px;font-size:13.5px;font-weight:700;z-index:20;max-width:calc(100% - 32px);text-align:center}
@media (max-width:520px){.form{grid-template-columns:1fr}}


/* 推しカラー選択 */
.topr{display:flex;align-items:center;gap:8px;flex:none}
.oshibtn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:5px 12px 5px 6px;font-family:var(--display);font-weight:700;font-size:13px;cursor:pointer;color:var(--ink)}
.dot{width:20px;height:20px;border-radius:50%;background:conic-gradient(var(--acc) 0 50%,var(--acc-soft) 0 100%);border:1.5px solid var(--surface);box-shadow:0 0 0 1px var(--line);flex:none}
.oshipanel{background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow);padding:14px;margin:6px 0 14px}
.oshipanel h2{font-family:var(--display);font-size:15px;margin:0 0 2px}
.oshipanel p{margin:0 0 10px;font-size:12.5px;color:var(--ink-2)}
.swatches{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.sw{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:5px;padding:10px 4px;border-radius:14px;border:1.5px solid transparent;font-size:12px;font-weight:700;text-align:center;color:var(--ink);line-height:1.3}
.sw:hover{background:var(--surface-2)}
.sw:focus-visible{outline:2.5px solid var(--acc)}
.sw[aria-pressed="true"]{border-color:var(--acc);background:var(--acc-soft)}
.sw{font-size:11.5px;white-space:nowrap;letter-spacing:-.02em}
.sw i{width:34px;height:34px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
@media (max-width:520px){.today{display:none}}


/* 日本／海外 */
.region{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.seg{display:grid;grid-template-columns:1fr 1fr;background:var(--surface-2);border-radius:999px;padding:4px;gap:4px}
.seg button{border:0;background:transparent;border-radius:999px;padding:8px 6px;font-family:var(--display);font-weight:700;font-size:14px;color:var(--ink-2);cursor:pointer}
.seg button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}
.chip:disabled{opacity:.4;cursor:default}
.osnote{margin:0;font-size:12.5px;color:var(--ink-2);background:var(--surface);border-radius:12px;padding:8px 12px}
.pill.rg{background:var(--surface-2);color:var(--ink);border:1px solid var(--line)}


/* これからの予定 */
.wk{margin:10px 2px -2px;font-family:var(--display);font-weight:900;font-size:16px;display:flex;align-items:center;gap:10px;color:var(--ink)}
.wk::after{content:"";flex:1;border-top:1.5px dashed var(--line)}
.list>.wk:first-child{margin-top:0}
.wk.is-today{color:var(--acc)}
.kd{margin-top:5px;font-size:11px;font-weight:900;line-height:1;padding:3px 7px;border-radius:999px;font-family:var(--body);letter-spacing:.04em}
.kd.start{background:var(--mint-soft);color:var(--mint)}
.kd.end{background:var(--pink-soft);color:var(--pink)}
.kd.since{background:var(--surface);color:var(--ink-2)}
.kd.ended{background:var(--grey-soft);color:var(--ink-3)}
.card.wanted{box-shadow:0 0 0 2px var(--acc),var(--shadow)}
.focusbar{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;background:var(--acc-soft);border-radius:12px;padding:8px 8px 8px 12px;font-size:13px;font-weight:700}
.row #count{line-height:1.5}


/* 楽天トラベル・報告 */
.trip{display:flex;flex-wrap:wrap;align-items:center;gap:2px 8px;text-decoration:none;color:var(--ink);background:var(--surface-2);border-radius:12px;padding:8px 12px;margin-top:2px;font-size:13px;font-weight:700}
.trip:hover{background:var(--acc-soft)}
.trip-k{font-size:11px;color:var(--ink-3);font-weight:700}
.trip .tag{font-size:10px;color:var(--ink-3);font-weight:500;margin-left:auto}
.repbtn{display:none;align-self:flex-start;border:0;background:none;padding:2px 0;font-size:11.5px;color:var(--ink-3);text-decoration:underline;cursor:pointer}
.can-report .repbtn{display:inline-block}
.rep{display:flex;flex-direction:column;gap:8px;background:var(--surface-2);border-radius:12px;padding:12px}
.rep-h{margin:0;font-size:13px;font-weight:700}
.rep-k{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:13px}
.rep textarea{font:inherit;font-size:14px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:8px;min-height:64px;resize:vertical}
.cand.done{opacity:.7}
.fix summary{cursor:pointer;font-size:13px;font-weight:700;color:var(--acc);margin-bottom:8px}

/* about */
.about{margin-top:36px;padding-top:20px;border-top:1px solid var(--line);font-size:12.5px;color:var(--ink-2);display:flex;flex-direction:column;gap:8px}
.about h2{font-family:var(--display);font-size:15px;color:var(--ink);margin:0}
.about p{margin:0;max-width:64ch}

@media (max-width:520px){
  .sum .v{font-size:24px}
  .card{grid-template-columns:58px 1fr}
  .stamp .d{font-size:24px}
  .day{min-height:48px;font-size:12.5px}
  .brand h1{font-size:21px}
}
@media (prefers-reduced-motion:no-preference){
  .card{animation:rise .35s ease both}
  @keyframes rise{from{transform:translateY(4px)}to{transform:none}}
}

/* ===== 本番サイト追加 ===== */
.card{grid-template-columns:68px 1fr auto}
.card h3 a{color:inherit;text-decoration:none}
.card h3 a:hover{text-decoration:underline;text-decoration-color:var(--acc)}
.pimg{display:none;padding:12px 12px 12px 0;align-self:start}
.pimg.on{display:block}
.pimg a{display:block;width:112px;border-radius:14px;overflow:hidden;background:#fff;border:1px solid var(--line);aspect-ratio:1}
.pimg img{width:100%;height:100%;object-fit:contain;display:block}
.pimg small{display:block;margin-top:4px;font-size:10.5px;color:var(--ink-3);text-align:center}
.rk:empty{display:none}
@media (max-width:520px){ .card{grid-template-columns:58px 1fr} .card .stamp{grid-row:1 / span 2} .pimg{grid-column:2;padding:0 14px 14px} .pimg a{width:120px} .pimg small{text-align:left} }
/* おすすめ */
.shophead{display:flex;flex-direction:column;gap:8px;margin:6px 0 12px}
.shophead .row select{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:5px 8px}
.shopnote{margin:0;font-size:12.5px;color:var(--ink-2)}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}
.prod{display:flex;flex-direction:column;background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden;text-decoration:none;color:var(--ink)}
.prod:hover{box-shadow:0 0 0 2px var(--acc),var(--shadow)}
.prod .ph{position:relative;flex:none;width:100%;padding-top:100%;height:0;background:#fff;overflow:hidden}
.prod .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block}
.prod .pb{padding:10px 12px 12px;display:flex;flex-direction:column;gap:4px;flex:1}
.prod .pn{font-size:13px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.prod .pp{font-family:var(--display);font-weight:900;font-size:17px;color:var(--pink);margin-top:auto}
.prod .ps{font-size:11.5px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.prod .pr2{font-size:11.5px;color:var(--butter)}
.prod .tag{font-size:10px;color:var(--ink-3)}
.more{margin:16px auto 0;display:block}
.credit{font-size:11.5px;color:var(--ink-3)}
.credit a{color:inherit}
.sitelinks{display:flex;flex-wrap:wrap;gap:4px 14px}
.sitelinks a{color:var(--ink-2)}
.alllinks{columns:2 240px;font-size:12.5px;padding-left:1.2em;margin:0}
.alllinks a{color:var(--ink-2)}
/* 詳細ページ */
.detail{background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow);padding:18px;display:flex;flex-direction:column;gap:10px}
.detail h1{font-family:var(--display);font-size:22px;line-height:1.4;margin:0;text-wrap:balance}
.crumb{font-size:12.5px;color:var(--ink-2);margin:6px 0 12px}
.crumb a{color:inherit}
.doc{background:var(--surface);border-radius:var(--r);padding:18px 20px;line-height:1.9}
.doc h1{font-family:var(--display);font-size:22px;margin-top:0}
.doc h2{font-family:var(--display);font-size:17px;margin:22px 0 6px}

/* ---- ホーム画面に追加 ---- */
.is-app [data-install]{display:none}
.ins-bar{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:30;display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:10px 8px 10px 10px;box-shadow:0 12px 30px -12px rgba(58,51,70,.35);max-width:560px;margin:0 auto;animation:insUp .35s ease-out}
.ins-bar .appicon{width:42px;height:42px;border-radius:11px;flex:none}
.ins-bar p{margin:0;flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.35}
.ins-bar p b{font-family:var(--display);font-size:14px;color:var(--ink)}
.ins-bar p span{font-size:11.5px;color:var(--ink-2)}
.ins-open-btn{flex:none;background:var(--acc);color:var(--on-acc);border:0;border-radius:999px;padding:9px 13px;font:700 13px var(--body);cursor:pointer}
.ins-x{flex:none;width:34px;height:34px;border:0;background:transparent;color:var(--ink-3);font-size:20px;line-height:1;border-radius:50%;cursor:pointer}
.ins-sheet{position:fixed;inset:0;z-index:40;display:flex;align-items:flex-end;justify-content:center}
.ins-sheet[hidden]{display:none}
.ins-back{position:absolute;inset:0;background:rgba(30,24,36,.45)}
.ins-panel{position:relative;background:var(--surface);color:var(--ink);width:100%;max-width:520px;border-radius:24px 24px 0 0;padding:18px 18px calc(22px + env(safe-area-inset-bottom,0px));max-height:88vh;overflow:auto;animation:insUp .3s ease-out}
@media (min-width:640px){.ins-sheet{align-items:center}.ins-panel{border-radius:24px}}
.ins-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.ins-head .appicon{width:52px;height:52px;border-radius:13px}
.ins-head h2{font-family:var(--display);font-size:18px;margin:0}
.ins-head p{margin:0;font-size:12.5px;color:var(--ink-2)}
.ins-head .ins-x{margin-left:auto}
.ins-lead{font-size:14px;line-height:1.7;margin:0 0 12px}
.ins-note{font-size:13px;line-height:1.7;background:var(--acc-soft);border-radius:12px;padding:10px 12px;margin:0 0 12px}
.ins-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.ins-steps li{display:flex;gap:12px;align-items:center;background:var(--surface-2);border-radius:14px;padding:12px}
.ins-steps li>b{flex:none;width:40px;height:40px;border-radius:12px;background:var(--surface);color:var(--acc);display:grid;place-items:center;font:900 17px var(--display);border:1px solid var(--line)}
.ins-steps li>span{font-size:14px;line-height:1.6;display:block}
.ins-steps strong{color:var(--ink);font-weight:700}
.ins-steps small{display:block;font-size:12px;color:var(--ink-2);margin-top:3px}
.ii{width:22px;height:22px}
.ins-btn{display:block;width:100%;text-align:center;background:var(--acc);color:var(--on-acc);border:0;border-radius:14px;padding:14px;font:700 15px var(--body);text-decoration:none;cursor:pointer;margin-top:4px}
.ins-open{overflow:hidden}
@keyframes insUp{from{transform:translateY(16px);opacity:0}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){.ins-bar,.ins-panel{animation:none}}

@media (max-width:430px){.tabs{gap:4px}.tabs button{font-size:13px;padding:9px 2px;white-space:nowrap;letter-spacing:-.02em}.tabs .cnt{min-width:16px;margin-left:2px;padding:0 4px}}

/* ホーム画面に追加：目立つカード */
.ins-card{display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,var(--acc-soft),var(--surface));border:1.5px solid var(--acc);border-radius:18px;padding:14px;margin:4px 0 6px;color:var(--ink)}
.ins-card .appicon{width:48px;height:48px;border-radius:12px;flex:none;box-shadow:0 4px 10px -6px rgba(58,51,70,.45)}
.ins-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;line-height:1.45}
.ins-txt b{font-family:var(--display);font-weight:900;font-size:15px;color:var(--ink)}
.ins-txt span{font-size:12.5px;color:var(--ink-2)}
.ins-cta{flex:none;background:var(--acc);color:var(--on-acc);border:0;border-radius:999px;padding:10px 16px;font:700 13.5px var(--body);cursor:pointer;box-shadow:0 4px 12px -6px var(--acc)}
.ins-cta:active{transform:scale(.97)}
.about .ins-card{margin-bottom:14px}
.ins-top{margin:10px 0 2px;padding:10px 6px 10px 12px;border-width:1px}
.ins-top .appicon{width:40px;height:40px;border-radius:10px}
.ins-top .ins-txt b{font-size:14px}
.ins-mine{margin-bottom:12px}
.ins-off .ins-top,.is-app [data-ins-card]{display:none}
@media (max-width:420px){
  .ins-card:not(.ins-top) {flex-wrap:wrap}
  .ins-card:not(.ins-top) .ins-cta{width:100%;padding:12px}
  .ins-top .ins-txt span{display:none}
}

/* 一覧に戻る */
.backall{display:block;width:100%;margin:16px 0 4px;padding:13px;font-weight:700;background:var(--acc-soft);color:var(--ink);border:1.5px solid var(--acc);border-radius:14px}
/* おすすめのキーワード検索 */
#shopSearch{margin:10px 0 8px}
#shopSearch input{flex:1;min-width:0}
#shopSearch .sbtn{flex:none;border:0;background:var(--acc);color:var(--on-acc);border-radius:999px;padding:6px 14px;font:700 13px var(--body);cursor:pointer}
/* サイトへのご意見 */
.fbbox{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:10px 14px}
.fbbox summary{cursor:pointer;font-weight:700;color:var(--ink);font-size:13.5px}
.sitefb{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.sitefb textarea{min-height:90px;border:1px solid var(--line);border-radius:10px;padding:8px 10px;font:inherit;font-size:14px;background:var(--bg);color:var(--ink);resize:vertical}
.sitefb .btn{align-self:flex-start}
.sitefb .btn.ok{background:var(--acc);color:var(--on-acc)}

/* ---- ニュース ---- */
.nlist{display:flex;flex-direction:column;gap:12px;margin-top:10px}
.ncard{background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow);padding:14px 16px;display:flex;flex-direction:column;gap:6px}
.nmeta{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-3)}
.ntag{font-size:11.5px;font-weight:700;border-radius:999px;padding:2px 9px;background:var(--acc-soft);color:var(--ink)}
.ntag.t-event{background:var(--mint-soft)}.ntag.t-overseas{background:var(--sky-soft)}.ntag.t-anime,.ntag.t-book{background:var(--butter-soft)}.ntag.t-topic{background:var(--grey-soft)}
.nnew{font-size:10.5px;font-weight:900;color:var(--on-acc);background:var(--acc);border-radius:6px;padding:1px 6px;letter-spacing:.04em}
.ncard h3{margin:0;font-family:var(--display);font-size:16px;line-height:1.45}
.ncard h3 a{color:var(--ink);text-decoration:none}
.ncard p{margin:0;font-size:13.5px;line-height:1.7;color:var(--ink-2)}
.nitem{display:flex;align-items:center;gap:6px;flex-wrap:wrap;background:var(--surface-2);border-radius:12px;padding:8px 10px;margin-top:2px}
.nwhen{font-size:13px;font-weight:700;margin-right:auto}
.nitem .btn{padding:6px 12px;font-size:12.5px}
.nmark.on{background:var(--acc);color:var(--on-acc);border-color:var(--acc)}
.nsrc{font-size:12.5px;color:var(--ink-2);align-self:flex-start}
.newspeek{background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow);padding:12px 14px;margin:6px 0 12px}
.peekhead{display:flex;align-items:center;justify-content:space-between}
.peekhead h2{margin:0;font-family:var(--display);font-size:15px}
.peekmore{border:0;background:none;color:var(--acc);font:700 13px var(--body);cursor:pointer;padding:4px 0}
.newspeek ul{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column}
.newspeek li+li{border-top:1px dashed var(--line)}
.newspeek li button{display:flex;align-items:baseline;gap:10px;width:100%;text-align:left;border:0;background:none;padding:8px 0;font:inherit;color:var(--ink);cursor:pointer}
.newspeek time{flex:none;font-size:12px;color:var(--ink-3);min-width:4.2em}
.newspeek li span{font-size:13.5px;line-height:1.5;flex:1}
.ndot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--acc);align-self:center}
/* タブ5つ：スマホで1行に収める */
@media (max-width:430px){.tabs button{font-size:12px;padding:9px 1px;letter-spacing:-.04em}.tabs .cnt{font-size:10px;line-height:15px;min-width:14px;padding:0 3px;margin-left:1px}}
@media (max-width:360px){.tabs button{font-size:11px}}

/* 上部をすっきり（スマホ） */
@media (max-width:520px){
  .top{padding-block:14px 2px}
  .pr{font-size:10.5px;margin:2px 0 10px;line-height:1.5}
  .region{margin-bottom:10px}
  .sum{gap:8px;margin-bottom:10px}
  .sum button{padding:8px 10px;border-radius:14px}
  .sum .k{font-size:11px;white-space:nowrap}
  .sum .v{font-size:22px}
  .newspeek{padding:10px 12px;margin:4px 0 10px}
  .newspeek li button{padding:6px 0}
}
/* 予約ボタン */
.btn.buy.pre{background:var(--butter);border-color:var(--butter);color:#fff}
/* 共有ボタン（詳細ページ） */
.share{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 4px;align-items:center}
.share .k{font-size:12.5px;color:var(--ink-2);font-weight:700}
.share a,.share button{font-size:13px}

/* 楽天の人気グッズ（一覧の途中） */
.popstrip{background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow);padding:12px 0 10px 14px;margin:4px 0}
.popstrip:empty{display:none}
.pophead{display:flex;align-items:center;justify-content:space-between;padding-right:14px}
.pophead h3{margin:0;font-family:var(--display);font-size:15px}
.poprow{display:flex;gap:10px;overflow-x:auto;scrollbar-width:none;padding:8px 14px 4px 0;scroll-snap-type:x mandatory}
.poprow::-webkit-scrollbar{display:none}
.popc{flex:none;width:118px;display:flex;flex-direction:column;gap:3px;text-decoration:none;color:var(--ink);scroll-snap-align:start}
.popc img{width:118px;height:118px;object-fit:contain;background:#fff;border-radius:12px;border:1px solid var(--line)}
.popc .pn{font-size:11.5px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.popc .pp{font-family:var(--display);font-weight:900;font-size:14px;color:var(--pink)}
/* セールの帯 */
.campbar{display:flex;align-items:center;gap:4px 10px;flex-wrap:wrap;background:linear-gradient(90deg,#BF0000,#E0453C);color:#fff;border-radius:14px;padding:10px 14px;margin:0 0 10px;text-decoration:none;font-size:12.5px}
.campbar b{font-size:14px}
.campbar .tag{margin-left:auto;color:#fff;opacity:.8}
.campbar.small{background:var(--surface);color:var(--ink);border:1.5px solid #BF0000}
.campbar.small .tag{color:var(--ink-3)}
.campbar .w{font-weight:700;white-space:nowrap}
.campbar .nt{flex-basis:100%;order:3;font-size:11.5px;opacity:.9}
.campbar .tag{order:2}
@media (max-width:520px){.campbar{padding:8px 12px;flex-wrap:nowrap;gap:8px}.campbar b{font-size:13px;white-space:nowrap}.campbar .w{font-size:11.5px}.campbar .nt{display:none}.campbar .tag{flex:none}}

/* 通知カード（マイリスト） */
.pushcard{background:var(--surface);border:1.5px solid var(--acc);border-radius:18px;padding:14px;margin:4px 0 12px;display:flex;flex-direction:column;gap:6px}
.pushcard b{font-family:var(--display);font-size:15px}
.pushcard p{margin:0;font-size:13px;line-height:1.65;color:var(--ink-2)}
.pushcard .acts{display:flex;gap:8px;flex-wrap:wrap}
.pushcard .btn.ok{background:var(--acc);color:var(--on-acc);border-color:var(--acc);align-self:flex-start;padding:10px 18px;font-weight:700}

/* カードのボタン：「ほしい」と「楽天」を主役に、ほかは控えめな文字リンクに */
.acts.main{gap:8px;margin-top:8px}
.acts.main .btn{padding:8px 16px;font-size:13.5px}
.acts.main .btn.want{border:1.5px solid var(--acc);color:var(--acc);background:var(--surface)}
.acts.main .btn.want[aria-pressed="true"]{background:var(--acc);color:var(--on-acc)}
.acts.main:empty{display:none}
.acts.sub{gap:2px 14px;margin-top:6px;align-items:center}
.lnk{border:0;background:none;padding:2px 0;font:500 12.5px var(--body);color:var(--ink-2);text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px;cursor:pointer}
.lnk:hover{color:var(--ink)}
.lnk.got[aria-pressed="true"]{color:var(--mint);font-weight:700;text-decoration:none}

/* 季節のテーマ（キャラクターは使わない、控えめな背景模様） */
html[data-season="halloween"] body{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220' viewBox='0 0 220 220'%3E%3Cg fill-opacity='.16'%3E%3Cg transform='translate%2830 40%29'%3E%3Cellipse cx='14' cy='14' rx='14' ry='11' fill='%23E8893A'/%3E%3Crect x='12' y='0' width='4' height='6' rx='2' fill='%235B8C3A'/%3E%3C/g%3E%3Cg transform='translate%28150 150%29 scale%28.8%29'%3E%3Cellipse cx='14' cy='14' rx='14' ry='11' fill='%23E8893A'/%3E%3Crect x='12' y='0' width='4' height='6' rx='2' fill='%235B8C3A'/%3E%3C/g%3E%3Cpath d='M160 40l3 7 7 1-5 5 1 7-6-3-6 3 1-7-5-5 7-1z' fill='%23B98AD6'/%3E%3Cpath d='M60 160l2 5 5 1-4 3 1 5-4-2-4 2 1-5-4-3 5-1z' fill='%23E8B93A'/%3E%3C/g%3E%3C/svg%3E")}
html[data-season="xmas"] body{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200' viewBox='0 0 200 200'%3E%3Cg fill-opacity='.18'%3E%3Ccircle cx='30' cy='40' r='5' fill='%239DBDEB'/%3E%3Ccircle cx='140' cy='30' r='3' fill='%239DBDEB'/%3E%3Ccircle cx='90' cy='120' r='4' fill='%239DBDEB'/%3E%3Ccircle cx='170' cy='150' r='6' fill='%239DBDEB'/%3E%3Cpath d='M50 150l3 7 7 1-5 5 1 7-6-3-6 3 1-7-5-5 7-1z' fill='%23E8B93A'/%3E%3Cpath d='M150 90l2 5 5 1-4 3 1 5-4-2-4 2 1-5-4-3 5-1z' fill='%23E27496'/%3E%3C/g%3E%3C/svg%3E")}
html[data-season="newyear"] body{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200' viewBox='0 0 200 200'%3E%3Cg fill-opacity='.16' fill='%23E27496'%3E%3Cg transform='translate%2840 50%29'%3E%3Ccircle cx='0' cy='-6' r='5'/%3E%3Ccircle cx='6' cy='-2' r='5'/%3E%3Ccircle cx='4' cy='5' r='5'/%3E%3Ccircle cx='-4' cy='5' r='5'/%3E%3Ccircle cx='-6' cy='-2' r='5'/%3E%3C/g%3E%3Cg transform='translate%28150 140%29 scale%28.7%29'%3E%3Ccircle cx='0' cy='-6' r='5'/%3E%3Ccircle cx='6' cy='-2' r='5'/%3E%3Ccircle cx='4' cy='5' r='5'/%3E%3Ccircle cx='-4' cy='5' r='5'/%3E%3Ccircle cx='-6' cy='-2' r='5'/%3E%3C/g%3E%3C/g%3E%3Cpath d='M140 40l3 7 7 1-5 5 1 7-6-3-6 3 1-7-5-5 7-1z' fill='%23E8B93A' fill-opacity='.2'/%3E%3C/svg%3E")}
html[data-season="halloween"] #today::after{content:" 🎃"}
html[data-season="xmas"] #today::after{content:" 🎄"}
html[data-season="newyear"] #today::after{content:" 🎍"}
.has-push .ins-mine{display:none}

/* 作り手へのリスペクト・公式リンク集 */
.respect{border-left:3px solid var(--acc);padding:4px 0 4px 12px;display:flex;flex-direction:column;gap:6px}
.respect p{margin:0;font-size:12.5px;line-height:1.75;color:var(--ink-2)}
.respect a{font-size:13px;font-weight:700;color:var(--ink)}
.offlist{list-style:none;margin:8px 0 18px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px}
.offlist a{display:flex;flex-direction:column;gap:2px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:10px 14px;text-decoration:none;color:var(--ink)}
.offlist a:hover{border-color:var(--acc)}
.offlist b{font-size:14px}
.offlist span{font-size:12px;color:var(--ink-2)}

/* 予約・受注 */
.rsvbox{border:1.5px solid var(--acc);background:var(--acc-soft);border-radius:14px;padding:10px 12px;display:flex;flex-direction:column;gap:8px;margin-top:4px}
.rsvbox.before{border-color:var(--butter);background:var(--butter-soft)}
.rsvh{font-weight:900;font-family:var(--display);font-size:14.5px;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}
.rsvh small{font-family:var(--body);font-weight:700;font-size:12.5px;color:var(--ink-2)}
.rsvbtns{display:flex;flex-wrap:wrap;gap:6px}
.btn.rsvbtn{background:var(--acc);border-color:var(--acc);color:var(--on-acc);padding:9px 14px;font-size:13.5px}
.rsvbox.before .btn.rsvbtn{background:var(--surface);color:var(--ink);border-color:var(--butter)}
.rsvstrip{display:flex;align-items:center;gap:10px;width:100%;border:0;background:var(--acc);background:linear-gradient(135deg,var(--acc),color-mix(in srgb,var(--acc) 80%,#000));color:var(--on-acc);border-radius:16px;padding:12px 14px;margin:2px 0 12px;font:500 13px var(--body);cursor:pointer;text-align:left;box-shadow:0 8px 18px -10px var(--acc)}
.rsvstrip .rs-ic{flex:none;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.25);display:grid;place-items:center;font-size:17px;position:relative}
.rsvstrip .rs-ic::after{content:"";position:absolute;top:1px;right:1px;width:9px;height:9px;border-radius:50%;background:#fff;box-shadow:0 0 0 2px var(--acc);animation:rsvPulse 1.8s ease-in-out infinite}
.rsvstrip .rs-tx{display:flex;flex-direction:column;min-width:0;flex:1;line-height:1.45}
.rsvstrip .rs-tx b{font-family:var(--display);font-size:15px}
.rsvstrip .rs-tx small{font-size:11.5px;opacity:.92;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rsvstrip .rs-go{flex:none;font-weight:700;font-size:13px;background:rgba(255,255,255,.22);border-radius:999px;padding:5px 10px}
@keyframes rsvPulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(.7);opacity:.55}}
@media (prefers-reduced-motion:reduce){.rsvstrip .rs-ic::after{animation:none}}
.btn.rsvbtn.so{background:var(--grey-soft);border-color:var(--line);color:var(--ink-3);text-decoration:line-through;cursor:default}
.rsvbox.closed{border-color:var(--line);background:var(--grey-soft)}
.pchk{display:flex;gap:8px;align-items:flex-start;font-size:13px;line-height:1.6;color:var(--ink-2)}
.pchk input{margin-top:4px;accent-color:var(--acc)}
.pch{display:flex;flex-direction:column;gap:6px;margin:2px 0 4px 26px}
.pch span{font-size:12px;color:var(--ink-2)}
.pch div{display:flex;flex-wrap:wrap;gap:6px}
.pch .chip{font-size:12px;padding:4px 10px}
.pwhat{list-style:none;margin:2px 0 4px;padding:0;display:flex;flex-direction:column;gap:6px}
.pwhat li{font-size:12.5px;line-height:1.6;color:var(--ink-2);background:var(--surface-2);border-radius:10px;padding:7px 10px}
.pwhat li b{display:block;color:var(--ink);font-size:13px}
.pwd summary{cursor:pointer;font-size:12.5px;color:var(--ink-2);font-weight:700;margin:2px 0}
.pchk span{display:flex;flex-direction:column}
.pchk small{font-size:11.5px;color:var(--ink-3)}

/* サイト名の下の説明文は、区切りのよいところで折り返す */
.tag2 span{display:inline-block}
@media (max-width:520px){.top .brand{min-width:0;flex:1}.top .brand > div{min-width:0}.topr{flex:none}.oshibtn{white-space:nowrap}.brand p{font-size:11.5px;line-height:1.45}}
#focusBar,#list,#view-mine,#view-list,#view-news,#view-shop{scroll-margin-top:64px}
.list > [data-camp] .campbar{margin:0}

/* 推しカラーのパネル：閉じ方をはっきり */
.oshihead{display:flex;align-items:center;justify-content:space-between;gap:8px}
.oshix{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:4px 12px;font:700 12.5px var(--body);color:var(--ink-2);cursor:pointer}
.oshiok{display:block;width:100%;margin-top:12px;padding:11px;font-size:14px;background:var(--acc);border-color:var(--acc);color:var(--on-acc)}
/* 遠征のホテルは1行のひかえめなリンクに（カードを短く） */
.trip{display:flex;flex-wrap:nowrap;align-items:center;gap:6px;background:none;border:1px dashed var(--line);border-radius:999px;padding:5px 12px;margin-top:4px;font-size:12px;font-weight:700;color:var(--ink-2);align-self:flex-start;max-width:100%}
.trip-k{display:none}
.trip-t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.trip-t::before{content:"🏨 "}
.trip .tag{margin-left:2px;flex:none}
.detail .trip{border-style:solid;background:var(--surface-2);font-size:13px;padding:8px 14px}

/* はじめての方へ */
.intro{display:flex;align-items:flex-start;gap:6px;background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--acc);border-radius:12px;padding:8px 6px 8px 12px;margin:4px 0 10px}
.intro p{margin:0;font-size:12.5px;line-height:1.65;color:var(--ink-2);flex:1}
.intro b{display:block;color:var(--ink);font-size:13px}
.intro .ins-x{width:30px;height:30px;font-size:18px}
/* 季節のおすすめ */
.popstrip.season{margin:16px 0 4px}
.popstrip.season:empty{display:none}
.drep{margin:10px 0 4px}
.drep summary{cursor:pointer;font-size:12.5px;color:var(--ink-3);text-decoration:underline}
.drepf{display:flex;flex-direction:column;gap:8px;margin-top:8px;background:var(--surface-2);border-radius:12px;padding:12px}
.drepf .rep-k{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:13px}
.drepf textarea{min-height:70px;border:1px solid var(--line);border-radius:10px;padding:8px;font:inherit;font-size:14px;background:var(--surface);color:var(--ink)}
.drepf .btn{align-self:flex-start}
.drepmsg{font-size:12.5px;color:var(--ink-2)}
.has-intro .ins-top{display:none}   /* 初めての案内を出している間は、ホーム画面に追加の案内は出さない */
.detail .trip-t{white-space:normal}

/* 楽天の商品の枠は、ニュースや予定のカードと見分けがつくように、うっすら色をつける */
.popstrip{background:linear-gradient(180deg,var(--acc-soft),var(--surface) 70%);border:1px solid var(--line);box-shadow:none}
.pophead h3{display:flex;flex-direction:column;gap:3px}
.prtag{align-self:flex-start;font-family:var(--body);font-size:10.5px;font-weight:700;color:var(--ink-2);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:1px 8px;letter-spacing:.02em}
.popc img{background:#fff}
.popstrip > p.tag{font-size:11px;color:var(--ink-3)}
.nbtns{display:flex;gap:6px;flex-wrap:wrap}
@media (max-width:420px){.nitem{flex-direction:column;align-items:flex-start}.nwhen{margin-right:0}}

/* 公式Xの投稿（画像）を押したときだけ表示 */
.xbox{margin:10px 0 4px}
.xbtn{display:flex;align-items:center;gap:10px;width:100%;text-align:left;font:inherit;color:var(--ink);background:var(--surface-2);border:1px solid var(--line);border-radius:14px;padding:10px 12px;cursor:pointer}
.xbtn svg{flex:none;color:var(--acc)}
.xbtn .xt{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.35}
.xbtn .xl{font-size:14px}
.xbtn small{font-size:11.5px;color:var(--ink-2);margin-top:2px}
.xbtn .xchev{flex:none;color:var(--ink-2);transition:transform .2s}
.xbox.open .xchev{transform:rotate(180deg)}
.xframe{display:none}
.xbox.open .xframe{display:block;margin-top:8px;min-height:120px}
.xframe .twitter-tweet{margin:0 auto!important}
.xframe iframe{max-width:100%!important}
.xwait{font-size:13px;color:var(--ink-2);text-align:center;padding:16px 8px;margin:0}
.xwait a{color:var(--acc);margin-left:4px}

.rkmore{font-size:12.5px;color:var(--ink-2);align-self:center;margin-left:2px}

/* お問い合わせ */
.cform{display:grid;gap:12px;margin:14px 0}
.cform label{display:grid;gap:4px;font-size:13.5px;font-weight:700;color:var(--ink)}
.cform input,.cform select,.cform textarea{font:inherit;font-size:16px;font-weight:400;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--bg);color:var(--ink);width:100%}
.cform .hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.cform .cbtn{text-align:center;justify-content:center;background:var(--acc);color:var(--on-acc);border:none;font-weight:700;padding:12px;border-radius:12px;font-size:15px}
.cmsg{margin:0;font-size:13.5px;min-height:1em}

/* まとめページ（月別・地域別） */
.seo .lead{font-size:14.5px}
.seo h2{border-left:4px solid var(--acc);padding-left:10px}
.sllist{list-style:none;padding:0;margin:8px 0 14px;display:grid;gap:8px}
.sl{background:var(--surface-2);border-radius:12px;padding:10px 12px;display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;line-height:1.5}
.sl>a.slmain{display:flex;flex-direction:column;flex:1 1 220px;min-width:0;text-decoration:none;color:var(--ink)}
.slw{font-size:12px;color:var(--ink-2);font-weight:700}
.slt{font-weight:700;font-size:14.5px}
.sls{font-size:11px;font-weight:700;border-radius:99px;padding:2px 8px;background:var(--surface);color:var(--ink-2);flex:none}
.sls.s-now{background:var(--acc);color:var(--on-acc)}
.sls.s-soon{background:var(--acc-soft);color:var(--ink)}
.slm{flex:1 1 100%;font-size:12px;color:var(--ink-2)}
.slbuy{font-size:12px;font-weight:700;color:var(--acc);text-decoration:none;display:inline-flex;align-items:center;gap:4px}
.slnav{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;margin:18px 0 10px}
.slmonths{list-style:none;padding:0;margin:8px 0 14px;display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}
.slmonths a{display:flex;justify-content:space-between;align-items:center;background:var(--surface-2);border-radius:12px;padding:10px 12px;text-decoration:none;color:var(--ink);font-weight:700}
.slmonths a.cur{outline:2px solid var(--acc)}
.slmonths small{color:var(--ink-2);font-weight:400}
.slrel{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;font-size:13px;margin:10px 2px}
.slrel span{color:var(--ink-2);font-weight:700}
.slrel a{color:var(--acc)}
.slbuy{flex:none;white-space:nowrap;margin-left:auto}
.slbuy .tag{display:inline-block;margin:0 0 0 4px}
.lnk.yh .tag{font-size:9.5px;opacity:.7;margin-left:3px}
