/* 全国Q地図 ABRアドレスページ 共通CSS */
/* テーマカラー: #E6B422（金色） */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:17px;-webkit-text-size-adjust:100%}
body{font-family:"Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;line-height:1.7;color:#333;background:#fafafa;max-width:960px;margin:0 auto;padding:0 16px}
a{color:#1a73e8;text-decoration:none}
a:hover{text-decoration:underline}
h1{font-size:1.5rem;margin:16px 0 8px;line-height:1.3}
h2{font-size:1.2rem;margin:20px 0 8px;border-bottom:2px solid #E6B422;padding-bottom:4px}
h3{font-size:1.05rem;margin:16px 0 6px}

/* サイトヘッダー */
.site-header{padding:10px 0;border-bottom:2px solid #E6B422;margin-bottom:4px}
.site-header a{color:#333;font-size:1.1rem;font-weight:bold;text-decoration:none}
.site-header a:hover{color:#C69C16}

/* パンくずリスト */
.breadcrumb{font-size:.85rem;padding:8px 0;color:#666}
.breadcrumb a{color:#1a73e8}
.breadcrumb span::before{content:" > ";color:#bba44e}
.breadcrumb span:first-child::before{content:""}

/* 基本情報テーブル */
.info-table{width:100%;border-collapse:collapse;margin:12px 0}
.info-table th,.info-table td{border:1px solid #ddd;padding:6px 10px;text-align:left;font-size:1rem}
.info-table th{background:#fbf5e6;white-space:nowrap;width:30%}

/* 地図コンテナ */
#map{width:100%;height:0;padding-bottom:40%;position:relative;margin:12px 0 8px;background:#eee;border:1px solid #ddd;border-radius:4px}
#map iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:none;border-radius:4px}

/* 地図切り替えボタン群 */
.extra-maps{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px}
.extra-map-btn{display:inline-flex;align-items:center;gap:4px;cursor:pointer;font-size:.9rem;white-space:nowrap;background:#fff;color:#333;padding:6px 12px;border-radius:4px;border:1px solid #ddd;text-decoration:none;font-weight:normal}
.extra-map-btn:hover{background:#fbf5e6;border-color:#E6B422;text-decoration:none;color:#333}
.extra-map-btn.active{background:#fbf5e6;border-color:#E6B422;font-weight:bold}

/* 五十音見出し */
.gojuon-heading{font-size:1rem;margin:16px 0 4px;padding:2px 8px;background:#fbf5e6;border-left:3px solid #E6B422;color:#333}

/* 一覧リスト */
.list-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:2px 12px;margin:8px 0}
.list-grid a{display:block;padding:4px 0;font-size:1rem;line-height:1.5}
.kana-label{display:block;font-size:.8rem;color:#666}
/* 大字・字プレフィックス（町字一覧での可読性向上） */
.oaza-prefix{font-size:.78em;font-weight:normal}

/* 目次 */
.toc{margin:16px 0;padding:12px 16px;background:#fff;border:1px solid #eee;border-radius:4px}
.toc h2{font-size:1rem;margin:0 0 8px;border-bottom:none;padding-bottom:0}
.toc ul{list-style:disc;padding-left:1.5em;margin:0}
.toc li{margin:4px 0;font-size:.95rem}

/* 地番・住居表示テーブル */
.addr-table-wrap{overflow-x:auto;margin:12px 0;-webkit-overflow-scrolling:touch}
.addr-table{width:100%;border-collapse:collapse;min-width:700px}
.addr-table th,.addr-table td{border:1px solid #ddd;padding:6px 10px;text-align:left;font-size:.9rem;white-space:nowrap}
.addr-table thead th{background:#fbf5e6;font-weight:bold}
.addr-table tbody tr{cursor:pointer;transition:background .15s}
.addr-table tbody tr:hover{background:#fafaf5}
/* 大量行テーブルの軽量化: off-screen行のペイント短絡（対応ブラウザのみ） */
.addr-row{content-visibility:auto;contain-intrinsic-size:auto 38px}
.addr-row-hidden{display:none}
.addr-table-controls{display:flex;align-items:center;gap:10px;padding:10px 0;flex-wrap:wrap}
.addr-table-controls .addr-table-status{color:#666;font-size:.85rem}
.addr-table-controls button{appearance:none;border:1px solid #ccc;background:#f6f6f6;padding:6px 14px;border-radius:4px;cursor:pointer;font-size:.85rem;font-family:inherit}
.addr-table-controls button:hover{background:#ececec}
/* 地番・住居表示のリンク風表示 */
.addr-link{color:#1a73e8;font-weight:bold;text-decoration:underline;text-decoration-color:#a0c4f0}
.addr-table tbody tr:hover .addr-link{text-decoration-color:#1a73e8}
/* 位置情報バッジ */
.pos-badge{display:inline-block;padding:1px 6px;border-radius:3px;font-size:.8rem}
.pos-yes{background:#e8f5e9;color:#2e7d32}
.pos-no{background:#f5f5f5;color:#999}

/* 動的個別ページビュー */
.detail-view{margin:20px 0;padding:16px;background:#fff;border:1px solid #ddd;border-radius:4px}
.detail-view h2{margin-top:0}
.detail-view .back-link{display:inline-block;margin-bottom:12px;font-size:.9rem}
.detail-view .detail-desc{margin:4px 0 16px;font-size:.92rem;line-height:1.7;color:#555}
.detail-view h3{font-size:1.05rem;margin:20px 0 8px}
.detail-reading{font-size:.85rem;font-weight:normal;color:#666}
.detail-view .detail-map{width:100%;height:0;padding-bottom:45%;position:relative;background:#eee;margin:12px 0;border-radius:4px}
.detail-view .detail-map iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:none;border-radius:4px}

/* メタデータテーブル */
.meta-table{width:100%;border-collapse:collapse;margin:4px 0}
.meta-table th,.meta-table td{padding:2px 8px;text-align:left;font-size:.82rem;border-bottom:1px solid #f0f0f0}
.meta-table th{color:#666;white-space:nowrap;width:40%;font-weight:normal}

/* 通称バッジ */
.aka-badge{font-size:.75em;color:#c69c16;font-weight:normal;margin-left:4px}

/* 小字・地番・住居表示バッジ */
.data-badges{display:inline;margin-left:6px;vertical-align:middle}
.data-badge{display:inline-block;font-size:.62rem;color:#888;border:1px solid #ccc;border-radius:2px;padding:0 2px;margin-left:3px;line-height:1.5;cursor:default;position:relative;vertical-align:middle;user-select:none}
.data-badge:hover::after{content:attr(data-tip);position:absolute;left:50%;bottom:calc(100% + 4px);transform:translateX(-50%);background:#333;color:#fff;font-size:.75rem;padding:4px 8px;border-radius:4px;white-space:nowrap;z-index:10;pointer-events:none}

/* ツールチップ */
.tip{display:inline-block;width:1.1em;height:1.1em;line-height:1.1em;text-align:center;font-size:.7rem;color:#E6B422;border:1px solid #E6B422;border-radius:50%;cursor:help;margin-left:4px;position:relative;vertical-align:middle;font-style:normal}
.tip:hover::after,.tip.active::after{content:attr(data-tip);position:absolute;left:50%;bottom:calc(100% + 6px);transform:translateX(-50%);background:#333;color:#fff;font-size:.75rem;font-weight:normal;padding:6px 10px;border-radius:4px;white-space:normal;width:max-content;max-width:260px;z-index:10;line-height:1.4;pointer-events:none}

/* 概要セクション（トップページ） */
.about-intro{margin:12px 0 20px;padding:12px 16px;background:#fff;border:1px solid #eee;border-radius:4px;font-size:.95rem;line-height:1.8}
.about-intro p{margin:4px 0}

/* 解説ページ */
.about-section{margin:0 0 24px}
.about-section p,.about-section ul{margin:8px 0;font-size:.95rem}
.about-section ul{padding-left:1.5em}
.about-section li{margin:4px 0}

/* ページ説明文 */
.page-desc{margin:4px 0 16px;font-size:.92rem;line-height:1.7;color:#555}

/* データ更新日 */
.data-update-date{margin-top:24px;font-size:.8rem;color:#666;text-align:right}

/* フッター */
.site-footer{margin-top:12px;padding:16px 0;border-top:2px solid #E6B422;font-size:.8rem;color:#666;text-align:center}
.site-footer a{color:#666}

/* レスポンシブ */
@media(max-width:600px){
  body{padding:0 10px}
  h1{font-size:1.25rem}
  .list-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}
  .info-table th{width:35%}
  .addr-table th,.addr-table td{padding:4px 6px;font-size:.8rem}
  .meta-table th{width:45%}
  /* モバイルでの地図高さを2倍に（オーバーレイ要素で地図が見えなくなる対策） */
  #map{padding-bottom:80%}
  .detail-view .detail-map{padding-bottom:90%}
  /* ツールチップ画面外はみ出し対策 */
  .tip:hover::after,.tip.active::after{left:0;right:auto;transform:none;max-width:min(260px,calc(100vw - 24px))}
  .data-badge:hover::after{left:0;right:auto;transform:none;white-space:nowrap}
}
