/* 画像は絶対に切り抜かない。拡大・縮小のみ許可されているため contain 固定。*/
:root { --fg:#1b1b1f; --muted:#5b5b66; --line:#e2e2e8; --accent:#b3005e; }
* { box-sizing: border-box; }
body { margin:0; font-family: system-ui, "Segoe UI", "Hiragino Sans", "Noto Sans JP", sans-serif;
       color:var(--fg); line-height:1.7; }
header, footer, main { max-width: 1040px; margin: 0 auto; padding: 16px; }
header { border-bottom:1px solid var(--line); }
footer { border-top:1px solid var(--line); color:var(--muted); font-size:.85rem; margin-top:32px; }
a { color: var(--accent); }
.pr-label { display:inline-block; border:1px solid var(--line); border-radius:4px;
            padding:2px 8px; font-size:.8rem; color:var(--muted); }
.grid { display:grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap:16px; }
.card { border:1px solid var(--line); border-radius:8px; padding:10px; }
/* 高さ可変 + contain。cover は使わない（表示上のクロップになるため）。*/
.thumb { width:100%; height:auto; max-height:280px; object-fit: contain; display:block;
         background:#f5f5f7; }
.thumb-row { display:flex; flex-wrap:wrap; gap:8px; }
.thumb-row img { max-width:160px; height:auto; object-fit: contain; }
.work-layout { display:grid; grid-template-columns:minmax(180px, 320px) 1fr; gap:24px; }
.work-layout dl { display:grid; grid-template-columns:8rem 1fr; gap:4px 12px; }
.work-layout dt { font-weight:700; }
.work-layout dd { margin:0; }
/* 表内サムネイルも縮小のみ。トリミングしないので高さは成り行きにする。*/
.cell-thumb { width:112px; }
.cell-thumb img { max-width:96px; max-height:128px; height:auto; object-fit: contain; }
table { border-collapse: collapse; width:100%; font-size:.92rem; }
th, td { border:1px solid var(--line); padding:6px 8px; text-align:left; vertical-align:top; }
th { background:#fafafc; }
.gap { color:#a00; font-weight:600; }
.cta { display:inline-block; padding:6px 12px; border:1px solid var(--accent);
       border-radius:6px; text-decoration:none; }
.reasons { color:var(--muted); font-size:.85rem; }
#age-gate { position:fixed; inset:0; background:#fff; z-index:9999; display:flex;
            align-items:center; justify-content:center; padding:24px; }
#age-gate .box { max-width:520px; text-align:center; }
.hidden { display:none !important; }
@media (max-width: 640px) {
  .work-layout { grid-template-columns:1fr; }
}
