*{margin:0;padding:0;box-sizing:border-box}
body{font-family:"Hiragino Kaku Gothic ProN","Yu Gothic","Meiryo",sans-serif;color:#333;line-height:1.7;background:#f8f9fa}
a{color:#0066cc;text-decoration:none}a:hover{text-decoration:underline}
.container{max-width:1000px;margin:0 auto;padding:20px 16px}

/* Header */
header{background:#1a6e3c;color:#fff;padding:12px 0}
header .header-inner{max-width:1000px;margin:0 auto;padding:0 16px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px}
.site-title{color:#fff;font-size:1.3em;font-weight:bold;text-decoration:none}
.site-subtitle{color:rgba(255,255,255,0.85);font-size:0.8em}
header nav a{color:rgba(255,255,255,0.9);font-size:0.85em;margin-left:16px}

/* Breadcrumb */
.breadcrumb{font-size:0.85em;color:#666;margin:16px 0 8px;padding:0 16px;max-width:1000px;margin-left:auto;margin-right:auto}
.breadcrumb a{color:#0066cc}

/* Cards */
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;margin:16px 0}
.card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:16px;transition:box-shadow 0.2s}
.card:hover{box-shadow:0 2px 8px rgba(0,0,0,0.1)}
.card h3{font-size:1em;margin-bottom:8px}
.card .meta{font-size:0.85em;color:#666;line-height:1.5}
.card .meta span{display:inline-block;margin-right:12px}

/* Region grid */
.region-section{margin:24px 0}
.region-section h3{font-size:1.05em;color:#1a6e3c;margin-bottom:8px;padding-bottom:4px;border-bottom:2px solid #e8f5e9}
.pref-grid{display:flex;flex-wrap:wrap;gap:6px}
.pref-link{display:inline-block;padding:6px 12px;background:#fff;border:1px solid #ddd;border-radius:4px;font-size:0.9em;white-space:nowrap}
.pref-link:hover{background:#e8f5e9;border-color:#1a6e3c;text-decoration:none}

/* City grid */
.city-grid{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}
.city-link{display:inline-block;padding:4px 10px;background:#fff;border:1px solid #ddd;border-radius:4px;font-size:0.85em}
.city-link:hover{background:#e8f5e9;text-decoration:none}

/* Detail page */
.detail-header{margin-bottom:24px}
.detail-header h1{font-size:1.4em;margin-bottom:4px}
.detail-header .kana{color:#888;font-size:0.85em}
.info-table{width:100%;border-collapse:collapse;margin:16px 0}
.info-table th{text-align:left;padding:10px 12px;background:#f5f5f5;border:1px solid #e0e0e0;width:140px;font-size:0.9em;color:#555;vertical-align:top}
.info-table td{padding:10px 12px;border:1px solid #e0e0e0;font-size:0.9em}
.map-container{margin:16px 0;border-radius:8px;overflow:hidden}

/* Stats */
.stats-bar{display:flex;gap:16px;flex-wrap:wrap;margin:16px 0}
.stat-box{background:#fff;border:1px solid #e0e0e0;border-radius:6px;padding:12px 16px;text-align:center;min-width:120px}
.stat-box .num{font-size:1.6em;font-weight:bold;color:#1a6e3c}
.stat-box .label{font-size:0.8em;color:#888}

/* Footer */
footer{background:#333;color:#fff;padding:32px 0;margin-top:40px;font-size:0.85em}
footer .footer-inner{max-width:1000px;margin:0 auto;padding:0 16px}
footer a{color:#aed581}
.footer-pref-grid{display:flex;flex-wrap:wrap;gap:4px 8px;margin:8px 0}
.footer-pref-grid a{color:#aed581;font-size:0.8em}
.footer-bottom{margin-top:16px;padding-top:12px;border-top:1px solid #555;text-align:center;color:#999;font-size:0.8em}

/* Search box */
.search-box{margin:16px 0;padding:16px;background:#fff;border:1px solid #e0e0e0;border-radius:8px}
.search-box input[type=text]{width:100%;padding:10px 12px;border:1px solid #ccc;border-radius:4px;font-size:1em}
.search-results{margin-top:12px}

/* Responsive */
@media(max-width:600px){
  .card-grid{grid-template-columns:1fr}
  header .header-inner{flex-direction:column;align-items:flex-start}
  .info-table th{width:100px}
}
