/* fanza-affsite 軽量スタイル（モバイル優先）。画像は width/height 属性のみ、CSS で縮小表示。 */
:root{--fg:#222;--muted:#666;--bg:#fff;--panel:#f6f6f8;--line:#ddd;--link:#0b57d0;--accent:#b3261e;--pr:#fff4e0;--pr-fg:#5c3d00}
*{box-sizing:border-box}
html{font-size:16px;-webkit-text-size-adjust:100%}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI","Hiragino Sans","Noto Sans JP",Meiryo,sans-serif;line-height:1.7;color:var(--fg);background:var(--bg)}
a{color:var(--link)}
img{max-width:100%;height:auto}
h1{font-size:1.4rem;margin:.8rem 0}
h2{font-size:1.15rem;margin:1.6rem 0 .6rem;border-left:4px solid var(--accent);padding-left:.5rem}
h3{font-size:1rem;margin:.4rem 0}
.small{font-size:.85rem}.muted{color:var(--muted)}
.lead{color:#333}
.site-header{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;padding:.6rem 1rem;border-bottom:1px solid var(--line)}
.site-name{margin:0;font-weight:700;font-size:1.1rem}.site-name a{color:var(--fg);text-decoration:none}
.site-nav{display:flex;flex-wrap:wrap;gap:.2rem .9rem;font-size:.95rem}
.site-nav a[aria-current="page"]{font-weight:700;text-decoration:none;color:var(--fg)}
/* R4: PR 帯はヘッダー直下・本文と同等以上のサイズ */
.pr-notice{font-size:1rem;background:var(--pr);color:var(--pr-fg);padding:.5rem 1rem;border-bottom:1px solid #f0d9a8;margin:0}
.site-main{max-width:1080px;margin:0 auto;padding:0 1rem 2rem}
.site-footer{border-top:1px solid var(--line);padding:1rem;font-size:.9rem;color:var(--muted);text-align:center}
.r18-mark strong{display:inline-block;border:2px solid var(--accent);color:var(--accent);border-radius:4px;padding:0 .4rem;font-size:1rem;margin-right:.4rem}
.footer-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:.3rem 1rem;margin:.5rem 0}
.credit{margin-top:.5rem}
.panel{background:var(--panel);border-radius:8px;padding:.8rem 1rem;margin:1rem 0}
.stats{list-style:none;padding:0;margin:0}.stats li{margin:.2rem 0}
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.9rem}
.item-card{border:1px solid var(--line);border-radius:8px;padding:.5rem;background:#fff;display:flex;flex-direction:column}
.item-card .thumb{text-align:center;min-height:120px}
.item-card .thumb img{width:100%;max-width:147px;height:auto}
.noimg{display:inline-block;color:var(--muted);font-size:.8rem;padding:2rem 0}
.card-title{font-size:.92rem;line-height:1.4;margin:.4rem 0;font-weight:600}
.cast{font-size:.85rem;margin:.1rem 0}
.meta{font-size:.9rem;margin:.15rem 0}
.price{font-weight:700}.list-price{color:var(--muted);margin-left:.2rem}.discount{color:var(--accent);font-weight:700}
.badge{display:inline-block;background:var(--accent);color:#fff;font-size:.72rem;border-radius:3px;padding:0 .35rem;vertical-align:middle}
/* 購入リンク＋「広告」ラベル */
.buy{margin:.5rem 0 0}
/* 「広告」ラベルは購入ボタンと同じ大きさ・本文と同じ濃さ（消費者庁 FAQ Q13「文字のサイズや色」・R4/L1） */
.ad-label{display:inline-block;font-size:.9rem;font-weight:700;border:1px solid var(--fg);color:var(--fg);background:#fff;border-radius:3px;padding:.25rem .45rem;margin-right:.4rem;vertical-align:middle;line-height:1.2}
.buy-link{display:inline-block;background:var(--link);color:#fff;text-decoration:none;border-radius:4px;padding:.25rem .7rem;font-size:.9rem;line-height:1.2;vertical-align:middle}
.buy-link:hover{opacity:.9}
.item-row{display:flex;gap:.6rem;align-items:flex-start}
.item-row .thumb img{width:60px;height:auto}
.rank-list{padding-left:1.4rem}.rank-list li{margin:.5rem 0}.score{font-size:.85rem;color:var(--muted)}
.table{width:100%;border-collapse:collapse;font-size:.92rem}
.table th,.table td{border-bottom:1px solid var(--line);padding:.35rem .4rem;text-align:left;vertical-align:top}
.table.data th{width:8em;background:var(--panel)}
.ranking .rank{font-weight:700;text-align:center}.up{color:#0a7d2c}.down{color:var(--accent)}
.tags a{display:inline-block;margin:.15rem .3rem .15rem 0;padding:.1rem .5rem;border:1px solid var(--line);border-radius:999px;text-decoration:none;font-size:.9rem}
.tags .count{color:var(--muted);font-size:.8rem;margin-left:.25rem}
.hub-list,.month-list,.doc-list{padding-left:1.2rem}.hub-list li,.month-list li{margin:.15rem 0}.count{color:var(--muted);font-size:.85rem}
.week-nav ul,.month-nav ul{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.3rem 1rem}
.item-top{display:grid;grid-template-columns:1fr;gap:1rem}
@media(min-width:720px){.item-top{grid-template-columns:3fr 2fr}}
.jacket{width:100%;max-width:800px;height:auto;border:1px solid var(--line)}
.samples{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.5rem}.samples img{width:120px;height:auto;border:1px solid var(--line)}
.price-line{font-size:1.3rem;margin:.2rem 0}
.description p,.intro p{margin:.5rem 0}
.doc-body{max-width:760px}.doc-body table{border-collapse:collapse;font-size:.9rem}.doc-body th,.doc-body td{border:1px solid var(--line);padding:.3rem .5rem}
.facts dl{display:grid;grid-template-columns:max-content 1fr;gap:.2rem 1rem;margin:0}.facts dt{font-weight:700}.facts dd{margin:0}
/* 年齢ゲート: 既定は非表示。JS が html.gate-open を付けたときだけ重ね表示（HTML は隠さない・L4/S2） */
.age-gate{display:none;position:fixed;inset:0;background:rgba(0,0,0,.82);z-index:1000;align-items:center;justify-content:center;padding:1rem}
html.gate-open .age-gate{display:flex}
html.gate-open{overflow:hidden}
.age-gate-box{background:#fff;color:var(--fg);max-width:420px;border-radius:10px;padding:1.2rem 1.4rem;text-align:center}
.age-gate-title{font-size:1.3rem;font-weight:700;margin:0 0 .5rem}
.age-gate-actions{display:flex;flex-direction:column;gap:.6rem;margin:1rem 0 0}
.btn{display:inline-block;border:0;border-radius:6px;padding:.6rem 1rem;font-size:1rem;cursor:pointer;background:var(--link);color:#fff;text-decoration:none}
.btn-exit{background:#eee;color:var(--fg)}
