:root{--brand:#8bb6d9;--brand-dark:#d9ae8b;--brand-soft:rgba(139,182,217,0.14);--brand-soft-text:#2c221f;--accent:#8bb6d9;--accent-soft:rgba(139,182,217,0.14);--text:#2c221f;--text-secondary:rgba(44,34,31,0.7);--text-muted:rgba(44,34,31,0.45);--bg:#fafaf8;--surface:#fafaf8;--surface-alt:rgba(242,233,212,0.55);--border:rgba(44,34,31,0.12);--border-strong:rgba(44,34,31,0.22);--radius-sm:8px;--radius-md:10px;--radius-lg:12px;--shadow-sm:0 1px 3px rgba(44,34,31,0.04);--shadow-md:0 4px 14px rgba(44,34,31,0.08)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Helvetica Neue","Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans CJK JP","Microsoft YaHei","PingFang SC",sans-serif;font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}img{display:block;max-width:100%}
.app{max-width:480px;margin:0 auto;background:var(--surface);min-height:100vh;position:relative}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:.5px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:50}
.topbar .brand{font-family:"Shippori Mincho",serif;font-weight:500;letter-spacing:1.5px;font-size:15px}
.topbar .brand-logo{height:34px;width:auto;display:block}.section-label h2{font-family:"Shippori Mincho",serif;letter-spacing:.04em}
.topbar .icon-btn{background:0;border:0;padding:4px;font-size:22px;color:var(--text)}
.lang-switch{display:flex;gap:4px;font-size:12px;color:var(--text-secondary)}.lang-switch button{background:0;border:0;padding:2px 4px;font-size:12px;color:var(--text-secondary)}
.lang-switch button.active{color:var(--brand);font-weight:600}.lang-sep{color:var(--text-muted)}
.hero{padding:0 16px 4px}.hero-img{height:220px;border-radius:var(--radius-lg);background-size:cover;background-position:center;margin-top:12px;background-color:var(--surface-alt);background-image:linear-gradient(135deg,rgba(242,233,212,0.9) 0,rgba(139,182,217,0.35) 100%)}
.hero-title{font-family:"Shippori Mincho",serif;font-size:19px;font-weight:500;margin:16px 0 4px;line-height:1.6;letter-spacing:.02em}
.hero-sub{color:var(--text-secondary);font-size:13px;margin:0 0 14px}.cta{background:var(--brand);color:#fff;border:0;border-radius:var(--radius-sm);padding:13px 16px;font-size:15px;font-weight:500;width:100%;text-align:center;display:block;transition:background .15s ease}
.cta:active{background:var(--brand-dark)}.section-label{display:flex;align-items:center;justify-content:space-between;padding:22px 16px 10px}
.section-label h2{margin:0;font-size:15px;font-weight:500;color:var(--text)}.tag{font-size:11px;padding:2px 8px;border-radius:20px;background:var(--brand-soft);color:var(--brand-soft-text)}
.tag.green{background:var(--accent-soft);color:var(--accent)}.divider{border-top:.5px solid var(--border);margin:4px 0}
.store-list{padding:0 16px}.store-row{display:flex;gap:12px;align-items:center;padding:12px 0;border-bottom:.5px solid var(--border)}
.store-row:last-child{border-bottom:0}.store-thumb{width:76px;height:76px;border-radius:var(--radius-md);flex-shrink:0;background-size:cover;background-position:center;background-color:var(--surface-alt)}
.store-info{flex:1;min-width:0}.store-info .name{margin:0;font-weight:500;font-size:15px;letter-spacing:.3px}
.store-info .desc{color:var(--text-secondary);font-size:12.5px;margin:3px 0}.store-info .price{margin:0;font-size:13px;color:var(--text)}
.store-info .price strong{color:var(--brand);font-weight:500}.chev{color:var(--text-muted);font-size:18px;flex-shrink:0}
.perks{padding:4px 16px 12px}.perk-item{display:flex;gap:12px;align-items:center;padding:8px 0;font-size:14px}
.perk-item .ti{font-size:20px;color:var(--brand);flex-shrink:0}.reviews{padding:4px 16px 14px}
.rating-row{display:flex;align-items:center;gap:8px;margin-bottom:10px}.rating-num{font-size:22px;font-weight:500}
.stars{color:var(--brand);font-size:14px}.rating-count{color:var(--text-muted);font-size:13px}
.review-card{border:.5px solid var(--border);border-radius:var(--radius-md);padding:12px 14px;margin-top:10px;background:var(--surface)}
.review-card .meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.review-card .author{font-size:13px;font-weight:500}.review-card .date{color:var(--text-muted);font-size:12px}
.review-card .text{font-size:13px;color:var(--text-secondary);margin:0;line-height:1.6}
.faq{padding:0 16px 16px}.faq-item{border-bottom:.5px solid var(--border)}.faq-item summary{display:flex;justify-content:space-between;align-items:center;padding:12px 0;font-size:14px;cursor:pointer;list-style:none}
.faq-item summary::-webkit-details-marker{display:none}.faq-item summary .ti{color:var(--text-muted);transition:transform .2s ease}
.faq-item[open] summary .ti{transform:rotate(180deg)}.faq-item .answer{padding:0 0 12px;font-size:13px;color:var(--text-secondary);line-height:1.7}
.footer{background:var(--surface-alt);padding:16px 16px 28px;margin-top:12px}.footer .meta{color:var(--text-secondary);font-size:13px;margin:0 0 4px}
.footer .links{display:flex;flex-wrap:wrap;gap:14px;font-size:12.5px;color:var(--text-secondary);margin:8px 0 0}
.footer .links a{color:var(--text-secondary)}.b2b-card{display:flex;align-items:center;justify-content:space-between;border:.5px solid var(--accent);border-radius:var(--radius-sm);padding:11px 14px;margin-top:14px;color:var(--accent);font-size:13px}
.b2b-card .ti{font-size:18px}.footer .copy{font-size:11px;color:var(--text-muted);margin:14px 0 0}
.gallery{padding:0 16px}.gallery-main{height:240px;border-radius:var(--radius-lg);background-size:cover;background-position:center;background-color:var(--surface-alt);margin-top:4px}
.gallery-thumbs{display:flex;gap:8px;margin-top:8px}.gallery-thumbs .thumb{flex:1;height:60px;border-radius:var(--radius-sm);background-size:cover;background-position:center;background-color:var(--surface-alt);position:relative;display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--text-secondary);font-weight:500}
.thumb.more::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,0.35);border-radius:var(--radius-sm)}
.thumb.more span{position:relative;color:#fff;z-index:1}.store-head{padding:16px 16px 4px}
.store-head h1{margin:0;font-size:20px;font-weight:500;letter-spacing:.3px}.store-head .loc{color:var(--text-secondary);font-size:13px;margin:6px 0;display:flex;align-items:center;gap:4px}
.store-head .loc .ti{font-size:16px}.store-head .story{color:var(--text-secondary);font-size:13.5px;margin:10px 0 0;line-height:1.7}
.rooms{padding:2px 16px 6px}.room-row{display:flex;gap:12px;align-items:center;padding:12px 0;border-bottom:.5px solid var(--border)}
.room-row:last-child{border-bottom:0}.room-thumb{width:72px;height:72px;border-radius:var(--radius-sm);flex-shrink:0;background-size:cover;background-position:center;background-color:var(--surface-alt)}
.room-info{flex:1;min-width:0}.room-info .name{margin:0;font-weight:500;font-size:14.5px}
.room-info .meta{color:var(--text-secondary);font-size:12.5px;margin:3px 0 0}.pick{border:.5px solid var(--border-strong);border-radius:var(--radius-sm);padding:8px 16px;font-size:13px;font-weight:500;white-space:nowrap;background:var(--surface);color:var(--text)}
.amenities{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:6px 16px 16px;text-align:center}
.amenity{font-size:11px;color:var(--text-secondary);line-height:1.4}.amenity .ti{font-size:22px;display:block;margin:0 auto 6px;color:var(--text)}
.map-wrap{padding:2px 16px 14px}.map-box{height:140px;border-radius:var(--radius-md);background:linear-gradient(135deg,rgba(242,233,212,0.7) 0,rgba(139,182,217,0.2) 100%);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:13px;gap:6px}
.map-box .ti{font-size:22px}.map-note{color:var(--text-secondary);font-size:12.5px;margin:10px 0 0}
.book-bar{position:sticky;bottom:0;background:var(--surface);border-top:.5px solid var(--border-strong);padding:12px 16px calc(12px + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;gap:12px;z-index:40;box-shadow:0 -4px 16px rgba(0,0,0,0.04)}
.book-bar .price-block{flex-shrink:0}.book-bar .price-block .label{margin:0;font-size:11px;color:var(--text-muted)}
.book-bar .price-block .price{margin:2px 0 0}.book-bar .price-block .price strong{font-size:19px;font-weight:500;color:var(--text)}
.book-bar .price-block .price span{color:var(--text-secondary);font-size:13px}.book-bar .cta{width:auto;padding:12px 28px;font-size:15px;flex-shrink:0}
.drawer-mask{position:fixed;inset:0;background:rgba(0,0,0,0.45);opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:100}
.drawer-mask.open{opacity:1;pointer-events:auto}.drawer{position:fixed;top:0;left:0;bottom:0;width:80%;max-width:320px;background:var(--surface);transform:translateX(-100%);transition:transform .25s ease;z-index:101;padding:22px 22px 28px;display:flex;flex-direction:column}
.drawer.open{transform:translateX(0)}.drawer .brand{font-size:18px;font-weight:500;letter-spacing:2px;margin:0 0 24px}
.drawer nav{display:flex;flex-direction:column;gap:4px}.drawer nav a{font-size:15px;padding:12px 0;border-bottom:.5px solid var(--border);color:var(--text)}
.drawer .close{position:absolute;top:14px;right:14px;background:0;border:0;font-size:22px;color:var(--text)}
.gallery-main{cursor:zoom-in}.gallery-thumbs .thumb{cursor:zoom-in}.lightbox{position:fixed;inset:0;background:rgba(0,0,0,0.92);display:none;z-index:200;align-items:center;justify-content:center;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}
.lightbox.open{display:flex}.lightbox .lb-img-wrap{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:16px}
.lightbox img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;user-select:none;-webkit-user-drag:none}
.lightbox .lb-close,.lightbox .lb-prev,.lightbox .lb-next{position:absolute;background:rgba(255,255,255,0.12);border:0;color:#fff;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:22px;cursor:pointer;transition:background .15s ease}
.lightbox .lb-close:active,.lightbox .lb-prev:active,.lightbox .lb-next:active{background:rgba(255,255,255,0.25)}
.lightbox .lb-close{top:calc(12px + env(safe-area-inset-top));right:12px}.lightbox .lb-prev{left:12px;top:50%;transform:translateY(-50%)}
.lightbox .lb-next{right:12px;top:50%;transform:translateY(-50%)}.lightbox .lb-indicator{position:absolute;bottom:calc(20px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);color:#fff;font-size:13px;background:rgba(0,0,0,0.4);padding:4px 12px;border-radius:12px}
@media(min-width:481px){.lightbox .lb-prev{left:max(12px,calc(50% - 320px))}
.lightbox .lb-next{right:max(12px,calc(50% - 320px))}}.room-info .meta .cap{color:var(--text);font-weight:500}
.room-info .meta .cnt{color:var(--text-muted)}