* { box-sizing: border-box }
:root { color-scheme: light; --ink:#302026; --wine:#49232f; --paper:#fff8ee; --rose:#f4cfda; --accent:#8d254b; --line:#d9babd; --display:"Young Serif", Georgia, serif }
html { scroll-behavior:smooth }
body { margin:0; background:var(--paper); color:var(--ink); font:16px/1.65 "DM Sans",system-ui,sans-serif }
a { color:inherit }
button,input,textarea { font:inherit }
button { cursor:pointer }
img { display:block; width:100%; object-fit:cover }
h1,h2,h3,p,figure { margin:0 }
h1,h2,h3 { line-height:1.2 }
h1,h2,.brand { font-family:var(--display) }
:lang(ja) h1,:lang(ja) h2 { line-height:1.34; overflow-wrap:anywhere }
:focus-visible { outline:3px solid #a53b65; outline-offset:4px }
.wrap { width:min(1160px,calc(100% - 56px)); margin-inline:auto }
.top { min-height:84px; display:flex; align-items:center; justify-content:space-between; gap:20px }
.brand { font-size:clamp(22px,3vw,30px); text-decoration:none; line-height:1.13; white-space:nowrap }
.brand small { display:block; font:700 10px "DM Sans",sans-serif; letter-spacing:.18em; margin-top:6px }
nav { display:flex; gap:clamp(14px,4vw,42px) }
nav a { font-weight:700; text-decoration:none }
nav a:hover,.plain:hover { text-decoration:underline }
#language { background:transparent; color:var(--wine); border:1px solid var(--line); border-radius:999px; padding:7px 14px; min-height:44px }
.hero { background:var(--rose); border-block:1px solid var(--line) }
.hero-inner { display:grid; grid-template-columns:1fr 1fr; gap:clamp(26px,5vw,76px); align-items:center; padding-block:clamp(40px,7vw,92px) }
.kicker { font-size:.78rem; letter-spacing:.12em; font-weight:700; text-transform:uppercase; color:var(--accent); margin-bottom:18px }
h1 { font-size:clamp(2.6rem,5.5vw,5rem); font-weight:400; letter-spacing:-.045em; color:var(--wine) }
html[lang="ja"] h1 { font-size:clamp(2.3rem,4.25vw,4.15rem); font-weight:750; letter-spacing:-.07em }
.lede { margin:24px 0 28px; max-width:42ch }
.actions { display:flex; flex-wrap:wrap; gap:16px 22px; align-items:center }
.button { display:inline-block; background:var(--accent); color:white; border:1px solid transparent; border-radius:6px; padding:12px 22px; text-decoration:none; font-weight:700 }
.button:hover { background:var(--wine) }
.plain { font-weight:700; text-underline-offset:4px }
.hero img { aspect-ratio:5/4; border-radius:48% 48% 6px 6px / 32% 32% 6px 6px; object-position:center 46%; border:1px solid #905369 }
figcaption { margin-top:9px; font-size:.78rem; color:var(--wine) }
.section { padding-block:clamp(50px,8vw,96px) }
h2 { font-weight:400; font-size:clamp(2rem,4.2vw,3.8rem); letter-spacing:-.035em; color:var(--wine) }
html[lang="ja"] h2 { font-weight:750 }
.event-list { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:30px }
.event-list article { border-top:1px solid var(--line); padding-top:18px }
h3 { font-size:1.22rem; margin-bottom:10px }
.food { background:#f1e1d0 }
.split,.inquire { display:grid; grid-template-columns:1fr 1fr; gap:clamp(26px,7vw,94px); align-items:center }
.split img { border-radius:8px; aspect-ratio:4/3 }
.split h2 + p,.inquire h2 + p { margin-top:18px; max-width:48ch }
.inquire { align-items:start }
form { background:white; padding:clamp(18px,4vw,34px); border:1px solid var(--line); border-radius:10px }
.note { font-size:.86rem; margin-bottom:16px }
.fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:12px }
label { display:grid; gap:5px; font-size:.9rem; font-weight:700; margin-bottom:14px }
input,textarea { display:block; min-width:0; width:100%; color:var(--ink); border:1px solid #a7888e; border-radius:4px; padding:8px; background:#fff; min-height:44px }
textarea { resize:vertical }
#status:not(:empty) { margin-top:12px; font-weight:700 }
footer { background:var(--wine); color:var(--paper) }
.foot { padding-block:30px; display:flex; gap:16px 26px; align-items:center; justify-content:space-between; flex-wrap:wrap }
.foot .brand { display:inline-block; margin-bottom:8px }
@media (max-width: 700px) {
  .wrap { width:calc(100% - 34px) }
  .top { min-height:72px; flex-wrap:wrap; padding-block:14px; gap:12px }
  nav { order:3; width:100%; justify-content:space-between }
  .hero-inner,.split,.inquire,.event-list { grid-template-columns:1fr }
  .hero img { aspect-ratio:4/3 }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto } }
