/* 共通 */
.section-narrow{max-width:900px;margin:auto}
.kv{position:relative;border-radius:16px;overflow:hidden;border:1px solid #eee}
.kv .kv-img{aspect-ratio: 16/9; width:100%; background:#eef7f1}
.kv .kv-copy{position:absolute;left:24px;bottom:24px;background:rgba(255,255,255,.9);padding:10px 14px;border-radius:12px}
.badge{display:inline-block;font-size:12px;padding:4px 8px;border-radius:999px;background:#e8f5ee;color:#2ea66e;border:1px solid #cde9da}
.kpi{display:flex;gap:12px;flex-wrap:wrap}
.kpi .k{border:1px solid #eee;border-radius:10px;padding:8px 12px;background:#fff}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:960px){.cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.cards{grid-template-columns:1fr}}
.card{border:1px solid #eee;border-radius:14px;background:#fff;overflow:hidden}
.card .thumb{height:140px;background:#f7fbf8}
.card .body{padding:12px}
.cta-sticky{position:sticky;bottom:12px;z-index:20;background:rgba(255,255,255,.9);border:1px solid #e6f4ec;border-radius:12px;padding:10px;display:flex;gap:8px;justify-content:center;backdrop-filter: blur(6px)}
.table{width:100%;border-collapse:collapse}
.table th,.table td{border:1px solid #eee;padding:10px;text-align:left}
.timeline{border-left:3px solid #e6f4ec;padding-left:16px}
.note{color:#607d6b;font-size:14px}
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
@media(max-width:880px){.gallery{grid-template-columns:repeat(2,1fr)}}
.gallery .g{aspect-ratio:1/1;background:#eef7f1;border-radius:8px;border:1px solid #e6f4ec}
.map-embed{width:100%;min-height:300px;border:0;border-radius:12px}
.lang-switch{display:flex;gap:8px}
.pricebox{border:2px solid #2ea66e;border-radius:14px;padding:16px;text-align:center;background:#fff}