@import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Noto+Sans+JP:wght@400;500;700&display=swap');
:root{--ink:#171915;--cream:#f5f1e8;--lime:#c9ed63;--olive:#58604b;--line:#d8d2c6}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:'Noto Sans JP',sans-serif}.site-header{height:76px;padding:0 5vw;display:flex;align-items:center;border-bottom:1px solid rgba(255,255,255,.2);position:absolute;z-index:20;width:100%;color:#fff}.logo{font-weight:700;text-decoration:none;color:inherit}.logo span{font-size:10px;background:var(--lime);color:#111;padding:5px;margin-right:8px}.site-header nav{margin-left:auto;display:flex;gap:25px;align-items:center}.site-header nav a,.site-header nav button{color:inherit;text-decoration:none;font-size:13px;background:none;border:0}.site-header nav form{margin:0}.nav-toggle{display:none;margin-left:auto;width:42px;height:42px;background:transparent;border:0;padding:9px}.nav-toggle i{display:block;height:2px;background:#fff;margin:5px 0}.hero{min-height:86vh;background:radial-gradient(circle at 80% 30%,#62704e,#20251e 55%);color:#fff;padding:150px 9vw 100px;display:flex;flex-direction:column;justify-content:flex-end}.eyebrow,.section-title>p,.page-heading>p{font-size:11px;letter-spacing:.25em;color:#91a46d}.hero h1,.page-heading h1,.form-page h1,.detail h1,.message-page h1,.page h1{font:400 clamp(55px,8vw,112px)/1 'DM Serif Display','Noto Sans JP';margin:20px 0}.hero>p:not(.eyebrow){font-size:18px}.hero-search{display:flex;max-width:620px;margin-top:35px}.hero-search input{flex:1;padding:18px;border:0}.hero-search button,.filters button{background:var(--lime);border:0;padding:0 28px;font-weight:700}.section{padding:100px 7vw}.section.muted{background:#eae4d8}.section-title{margin-bottom:45px}.section-title h2{font:400 48px 'DM Serif Display','Noto Sans JP';margin:8px 0}.section-title>a{color:inherit}.chips{display:flex;gap:15px;flex-wrap:wrap}.chips a{min-width:190px;padding:28px;border:1px solid var(--line);text-decoration:none;color:inherit;font-size:20px}.chips small{display:block;font:italic 15px 'DM Serif Display';color:#777;margin-top:8px}.chips.cuisine a{min-width:auto;padding:15px 25px;border-radius:99px;font-size:14px}.restaurant-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.restaurant-card{background:#fff}.restaurant-card>a{text-decoration:none;color:inherit}.card-image{height:260px;background:#31362c;display:grid;place-items:center;color:#8d987e;font:italic 21px 'DM Serif Display';overflow:hidden}.card-image img{width:100%;height:100%;object-fit:cover}.card-body{padding:22px}.card-body>p{font-size:11px;color:#7d846c}.card-body h3{font:400 29px 'DM Serif Display','Noto Sans JP';margin:9px 0}.card-body>span{font-size:13px;color:#666}.page{padding:150px 7vw 100px}.page-heading{max-width:1000px}.filters{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:10px;margin:45px 0}.filters input,.filters select{padding:15px;border:1px solid var(--line);background:#fff}.detail-hero{min-height:70vh;background:#222;color:#fff;position:relative;display:flex;align-items:flex-end;padding:120px 7vw 70px;overflow:hidden}.detail-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55}.detail-hero>div{position:relative}.detail-hero h1{margin:10px 0}.detail-layout{display:grid;grid-template-columns:2fr 1fr;gap:8vw;padding:100px 8vw}.detail-layout h2{font:400 34px 'DM Serif Display','Noto Sans JP';margin:45px 0 20px}.long-copy{line-height:2}.photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.photo-grid img{width:100%;height:300px;object-fit:cover}.detail-layout aside{background:#fff;padding:35px;height:max-content}.detail-layout dt{font-size:11px;color:#777;margin-top:25px}.detail-layout dd{margin:8px 0;line-height:1.8}.primary-button{display:inline-block;background:var(--ink);color:#fff!important;text-decoration:none;padding:16px 25px;border:0;font-weight:700}.text-button{display:block;color:inherit;margin-top:20px}.menu-box{border-top:1px solid var(--line);padding:25px 0}.form-page{padding:150px 10vw 100px;display:grid;grid-template-columns:1fr 1fr;gap:10vw}.form-page form,.login-page form{background:#fff;padding:40px}.form-page label,.login-page label{display:block;font-size:13px;margin-bottom:22px}.form-page input,.form-page textarea,.login-page input{display:block;width:100%;padding:13px;margin-top:8px;border:1px solid var(--line)}label b{font-size:10px;color:#9b3a28}.login-page{min-height:100vh;background:#263025;padding:130px 20px;display:grid;place-items:center}.login-page form{width:min(460px,100%)}.login-page h1{font:44px 'DM Serif Display'}.alert{background:#fee3dd;color:#8b2d1c;padding:12px}.message-page{min-height:80vh;padding:170px 10vw 100px}.dashboard{display:grid;grid-template-columns:250px 1fr;min-height:100vh;background:#eef0e9}.dashboard>aside{background:#1f241d;color:#fff;padding:120px 25px 30px;display:flex;flex-direction:column;gap:12px}.dashboard>aside a,.dashboard>aside span{color:inherit;text-decoration:none;padding:12px}.dashboard>aside .active{background:#394137}.dashboard>section{padding:120px 5vw}.dashboard h1{font:55px 'DM Serif Display'}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.stats article{background:#fff;padding:25px}.stats strong{display:block;font:48px 'DM Serif Display';margin-top:15px}.empty{grid-column:1/-1;border:1px dashed #aaa;padding:50px;text-align:center}footer{background:#161914;color:#bbb;padding:70px 7vw}footer strong{color:#fff;font-size:22px}@media(max-width:850px){.site-header{padding:0 20px}.nav-toggle{display:block}.site-header nav{position:absolute;left:0;right:0;top:76px;margin:0;padding:14px 20px 24px;background:#1c221b;display:none;align-items:stretch;flex-direction:column;gap:0}.nav-open .site-header nav{display:flex}.site-header nav a,.site-header nav button{display:block!important;text-align:left;padding:12px 0;width:100%;border-bottom:1px solid rgba(255,255,255,.12)}.hero{padding:130px 7vw 70px}.hero h1{font-size:58px}.section{padding:70px 6vw}.restaurant-grid{grid-template-columns:1fr}.filters{grid-template-columns:1fr}.filters button{padding:15px}.detail-layout,.form-page{grid-template-columns:1fr;padding:70px 6vw}.photo-grid{grid-template-columns:1fr}.dashboard{grid-template-columns:1fr}.dashboard>aside{display:none}.dashboard>section{padding:100px 6vw}.stats{grid-template-columns:1fr 1fr}}
.check-filter{display:flex;align-items:center;gap:6px;white-space:nowrap}.event-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.event-grid article,.review-card{padding:22px;background:#fff;border:1px solid #e8e2d9;border-radius:12px}.menu-line{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #e8e2d9;padding:12px 0}.menu-line span{display:grid}.review-card small{display:block;color:#756d63;margin:5px 0}.review-form{display:grid;gap:10px}.review-form input,.review-form select,.review-form textarea{padding:12px;border:1px solid #d8d0c5;border-radius:7px}.favorite-button{width:100%;padding:12px;border:1px solid #b85745;background:#fff;color:#9d3d2e;border-radius:8px;cursor:pointer}.hours-line{display:block}.auth-page{min-height:100vh;padding:140px 20px 90px;background:#263025;display:grid;place-items:center}.auth-page>section{width:min(520px,100%);background:#fff;padding:42px}.auth-page h1{font:44px 'DM Serif Display','Noto Sans JP';margin:12px 0}.auth-page .admin-form{display:grid;gap:18px}.auth-page label{display:grid;gap:7px;font-size:13px}.auth-page input{width:100%;padding:13px;border:1px solid var(--line)}
@media(max-width:850px){.dashboard>aside{display:flex;position:relative;padding:84px 6vw 12px;flex-direction:row;overflow-x:auto;gap:5px;scrollbar-width:thin}.dashboard>aside strong{display:none}.dashboard>aside a,.dashboard>aside span{flex:0 0 auto;white-space:nowrap;padding:10px 12px}.dashboard>section{padding-top:45px}.auth-page>section{padding:28px 22px}.auth-page h1{font-size:36px}}

/* Readable platform interior header and Japanese heading scale. */
.site-header{position:relative;color:var(--ink);background:rgba(245,241,232,.98);border-bottom:1px solid var(--line)}
.site-header nav a,.site-header nav button{font-weight:500}
.nav-toggle i{background:var(--ink)}
.page{padding-top:80px}
.page-heading{max-width:1100px}
.page-heading h1,.page h1{font-size:clamp(42px,5vw,76px);line-height:1.22;word-break:keep-all;overflow-wrap:normal}
.form-page{padding-top:80px}
.message-page{padding-top:90px}
@media(max-width:850px){.site-header nav{color:#fff}.nav-toggle i{background:var(--ink)}.page{padding-top:55px}.page-heading h1,.page h1{font-size:clamp(38px,12vw,56px);line-height:1.28;word-break:normal}}
