

:root { --navy:#071a3a; --red:#c91524; --gold:#f5b91f; --cream:#fff9ed; --ink:#191814; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--cream); font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif; }
a { color:inherit; }
img { max-width:100%; display:block; }
.site-header { height:82px; padding:10px clamp(18px,5vw,72px); display:flex; align-items:center; justify-content:space-between; background:rgba(255,249,237,.96); position:sticky; top:0; z-index:20; border-bottom:1px solid #eadfca; }
.brand { display:flex; align-items:center; gap:10px; text-decoration:none; font-family:serif; font-weight:700; font-size:18px; line-height:1.05; }
.brand img { width:58px; height:58px; }
.brand small { display:block; margin-top:5px; letter-spacing:.18em; font-size:10px; }
.menu-toggle{display:none;border:1px solid #d9cbb1;background:white;border-radius:999px;padding:10px 16px;font:inherit;font-weight:700}
#language-nav{display:flex;gap:7px;align-items:center}
#language-nav a{font-size:12px;text-decoration:none;padding:8px 10px;border-radius:999px}
#language-nav a[aria-current="page"]{background:var(--navy);color:white}
.hero { min-height:calc(100vh - 82px); display:grid; grid-template-columns:1fr 1fr; background:var(--navy); color:white; overflow:hidden; }
.hero-copy { padding:clamp(52px,8vw,120px) clamp(24px,7vw,110px); align-self:center; }
.eyebrow { font-weight:800; letter-spacing:.2em; font-size:12px; color:var(--gold); }
h1 { white-space:pre-line; font-family:Georgia,"Yu Mincho",serif; font-size:clamp(38px,2.9vw,50px); line-height:1.18; margin:20px 0; letter-spacing:-.03em; }
.lead { font-size:clamp(16px,1.3vw,20px); line-height:1.95; max-width:650px; color:#e8edf6; }
.actions { display:flex; flex-wrap:wrap; gap:12px; margin:34px 0; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:52px; padding:0 24px; border-radius:999px; font-weight:800; text-decoration:none; transition:transform .2s,box-shadow .2s; }
.button:hover { transform:translateY(-2px); }
.primary { background:var(--gold); color:#111; box-shadow:0 8px 26px rgba(245,185,31,.24); }
.secondary { border:1px solid rgba(255,255,255,.5); color:white; }
.proof { list-style:none; padding:0; display:flex; flex-wrap:wrap; gap:8px; margin:0; }
.proof li { border:1px solid rgba(255,255,255,.25); border-radius:999px; padding:7px 11px; font-size:10px; letter-spacing:.12em; }
.hero-visual { position:relative; min-height:620px; background:white; }
.hero-visual img { width:100%; height:100%; object-fit:cover; }
.story { text-align:center; padding:100px 24px; max-width:1000px; margin:auto; }
.story h2,.section-heading h2,.visit h2 { font-family:Georgia,"Yu Mincho",serif; font-size:clamp(32px,4vw,56px); margin:12px 0 20px; }
.story h2 { font-size:clamp(32px,3.2vw,46px); }
.story p:last-child { font-size:17px; line-height:2; color:#554e43; }
.menu-section { padding:90px clamp(18px,5vw,72px); background:#fff; }
.section-heading { text-align:center; margin-bottom:42px; }
.menu-grid { max-width:1260px; margin:auto; display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.menu-card { background:var(--cream); border-radius:24px; overflow:hidden; box-shadow:0 12px 35px rgba(47,33,10,.09); }
.menu-card img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.menu-card div { padding:22px; display:flex; gap:16px; justify-content:space-between; align-items:flex-start; }
.menu-card h3 { margin:0; font-size:17px; line-height:1.6; }
.menu-card strong { white-space:nowrap; color:var(--red); font-size:18px; }
.visit { background:var(--red); color:white; display:grid; grid-template-columns:1.15fr .85fr; }
.visit-photos { display:grid; grid-template-columns:1fr 1fr; min-height:560px; }
.visit-photos img { width:100%; height:100%; object-fit:cover; }
.visit-copy { padding:70px clamp(28px,6vw,90px); align-self:center; }
.visit-copy p { line-height:1.9; }
.visit-copy .button { margin-top:16px; }
footer { background:#05132d; color:white; text-align:center; padding:46px 20px; }
footer img { margin:auto; border-radius:50%; }
footer p { font-family:serif; font-size:20px; }
footer a { color:var(--gold); }
@media(max-width:840px) {
  .site-header { height:68px; padding:7px 14px; }
  .brand img { width:48px; height:48px; }
  .brand { font-size:15px; }
  .hero { grid-template-columns:1fr; }
  .hero-copy { padding:58px 22px 48px; }
  .hero-visual { min-height:420px; order:-1; }
  .hero-visual img { object-position:center; }
  .menu-grid { grid-template-columns:1fr; }
  .visit { grid-template-columns:1fr; }
  .visit-photos { min-height:auto; }
  .visit-photos img { aspect-ratio:1; }
  .visit-copy { padding:58px 24px; }
  .secondary { color:white; }
}
@media(max-width:480px) {
  .brand span { display:none; }
  select { max-width:145px; }
  h1 { font-size:40px; }
  .actions .button { width:100%; }
  .story { padding:72px 22px; }
  .menu-section { padding:70px 16px; }
}

.features{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:28px}.features span{border:1px solid #dfcfb4;border-radius:999px;padding:8px 13px;font-size:12px;font-weight:700}.price-note{text-align:center;color:#756b5b;margin:34px 0 0}.note{font-size:13px;opacity:.85}footer small{display:block;margin-top:22px;color:#9ca6b9}
@media(max-width:840px){.menu-toggle{display:block}#language-nav{display:none;position:absolute;right:14px;top:62px;background:white;color:#111;padding:10px;border-radius:14px;box-shadow:0 14px 35px #0003;flex-direction:column;align-items:stretch}#language-nav.open{display:flex}#language-nav a{padding:9px 18px}.hero{min-height:auto}}
