.header{flex-wrap:wrap}.header-actions{display:flex;align-items:center;gap:6px}.header-search-btn{display:flex;align-items:center;gap:4px}.header-search-btn svg,.main-category svg,.mobile-menu-toggle svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.mobile-menu-toggle{display:none}.search-options{width:100%;display:flex;align-items:end;gap:8px;padding-top:4px}.search-options label{font-size:11px;font-weight:600;color:#3e5958;display:flex;flex-direction:column;gap:3px}.search-options select{font:inherit;font-size:14px;padding:8px 24px 8px 10px;border:1px solid #c5d5d1;border-radius:12px;background:white;color:#253638;min-height:40px}.search-options select:disabled{opacity:.5}.search-options #search-match-count{font-size:12px;padding:10px 4px;color:#546a67}
.bottom-bar{padding:7px;gap:5px;border-radius:24px;border:1px solid #d9e5df;background:#fffffff7}.bottom-bar .main-category{min-width:88px;min-height:60px;display:flex;align-items:center;justify-content:center;gap:6px;font-size:14px;font-weight:700;background:#eef3f0;color:#294945;border:2px solid transparent}.bottom-bar .main-category.active{background:#07565b;color:white;border-color:#07565b;box-shadow:0 2px 5px #07565b22}.bottom-bar .main-category[data-category=gourmet].active{background:#c74b20;border-color:#c74b20}.main-category .category-icon{width:32px;height:38px}.bottom-bar .bb-btn:not(.main-category){min-height:44px}.main-category:focus-visible,.mobile-menu-toggle:focus-visible,.mobile-menu button:focus-visible{outline:3px solid #c74b20;outline-offset:2px}
.mobile-menu[hidden]{display:none}.mobile-menu{position:fixed;inset:0;z-index:290;background:#172d3266;display:flex;justify-content:flex-end}.mobile-menu-panel{width:min(88vw,360px);height:100%;height:100dvh;background:#f7f5ef;overflow:auto;padding:20px 18px max(24px,env(safe-area-inset-bottom));box-shadow:-8px 0 30px #0002}.mobile-menu-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.mobile-menu-heading h2{font-size:20px;color:#07565b;margin:0}.mobile-menu-heading button{width:44px;height:44px;border:0;border-radius:50%;background:white;font-size:28px;color:#253638;cursor:pointer}.mobile-menu nav{display:grid;gap:8px}.mobile-menu nav button{display:flex;align-items:center;gap:12px;text-align:left;width:100%;min-height:52px;padding:12px 16px;border:1px solid #d9e5df;border-radius:16px;font:inherit;font-weight:600;color:#253638;background:white;cursor:pointer}.mobile-menu nav button.primary{background:#07565b;color:white}.menu-icon{width:26px;font-size:20px;text-align:center}.mobile-menu nav .menu-note{font-size:12px;color:#5e7370;line-height:1.7;padding:8px 4px}
@media(max-width:640px){.header{padding:calc(8px + env(safe-area-inset-top)) 10px 9px;gap:8px}.header-actions{display:none}.search-row{min-width:0;gap:5px}.pref-select{max-width:88px;width:88px;min-height:44px;font-size:14px;padding:7px 4px}.search-input{font-size:16px;min-height:44px;padding:8px;min-width:0}.header-search-btn{padding:8px;min-width:40px;min-height:44px;background:white;border:1px solid #d0ddd7;color:#07565b}.header-search-btn span{display:none}.mobile-menu-toggle{display:grid;place-items:center;flex:0 0 44px;height:44px;border:1px solid #c9dbd5;border-radius:14px;background:white;color:#07565b;padding:0;cursor:pointer}.search-options{display:grid;grid-template-columns:1fr 1fr 1.35fr;gap:6px;padding-top:0}.search-options label{min-width:0;font-size:10px}.search-options select{width:100%;min-width:0;font-size:16px;padding:6px 2px;min-height:42px}.search-options #search-match-count{grid-column:1/-1;padding:0 2px;font-size:11px;line-height:16px}.bottom-bar{bottom:calc(22px + env(safe-area-inset-bottom));left:12px;right:12px;width:auto;max-width:none;transform:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible;padding:6px;gap:6px;border-radius:24px;box-shadow:0 5px 24px #163d382b}.bottom-bar .bb-btn:not(.main-category){display:none}.bottom-bar .main-category{min-width:0;min-height:68px;flex-direction:column;gap:2px;padding:5px 4px;border-radius:18px;font-size:14px;line-height:20px}.main-category svg{width:30px;height:30px}.main-category .category-icon{width:28px;height:33px}.footer{padding-bottom:env(safe-area-inset-bottom);background:#f7f5efe8;color:#526b66;font-size:8px}.map-error,.pin-help{top:160px}}
@media(max-width:350px){.header{padding-left:6px;padding-right:6px;gap:5px}.pref-select{max-width:78px;width:78px}.search-input{padding-left:6px}.search-options select{font-size:14px}}
/* Keep Google Maps attribution below the floating category bar unobscured. */
@media(max-width:640px){.bottom-bar{bottom:calc(38px + env(safe-area-inset-bottom))}.footer{display:none}.search-options select{font-size:16px}}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.search-options{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding-top:0}.search-options .search-category-label{flex:0 0 108px}.search-options .search-category-label select{min-height:36px;padding:4px 22px 4px 10px}.search-options #search-match-count{margin-left:auto;padding:0 4px;font-size:12px;line-height:20px;white-space:nowrap}.search-options #search-conditions-toggle{min-height:36px;border:1px solid #cbdad4;border-radius:999px;background:white;color:#07565b;font:inherit;font-size:13px;padding:4px 12px;cursor:pointer}.search-options [hidden]{display:none!important}.search-options #search-conditions{width:100%;padding:4px 0 0}.search-options #search-onsen-conditions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.search-options #search-gourmet-conditions label{max-width:280px}.search-options #search-conditions label{font-size:10px;gap:2px}.search-options #search-conditions select{min-height:38px;padding:4px 24px 4px 8px;font-size:16px;width:100%}
.compact-spot-card{width:238px;max-width:calc(100vw - 80px);padding:2px 0}.compact-card-category{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:#546e69}.compact-card-category .category-icon{width:18px;height:21px}.compact-spot-card .pop-name{font-size:16px;line-height:1.35;font-weight:700;color:#183c38;margin:5px 0 3px;overflow-wrap:anywhere}.compact-card-address{font-size:11px;line-height:1.45;color:#61716e;margin:0 0 8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.compact-card-badges{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:9px}.compact-card-badges .facility-plate,.compact-info-chip{font-size:10px;line-height:16px;padding:3px 7px;white-space:nowrap;border-radius:999px}.compact-info-chip{background:#edf3f0;color:#47625c;border:1px solid #d6e3dc}.compact-spot-card .pop-btn{min-height:40px;padding:8px 12px;margin:0;background:#07565b;color:white;font-size:13px;border-radius:999px}
@media(max-width:640px){.header{gap:5px;padding-bottom:6px}.search-options{display:flex;gap:6px}.search-options .search-category-label{flex-basis:104px}.search-options #search-match-count{margin-left:auto;grid-column:auto}.search-options #search-conditions-toggle{font-size:12px}.search-options #search-conditions{padding-top:1px}.search-options #search-conditions select{min-height:36px}.search-options #search-gourmet-conditions label{max-width:none}}
.line-login-link{display:block;text-align:center;text-decoration:none;box-sizing:border-box}
