:root{--green:#286d4e;--ink:#20392e;--muted:#69776d;--cream:#faf8f3;--line:#e1e8df;--gold:#d39b38}*{box-sizing:border-box}body{margin:0;background:#e9eee8;color:var(--ink);font-family:system-ui,-apple-system,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:var(--green)}.shell{max-width:620px;margin:0 auto;min-height:100dvh;background:var(--cream);padding-bottom:100px;box-shadow:0 10px 35px #1b3a2512}header{padding:18px 20px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{font-weight:900;font-size:19px;letter-spacing:-.04em}.sub{font-size:11px;color:var(--muted)}.tag{background:#e6f1e8;color:var(--green);padding:7px 10px;border-radius:30px;font-size:11px;font-weight:700}main{padding:18px}.hero{background:#e7efe5;padding:24px;border-radius:20px;margin-bottom:18px}.hero h1{font-size:26px;line-height:1.35;margin:4px 0 10px}.hero p{font-size:13px;color:var(--muted);margin:0}h2{font-size:19px;margin:12px 0}h3{font-size:15px;margin:0 0 5px}.card{background:white;border:1px solid var(--line);border-radius:16px;padding:15px;margin:11px 0;box-shadow:0 2px 9px #19392207}.card.click{cursor:pointer}.row{display:flex;justify-content:space-between;align-items:center;gap:12px}.muted,.hint{font-size:12px;color:var(--muted);line-height:1.6}.hint{margin-top:9px}.price{color:var(--green);font-weight:800}.stars{color:#ae7821;font-weight:750}.chips{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0}.chip{border:1px solid #ccd9cd;background:white;border-radius:25px;padding:9px 12px;font-size:12px}.chip.active{background:var(--green);color:white;border-color:var(--green)}.btn{border:0;border-radius:11px;background:var(--green);color:white;font-weight:700;padding:12px 15px;min-height:44px}.btn.alt{background:#e9f1e8;color:var(--green)}.btn.line{background:white;color:var(--green);border:1px solid var(--green)}.btn:disabled{opacity:.5;cursor:not-allowed}.actions{display:flex;gap:8px;flex-wrap:wrap}.actions>*{flex:1}.field{display:block;margin:13px 0}.field>span{display:block;font-size:12px;font-weight:700;margin-bottom:6px}.field input,.field select,.field textarea{width:100%;min-height:44px;border:1px solid #cbd6cc;border-radius:10px;padding:11px;background:white;color:var(--ink)}.field textarea{min-height:88px;resize:vertical}.notice{background:#fff3d6;color:#70542b;border-radius:12px;padding:12px;font-size:12px;line-height:1.65;margin:12px 0}.error{background:#fff0ef;color:#8d2929;border-radius:12px;padding:12px;font-size:12px;margin:12px 0}.success{background:#e3f3e7;color:#286d4e;border-radius:12px;padding:12px;font-size:12px;margin:12px 0}.empty{text-align:center;padding:25px;color:var(--muted);font-size:13px;line-height:1.8}.nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(620px,100%);background:white;border-top:1px solid var(--line);display:flex;justify-content:space-around;align-items:center;padding:9px 3px max(12px,env(safe-area-inset-bottom));z-index:1001}.nav button{border:0;background:none;color:#788b7e;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:11px;min-width:52px;font-weight:700}.nav button strong{font-size:20px}.nav button.active{color:var(--green)}.map{height:310px;border-radius:15px;border:1px solid var(--line);margin:12px 0;z-index:1}.divider{height:1px;background:var(--line);margin:15px 0}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pill{background:#eff4ef;border-radius:7px;padding:5px 8px;font-size:11px}.review{border-top:1px solid var(--line);padding:13px 0}.review:first-of-type{border:0}.label{font-size:11px;color:var(--muted)}.small{font-size:11px}.full{width:100%}#banner{padding:0 18px}#banner:empty{display:none}.candidate{padding:11px 0;border-top:1px solid var(--line)}.candidate:first-child{border:0}.leaflet-container{font:inherit}.leaflet-control-attribution{font-size:10px!important}@media(min-width:750px){.shell{margin:20px auto;min-height:calc(100dvh - 40px);border-radius:22px;overflow:hidden}.nav{border-radius:0 0 22px 22px}}

/* v1.6: Leaflet layout fallback for iOS browsers when CDN CSS fails. */
#app,#mapSlot{min-width:0;max-width:100%}
.map{position:relative;display:block;width:100%;max-width:100%;height:350px;min-height:350px;overflow:hidden;isolation:isolate;touch-action:pan-x pan-y;background:#e8ede7}
.leaflet-container{position:relative;overflow:hidden;outline:0;isolation:isolate;-webkit-tap-highlight-color:transparent}
.leaflet-container .leaflet-pane,.leaflet-container .leaflet-map-pane,.leaflet-container .leaflet-tile-pane,.leaflet-container .leaflet-overlay-pane,.leaflet-container .leaflet-shadow-pane,.leaflet-container .leaflet-marker-pane,.leaflet-container .leaflet-tooltip-pane,.leaflet-container .leaflet-popup-pane{position:absolute;left:0;top:0}
.leaflet-container .leaflet-pane{z-index:400}.leaflet-container .leaflet-tile-pane{z-index:200}.leaflet-container .leaflet-overlay-pane{z-index:400}.leaflet-container .leaflet-shadow-pane{z-index:500}.leaflet-container .leaflet-marker-pane{z-index:600}.leaflet-container .leaflet-tooltip-pane{z-index:650}.leaflet-container .leaflet-popup-pane{z-index:700}
.leaflet-container .leaflet-tile,.leaflet-container .leaflet-marker-icon,.leaflet-container .leaflet-marker-shadow,.leaflet-container .leaflet-image-layer,.leaflet-container .leaflet-pane>svg,.leaflet-container .leaflet-pane>canvas{position:absolute;left:0;top:0}
.leaflet-container .leaflet-tile{visibility:hidden;max-width:none!important;max-height:none!important}.leaflet-container .leaflet-tile-loaded{visibility:inherit}
.leaflet-container .leaflet-zoom-animated{transform-origin:0 0}.leaflet-container .leaflet-tile-container{position:absolute;left:0;top:0;pointer-events:none}
.leaflet-container .leaflet-control-container .leaflet-top,.leaflet-container .leaflet-control-container .leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}
.leaflet-container .leaflet-top{top:0}.leaflet-container .leaflet-bottom{bottom:0}.leaflet-container .leaflet-left{left:0}.leaflet-container .leaflet-right{right:0}
.leaflet-container .leaflet-control{position:relative;z-index:800;pointer-events:auto;margin:10px}.leaflet-container .leaflet-left .leaflet-control{float:left}.leaflet-container .leaflet-right .leaflet-control{float:right}
.leaflet-container .leaflet-control-zoom{border:2px solid #0003;border-radius:5px;overflow:hidden}.leaflet-container .leaflet-control-zoom a{display:block;width:30px;height:30px;line-height:30px;text-align:center;background:#fff;color:#333;text-decoration:none;font-size:20px;font-weight:bold;border-bottom:1px solid #ccc}
.leaflet-container .leaflet-control-attribution{background:#fffd;color:#333;padding:2px 5px;font-size:10px;margin:0}.leaflet-container .leaflet-control-attribution a{color:#216e9b}
.leaflet-container .leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-container .leaflet-popup-content-wrapper{background:#fff;border-radius:12px;padding:10px;box-shadow:0 3px 14px #0003}.leaflet-container .leaflet-popup-tip-container{display:none}
.leaflet-container img{max-width:none!important}.leaflet-container .leaflet-interactive{cursor:pointer}
@media(max-width:480px){.map{height:340px;min-height:340px}}
