/* 右下の「目次」と「上に戻る」ボタン（サテライト共通）。
   下固定バーがあるページは <body class="has-dock"> にすると、その上に出る。 */
.fab{position:fixed;right:12px;bottom:16px;z-index:40;display:flex;align-items:flex-end;gap:10px;opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .2s,transform .2s}
.fab.show{opacity:1;transform:none;pointer-events:auto}
body.has-dock .fab{bottom:76px}
.totop{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#fbefd2,var(--gd) 60%,var(--gdd));border:3px solid #fff;box-shadow:0 3px 0 var(--pkd),0 6px 14px rgba(0,0,0,.35)}
.totop svg{width:26px;height:26px}
.ftoc{position:relative}
.ftoc-btn{display:flex;align-items:center;gap:5px;height:46px;padding:0 16px;border:3px solid #fff;border-radius:999px;cursor:pointer;color:#fff;font:inherit;font-size:14px;font-weight:800;
 background:linear-gradient(180deg,var(--pk2),var(--pk));box-shadow:0 3px 0 var(--pkd),0 6px 14px rgba(0,0,0,.35)}
.ftoc-btn svg{width:20px;height:20px}
.ftoc-btn[aria-expanded=true]{background:linear-gradient(180deg,var(--bk2),var(--bk));color:var(--gd2)}
.ftoc-list{position:absolute;right:0;bottom:56px;width:min(300px,calc(100vw - 24px));max-height:min(70vh,520px);overflow:auto;
 background:var(--bk);border:3px solid var(--gd);border-radius:12px;padding:6px;box-shadow:0 10px 30px rgba(0,0,0,.45)}
.ftoc-list[hidden]{display:none}
.ftoc-list .hd{color:var(--gd2);font-size:12px;font-weight:800;padding:4px 8px 6px;border-bottom:1px solid #4a3c35;margin-bottom:4px}
.ftoc-list a{display:block;color:#fff;text-decoration:none;font-size:14px;font-weight:700;padding:8px 10px;border-radius:6px;line-height:1.35}
.ftoc-list a.sub{font-size:13px;font-weight:500;padding-left:24px;color:#e8dcc6}
.ftoc-list a.sub:before{content:"♛ ";color:var(--gd);font-size:11px}
.ftoc-list a:hover,.ftoc-list a.cur{background:var(--pk);color:#fff}
