/* Long-Stay Research Hub — shared styles */
:root{
  --bg: #0f1419;
  --bg-soft: #161d26;
  --card: #1b232e;
  --card-hover: #212b38;
  --border: #2a3644;
  --text: #e8edf2;
  --text-dim: #9fb0c0;
  --text-faint: #6b7a89;
  --accent: #4fb0ff;
  --accent-soft: rgba(79,176,255,.12);
  --jakarta: #4f9bff;
  --bali: #37c99b;
  --cebu: #ff9f43;
  --visa: #b48cff;
  --marine: #26c6da;
  --budget: #ffcc5c;
  --japan: #ff6b8b;
  --good: #37c99b;
  --warn: #ffcc5c;
  --bad: #ff6b6b;
  --radius: 14px;
  --maxw: 1080px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:"Hiragino Kaku Gothic ProN","Noto Sans JP",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  line-height:1.7;
  font-size:15.5px;
}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 20px}

/* top nav */
header.site{
  position:sticky;top:0;z-index:50;
  background:rgba(15,20,25,.9);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--border);
}
header.site .bar{display:flex;align-items:center;gap:18px;padding:12px 20px;max-width:var(--maxw);margin:0 auto;flex-wrap:wrap}
header.site .brand{font-weight:700;font-size:15px;color:var(--text);white-space:nowrap}
header.site .brand span{color:var(--accent)}
nav.crumbs{display:flex;gap:14px;flex-wrap:wrap;font-size:13.5px}
nav.crumbs a{color:var(--text-dim);padding:4px 0;border-bottom:2px solid transparent}
nav.crumbs a:hover,nav.crumbs a.active{color:var(--text);border-color:var(--accent);text-decoration:none}

/* hero */
.hero{padding:56px 20px 40px;max-width:var(--maxw);margin:0 auto}
.hero .tag{display:inline-block;font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);background:var(--accent-soft);padding:4px 10px;border-radius:999px;margin-bottom:16px}
.hero h1{font-size:clamp(28px,4.5vw,44px);margin:0 0 14px;line-height:1.3}
.hero p.lead{color:var(--text-dim);font-size:17px;max-width:760px;margin:0 0 6px}
.updated{color:var(--text-faint);font-size:13px;margin-top:18px}

/* section */
main{padding-bottom:80px}
section{max-width:var(--maxw);margin:0 auto;padding:34px 20px}
section h2{font-size:24px;margin:0 0 6px;display:flex;align-items:center;gap:10px}
section h2 .num{color:var(--text-faint);font-weight:400;font-size:16px}
section .sub{color:var(--text-dim);margin:0 0 20px;font-size:14.5px}
h3{font-size:18px;margin:28px 0 10px}
h4{font-size:15.5px;margin:18px 0 8px;color:var(--text-dim)}

/* cards grid for hub */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin:20px 0}
.card{
  background:var(--card);border:1px solid var(--border);border-radius:var(--radius);
  padding:20px;transition:transform .15s,border-color .15s,background .15s;display:block;
}
a.card:hover{transform:translateY(-2px);border-color:var(--accent);background:var(--card-hover);text-decoration:none}
.card .icon{font-size:26px;margin-bottom:10px;display:block}
.card h3{margin:0 0 6px;font-size:17px;color:var(--text)}
.card p{margin:0;color:var(--text-dim);font-size:13.5px}
.card .chip{display:inline-block;margin-top:10px;font-size:11.5px;color:var(--text-faint);border:1px solid var(--border);padding:2px 8px;border-radius:999px}

/* decision table on hub */
table{width:100%;border-collapse:collapse;margin:14px 0;font-size:14px}
th,td{padding:10px 12px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}
th{color:var(--text-dim);font-weight:600;font-size:12.5px;text-transform:uppercase;letter-spacing:.03em}
tr:hover td{background:rgba(255,255,255,.02)}
.tbl-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);margin:16px 0}
.tbl-wrap table{margin:0}
.tbl-wrap th,.tbl-wrap td{white-space:normal}

/* property / poi cards */
.poi{
  background:var(--card);border:1px solid var(--border);border-radius:var(--radius);
  padding:18px 20px;margin:14px 0;
}
.poi .head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.poi .head h4{margin:0;color:var(--text);font-size:16px}
.poi .price{color:var(--good);font-weight:700;font-size:15px;white-space:nowrap}
.poi .meta{color:var(--text-faint);font-size:12.5px;margin:4px 0 10px}
.poi ul.facts{list-style:none;margin:8px 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px 14px;font-size:13.5px}
.poi ul.facts li{color:var(--text-dim)}
.poi ul.facts li b{color:var(--text);font-weight:600}
.poi .note{font-size:13px;color:var(--text-dim);margin-top:8px;border-top:1px dashed var(--border);padding-top:8px}
.poi .links{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap}

/* buttons / link chips */
.btn{
  display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:600;
  padding:6px 11px;border-radius:8px;border:1px solid var(--border);color:var(--text);
}
.btn:hover{text-decoration:none;border-color:var(--accent)}
.btn.map{background:rgba(79,176,255,.1);color:#7cc4ff;border-color:rgba(79,176,255,.3)}
.btn.map:hover{background:rgba(79,176,255,.18)}
.btn.src{background:rgba(255,255,255,.03);color:var(--text-dim)}
.badge{display:inline-block;font-size:11px;padding:2px 8px;border-radius:999px;font-weight:600;margin-right:6px}
.badge.good{background:rgba(55,201,155,.15);color:var(--good)}
.badge.warn{background:rgba(255,204,92,.15);color:var(--warn)}
.badge.bad{background:rgba(255,107,107,.15);color:var(--bad)}
.badge.info{background:rgba(79,176,255,.15);color:var(--accent)}

/* callouts */
.callout{border-left:3px solid var(--accent);background:var(--bg-soft);padding:14px 18px;border-radius:0 10px 10px 0;margin:18px 0;font-size:14px;color:var(--text-dim)}
.callout.warn{border-color:var(--warn)}
.callout b{color:var(--text)}

/* city theme accents */
.theme-jakarta h2{color:var(--jakarta)}
.theme-bali h2{color:var(--bali)}
.theme-cebu h2{color:var(--cebu)}
.theme-visa h2{color:var(--visa)}
.theme-marine h2{color:var(--marine)}
.theme-budget h2{color:var(--budget)}
.theme-japan h2{color:var(--japan)}

hr.div{border:none;border-top:1px solid var(--border);margin:40px 0}

footer{border-top:1px solid var(--border);padding:30px 20px;color:var(--text-faint);font-size:12.5px;text-align:center}
footer a{color:var(--text-faint)}

.stars{color:var(--warn);letter-spacing:1px}
.legend{font-size:12.5px;color:var(--text-faint);margin:10px 0}

@media (max-width:640px){
  nav.crumbs{gap:10px}
  .poi ul.facts{grid-template-columns:1fr 1fr}
}
