/* 共通メニュー v1（2026-10-23）— 統合プレビューの全12ページに sitewide_build_v0_3.py が読み込ませる。
   既存4ページの見た目に影響しないよう、メニュー・プレビュー表示・TOPの入口欄・章間リンクの補助だけを持つ。
   JavaScript 不要。メニューは details/summary のネイティブな開閉のみ。インラインstyle属性は使わない。 */

/* ---------- 統合プレビューの表示 ---------- */
.preview-bar{margin:0;padding:6px 16px;background:#55463e;color:#fff7ed;font-size:12.5px;line-height:1.6;text-align:center}
.preview-bar strong{color:#fff}

/* ---------- 共通ヘッダー・メニュー ---------- */
.sw-header .header-inner{gap:16px}
.sw-actions{display:flex;align-items:center;gap:10px}
.sw-check{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border-radius:999px;background:var(--cta);color:#fff;font-size:14px;font-weight:750;text-decoration:none;white-space:nowrap}
.sw-check:hover{background:var(--cta-hover)}
.sw-check[aria-current="page"]{background:var(--paper);color:var(--clay);border:2px solid var(--cta)}
.sw-menu>summary{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border:1px solid #cfaa96;border-radius:999px;background:var(--paper);color:var(--clay);font-size:14px;font-weight:750;cursor:pointer;list-style:none;white-space:nowrap}
.sw-menu>summary::-webkit-details-marker{display:none}
.sw-menu>summary:hover{background:#fff4e8}
.sw-menu>summary:focus-visible,.sw-panel a:focus-visible{outline:3px solid var(--clay);outline-offset:3px}
.sw-menu-icon{position:relative;display:inline-block;width:16px;height:2px;background:currentColor;border-radius:2px}
.sw-menu-icon::before,.sw-menu-icon::after{content:"";position:absolute;left:0;width:16px;height:2px;background:currentColor;border-radius:2px}
.sw-menu-icon::before{top:-5px}
.sw-menu-icon::after{top:5px}
.sw-menu[open] .sw-menu-icon{background:transparent}
.sw-menu[open] .sw-menu-icon::before{top:0;transform:rotate(45deg)}
.sw-menu[open] .sw-menu-icon::after{top:0;transform:rotate(-45deg)}
.sw-menu-label-open{display:none}
.sw-menu[open] .sw-menu-label-open{display:inline}
.sw-menu[open] .sw-menu-label-closed{display:none}
.sw-here{font-weight:650;color:var(--muted);font-size:12.5px}
.sw-panel{position:absolute;left:0;right:0;top:100%;max-height:calc(100vh - var(--header-h) - 8px);max-height:calc(100dvh - var(--header-h) - 8px);overflow:auto;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:0 18px 40px rgba(102,67,45,.14)}
/* 閉じたパネルは配置計算からも外す（closed details の content-visibility は以前の幅の配置を保持し、横スクロールの原因になるため） */
.sw-menu:not([open]) .sw-panel{display:none}
.sw-cats>*{min-width:0}
.sw-panel-inner{padding:20px 0 22px}
.sw-panel-title{margin:0 0 12px;font-size:13px;font-weight:750;letter-spacing:.04em;color:var(--clay)}
.sw-cats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.sw-cat{padding:14px 14px 12px;border-radius:12px;background:#fffaf4;border:1px solid var(--line)}
.sw-cat-title{margin:0 0 6px;font-size:13px;font-weight:800;letter-spacing:.04em;color:#8a4a36}
.sw-cat ul{margin:0;padding:0;list-style:none;display:grid;gap:2px}
.sw-cat a{display:block;padding:8px 10px;border-radius:8px;font-size:14.5px;font-weight:700;line-height:1.5;color:var(--ink);text-decoration:none}
.sw-cat a:hover{background:#fff0e0;text-decoration:underline;text-underline-offset:3px}
.sw-cat a[aria-current="page"]{background:var(--cream);box-shadow:inset 4px 0 0 var(--clay)}
.sw-cur{display:inline-block;margin-left:6px;padding:0 8px;border-radius:999px;background:var(--clay);color:var(--paper);font-size:11.5px;font-weight:750;line-height:1.7;vertical-align:1px}
.sw-panel-foot{margin:14px 0 0;font-size:13.5px;line-height:1.75;color:var(--muted)}
.sw-panel-foot a{color:var(--clay);font-weight:700;text-underline-offset:3px}

@media (max-width:960px){
  .sw-cats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sw-here{display:none}
}
@media (max-width:640px){
  .sw-header .header-inner{gap:8px}
  .sw-actions{gap:6px}
  .sw-check{min-height:44px;padding:0 12px;font-size:13px}
  .sw-menu>summary{min-height:44px;padding:0 12px;font-size:13px;gap:6px}
  .sw-cats{grid-template-columns:1fr}
  .sw-panel-inner{padding:14px 0 18px}
  .preview-bar{font-size:11.5px;padding:5px 12px}
}
@media (max-width:360px){
  .sw-check{padding:0 10px;font-size:12.5px}
  .sw-menu>summary{padding:0 10px}
}

/* ---------- 統合時の章間リンク補助（既存ページの「次へ」をリンクにした箇所） ---------- */
.pager a.pager-next{color:var(--ink)}
.pager a.pager-next small{color:var(--clay)}
.pager-inner .pager-sw-next{margin-left:12px}

/* ---------- TOP：入口と記事一覧（統合プレビューで #start に生成） ---------- */
.sw-entrances{padding:48px 0 56px;background:#f6ebe0;border-top:1px solid var(--line)}
.sw-entrances h2{margin:0;font-size:clamp(22px,2.4vw,28px);line-height:1.45}
.sw-entrances .sw-ent-lead{margin:8px 0 0;font-size:15.5px;line-height:1.85;color:var(--muted)}
.sw-ent-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0 0;padding:0;list-style:none}
.sw-ent-grid a{display:flex;flex-direction:column;gap:4px;height:100%;padding:18px 20px;border-radius:14px;background:var(--paper);border:1px solid #e3cdbb;text-decoration:none;color:var(--ink)}
.sw-ent-grid a:hover{border-color:#cfaa96;background:#fffaf4}
.sw-ent-grid a:focus-visible,.sw-all a:focus-visible{outline:3px solid var(--clay);outline-offset:3px}
.sw-ent-grid .sw-ent-kicker{font-size:12.5px;font-weight:800;letter-spacing:.04em;color:var(--clay)}
.sw-ent-grid .sw-ent-name{font-size:18px;font-weight:750;line-height:1.5}
.sw-ent-grid .sw-ent-desc{font-size:14px;line-height:1.75;color:var(--muted)}
.sw-ent-grid .sw-ent-main a{background:var(--cta);border-color:var(--cta);color:#fff}
.sw-ent-grid .sw-ent-main a:hover{background:var(--cta-hover)}
.sw-ent-grid .sw-ent-main .sw-ent-kicker,.sw-ent-grid .sw-ent-main .sw-ent-desc{color:#fff3ea}
.sw-all{margin-top:28px}
.sw-all h3{margin:0 0 10px;font-size:17px}
.sw-all .sw-cats{grid-template-columns:repeat(4,minmax(0,1fr))}
.sw-consult{margin:20px 0 0;font-size:14.5px;line-height:1.85;color:var(--muted)}
.sw-consult a{color:var(--clay);font-weight:700;text-underline-offset:3px}
@media (max-width:960px){
  .sw-ent-grid,.sw-all .sw-cats{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .sw-entrances{padding:36px 0 40px}
  .sw-ent-grid,.sw-all .sw-cats{grid-template-columns:1fr}
}
