:root{--p:#ff6b4a;--p2:#ffb347;--bg:#fff8f1;--ink:#2b2340;--mut:#7a7290;--card:#fff;--g:#2bb673}
*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--ink);padding-bottom:76px;max-width:520px;margin:auto}
a{color:inherit;text-decoration:none}
.top{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:linear-gradient(120deg,var(--p),var(--p2));color:#fff}
.logo{font-weight:800;font-size:22px}.town{font-size:13px;opacity:.9}
.pro{background:#fff;color:var(--p);font-weight:700;padding:8px 12px;border-radius:999px;font-size:13px}
.sample{background:#fff3c4;color:#7a5b00;font-size:11px;text-align:center;padding:4px;font-weight:600}
main{padding:12px 14px}
h2{font-size:18px;margin:18px 0 8px}
.chips{display:flex;flex-wrap:wrap;gap:8px;padding-bottom:4px;margin-bottom:4px}
.chip{flex:none;white-space:nowrap;border:1.5px solid #eadfd5;background:#fff;border-radius:999px;padding:7px 12px;font-size:13px;font-weight:600;cursor:pointer}
.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.card{display:flex;gap:12px;background:var(--card);border-radius:16px;padding:12px;margin:10px 0;box-shadow:0 2px 10px #2b234012;align-items:center}
.em{width:56px;height:56px;border-radius:14px;display:grid;place-items:center;font-size:30px;background:#ffeee6;flex:none}
.card h3{margin:0 0 3px;font-size:15px}.meta{font-size:12px;color:var(--mut)}
.tag{display:inline-block;font-size:10px;font-weight:700;padding:2px 7px;border-radius:999px;background:#e3f7ec;color:var(--g);margin-top:4px;margin-right:4px}
.tag.o{background:#fff0e0;color:#c66a00}
.ad{background:#f4f0ff;border:1px dashed #b9a8ff}.ad .em{background:#e6deff}
.adlbl{font-size:10px;font-weight:800;color:#7a5cff;letter-spacing:.5px}
.banner{margin:10px 14px 0;padding:10px 12px;border-radius:12px;background:#f4f0ff;border:1px dashed #b9a8ff;font-size:13px;display:flex;gap:10px;align-items:center}
#map{height:300px;border-radius:16px;margin:8px 0;z-index:0}
.hero{background:#fff;border-radius:18px;padding:16px;box-shadow:0 2px 10px #2b234012}
.big{font-size:64px;text-align:center}
.btn{display:block;width:100%;border:0;border-radius:14px;padding:14px;font-size:16px;font-weight:800;background:var(--p);color:#fff;cursor:pointer;margin-top:12px;text-align:center}
.btn.alt{background:#eee;color:var(--ink)}
.price{text-align:center;font-size:34px;font-weight:900}.price small{font-size:14px;color:var(--mut)}
.mock{text-align:center;font-size:11px;color:#a33;font-weight:700}
ul.feat{padding-left:18px;line-height:1.8}
.tabs{position:fixed;bottom:0;left:0;right:0;max-width:520px;margin:auto;display:flex;background:#fff;border-top:1px solid #eee;z-index:10}
.tabs a{flex:1;text-align:center;padding:8px 0 10px;font-size:20px}.tabs span{display:block;font-size:11px;font-weight:600;color:var(--mut)}
.tabs a.on span{color:var(--p)}
.dist{font-weight:700;color:var(--p)}
.search{display:flex;align-items:center;gap:8px;background:#fff;border:1.5px solid #eadfd5;border-radius:14px;padding:10px 12px;margin-bottom:10px}.search input{border:0;outline:0;flex:1;font-size:15px;background:transparent;color:var(--ink)}
.empty{text-align:center;background:#fff;border-radius:16px;padding:22px;margin:10px 0}
.info{font-size:14px;margin:6px 0}.lnk{color:var(--p);font-weight:700}.actions{display:flex;gap:10px}.actions .btn{flex:1;margin-top:8px}
.openpill{font-size:12px;font-weight:800;padding:3px 9px;border-radius:999px}.op{background:#e3f7ec;color:var(--g)}.cl{background:#fde8e8;color:#c0392b}
.hrs{width:100%;font-size:13px;border-collapse:collapse;margin-bottom:10px}.hrs td{padding:3px 0}.hrs td:last-child{text-align:right}.hrs tr.td{font-weight:800;color:var(--p)}
.chg{color:#fff;text-decoration:underline;font-weight:700}.geost{font-size:11px;opacity:.85}
.pw{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;min-height:calc(100vh - 230px);text-align:center;color:#111}
.pwt{font-size:34px;font-weight:900;line-height:1.15}.pwp{font-size:64px;font-weight:900;color:#111}.pwp span{font-size:30px}
.pwyes{display:block;width:100%;border:0;border-radius:20px;padding:26px 14px;font-size:26px;font-weight:900;background:#c2185b;color:#fff;cursor:pointer;box-shadow:0 4px 0 #8a0f40}
.pwyes:disabled{opacity:.7}.pwno{font-size:20px;font-weight:700;color:#333;text-decoration:underline;padding:10px 24px}
.pwdemo{font-size:15px;font-weight:800;color:#8a0000}

/* ===== iOS-native design layer (visual only) ===== */
:root{--ink:#000;--ink2:#1c1c1e;--mut:#8e8e93;--bg:#f2f2f7;--card:#fff;--line:rgba(60,60,67,.18);--p:#007aff;--p2:#007aff;--g:#248a3d;--sh:0 1px 2px rgba(0,0,0,.04),0 2px 10px rgba(0,0,0,.04)}
body{font-family:-apple-system,"SF Pro Text","SF Pro Display",system-ui,Inter,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;letter-spacing:-.01em}
.top{position:sticky;top:0;z-index:20;background:rgba(242,242,247,.82);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);color:#000;padding:14px 18px 10px;align-items:flex-end;border-bottom:.5px solid transparent;transition:border-color .2s}
.top.scrolled{border-bottom-color:var(--line)}
.logo{font-size:34px;font-weight:800;letter-spacing:-.03em;line-height:1.05}
.mark{display:none}
.town{font-size:15px;color:var(--mut);opacity:1;margin-top:2px;font-weight:400}.chg{color:var(--p);text-decoration:none;font-weight:500}
.pro{background:transparent;color:var(--p);border:0;padding:6px 0;font-size:16px;font-weight:600;margin-bottom:4px}
.sample{background:transparent;color:var(--mut);font-size:12px;font-weight:400;text-align:left;padding:0 18px 4px}
main{padding:8px 16px 16px}
h2{font-size:22px;font-weight:700;letter-spacing:-.02em;margin:22px 4px 10px}
.search{background:rgba(118,118,128,.12);border:0;border-radius:10px;padding:8px 10px;box-shadow:none;margin-bottom:12px}
.search span{opacity:.5;font-size:14px}.search input{font-family:inherit;font-size:17px}
.chips{gap:8px;margin-bottom:10px}
.chip{font-family:inherit;background:#fff;border:0;color:var(--ink2);font-weight:500;font-size:15px;padding:7px 14px;box-shadow:0 0 0 .5px var(--line)}
.chip.on{background:var(--p);color:#fff;box-shadow:none}
.chips.seg{display:flex;flex-wrap:nowrap;gap:0;background:rgba(118,118,128,.12);border-radius:9px;padding:2px}
.chips.seg .chip{flex:1;background:transparent;box-shadow:none;border-radius:7px;padding:6px 4px;font-size:13px;font-weight:500;color:#000}
.chips.seg .chip.on{background:#fff;color:#000;font-weight:600;box-shadow:0 3px 8px rgba(0,0,0,.12),0 3px 1px rgba(0,0,0,.04)}
.card{background:#fff;border-radius:14px;padding:12px 14px;margin:10px 0;box-shadow:var(--sh);border:0;gap:14px}
.em{width:52px;height:52px;border-radius:12px;background:#f2f2f7;font-size:26px}
.card h3{font-size:16px;font-weight:600;letter-spacing:-.015em;line-height:1.3;margin-bottom:3px}
.meta{color:var(--mut);font-size:13px;line-height:1.45}
.dist{color:var(--p);font-weight:600}
.tag{background:rgba(52,199,89,.14);color:var(--g);font-weight:600;font-size:10.5px;letter-spacing:.02em;border-radius:6px;padding:3px 7px;margin-top:6px}
.tag.o{background:rgba(118,118,128,.12);color:#3a3a3c}
.ad{background:#fff;border:0;box-shadow:var(--sh)}
.ad .em{background:#f2f2f7}
.adlbl{color:var(--mut);font-size:11px;letter-spacing:.06em;font-weight:600}
.banner{background:#fff;border:0;border-radius:14px;padding:12px 14px;box-shadow:var(--sh);font-size:15px}
#banner .banner{margin:10px 16px 0 !important}
.hero{background:#fff;border-radius:16px;padding:18px;box-shadow:var(--sh)}
.hero h2{margin:8px 0 6px;font-size:24px}
.big{font-size:56px}
.btn{font-family:inherit;border-radius:12px;background:var(--p);font-weight:600;font-size:17px;padding:14px}
.btn.alt{background:rgba(0,122,255,.1);color:var(--p)}
.empty{background:#fff;border-radius:14px;box-shadow:var(--sh);padding:26px}
#map{border-radius:14px;box-shadow:var(--sh)}
.lnk{color:var(--p)}
.info{font-size:15px}
.tabs{background:rgba(249,249,249,.86);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-top:.5px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}
.tabs a{color:#999;font-size:0;padding:7px 0 6px;display:flex;flex-direction:column;align-items:center;gap:2px}
.tabs span{font-size:10px;font-weight:500;color:inherit}
.tabs a.on,.tabs a.on span{color:var(--p)}
/* paywall: big, high-contrast, iOS-styled */
.pw{color:#000}.pwt{font-size:34px;font-weight:800;letter-spacing:-.03em}.pwp{color:#000;letter-spacing:-.04em}
.pwyes{font-family:inherit;background:var(--p);box-shadow:none;border-radius:16px;font-weight:700;padding:24px 14px}
.pwno{color:var(--p);text-decoration:none;font-weight:600}
.pwdemo{color:#c41e3a}
.note{background:#fff;border-radius:12px;padding:10px 12px;font-size:14px;color:#3a3a3c;box-shadow:var(--sh);margin:4px 0 12px}

.tag.age{background:rgba(255,59,48,.13);color:#d70015;font-weight:700}
.tag.vd{background:rgba(255,159,10,.16);color:#a05a00;font-weight:700}
.tag.fam{background:rgba(0,122,255,.12);color:#0062cc}
/* launch: footer, AdSense slots, add-to-home hint, restore */
.foot{text-align:center;font-size:13px;color:var(--mut);padding:18px 16px calc(96px + env(safe-area-inset-bottom))}
.foot a{color:var(--mut);text-decoration:none}
.adslot{background:#fff;border-radius:14px;box-shadow:var(--sh);margin:12px 0;padding:8px 10px 10px;overflow:hidden}
#banner .adslot{margin:10px 16px 0}
.adslot .adlbl{display:block;margin:0 2px 6px}
.adslot ins{display:block;min-height:50px}
.house{display:flex;gap:10px;align-items:center;font-size:14px;text-decoration:none;color:inherit}
.house .em{width:40px;height:40px;border-radius:10px;background:#f2f2f7;display:flex;align-items:center;justify-content:center;font-size:20px;flex:none}
.a2hs{position:fixed;left:12px;right:12px;bottom:calc(78px + env(safe-area-inset-bottom));z-index:1000;background:rgba(255,255,255,.96);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:16px;box-shadow:0 8px 30px rgba(0,0,0,.18);padding:12px 40px 12px 14px;font-size:14px;display:flex;gap:10px;align-items:center}
.a2hs img{width:40px;height:40px;border-radius:10px}.a2hs button{position:absolute;right:8px;top:8px;border:0;background:none;font-size:20px;color:var(--mut)}
.restore input{width:100%;box-sizing:border-box;font-size:17px;padding:12px;border-radius:12px;border:1px solid #d1d1d6;margin:10px 0}
