/* ここスコア 共通デザインシステム（design_handoff_koko_score 準拠）
   index.html / town/*.html で共用。score.html・about.html は独立の軽量スタイルを持つ。 */
:root{
  --ink:#0B0F14; --text-body:#3A424E; --text-muted:#6B7480; --text-faint:#8A919B;
  --border:#E6E8EC; --border-inner:#EEF0F3; --border-inner-2:#F2F3F5;
  --surface:#F6F7F9; --surface-raised:#FFFFFF; --surface-subtle:#FBFBFC;
  --primary:#1B45C7; --primary-hover:#153AAD; --primary-tint:#F2F6FF;
  --score-good:#0E7A54; --score-good-tint:#EEF6F1; --score-good-tint-hi:#E2F0E9;
  --score-mid-text:#3A424E; --score-mid-bg:#EEF0F3; --score-bar-mid:#8A919B; --score-track:#EDEFF2; --score-track-hi:#DEE6F5;
  --asset-accent:#B08319;
  --dark-bg:#0C1622; --dark-border:#22314A; --dark-border-2:#1C2A40;
  --dark-text:#EAECEF; --dark-text-2:#B7C0CC; --dark-text-3:#A5B4CC; --dark-accent:#7FA6F0;
  --sans:'IBM Plex Sans JP',system-ui,sans-serif;
  --mono:'IBM Plex Mono',monospace;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
html,body{margin:0;padding:0;}
body{font-family:var(--sans);color:var(--ink);background:var(--surface);line-height:1.7;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;}
[id]{scroll-margin-top:76px;}
a{color:inherit;}
h1,h2,h3{margin:0;}
.wrap{max-width:1180px;margin:0 auto;padding:0 28px;}
.kicker{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);}
.btn{display:inline-flex;align-items:center;gap:6px;border:0;border-radius:8px;font-family:inherit;font-size:14px;font-weight:600;padding:12px 22px;cursor:pointer;text-decoration:none;white-space:nowrap;}
.btn-primary{background:var(--primary);color:#fff;}
.btn-primary:hover{background:var(--primary-hover);}
.btn-primary:active{transform:scale(.98);}
.btn-primary:focus-visible{outline:2px solid var(--ink);outline-offset:2px;}
.btn-ghost{background:#fff;color:var(--text-body);border:1px dashed #C7CCD3;}
.btn-ghost:hover{border-color:var(--primary);color:var(--primary);}
@media (prefers-reduced-motion: reduce){ *{animation:none !important;transition:none !important;} }

/* ---- header ---- */
header.site-nav{position:sticky;top:0;z-index:50;background:rgba(246,247,249,.85);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);}
.nav-in{max-width:1180px;margin:0 auto;padding:0 28px;height:60px;display:flex;align-items:center;gap:28px;}
.brand{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--ink);}
.brand-mark{display:inline-flex;align-items:flex-end;gap:2px;width:20px;height:18px;}
.brand-mark span{width:4px;border-radius:1px;}
.brand-mark span:nth-child(1){height:8px;background:#5B6673;}
.brand-mark span:nth-child(2){height:13px;background:var(--ink);}
.brand-mark span:nth-child(3){height:18px;background:var(--primary);}
.brand-name{font-weight:600;font-size:16px;letter-spacing:-.01em;}
.nav-links{display:flex;gap:4px;font-size:13px;margin-left:4px;}
.nav-links a{color:var(--text-body);text-decoration:none;padding:6px 10px;border-radius:8px;}
.nav-links a:hover{background:#ECEEF1;color:var(--ink);}
.nav-cta{margin-left:auto;}
@media (max-width:900px){ .nav-links{display:none;} }

/* ---- hero ---- */
.hero{position:relative;overflow:hidden;background:var(--surface);border-bottom:1px solid var(--border);}
.hero-bg{position:absolute;inset:0;background-image:linear-gradient(#E9EBEF 1px,transparent 1px),linear-gradient(90deg,#E9EBEF 1px,transparent 1px);background-size:56px 56px;opacity:.55;mask-image:radial-gradient(120% 90% at 70% 20%,#000 30%,transparent 75%);}
.hero-grid{position:relative;padding:80px 28px 88px;display:grid;grid-template-columns:1.12fr .88fr;gap:52px;align-items:center;}
.rise{animation:ksUp .5s ease both;}
@keyframes ksUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes ksFade{from{opacity:0}to{opacity:1}}
.eyebrow-pill{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:#5B6673;border:1px solid #DCDFE4;background:#fff;padding:5px 11px;border-radius:100px;}
.hero h1{font-size:54px;line-height:1.22;letter-spacing:-.02em;font-weight:600;margin:14px 0 16px;}
.hero .lead{font-size:16px;line-height:1.8;color:var(--text-body);margin:0 0 10px;max-width:500px;}
.hero .lead strong{font-weight:600;color:var(--ink);}
.hero .sub{font-size:13px;color:var(--text-muted);margin:0 0 28px;}
@media (max-width:900px){ .hero-grid{grid-template-columns:1fr;padding:48px 20px 56px;gap:36px;} .hero h1{font-size:36px;} }

.cf-form{background:#fff;border:1px solid #E0E3E8;border-radius:12px;padding:10px;box-shadow:0 1px 2px rgba(11,15,20,.04),0 12px 34px -18px rgba(11,15,20,.22);max-width:500px;margin:0;}
.cf-row{display:flex;align-items:center;gap:8px;padding:4px 10px;border-bottom:1px solid var(--border-inner);}
.cf-row:last-of-type{border-bottom:0;}
.cf-row .idx{font-family:var(--mono);font-size:11px;color:var(--primary);width:18px;}
.cf-row input{flex:1;border:0;outline:none;font-family:inherit;font-size:14px;color:var(--ink);padding:9px 2px;background:transparent;}
.cf-actions{display:flex;gap:8px;padding:8px 4px 4px;align-items:center;}
.cf-actions .btn-primary{flex:1;}
.cf-actions .btn-add{border:1px dashed #C7CCD3;background:#fff;color:var(--text-body);font-family:inherit;font-size:12px;padding:11px 12px;border-radius:8px;cursor:pointer;white-space:nowrap;}
.cf-actions .btn-add:hover{border-color:var(--primary);color:var(--primary);}
.hero-note{font-size:12px;color:var(--text-muted);margin-top:12px;}
.hero-note b{font-family:var(--mono);color:var(--text-body);font-weight:500;}

/* ---- hero preview board ---- */
.board{background:#fff;border:1px solid #E0E3E8;border-radius:16px;box-shadow:0 1px 2px rgba(11,15,20,.05),0 30px 60px -30px rgba(11,15,20,.3);overflow:hidden;}
.board-head{display:flex;align-items:center;gap:8px;padding:11px 14px;border-bottom:1px solid var(--border-inner);}
.board-logo{display:inline-flex;align-items:flex-end;gap:1.5px;width:12px;height:11px;}
.board-logo span{width:2.5px;}
.board-logo span:nth-child(1){height:5px;background:#C7CCD3;}
.board-logo span:nth-child(2){height:8px;background:var(--text-faint);}
.board-logo span:nth-child(3){height:11px;background:var(--primary);}
.board-label{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--text-muted);text-transform:uppercase;}
.board-count{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--text-muted);}
.board-row{display:grid;grid-template-columns:64px 1fr 1fr 1fr;}
.board-row.head-row > div{padding:11px 10px;border-bottom:1px solid var(--border-inner);border-left:1px solid var(--border-inner-2);}
.board-row.head-row > div:first-child{border-left:0;}
.board-name{font-size:13px;font-weight:600;}
.board-area{font-size:11px;color:var(--text-muted);}
.board-best{position:relative;background:var(--primary-tint);}
.board-best::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--primary);}
.pill-best{font-family:var(--mono);font-size:9px;color:#fff;background:var(--primary);padding:1px 6px;border-radius:100px;}
.board-metric-label{padding:12px 0 12px 14px;font-size:11px;color:var(--text-muted);align-self:center;}
.board-row > .cell{padding:10px;border-left:1px solid var(--border-inner-2);align-self:center;}
.board-row.total .cell{font-family:var(--mono);font-size:25px;font-weight:600;display:inline-block;min-width:2ch;}
.board-row.axis-row{border-top:1px solid var(--border-inner-2);align-items:center;}
.chip{display:inline-block;font-family:var(--mono);font-size:12px;font-weight:600;padding:1px 8px;border-radius:5px;}
.chip-s{color:#fff;background:var(--score-good);}
.chip-a{color:var(--score-good);background:var(--score-good-tint);}
.chip-a.hi{background:var(--score-good-tint-hi);}
.chip-b{color:var(--score-mid-text);background:var(--score-mid-bg);}
.track{height:4px;background:var(--score-track);border-radius:2px;margin-top:6px;}
.track.hi{background:var(--score-track-hi);}
.track > i{display:block;height:100%;border-radius:2px;}
.fill-good{background:var(--score-good);}
.fill-mid{background:var(--score-bar-mid);}

.data-strip{position:relative;border-top:1px solid var(--border);background:#fff;}
.data-strip .wrap{padding:14px 28px;display:flex;align-items:center;gap:20px;flex-wrap:wrap;}
.data-strip .src{font-size:13px;color:var(--text-body);}
.data-strip .sep{width:3px;height:3px;border-radius:50%;background:#D2D6DC;}
.data-strip a{margin-left:auto;font-size:12px;color:var(--primary);text-decoration:underline;text-underline-offset:3px;}
.data-strip a:hover{color:var(--primary-hover);}

/* ---- why (dark) ---- */
.why{background:var(--dark-bg);color:var(--dark-text);}
.why-grid{padding:96px 28px;display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center;}
.why h2{font-size:32px;line-height:1.32;font-weight:600;letter-spacing:-.01em;margin:16px 0 20px;}
.why-lead{font-size:15px;line-height:1.9;color:var(--dark-text-2);margin:0;max-width:440px;}
.why-right{border-left:1px solid var(--dark-border);padding-left:44px;}
.why-stats{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--dark-border);border-radius:12px;overflow:hidden;margin-bottom:32px;}
.why-stats > div{padding:18px 16px;border-right:1px solid var(--dark-border);}
.why-stats > div:last-child{border-right:0;}
.why-stats .n{font-family:var(--mono);font-size:24px;font-weight:600;color:#fff;}
.why-stats .l{font-size:12px;color:var(--dark-text-3);margin-top:4px;}
.why blockquote{margin:0;}
.why blockquote p:first-child{font-size:26px;line-height:1.5;font-weight:600;letter-spacing:-.01em;margin:0;}
.why blockquote .u{color:var(--dark-accent);}
.why blockquote p:last-child{font-size:13px;color:var(--dark-text-3);margin:14px 0 0;}
@media (max-width:900px){ .why-grid{grid-template-columns:1fr;padding:64px 20px;gap:36px;} .why-right{border-left:0;padding-left:0;} .why-stats{grid-template-columns:1fr;} .why-stats > div{border-right:0;border-bottom:1px solid var(--dark-border);} }

/* ---- generic sections ---- */
section.band{border-bottom:1px solid var(--border);}
.sec-pad{padding:96px 28px;}
.sec-pad-sm{padding:80px 28px;}
.sec-head{max-width:640px;margin-bottom:48px;}
.sec-head h2{font-size:32px;line-height:1.3;font-weight:600;letter-spacing:-.01em;margin:14px 0 12px;}
.sec-head p{font-size:15px;color:var(--text-body);margin:0;}
@media (max-width:900px){ .sec-pad{padding:64px 20px;} .sec-pad-sm{padding:56px 20px;} }

/* ---- axes ---- */
.col-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
@media (max-width:900px){ .col-3{grid-template-columns:1fr;} }
.card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:28px;}
.card:hover{border-color:#C7CCD3;box-shadow:0 8px 24px -14px rgba(11,15,20,.18);}
.card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;}
.card-num{font-family:var(--mono);font-size:12px;color:var(--text-muted);}
.axis-badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11px;color:var(--text-body);border:1px solid #E0E3E8;background:var(--surface-subtle);padding:3px 9px;border-radius:100px;}
.axis-dot{width:6px;height:6px;border-radius:50%;}
.dot-life{background:var(--score-good);}
.dot-commute{background:var(--primary);}
.dot-asset{background:var(--asset-accent);}
.card h3{font-size:19px;line-height:1.4;font-weight:600;margin:0 0 10px;}
.card p{font-size:14px;color:var(--text-body);margin:0 0 20px;}
.card dl{border-top:1px solid var(--border-inner);padding-top:14px;font-size:12px;color:var(--text-muted);margin:0;line-height:2;}
.card dl > div{display:flex;justify-content:space-between;}
.card dl dt,dl dd{margin:0;}
.card dl dd{font-family:var(--mono);color:var(--text-body);}

/* ---- compare ---- */
.compare-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:40px;flex-wrap:wrap;}
.weight-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.weight-row .lbl{font-family:var(--mono);font-size:12px;color:var(--text-muted);}
.weight-chip{font-size:12px;border:1px solid #E0E3E8;border-radius:8px;padding:6px 10px;color:var(--text-body);}
.weight-chip b{font-family:var(--mono);}
.table-wrap{border:1px solid #E0E3E8;border-radius:16px;overflow:hidden;box-shadow:0 1px 2px rgba(11,15,20,.05),0 12px 24px -12px rgba(11,15,20,.12),0 48px 90px -40px rgba(11,15,20,.3);}
@media (max-width:900px){ .table-wrap{overflow-x:auto;} .table-wrap table{min-width:760px;} }
table.cmp{width:100%;border-collapse:collapse;font-size:13px;}
table.cmp caption{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
table.cmp th,table.cmp td{border-left:1px solid var(--border-inner);}
table.cmp thead th:first-child, table.cmp tbody th{border-left:0;}
table.cmp thead th{text-align:left;padding:20px;background:var(--surface-subtle);border-bottom:1px solid var(--border);font-weight:400;}
table.cmp thead th:first-child{font-family:var(--mono);font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;font-weight:500;width:190px;}
.th-name{font-size:16px;font-weight:600;}
.th-area{font-size:12px;color:var(--text-muted);margin-top:2px;}
.th-price{font-family:var(--mono);font-size:12px;color:var(--text-body);margin-top:8px;}
.th-price span{font-size:10px;color:var(--text-muted);}
.th-best{position:relative;background:var(--primary-tint);}
.th-best::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--primary);}
.pill-cond{font-family:var(--mono);font-size:10px;color:#fff;background:var(--primary);padding:2px 7px;border-radius:100px;}
table.cmp tbody tr:hover{background:var(--surface-subtle);}
table.cmp tbody tr.summary{background:var(--surface-subtle);}
table.cmp tbody th,table.cmp tbody td{text-align:left;padding:16px 20px;border-bottom:1px solid var(--border-inner);}
table.cmp tbody tr:last-child th, table.cmp tbody tr:last-child td{border-bottom:0;}
table.cmp tbody th{font-size:13px;font-weight:400;color:var(--text-body);}
table.cmp tr.summary th{font-weight:600;}
table.cmp .total-n{font-family:var(--mono);font-size:32px;font-weight:600;display:inline-block;min-width:2ch;}
table.cmp .total-suffix{font-size:12px;color:var(--text-muted);}
table.cmp td.bg-best, table.cmp th.bg-best{background:var(--primary-tint);}
.score-row{display:flex;align-items:center;gap:12px;}
.score-row .track{flex:1;height:6px;margin-top:0;}
.score-row .n{font-family:var(--mono);font-size:12px;color:var(--text-muted);width:22px;}
table.cmp tbody tr.small th,table.cmp tbody tr.small td{padding:14px 20px;font-size:12px;color:var(--text-muted);font-family:var(--mono);}
table.cmp tbody tr.small th{color:var(--text-muted);font-weight:400;}
.pos{color:var(--score-good);}
.legend-row{display:flex;justify-content:space-between;gap:16px;margin-top:14px;flex-wrap:wrap;align-items:center;}
.legend{display:flex;gap:14px;align-items:center;font-size:11px;color:var(--text-muted);flex-wrap:wrap;}
.legend .chip{font-weight:600;padding:0 6px;border-radius:4px;}
.legend .upd{font-family:var(--mono);}
.summary-cards{margin-top:24px;}
.summary-cards .col-3{gap:12px;}
.summary-card{border:1px solid var(--border);border-radius:12px;padding:16px 18px;background:var(--surface-subtle);}
.summary-card.best{border-color:#C9D7F5;background:var(--primary-tint);}
.summary-card .t{font-size:13px;font-weight:600;margin-bottom:4px;}
.summary-card p{font-size:13px;color:var(--text-body);margin:0;}
.add-row{display:flex;gap:10px;margin-top:20px;align-items:center;background:var(--surface-subtle);border:1px solid var(--border);border-radius:12px;padding:14px;}
.add-row input{flex:1;background:#fff;border:1px solid #E0E3E8;border-radius:8px;padding:12px 14px;font-family:inherit;font-size:14px;color:var(--ink);}
.add-row input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(27,69,199,.15);outline:none;}
.add-row button{border:0;background:var(--primary);color:#fff;font-family:inherit;font-size:14px;font-weight:600;padding:12px 22px;border-radius:8px;cursor:pointer;white-space:nowrap;}
.add-row button:hover{background:var(--primary-hover);}

/* ---- how / usecases ---- */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#fff;list-style:none;margin:0;padding:0;}
@media (max-width:900px){ .steps{grid-template-columns:1fr;} }
.steps li{padding:30px;border-right:1px solid var(--border-inner);}
.steps li:last-child{border-right:0;}
@media (max-width:900px){ .steps li{border-right:0;border-bottom:1px solid var(--border-inner);} .steps li:last-child{border-bottom:0;} }
.step-tag{font-family:var(--mono);font-size:12px;color:var(--primary);letter-spacing:.1em;}
.steps h3{font-size:17px;line-height:1.4;font-weight:600;margin:14px 0 10px;}
.steps p{font-size:14px;color:var(--text-body);margin:0;}

.col-2{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;}
@media (max-width:900px){ .col-2{grid-template-columns:1fr;} }
.usecase{border:1px solid var(--border);border-radius:12px;padding:26px;display:flex;gap:18px;}
.usecase:hover{border-color:#C7CCD3;}
.usecase .idx{font-family:var(--mono);font-size:12px;color:var(--text-muted);}
.usecase h3{font-size:16px;line-height:1.4;font-weight:600;margin:0 0 8px;}
.usecase p{font-size:14px;color:var(--text-body);margin:0;}

/* ---- data / trust ---- */
.data-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:56px;}
@media (max-width:900px){ .data-grid{grid-template-columns:1fr;gap:32px;} }
.data-grid h2{font-size:30px;line-height:1.35;font-weight:600;letter-spacing:-.01em;margin:14px 0 16px;}
.data-grid p{font-size:15px;color:var(--text-body);margin:0 0 26px;}
.stat-row{display:flex;gap:14px;margin-bottom:18px;}
.stat-tile{border:1px solid #E0E3E8;background:#fff;border-radius:12px;padding:16px 18px;flex:1;}
.stat-tile .n{font-family:var(--mono);font-size:22px;font-weight:600;}
.stat-tile .l{font-size:12px;color:var(--text-muted);margin-top:2px;}
.data-grid > div:first-child a{font-size:13px;color:var(--primary);text-decoration:underline;text-underline-offset:3px;}
.data-grid > div:first-child a:hover{color:var(--primary-hover);}
.src-table{border:1px solid #E0E3E8;background:#fff;border-radius:12px;overflow:hidden;}
.src-table table{width:100%;border-collapse:collapse;font-size:13px;}
.src-table th{text-align:left;padding:14px 20px;border-bottom:1px solid var(--border);background:var(--surface-subtle);font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-weight:500;}
.src-table td{padding:15px 20px;border-bottom:1px solid var(--border-inner);}
.src-table tr:last-child td{border-bottom:0;}
.src-table tr:hover td{background:var(--surface-subtle);}
.src-table td:first-child{font-weight:500;}
.src-table td:nth-child(2){color:var(--text-muted);}
.src-table td:nth-child(3){font-family:var(--mono);color:var(--text-muted);font-size:12px;}

/* ---- column / walk cards ---- */
.section-head-row{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:36px;flex-wrap:wrap;gap:16px;}
.section-head-row h2{font-size:28px;line-height:1.3;font-weight:600;letter-spacing:-.01em;margin:14px 0 0;}
.section-head-row .more{font-size:13px;color:var(--primary);text-decoration:underline;text-underline-offset:3px;}
.section-head-row .more:hover{color:var(--primary-hover);}
.thumb-card{border:1px solid var(--border);border-radius:12px;overflow:hidden;display:block;text-decoration:none;color:inherit;background:#fff;}
.thumb-card:hover{border-color:#C7CCD3;box-shadow:0 8px 24px -14px rgba(11,15,20,.18);}
.thumb{height:150px;}
.thumb-body{padding:20px;}
.thumb-tag{font-family:var(--mono);font-size:11px;letter-spacing:.06em;}
.thumb-body h3{font-size:16px;font-weight:600;margin:8px 0 8px;line-height:1.5;}
.thumb-body p{font-size:13px;color:var(--text-muted);margin:0;}
.walk-card{background:#fff;border:1px solid var(--border);border-radius:12px;overflow:hidden;}
.walk-card:hover{border-color:#C7CCD3;box-shadow:0 8px 24px -14px rgba(11,15,20,.18);}
.walk-thumb{height:160px;background:#E6EAEE;position:relative;}
.walk-thumb-grid{position:absolute;inset:0;background-image:linear-gradient(#DADFE4 1px,transparent 1px),linear-gradient(90deg,#DADFE4 1px,transparent 1px);background-size:22px 22px;opacity:.7;}
.walk-pin{position:absolute;top:50%;left:50%;transform:translate(-50%,-85%);filter:drop-shadow(0 4px 8px rgba(11,15,20,.25));}
.walk-body{padding:20px;}
.walk-body .loc{font-size:11px;color:var(--text-muted);}
.walk-body h3{font-size:16px;font-weight:600;margin:6px 0 12px;}
.walk-body a{font-family:var(--mono);font-size:12px;color:var(--primary);text-decoration:underline;text-underline-offset:3px;}
.walk-body a:hover{color:var(--primary-hover);}

/* ---- explore ---- */
.explore-panel{border:1px solid var(--border);border-radius:12px;padding:26px;}
.explore-panel h3{font-size:16px;font-weight:600;margin:0 0 16px;}
.rank-list{display:flex;flex-direction:column;}
.rank-list a{display:flex;align-items:center;gap:14px;padding:12px 8px;border-bottom:1px solid var(--border-inner-2);text-decoration:none;color:var(--ink);border-radius:6px;}
.rank-list a:last-child{border-bottom:0;}
.rank-list a:hover{background:var(--surface);}
.rank-list .n{font-family:var(--mono);font-size:12px;color:var(--text-muted);width:20px;}
.rank-list .t{font-size:14px;flex:1;}
.area-chips{display:flex;flex-wrap:wrap;gap:8px;}
.area-chips a{font-size:13px;text-decoration:none;color:var(--text-body);border:1px solid #E0E3E8;border-radius:8px;padding:9px 14px;}
.area-chips a:hover{border-color:var(--primary);color:var(--primary);}
.area-chips a.more{color:var(--text-muted);border:1px dashed #D2D6DC;}
.area-chips .soon{font-size:12px;color:var(--text-faint);border:1px dashed var(--border);border-radius:8px;padding:9px 14px;cursor:default;}

/* ---- faq ---- */
.faq{display:flex;flex-direction:column;gap:12px;}
.faq details{background:#fff;border:1px solid var(--border);border-radius:12px;padding:20px 24px;}
.faq summary{font-size:15px;font-weight:600;cursor:pointer;list-style-position:inside;}
.faq p{font-size:14px;color:var(--text-body);margin:12px 0 0;}

/* ---- final cta (dark) ---- */
.final-cta{background:var(--dark-bg);color:#fff;position:relative;overflow:hidden;}
.final-cta-bg{position:absolute;inset:0;background-image:linear-gradient(#14233A 1px,transparent 1px),linear-gradient(90deg,#14233A 1px,transparent 1px);background-size:56px 56px;opacity:.5;mask-image:radial-gradient(90% 120% at 50% 0%,#000,transparent 70%);}
.final-cta .wrap{position:relative;max-width:820px;padding:110px 28px;text-align:center;}
.final-cta h2{font-size:36px;line-height:1.35;font-weight:600;letter-spacing:-.02em;margin:0 0 14px;}
.final-cta .lead{font-size:15px;color:var(--dark-text-2);margin:0 0 32px;}
.final-form{display:flex;gap:8px;max-width:520px;margin:0 auto 24px;background:#fff;border-radius:12px;padding:8px;}
.final-form input{flex:1;border:0;outline:none;padding:11px 14px;font-family:inherit;font-size:14px;color:var(--ink);background:transparent;text-align:left;}
.final-form button{border:0;background:var(--primary);color:#fff;font-family:inherit;font-size:14px;font-weight:600;padding:11px 22px;border-radius:8px;cursor:pointer;white-space:nowrap;}
.final-form button:hover{background:var(--primary-hover);}
.final-form button:active{transform:scale(.98);}
.social-row{display:flex;gap:10px;align-items:center;justify-content:center;font-size:13px;color:var(--dark-text-3);flex-wrap:wrap;}
.social-row a{color:var(--dark-text);text-decoration:none;border:1px solid #2C3B55;border-radius:8px;padding:7px 13px;}
.social-row a:hover{border-color:var(--dark-accent);color:var(--dark-accent);}

/* ---- footer ---- */
footer.site-footer{background:var(--dark-bg);color:var(--dark-text-3);padding:64px 28px 40px;border-top:1px solid var(--dark-border-2);}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px;padding-bottom:40px;border-bottom:1px solid var(--dark-border-2);}
@media (max-width:900px){ .footer-grid{grid-template-columns:1fr 1fr;} }
.footer-brand{display:flex;align-items:center;gap:9px;margin-bottom:14px;}
.footer-brand .brand-mark span:nth-child(1){background:#5B6673;}
.footer-brand .brand-mark span:nth-child(2){background:#C7CCD3;}
.footer-brand .brand-mark span:nth-child(3){background:#5B7BE0;}
.footer-brand .name{font-weight:600;font-size:16px;color:#fff;}
.footer-desc{font-size:13px;color:#8593A8;margin:0 0 14px;max-width:280px;}
.footer-legal{font-size:12px;color:#68758C;margin:0;}
.footer-legal a{color:var(--dark-text-3);text-decoration:underline;text-underline-offset:3px;}
footer nav{font-size:13px;line-height:2.3;}
footer nav .h{color:#fff;font-weight:600;font-size:12px;margin-bottom:6px;}
footer nav a{color:var(--dark-text-3);text-decoration:none;display:block;}
footer nav a:hover{color:#fff;}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:24px;flex-wrap:wrap;gap:12px;max-width:1180px;margin:0 auto;}
.footer-bottom .cp{font-family:var(--mono);font-size:11px;color:#68758C;}
.footer-bottom .legal-links{display:flex;gap:20px;font-size:12px;}
.footer-bottom .legal-links a{color:#8593A8;text-decoration:none;}
.footer-bottom .legal-links a:hover{color:#fff;}
footer.site-footer > .wrap{max-width:1180px;margin:0 auto;padding:0;}

/* ---- town page (街ページ) ---- */
.breadcrumb{max-width:1180px;margin:0 auto;padding:18px 28px 0;font-size:12px;color:var(--text-muted);display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.breadcrumb a{color:var(--text-muted);text-decoration:underline;text-underline-offset:3px;}
.breadcrumb a:hover{color:var(--primary);}
.breadcrumb .current{color:var(--ink);}
.town-hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:44px;align-items:start;padding:36px 28px 56px;}
@media (max-width:900px){ .town-hero-grid{grid-template-columns:1fr;padding:32px 20px 48px;} }
.town-hero h1{font-size:44px;line-height:1.25;letter-spacing:-.02em;font-weight:600;margin:0 0 14px;}
@media (max-width:900px){ .town-hero h1{font-size:30px;} }
.town-hero .desc{font-size:15px;line-height:1.8;color:var(--text-body);margin:0 0 24px;max-width:520px;}
.town-axis-row{display:flex;align-items:center;gap:14px;}
.town-axis-row .lab{display:inline-flex;align-items:center;gap:6px;width:92px;font-size:13px;color:var(--text-body);flex-shrink:0;}
.town-axis-row .track{flex:1;height:6px;margin-top:0;}
.town-axis-row .n{font-family:var(--mono);font-size:13px;color:var(--text-muted);width:28px;text-align:right;}
.chip-pending{display:inline-block;font-family:var(--mono);font-size:12px;font-weight:500;padding:1px 8px;border-radius:6px;color:var(--text-faint);background:var(--surface-subtle);border:1px dashed var(--border);}
.town-cta-row{display:flex;gap:10px;margin-top:28px;flex-wrap:wrap;}
.btn-secondary{font-size:14px;font-weight:500;color:var(--text-body);background:#fff;border:1px solid #E0E3E8;padding:12px 22px;border-radius:8px;text-decoration:none;}
.btn-secondary:hover{border-color:var(--primary);color:var(--primary);}
.total-score-card{background:#fff;border:1px solid #E0E3E8;border-radius:16px;padding:26px 28px;box-shadow:0 1px 2px rgba(11,15,20,.05),0 12px 24px -12px rgba(11,15,20,.12),0 48px 90px -40px rgba(11,15,20,.3);display:flex;align-items:center;gap:24px;}
.total-score-card .num{font-family:var(--mono);font-size:56px;line-height:1;font-weight:600;display:inline-block;min-width:2ch;}
.total-score-card .aside{border-left:1px solid var(--border-inner);padding-left:24px;font-size:13px;color:var(--text-body);line-height:1.8;}
.town-map-ph{position:relative;height:200px;background:#E6EAEE;border:1px solid #E0E3E8;border-radius:16px;overflow:hidden;}
.town-map-grid{position:absolute;inset:0;background-image:linear-gradient(#DADFE4 1px,transparent 1px),linear-gradient(90deg,#DADFE4 1px,transparent 1px);background-size:24px 24px;opacity:.7;}
.town-map-pin{position:absolute;top:50%;left:50%;transform:translate(-50%,-85%);filter:drop-shadow(0 4px 8px rgba(11,15,20,.25));}
.detail-card{border:1px solid var(--border);border-radius:12px;padding:26px;}
.detail-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.detail-card h3{font-size:17px;font-weight:600;margin:0;}
.detail-card dl{margin:0;font-size:13px;line-height:2.2;color:var(--text-body);}
.detail-card dl > div{display:flex;justify-content:space-between;border-bottom:1px solid var(--border-inner-2);}
.detail-card dl > div:last-child{border-bottom:0;}
.detail-card dt{margin:0;color:var(--text-muted);}
.detail-card dd{margin:0;font-family:var(--mono);}
.related-card{background:#fff;border:1px solid var(--border);border-radius:12px;overflow:hidden;display:flex;}
.related-card:hover{border-color:#C7CCD3;box-shadow:0 8px 24px -14px rgba(11,15,20,.18);}
.related-thumb{width:180px;flex-shrink:0;background:#E6EAEE;position:relative;}
.related-body{padding:20px 22px;}
.related-body .tag{font-size:11px;color:var(--text-muted);}
.related-body h3{font-size:16px;font-weight:600;margin:6px 0 8px;}
.related-body p{font-size:13px;color:var(--text-muted);margin:0 0 10px;}
.nearby-chips{display:flex;flex-wrap:wrap;gap:10px;}
.nearby-chip{display:inline-flex;align-items:center;gap:10px;font-size:13px;text-decoration:none;color:var(--text-body);border:1px solid #E0E3E8;border-radius:8px;padding:10px 16px;background:#fff;}
.nearby-chip:hover{border-color:var(--primary);color:var(--primary);}
.nearby-chip.soon{color:var(--text-faint);border:1px dashed var(--border);cursor:default;}
.town-cta{background:var(--dark-bg);color:#fff;position:relative;overflow:hidden;}
.town-cta-bg{position:absolute;inset:0;background-image:linear-gradient(#14233A 1px,transparent 1px),linear-gradient(90deg,#14233A 1px,transparent 1px);background-size:56px 56px;opacity:.5;mask-image:radial-gradient(90% 120% at 50% 0%,#000,transparent 70%);}
.town-cta .wrap{position:relative;max-width:820px;padding:88px 28px;text-align:center;}
.town-cta h2{font-size:32px;line-height:1.35;font-weight:600;letter-spacing:-.02em;margin:0 0 12px;}
.footer-simple{background:var(--dark-bg);color:var(--dark-text-3);padding:40px 28px;border-top:1px solid var(--dark-border-2);}
.footer-simple .wrap{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;}
.footer-simple nav{display:flex;gap:20px;font-size:12px;}
.footer-simple nav a{color:#8593A8;text-decoration:none;}
.footer-simple nav a:hover{color:#fff;}
.sample-note{font-size:12px;color:var(--text-muted);margin:14px 0 0;}
