:root{--background:#f5f3ec;--surface:#fffefa;--surface-muted:#ecefe9;--text:#17231c;--muted:#677168;--border:#d7d5ca;--forest:#164b38;--forest-dark:#0d3025;--clay:#d2612d;--clay-soft:#f1ddd2;--water:#dbe9eb;--focus:#1f6feb;--danger:#a43c35;--shadow:0 18px 44px rgba(27,42,32,0.1);--radius:6px}*{box-sizing:border-box}html{background:var(--background);color:var(--text)}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;overflow-x:hidden}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}:focus-visible{outline:3px solid color-mix(in srgb,var(--focus) 75%,transparent);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.shell{min-height:100vh}.site-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;padding:24px;border-top:1px solid var(--border);color:var(--muted);font-size:14px}.privacy-page{max-width:760px;margin:32px auto 64px;padding:0 24px;overflow-wrap:anywhere}.privacy-page h1{font-size:30px}.privacy-page h2{font-size:20px;margin-top:28px}.privacy-page a{text-decoration:underline}.filter-search:focus-within,.hero-search:focus-within{outline:3px solid var(--focus);outline-offset:2px}.locale-switch a{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:20;display:grid;grid-template-columns:minmax(210px,1fr) auto minmax(210px,1fr);grid-gap:28px;gap:28px;min-height:66px;border-bottom:1px solid var(--border);background:rgba(255,254,250,.96);padding:10px clamp(20px,4vw,64px);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.brand,.topbar{align-items:center}.brand{display:flex;gap:10px;color:var(--forest-dark);font-size:15px;font-weight:820;letter-spacing:0;text-transform:uppercase}.brand-mark{display:grid;width:34px;height:34px;place-items:center;border:1px solid var(--forest);border-radius:50%;color:var(--forest)}.nav{display:flex;align-items:center;justify-content:center;gap:24px;color:#4f5d53;font-size:13px;font-weight:680}.nav a:focus-visible,.nav a:hover{color:var(--forest-dark)}.nav .admin-link{color:#8a6f60}.locale-switch{display:flex;justify-self:end;align-items:center;gap:2px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:3px}.locale-switch a{padding:5px 9px;border-radius:4px;color:var(--muted);font-size:12px;font-weight:760}.locale-switch a[aria-current=true]{background:var(--forest);color:#fff}.main{min-width:0}.home-hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(400px,.9fr);min-height:380px;border-bottom:1px solid var(--border);background:var(--background)}.hero-copy{align-self:center;padding:38px 28px 38px clamp(24px,5vw,82px)}.hero-copy h1{max-width:680px;margin:0 0 20px;color:var(--forest-dark);font-size:46px;font-weight:800;line-height:1.05;letter-spacing:0}.hero-copy p{max-width:620px;margin:0;color:#58645b;font-size:17px}.hero-search{display:grid;grid-template-columns:auto minmax(160px,1fr) auto;align-items:center;grid-gap:10px;gap:10px;max-width:690px;margin-top:30px;border:1px solid #c9cdc5;border-radius:var(--radius);background:#fff;box-shadow:var(--shadow);padding:7px 7px 7px 15px;color:var(--muted)}.hero-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--text);padding:8px 2px}.hero-photo{position:relative;min-height:380px;background:url(/fuji-panorama.jpg) 50%/cover no-repeat}.hero-photo:before{position:absolute;inset:0;content:"";background:linear-gradient(90deg,var(--background) 0,transparent 22%);pointer-events:none}.hero-photo a{position:absolute;right:12px;bottom:10px;z-index:1;padding:4px 7px;border-radius:3px;background:rgba(14,25,18,.7);color:#fff;font-size:10px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--forest-dark);padding:9px 14px;font-size:13px;font-weight:780;cursor:pointer}.button.primary{border-color:var(--forest);background:var(--forest);color:#fff}.button.warning{border-color:var(--danger);background:var(--danger);color:#fff}.category-rail{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid var(--border);background:var(--surface);padding:0 clamp(20px,5vw,82px)}.category-rail a{display:flex;align-items:center;justify-content:center;gap:12px;min-height:66px;border-right:1px solid var(--border);color:#49564d;font-size:14px;font-weight:730}.category-rail a:first-child{border-left:1px solid var(--border);color:var(--clay)}.category-rail svg{width:21px;height:21px;stroke-width:1.7}.directory-section,.prefecture-band{padding:54px clamp(20px,5vw,82px)}.prefecture-band{border-bottom:1px solid var(--border);background:#eef0eb}.directory-heading,.section-heading-row{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:23px}.directory-heading>div,.guide-band>div,.section-heading-row>div{display:flex;align-items:baseline;gap:13px}.directory-heading h2,.guide-band h2,.section-heading-row h2{margin:0;color:var(--forest-dark);font-family:Georgia,Times New Roman,serif;font-size:31px;font-weight:500;letter-spacing:0}.directory-heading h2,.guide-band h2{font-family:inherit;font-weight:800}.directory-heading p,.section-heading-row>span{max-width:580px;margin:0;color:var(--muted);font-size:12px}.section-index{color:var(--clay);font-size:12px;font-weight:850}.prefecture-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border-top:1px solid #c8ccc4;border-bottom:1px solid #c8ccc4}.prefecture-link{display:grid;grid-gap:3px;gap:3px;min-width:0;border-right:1px solid #c8ccc4;padding:16px 18px}.prefecture-link:first-child{border-left:1px solid #c8ccc4}.prefecture-link:hover{background:rgba(255,255,255,.55)}.prefecture-link strong{color:var(--forest-dark);font-size:14px}.prefecture-link span{color:var(--muted);font-size:11px}.directory-section{background:var(--background);padding-top:38px}.filter-bar{display:grid;grid-template-columns:auto minmax(210px,1.5fr) minmax(150px,.7fr) minmax(160px,.8fr) auto auto auto;align-items:center;grid-gap:10px;gap:10px;margin-bottom:16px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface);padding:10px 12px}.filter-label,.filter-search{display:flex;align-items:center;gap:8px}.filter-label{color:var(--forest-dark);font-size:12px;font-weight:800}.compact-field select,.filter-search{min-height:38px;border:1px solid var(--border);border-radius:4px;background:#fff}.filter-search{padding:0 10px;color:var(--muted)}.filter-search input{min-width:0;border:0;outline:0;background:transparent}.compact-field select,.filter-search input{width:100%;color:var(--text);font-size:12px}.compact-field select{padding:0 30px 0 10px}.checkbox{display:flex;align-items:center;gap:7px;color:var(--text);font-size:12px;font-weight:680;white-space:nowrap}.checkbox input{width:16px;height:16px;margin:0;accent-color:var(--forest)}.directory-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(390px,.92fr);grid-gap:18px;gap:18px;align-items:flex-start;min-width:0}.list-panel{min-width:0;border-top:2px solid var(--forest)}.map-toolbar,.results-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:45px;border-bottom:1px solid var(--border);background:var(--surface);padding:10px 14px}.map-toolbar strong,.results-toolbar strong{color:var(--forest-dark);font-size:13px}.map-toolbar span,.results-toolbar span{color:var(--muted);font-size:11px}.listing-stack{display:grid}.listing-card{display:grid;grid-gap:10px;gap:10px;min-width:0;border-bottom:1px solid var(--border);background:var(--surface);padding:17px 15px;transition:background .16s ease}.listing-card:hover{background:#fdfbf5}.listing-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.listing-card-header>div{min-width:0}.listing-card h3{margin:0 0 6px;color:var(--forest-dark);font-size:20px;font-weight:780;overflow-wrap:anywhere}.listing-card p{margin:0;color:#566158;font-size:13px;line-height:1.55}.listing-chevron{flex:0 0 auto;color:var(--clay)}.badges,.listing-meta,.listing-services{display:flex;flex-wrap:wrap;gap:7px}.listing-meta span{display:inline-flex;align-items:center;gap:3px;color:var(--muted);font-size:11px}.listing-meta span+span:before{margin-right:5px;color:#aaa99f;content:"/"}.badge,.listing-services span{max-width:100%;border:1px solid #d9ddd6;border-radius:3px;background:var(--surface-muted);color:#536057;padding:3px 7px;font-size:10px;font-weight:700;overflow-wrap:anywhere}.badge.verified{border-color:#bdd4c6;background:#e2eee6;color:var(--forest-dark)}.badge.source{border-color:#dfc3b2;background:var(--clay-soft);color:#7b3d1f}.listing-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:3px;color:var(--muted);font-size:10px}.listing-footer a,.listing-footer span{display:inline-flex;align-items:center;gap:5px}.listing-footer a{color:var(--clay);font-weight:780}.map-panel{position:-webkit-sticky;position:sticky;top:82px;min-height:650px;overflow:hidden;border:1px solid #bdcfd1;border-top:2px solid var(--forest);background:var(--water)}.map-canvas,.map-fallback{min-height:603px}.map-canvas{background:var(--water)}.map-fallback{display:grid;place-items:center;background:var(--water);padding:24px;text-align:center}.guide-band{display:grid;grid-template-columns:minmax(290px,1fr) minmax(300px,1.2fr) auto;align-items:center;grid-gap:34px;gap:34px;border-top:1px solid #325b4a;background:var(--forest-dark);color:#fff;padding:48px clamp(20px,5vw,82px)}.guide-band h2{color:#fff}.guide-band p{margin:0;color:#c7d5ce;font-size:14px}.guide-band>a{display:inline-flex;align-items:center;gap:8px;border-bottom:1px solid var(--clay);padding:7px 0;color:#fff;font-size:13px;font-weight:760}.content-card,.panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.admin-layout,.profile-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-gap:18px;gap:18px;align-items:flex-start;padding:48px clamp(20px,5vw,82px)}.content-card{padding:22px}.content-card h1,.content-card h2{margin-top:0;color:var(--forest-dark)}.content-card h1{font-family:Georgia,Times New Roman,serif;font-size:38px;font-weight:500}.detail-list{display:grid;grid-template-columns:180px minmax(0,1fr);grid-gap:10px 16px;gap:10px 16px}.detail-list dt{color:var(--muted);font-weight:760}.detail-list dd{margin:0;overflow-wrap:anywhere}.hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.admin-table{width:100%;border-collapse:collapse;font-size:14px}.admin-table td,.admin-table th{border-bottom:1px solid var(--border);padding:10px;text-align:left;vertical-align:top}.admin-table th{color:var(--muted);font-size:12px;text-transform:uppercase}.filters{padding:16px}.field{display:grid;grid-gap:6px;gap:6px;margin-bottom:13px}.field label{color:var(--muted);font-size:13px;font-weight:760}.field input,.field select,.field textarea{width:100%;border:1px solid var(--border);border-radius:var(--radius);background:#fff;padding:10px;color:var(--text)}.empty{border-bottom:1px solid var(--border);background:var(--surface);padding:28px 18px;color:var(--muted);text-align:center}.submission-layout{display:grid;grid-template-columns:minmax(260px,.65fr) minmax(0,1.35fr);grid-gap:48px;gap:48px;align-items:start;max-width:1180px;margin:0 auto;padding:58px clamp(20px,5vw,82px)}.submission-intro{position:-webkit-sticky;position:sticky;top:104px}.submission-intro>svg{color:var(--clay)}.admin-submissions h1,.submission-intro h1{margin:14px 0 16px;color:var(--forest-dark);font-family:Georgia,Times New Roman,serif;font-size:42px;font-weight:500;line-height:1.08}.admin-submissions-heading>p,.submission-intro>p{color:var(--muted)}.review-promise{display:flex;align-items:center;gap:9px;margin-top:24px;border-top:1px solid var(--border);padding-top:18px;color:var(--forest);font-size:13px;font-weight:760}.submission-form{border-top:3px solid var(--forest);background:var(--surface);box-shadow:var(--shadow);padding:28px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px;gap:16px}.field-hint,.submission-footer p{margin:-4px 0 18px;color:var(--muted);font-size:12px}.form-notice{margin:0 0 22px;border-left:3px solid var(--danger);background:#f7e8e5;padding:12px 14px;color:#762d28;font-size:13px;font-weight:700}.form-notice.success{border-color:var(--forest);background:#e2eee6;color:var(--forest-dark)}.submission-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:22px;border-top:1px solid var(--border);padding-top:20px}.submission-footer p{max-width:420px;margin:0}.admin-submissions{padding:48px clamp(20px,5vw,82px)}.admin-submissions-heading{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:28px}.admin-submissions-heading h1{margin-bottom:0}.admin-submissions-heading>p{max-width:520px}.submission-review-list{display:grid;border-top:2px solid var(--forest)}.submission-review-item{display:grid;grid-template-columns:minmax(0,1fr) 280px;grid-gap:28px;gap:28px;border-bottom:1px solid var(--border);background:var(--surface);padding:24px}.submission-review-title{display:flex;align-items:start;justify-content:space-between;gap:20px}.submission-review-title h2{margin:7px 0 18px;color:var(--forest-dark);font-size:22px}.submission-review-title time{color:var(--muted);font-size:12px}.status-badge{display:inline-block;border:1px solid #d9bd74;border-radius:3px;background:#f7edcf;color:#765a16;padding:2px 7px;font-size:10px;font-weight:850;text-transform:uppercase}.status-badge.verified{border-color:#bdd4c6;background:#e2eee6;color:var(--forest)}.status-badge.rejected{border-color:#dfb8b4;background:#f7e8e5;color:var(--danger)}.submission-details{display:grid;grid-template-columns:100px minmax(0,1fr);grid-gap:7px 14px;gap:7px 14px;margin:0;font-size:13px}.submission-details dt{color:var(--muted);font-weight:760}.submission-details dd{margin:0;overflow-wrap:anywhere}.review-actions,.source-links{display:flex;flex-wrap:wrap;gap:10px}.source-links{margin-top:18px}.source-links a{display:inline-flex;align-items:center;gap:5px;color:var(--clay);font-size:12px;font-weight:780}.review-form{border-left:1px solid var(--border);padding-left:24px}.review-actions .button{flex:1 1 auto}@media (max-width:1180px){.topbar{grid-template-columns:auto 1fr auto}.nav{gap:14px}.filter-bar{grid-template-columns:auto minmax(220px,1fr) repeat(2,minmax(150px,.7fr))}.compact-checkbox{padding:4px 0}}@media (max-width:960px){.topbar{grid-template-columns:1fr auto}.nav{grid-column:1/-1;grid-row:2;justify-content:flex-start;order:3}.home-hero{grid-template-columns:1fr}.hero-copy{padding:54px clamp(20px,5vw,50px) 44px}.hero-photo{min-height:360px}.hero-photo:before{background:linear-gradient(180deg,var(--background) 0,transparent 22%)}.prefecture-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.prefecture-link:nth-child(4){border-left:1px solid #c8ccc4}.admin-layout,.directory-layout,.profile-layout,.submission-layout{grid-template-columns:1fr}.submission-intro{position:static}.submission-review-item{grid-template-columns:1fr}.review-form{border-top:1px solid var(--border);border-left:0;padding-top:20px;padding-left:0}.map-panel{position:static}.guide-band{grid-template-columns:1fr;gap:18px}}@media (max-width:680px){.topbar{gap:10px;padding:10px 16px}.brand{font-size:13px}.nav{gap:10px 16px;overflow-x:auto;padding-bottom:2px;white-space:nowrap}.nav .admin-link{display:none}.locale-switch a{padding:4px 7px}.hero-copy h1{font-size:42px}.hero-search{grid-template-columns:auto minmax(0,1fr)}.hero-search .button{grid-column:1/-1;width:100%}.hero-photo,.home-hero{min-height:0}.hero-photo{min-height:280px}.category-rail{grid-template-columns:repeat(2,minmax(0,1fr));padding:0 16px}.category-rail a{min-height:68px;border-bottom:1px solid var(--border)}.category-rail a:nth-child(3){border-left:1px solid var(--border)}.directory-section,.prefecture-band{padding:42px 16px}.directory-heading,.section-heading-row{align-items:flex-start;flex-direction:column;gap:10px}.directory-heading h2,.guide-band h2,.section-heading-row h2{font-size:27px}.prefecture-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.prefecture-link:nth-child(3),.prefecture-link:nth-child(5){border-left:1px solid #c8ccc4}.filter-bar{display:flex;align-items:stretch;flex-wrap:wrap}.filter-label{width:100%}.compact-field,.filter-search{flex:1 1 100%}.compact-checkbox{flex:1 1 auto}.results-toolbar{gap:3px}.listing-meta,.results-toolbar{align-items:flex-start;flex-direction:column}.listing-meta span+span:before{content:none}.listing-footer{align-items:flex-start;flex-direction:column}.map-canvas,.map-fallback,.map-panel{min-height:410px}.admin-layout,.admin-submissions,.guide-band,.profile-layout,.submission-layout{padding-right:16px;padding-left:16px}.form-grid{grid-template-columns:1fr;gap:0}.submission-form{padding:20px 16px}.admin-submissions-heading,.submission-footer{align-items:stretch;flex-direction:column}.detail-list{grid-template-columns:1fr}.detail-list dt{margin-top:8px}}