/* Header and drawer share the existing onsen / gourmet brand artwork. */
.header{display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:10px max(16px,calc((100vw - 760px)/2)) 9px;background:#fffdf6f5;border-bottom:1px solid #eadfce;box-shadow:0 3px 18px #25363810}
.header-top{display:grid;grid-template-columns:88px minmax(0,1fr) 88px;align-items:center;gap:10px;width:100%}
.header .mobile-menu-toggle{display:grid;place-items:center;width:44px;height:44px;padding:0;margin:0;border:1px solid #ccddd5;border-radius:14px;background:#edf4ef;color:#07565b;cursor:pointer}
.header-brand{display:flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;color:#07565b}

#login-area{display:flex;justify-content:flex-end;min-width:0}
.header-profile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:70px;min-height:46px;padding:2px 4px;border:0;border-radius:12px;background:transparent;font-size:10px;font-weight:600;line-height:1.3;color:#07565b;cursor:pointer;font-family:inherit}
.header-profile svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.header .search-row{flex:none;width:100%;gap:0;min-height:46px;border:1px solid #e9cbb6;border-radius:999px;background:white;box-shadow:0 2px 6px #dc925510}
.header .search-input{min-width:0;min-height:44px;padding:10px 18px;border:0;background:transparent;border-radius:999px;font-size:16px;box-shadow:none}
.header .search-input::placeholder{color:#8a9189;font-size:14px}
.header .header-search-btn{display:flex;align-items:center;justify-content:center;gap:4px;min-width:44px;min-height:38px;padding:6px 12px;margin:3px;border:0;border-radius:999px;background:#07565b;color:white;font-size:12px}
.header-search-btn svg{width:20px;height:20px}.header .header-search-btn span{display:inline}
.header .search-options{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:0}
.header .search-options label{font-size:12px;gap:0}.header .search-options .search-pref-label{flex:0 1 auto;order:2}.header .search-options .search-category-label{flex:0 0 auto;order:1}
.header .search-options .pref-select,.header .search-category-label select{width:auto;max-width:120px;min-height:32px;padding:4px 24px 4px 10px;border:1px solid #e4d8c8;border-radius:999px;background:#fffaf2;font-size:12px;color:#405e55}
.header .search-options #search-conditions-toggle{order:3;min-height:32px;padding:4px 10px;background:#fff0e4;border:1px solid #f0d2bc;font-size:12px;color:#805039}
.header .search-options #search-match-count{order:4;margin-left:auto;padding:0 2px;font-size:11px;color:#667e73}
.header .search-options #search-conditions{order:5;padding:10px;border:1px solid #efdbc9;border-radius:14px;background:#fff4e9;margin-top:2px}
.header .search-options #search-conditions label{gap:4px}.header .search-options #search-conditions select{background:#fffdf8;border-color:#ead3bf;border-radius:10px}
.header .suggest-box{top:calc(100% + 6px);border:1px solid #e5d8c7;border-radius:16px;overflow:hidden;max-height:240px}
.header button:focus-visible,.header select:focus-visible,.header input:focus-visible{outline:3px solid #e6a36f;outline-offset:2px}
.bottom-bar .bb-btn:not(.main-category){display:none}
.mobile-menu{justify-content:flex-start;backdrop-filter:blur(3px)}
.mobile-menu-panel{box-sizing:border-box;width:min(92vw,390px);padding:22px 18px max(24px,env(safe-area-inset-bottom));background:#fffdf6;box-shadow:8px 0 35px #142e2926}
.mobile-menu-heading{gap:8px;padding-bottom:18px;margin-bottom:18px;border-bottom:1px solid #eee0d0}
.mobile-menu-heading .header-brand{justify-content:flex-start;gap:6px}
.mobile-menu-heading button{flex-shrink:0;width:auto;height:40px;min-width:52px;padding:8px;margin:0;border:0;border-radius:10px;background:transparent;font:600 12px/1.4 sans-serif;color:#527267}
.mobile-menu nav{gap:8px}.mobile-menu nav button{min-height:54px;padding:12px 14px;border:1px solid #ebe2d5;border-radius:15px;background:#fffaf3;color:#31584e;font-size:14px}
.mobile-menu nav button.primary{min-height:91px;padding:17px 14px;margin-bottom:8px;border:0;border-radius:19px;background:#f0642c;color:white;box-shadow:0 5px 12px #f0642c21;font-size:15px}
.mobile-menu nav button.primary .menu-icon{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border:1px solid #ffffff88;border-radius:50%;background:#ffffff1c;font-size:26px;line-height:1}
.mobile-menu nav button.primary small{display:block;font-size:10px;font-weight:400;line-height:1.7;margin-top:5px;color:#fff9ee}.menu-icon{flex:0 0 26px;color:#07565b}.primary .menu-icon{color:white}
.user-menu{top:65px;background:#fffdf6;border:1px solid #e9dfd0}.user-menu>div{padding:6px 10px;color:#07565b;font-weight:700}
.map-error,.pin-help{top:176px}
@media(max-width:640px){.header{padding:calc(6px + env(safe-area-inset-top)) 12px 7px;gap:6px}.header-top{grid-template-columns:58px minmax(0,1fr) 58px;gap:4px}.header-brand{gap:5px}.header-profile{min-width:56px;font-size:9px}.header .header-search-btn span{display:none}.header .header-search-btn{padding:6px;min-width:38px}.header .search-input{padding-left:14px}.header .search-options .pref-select,.header .search-category-label select{font-size:12px;max-width:110px;min-height:32px}.header .search-options #search-conditions-toggle{font-size:11px;padding:4px 8px}.header .search-options{gap:5px}.header .search-options #search-match-count{font-size:10px}.map-error,.pin-help{top:calc(165px + env(safe-area-inset-top))}}
@media(max-width:360px){.header{padding-left:8px;padding-right:8px}.header-brand{gap:3px}.header-top{grid-template-columns:48px minmax(0,1fr) 54px}.header .search-options .pref-select{max-width:102px}.header .search-options #search-match-count{font-size:9px}}

.header-brand{min-width:0}.header-brand-logo{display:block;width:min(100%,228px);height:auto;max-height:64px;object-fit:contain}.mobile-menu-heading .header-brand-logo{width:min(100%,240px);max-height:80px}.mobile-menu-heading h2{min-width:0}
@media(max-width:640px){.header .header-brand-logo{width:min(100%,204px);max-height:54px}}
