/* ゴルフ会員権（/membership）ページ */
.mem-index-title, .mem-detail-title { font-size: 1.5rem; font-weight: 700; margin: 0 0 .3rem; }
.mem-index-sub, .mem-detail-loc { color: #555; font-size: .95rem; }
.mem-note, .mem-cost-note, .mem-src, .mem-trend-note, .mem-disclaimer { color: #666; font-size: .85rem; }
.mem-note { background: #f6f8f7; border-left: 3px solid #2F8F5B; padding: .5rem .75rem; border-radius: 4px; margin-top: .6rem; }

/* filter */
.mem-filter { margin: 1rem 0; }
.mem-filter-q { max-width: 420px; margin-bottom: .6rem; }
.mem-filter-row { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; margin-bottom: .6rem; }
.mem-sort { font-size: .9rem; display: flex; align-items: center; gap: .4rem; }
.mem-sort select { display: inline-block; width: auto; }
.mem-check { font-size: .9rem; }
.mem-facet { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; margin: .35rem 0; }
.mem-facet-label { font-size: .8rem; color: #777; margin-right: .3rem; }
.mem-chip { font-size: .82rem; border: 1px solid #d5ddd8; border-radius: 999px; padding: .12rem .6rem; cursor: pointer; }
.mem-chip input { margin-right: .25rem; }
.mem-chip-n { color: #9aa; margin-left: .3rem; font-size: .78rem; }
.mem-count { color: #555; font-size: .9rem; margin: .5rem 0; }

/* grid + cards */
.mem-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: .8rem; }
.mem-grid-sm { grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); }
.mem-card { display: block; border: 1px solid #e3e8e5; border-radius: 8px; padding: .7rem .8rem; text-decoration: none; color: inherit; background: #fff; transition: box-shadow .15s; }
.mem-card:hover { box-shadow: 0 2px 10px rgba(0,0,0,.08); }
.mem-card-name { font-weight: 600; display: block; }
.mem-card-loc { color: #888; font-size: .8rem; }
.mem-card-badges { margin: .35rem 0; display: flex; flex-wrap: wrap; gap: .3rem; }
.mem-card-price { display: flex; gap: .6rem; align-items: baseline; margin: .2rem 0; }
.mem-ask { font-weight: 700; color: #1f6f45; }
.mem-bid { color: #888; font-size: .9rem; }
.mem-na { color: #999; font-size: .85rem; }
.mem-card-meta { color: #666; font-size: .8rem; display: flex; flex-wrap: wrap; gap: .5rem; }

/* badges */
.mem-badge { font-size: .72rem; padding: .1rem .45rem; border-radius: 4px; white-space: nowrap; }
.mem-badge-type { background: #eef4f0; color: #2F8F5B; }
.mem-badge-warn { background: #fdecec; color: #c0392b; }
.mem-badge-recruit { background: #fff4e0; color: #c47f16; }

/* detail */
.mem-detail-badges { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin: .3rem 0 .5rem; }
.mem-course-link { font-size: .9rem; }
.mem-summary { background: #f6f8f7; padding: .8rem 1rem; border-radius: 6px; line-height: 1.7; }
.mem-section { margin: 1.4rem 0; }
.mem-h2 { font-size: 1.15rem; font-weight: 700; border-left: 4px solid #2F8F5B; padding-left: .5rem; margin-bottom: .7rem; }
.mem-quote-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: .6rem; }
.mem-quote { border: 1px solid #e3e8e5; border-radius: 6px; padding: .5rem .7rem; }
.mem-quote-label { display: block; font-size: .78rem; color: #777; }
.mem-quote-val { font-weight: 700; font-size: 1.05rem; }
.mem-prose { line-height: 1.75; }

/* trend */
.mem-trend { margin-top: 1rem; }
.mem-trend-title { font-size: .85rem; color: #555; margin-bottom: .3rem; }
.mem-trend-svg { width: 100%; height: 120px; background: #fafbfa; border: 1px solid #eef1ef; border-radius: 6px; }
.mem-trend-range { font-size: .78rem; color: #888; text-align: right; }

/* tables */
.mem-table-wrap { overflow-x: auto; }
.mem-table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.mem-table th, .mem-table td { border: 1px solid #e3e8e5; padding: .4rem .6rem; text-align: left; vertical-align: top; }
.mem-table thead th { background: #f4f7f5; white-space: nowrap; }
.mem-table-kv th { background: #f4f7f5; white-space: nowrap; width: 9rem; }
.mem-note-row td { background: #fbfcfb; color: #666; font-size: .82rem; }

.mem-recruit { background: #fffaf0; border: 1px solid #f0e2c4; border-radius: 6px; padding: .6rem .9rem; }
.mem-risk { background: #fdf6f6; border: 1px solid #f0d9d9; border-radius: 6px; padding: .6rem .9rem; }
.mem-faq { border-bottom: 1px solid #eee; padding: .5rem 0; }
.mem-faq summary { font-weight: 600; cursor: pointer; }
.mem-faq div { padding: .5rem 0 0; color: #444; line-height: 1.7; }
.mem-sources ul { padding-left: 1.2rem; font-size: .88rem; }

/* simulator */
.mem-sim { background: #f6f8f7; border: 1px solid #e0e8e3; border-radius: 8px; padding: .9rem 1rem; }
.mem-sim-note { font-size: .88rem; color: #555; margin-bottom: .7rem; }
.mem-sim-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: .5rem .8rem; }
.mem-sim-grid label { font-size: .8rem; color: #555; display: flex; flex-direction: column; gap: .2rem; }
.mem-sim-grid input { padding: .35rem .5rem; border: 1px solid #cdd6d1; border-radius: 5px; font-size: .95rem; }
.mem-sim-out { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .5rem; margin: .9rem 0 .5rem; }
.mem-sim-card { background: #fff; border: 1px solid #e0e8e3; border-radius: 6px; padding: .5rem .6rem; }
.mem-sim-label { display: block; font-size: .74rem; color: #777; }
.mem-sim-val { font-weight: 700; font-size: 1rem; color: #1f6f45; }
.mem-sim-fine { font-size: .78rem; color: #888; line-height: 1.6; }
