:root{
  --bg:#ffffff; --ink:#0b141a; --muted:#6b7280; --line:#e5e7eb;
  --container:1080px; --gutter:16px;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--ink);
     font-family:"Noto Sans JP",system-ui,-apple-system,Segoe UI,Roboto,Arial,"Hiragino Kaku Gothic ProN",Meiryo,sans-serif;line-height:1.7}

img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
a:hover{text-decoration:underline}
.container{max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}

.site-header{position:sticky;top:0;background:var(--bg);border-bottom:1px solid var(--line);z-index:50}
.site-header .container{display:flex;align-items:center;gap:16px;height:56px}
.logo{font-size:20px;font-weight:700;margin:0}
.logo a{display:inline-flex;align-items:center;gap:8px;text-decoration:none}
.logo img{height:28px;width:auto}

.site-nav{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.site-nav .item{display:inline-flex;align-items:center;padding:8px 10px;border-radius:6px;white-space:nowrap}
.site-nav .item:hover{background:#f6f7f9;text-decoration:none}

/* Mobile: nav becomes horizontal scroll, prevent wrap glitches */
@media (max-width: 768px){
  .site-header .container{height:auto;flex-wrap:wrap;gap:8px;padding-top:8px;padding-bottom:8px}
  .site-nav{width:100%;overflow-x:auto;white-space:nowrap;flex-wrap:nowrap;padding-bottom:4px}
  .site-nav .item{flex:0 0 auto}
}

/* Generic layout helpers (optional, safe) */
.site{padding-bottom:64px}
.pagehead{padding:16px 0;border-bottom:1px solid var(--line);margin-bottom:16px}
.page-title, .title{margin:0 0 8px}
.grid{display:grid;gap:24px}
.grid--cards{align-items:start}
.pagelist{display:flex;gap:8px;justify-content:center;margin-top:24px}
.pagelist a, .pagelist span{padding:8px 12px;border:1px solid var(--line);border-radius:6px;text-decoration:none}
@media (max-width: 768px){
  /* Turn off any sticky sidebars if present in page-specific CSS */
  .sticky{position:static !important;top:auto !important}
}