@import url('https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@400;500;700&family=Zen+Old+Mincho:wght@400;700;900&display=swap');

:root { --cream:#f7f3e3; --paper:#fffdf6; --ink:#5b3a26; --plum:#8a3559; --azuki:#7a3b35; --gold:#cb8130; --green:#7a8a4a; --sub:#96755a; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--cream); font-family:"Zen Maru Gothic", sans-serif; font-size:16px; line-height:1.9; }
.site-header { height:82px; display:flex; align-items:center; justify-content:space-between; max-width:1180px; padding:0 32px; margin:auto; }.header-right { display:flex; align-items:center; gap:25px; }
.brand img { display:block; width:170px; height:auto; }
nav { display:flex; gap:28px; font-size:13px; }
a { color:inherit; text-decoration:none; } nav a { transition:.2s; } nav a:hover { color:var(--plum); }.language-switch { display:flex; align-items:center; gap:5px; color:var(--sub); font:700 11px/1 "Zen Maru Gothic",sans-serif; letter-spacing:.08em; }.language-switch button { appearance:none; border:0; padding:5px 2px; color:var(--sub); background:transparent; cursor:pointer; font:inherit; }.language-switch button[aria-pressed="true"] { color:var(--plum); text-decoration:underline; text-underline-offset:4px; }
.hero { min-height:650px; max-width:1180px; margin:auto; padding:52px 8% 64px; display:grid; grid-template-columns:1.08fr .92fr; align-items:center; overflow:hidden; }
.eyebrow,.section-kicker,.menu-label { color:var(--plum); font-size:12px; letter-spacing:.18em; font-weight:700; }
h1,h2,h3 { font-family:"Zen Old Mincho", serif; line-height:1.45; margin:0; } h1 { font-size:clamp(39px,5vw,64px); letter-spacing:.08em; } h2 { font-size:clamp(28px,3.6vw,43px); letter-spacing:.08em; }
.lead { margin:24px 0 30px; color:var(--sub); font-size:15px; }
.button { display:inline-block; background:var(--plum); color:#fff; padding:13px 26px; font-size:14px; border-radius:2px; transition:.2s; } .button:hover { background:var(--azuki); transform:translateY(-2px); }
.hero-art { position:relative; display:grid; place-items:center; } .hero-art:before { content:""; position:absolute; width:360px; height:360px; background:#eadfbd; border-radius:50%; } .hero-art img { position:relative; width:min(390px,100%); mix-blend-mode:multiply; }
.section { padding:105px max(7vw,28px); } .story { background:var(--paper); } .story-grid { max-width:940px; margin:14px auto 0; display:grid; grid-template-columns:1fr 1fr; gap:95px; align-items:start; } .story-grid p { margin:0 0 18px; color:var(--sub); font-size:15px; }
.menu-section { max-width:1280px; margin:auto; text-align:center; } .center-intro { color:var(--sub); margin:9px 0 39px; font-size:14px; }.menu-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; text-align:left; }.menu-card { background:var(--paper); }.menu-card img { width:100%; aspect-ratio:1.18; object-fit:cover; display:block; filter:saturate(.85); }.menu-text { padding:22px 22px 25px; }.menu-text h3 { font-size:22px; }.menu-text p:not(.menu-label) { color:var(--sub); font-size:13px; line-height:1.75; min-height:68px; }.menu-text strong { font-size:13px; color:var(--azuki); }.menu-note { color:var(--sub); font-size:12px; margin-top:22px; }
.promise { text-align:center; background:var(--green); color:#fff; }.promise .section-kicker { color:#f3dfac; }.promise-grid { max-width:900px; margin:34px auto 0; display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }.promise-grid p { margin:0; padding:19px; border:1px solid rgba(255,255,255,.35); font-size:14px; }.promise-grid span { display:block; color:#f3dfac; font-size:12px; letter-spacing:.16em; }
.visit { background:var(--paper); text-align:center; }.visit-box { max-width:760px; margin:34px auto 0; padding:34px 42px; display:grid; grid-template-columns:.7fr 1.3fr; gap:35px; text-align:left; border:1px solid #dfd2b9; }.visit-box h3 { font-size:27px; }.visit-box > div p { color:var(--sub); margin:4px 0; font-size:12px; }.visit dl { margin:0; }.visit dl div { padding:8px 0; border-bottom:1px solid #e7dfd0; display:grid; grid-template-columns:70px 1fr; gap:8px; font-size:13px; }.visit dt { color:var(--plum); font-weight:700; }.visit dd { margin:0; color:var(--sub); }.visit dd a { color:var(--plum); text-decoration:underline; text-underline-offset:3px; }.opening { max-width:640px; margin:28px auto 0; color:var(--sub); font-size:14px; }.external-links { max-width:760px; margin:32px auto 0; display:flex; flex-wrap:wrap; justify-content:center; gap:10px; }.external-links-title { width:100%; margin:0 0 5px; color:var(--plum); font-size:13px; font-weight:700; }.external-links a { padding:10px 14px; border:1px solid #dfd2b9; background:var(--cream); color:var(--ink); font-size:13px; transition:.2s; }.external-links a:hover { border-color:var(--plum); color:var(--plum); }.external-links span { display:block; color:var(--sub); font-size:10px; line-height:1.5; }.map-wrap { max-width:760px; margin:22px auto 0; }.map-wrap iframe { display:block; width:100%; height:280px; border:0; }.map-wrap a { display:inline-block; margin-top:9px; color:var(--plum); font-size:12px; text-decoration:underline; text-underline-offset:4px; }
footer { padding:45px 30px; text-align:center; background:var(--ink); color:#f4ecd7; } footer img { width:170px; filter:sepia(.6) brightness(2.3) saturate(.3); }.footer-links { display:flex; justify-content:center; gap:16px; margin-top:18px; }.footer-links a { color:#f4ecd7; font-size:12px; text-decoration:underline; text-underline-offset:4px; } footer p { font-size:11px; margin:13px 0 0; letter-spacing:.1em; }
@media (max-width:700px) { .site-header { height:66px; padding:0 18px; }.brand img { width:130px; }.header-right { gap:10px; } nav { gap:13px; font-size:11px; }.language-switch { gap:3px; }.hero { min-height:auto; padding:40px 28px 60px; grid-template-columns:1fr; }.hero-copy { z-index:1; }.hero-art { margin:-25px auto -15px; width:80%; opacity:.72; }.hero-art:before { width:260px; height:260px; }.story-grid,.visit-box { grid-template-columns:1fr; gap:25px; }.section { padding:72px 28px; }.menu-grid,.promise-grid { grid-template-columns:1fr; }.menu-card { display:grid; grid-template-columns:120px 1fr; }.menu-card img { height:100%; aspect-ratio:auto; }.menu-text { padding:15px; }.menu-text h3 { font-size:19px; }.menu-text p:not(.menu-label) { min-height:0; margin:6px 0; }.visit-box { padding:27px; }.visit dl div { grid-template-columns:59px 1fr; } }
