/* 共通メニュー（三本線）。site-menu.js が body 直下に差し込む。React のヘッダーの外なので hydration で消えない */
.sm-btn{position:fixed;top:14px;right:14px;z-index:1500;width:44px;height:44px;padding:0;margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;cursor:pointer;
  background:rgba(18,37,28,.9);border:1px solid rgba(201,169,97,.55);border-radius:50%;color:#e3cd9a;-webkit-tap-highlight-color:transparent;
  box-shadow:0 2px 12px rgba(0,0,0,.25);transition:background .25s,border-color .25s}
.sm-btn:hover{background:#12251c;border-color:#c9a961}
.sm-btn:focus-visible,.sm-close:focus-visible,.sm-panel a:focus-visible{outline:2px solid #e3cd9a;outline-offset:2px}
.sm-btn i{display:block;width:20px;height:1.5px;background:currentColor;border-radius:1px;transition:transform .25s,opacity .25s}
.sm-btn[aria-expanded="true"] i:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.sm-btn[aria-expanded="true"] i:nth-child(2){opacity:0}
.sm-btn[aria-expanded="true"] i:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
/* 既存のスマホ用ハンバーガー（React 管理・動かない）は隠す。ヘッダー右端は共通ボタンの分だけ空ける */
html.sm-ready button[aria-controls="mobile-nav"]{display:none!important}
html.sm-ready header.fixed>div{padding-right:72px!important}
html.sm-ready header.site{padding-right:72px!important}
.sm-overlay{position:fixed;inset:0;z-index:1990;background:rgba(10,20,15,.5);opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}
.sm-overlay.sm-open{opacity:1;visibility:visible}
.sm-panel{position:fixed;top:0;right:0;bottom:0;z-index:2000;width:min(400px,100vw);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;
  background:#12251c;color:#f5f0e6;padding:20px 24px 40px;transform:translateX(100%);visibility:hidden;transition:transform .35s ease,visibility .35s;
  box-shadow:-8px 0 32px rgba(0,0,0,.35);font-family:"Helvetica Neue","Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;line-height:1.6;text-align:left}
.sm-panel.sm-open{transform:none;visibility:visible}
.sm-top{display:flex;align-items:center;justify-content:space-between;min-height:44px}
.sm-brand{font-family:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;font-size:18px;letter-spacing:.22em;color:#fff}
.sm-close{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid rgba(201,169,97,.55);border-radius:50%;color:#e3cd9a;cursor:pointer;font-size:0}
.sm-close svg{width:18px;height:18px;stroke:currentColor;stroke-width:1.6;fill:none;stroke-linecap:round}
.sm-h{margin:26px 0 8px;font-size:11px;letter-spacing:.3em;color:#c9a961;text-transform:uppercase;padding-bottom:8px;border-bottom:1px solid rgba(201,169,97,.3)}
.sm-panel ul{list-style:none;margin:0;padding:0}
.sm-panel li a{display:flex;align-items:baseline;gap:12px;padding:11px 2px;min-height:44px;color:#f5f0e6;text-decoration:none;font-size:15px;letter-spacing:.06em;border-bottom:1px solid rgba(245,240,230,.08);transition:color .2s}
.sm-panel li a:hover{color:#e3cd9a}
.sm-panel li a b{flex:none;width:1.6em;font-weight:400;font-size:11px;letter-spacing:.1em;color:#c9a961}
.sm-panel li a[aria-current="page"]{color:#e3cd9a}
.sm-langs{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.sm-langs a{padding:8px 16px;min-height:40px;display:inline-flex;align-items:center;font-size:13px;letter-spacing:.1em;color:#f5f0e6;text-decoration:none;border:1px solid rgba(201,169,97,.4);border-radius:2px}
.sm-langs a[aria-current="true"]{background:#c9a961;border-color:#c9a961;color:#12251c}
html.sm-lock,html.sm-lock body{overflow:hidden}
@media (max-width:420px){.sm-panel{padding:16px 18px 40px}.sm-btn{right:12px}html.sm-ready header.fixed>div,html.sm-ready header.site{padding-right:64px!important}}
@media (prefers-reduced-motion:reduce){.sm-panel,.sm-overlay,.sm-btn i{transition:none}}
