:root{
  --fair:#1f7a3d; --fair-d:#155c2c; --fair-l:#2e9d54; --rough:#0e3a1c;
  --cream:#f6f8f3; --card:#ffffff; --ink:#1a2420; --sub:#5a6b62;
  --line:#e2e8e0; --gold:#d9a441; --sand:#efe7d2; --sky:#eaf3ee;
  --radius:14px; --shadow:0 2px 10px rgba(20,60,30,.07);
}
*{box-sizing:border-box}
body{margin:0;font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,system-ui,sans-serif;
  color:var(--ink);background:var(--cream);line-height:1.7;-webkit-font-smoothing:antialiased}
a{color:var(--fair-d);text-decoration:none}a:hover{text-decoration:underline}
img{max-width:100%;display:block}
.wrap{max-width:1080px;margin:0 auto;padding:0 18px}
header.site{background:linear-gradient(120deg,var(--rough),var(--fair));color:#fff}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;padding:14px 18px}
header.site a{color:#fff}
.brand{font-weight:800;font-size:1.15rem;letter-spacing:.02em;display:flex;align-items:center;gap:8px}
.brand .mk{background:#fff;color:var(--fair-d);border-radius:6px;padding:1px 7px;font-size:.8rem}
nav.top a{margin-left:16px;font-size:.9rem;opacity:.95}
.hero{background:linear-gradient(120deg,var(--fair-d),var(--fair-l));color:#fff;padding:38px 0 30px}
.hero h1{font-size:1.7rem;margin:.1em 0 .3em}
.hero p{opacity:.92;margin:.2em 0 1em;max-width:640px}
.stat{display:inline-flex;gap:18px;flex-wrap:wrap;margin-top:6px}
.stat b{font-size:1.35rem}
.facet{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin:18px 0;box-shadow:var(--shadow)}
.facet h2{margin:.1em 0 .6em;font-size:1.05rem;color:var(--fair-d)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{background:var(--sky);border:1px solid var(--line);border-radius:999px;padding:6px 13px;font-size:.86rem;color:var(--rough)}
.chip:hover{background:var(--fair);color:#fff;text-decoration:none}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin:18px 0}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column}
.card:hover{box-shadow:0 6px 18px rgba(20,60,30,.13)}
.card .ph{aspect-ratio:16/10;background:var(--sand);overflow:hidden}
.card .ph img{width:100%;height:100%;object-fit:cover}
.card .bd{padding:12px 13px;display:flex;flex-direction:column;gap:6px;flex:1}
.card .nm{font-weight:700;font-size:.98rem;line-height:1.4}
.card .meta{font-size:.8rem;color:var(--sub);display:flex;flex-wrap:wrap;gap:8px}
.badge{display:inline-block;background:var(--sky);color:var(--rough);border-radius:6px;padding:1px 7px;font-size:.76rem}
.badge.ic{background:var(--sand)}
.badge.p{background:var(--fair);color:#fff;font-weight:700}
.stars{color:var(--gold);font-size:.85rem;letter-spacing:1px}
.price{margin-top:auto;font-weight:800;color:var(--fair-d);font-size:1.02rem}
.price small{font-weight:500;color:var(--sub);font-size:.72rem}
.bc{font-size:.8rem;color:var(--sub);padding:12px 0}
.bc a{color:var(--sub)}
h1.pt{font-size:1.4rem;margin:.3em 0}
.lead{color:var(--sub);margin:.2em 0 1em}
.detail-hero{aspect-ratio:16/7;background:var(--sand);border-radius:var(--radius);overflow:hidden;margin:10px 0}
.detail-hero img{width:100%;height:100%;object-fit:cover}
.kpis{display:flex;flex-wrap:wrap;gap:12px;margin:14px 0}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 14px;min-width:120px}
.kpi span{display:block;font-size:.74rem;color:var(--sub)}
.kpi b{font-size:1.1rem;color:var(--fair-d)}
.sec{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin:16px 0;box-shadow:var(--shadow)}
.sec h2{font-size:1.1rem;color:var(--fair-d);margin:.1em 0 .6em;border-left:4px solid var(--fair);padding-left:10px}
table.plan{width:100%;border-collapse:collapse;font-size:.88rem}
table.plan th,table.plan td{border-bottom:1px solid var(--line);padding:8px 6px;text-align:left}
table.plan th{color:var(--sub);font-weight:600;font-size:.8rem}
.tags{display:flex;flex-wrap:wrap;gap:6px}
.cta{display:inline-block;background:var(--gold);color:#3a2a05;font-weight:800;border-radius:10px;padding:12px 22px;margin:6px 0}
.cta:hover{filter:brightness(1.05);text-decoration:none}
.cta.rev{background:var(--fair);color:#fff}
.asof{font-size:.76rem;color:var(--sub);margin-top:8px}
.qa{padding:10px 0;border-bottom:1px solid var(--line)}
.qa:last-child{border-bottom:none}
.qa .q{font-weight:700;color:var(--rough);margin:.1em 0}
.qa .a{color:var(--sub);margin:.2em 0 0}
.rel h2{font-size:1.05rem;color:var(--fair-d);margin:18px 0 6px;border-left:4px solid var(--fair);padding-left:10px}
.introstat{margin:10px 0 6px}
.rank{counter-reset:r}
.rank .card{position:relative}
.rank .card .rk{position:absolute;top:8px;left:8px;background:var(--fair-d);color:#fff;border-radius:8px;padding:2px 9px;font-weight:800;font-size:.9rem;z-index:2}
footer.site{background:var(--rough);color:#cfe6d6;margin-top:40px;padding:26px 0;font-size:.85rem}
footer.site a{color:#eaf3ee}
.xlink{background:var(--sand);border-radius:12px;padding:14px 16px;margin:16px 0;font-size:.9rem}
@media(max-width:640px){.hero h1{font-size:1.35rem}.grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}}
