:root { --ink:#2d231e; --clay:#9e4f32; --clay2:#c56e4b; --muted:#6e625b; --cream:#e9dfd5; --paper:#faf6f1; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; overflow-x:hidden; }
html, body { max-width:100%; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Figtree,system-ui,sans-serif; }
a { color:inherit; text-decoration:none; }
img { max-width:100%; display:block; }
.wrap { width:min(1280px, calc(100% - 2rem)); margin-inline:auto; }
.top .wrap { display:flex; align-items:center; min-height:96px; gap:1rem; }
.brand { font-family:"DM Serif Display",Georgia,serif; font-size:24px; }
.brand small { display:block; font-family:Figtree,sans-serif; font-size:11px; font-weight:600; color:var(--muted); }
.top nav { margin-left:auto; display:flex; gap:1.2rem; font-weight:600; }
.top nav a.active { color:var(--clay2); font-weight:700; }
.phone { font-weight:700; }
.hero { padding:3rem 0 4rem; }
.hero-grid { display:grid; grid-template-columns:1fr 560px; gap:2.5rem; align-items:center; }
.eyebrow { color:var(--clay); font-weight:700; letter-spacing:.12em; font-size:12px; }
.hero h1 { font-family:"DM Serif Display",Georgia,serif; font-weight:400; font-size:clamp(2.4rem,5vw,64px); line-height:1.05; margin:.5rem 0 1rem; }
.hero p { color:var(--muted); font-size:18px; }
.hero-actions { display:flex; gap:.7rem; flex-wrap:wrap; margin:1.3rem 0; }
.btn { display:inline-flex; align-items:center; padding:.75rem 1.2rem; font-weight:700; }
.btn-fill { background:var(--clay); color:#fff; }
.btn-line { box-shadow:inset 0 0 0 1.5px var(--ink); }
.meta { display:flex; gap:2rem; color:var(--muted); font-size:12px; }
.meta strong { display:block; color:var(--ink); font-size:14px; }
.hero img { width:100%; height:520px; object-fit:cover; }
.section { padding:3.5rem 0; }
h2 { font-family:"DM Serif Display",Georgia,serif; font-weight:400; font-size:40px; margin:.4rem 0 1rem; }
.grid-4 { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.card { background:#fff; padding:1.2rem; }
.card .tag { color:var(--clay2); font-weight:700; font-size:12px; }
.card h3 { font-family:"DM Serif Display",Georgia,serif; font-weight:400; }
.card p { color:var(--muted); font-size:14px; }
.about-grid { display:grid; grid-template-columns:480px 1fr; gap:2.5rem; align-items:center; }
.about-grid img { width:100%; height:580px; object-fit:cover; }
.quote { font-family:"DM Serif Display",Georgia,serif; font-size:20px; }
.visit { display:grid; grid-template-columns:1fr 560px; gap:2rem; align-items:start; }
.map { width:100%; height:400px; border:0; }
.cater { background:#fff; padding:2rem; display:flex; justify-content:space-between; gap:1.5rem; align-items:center; }
.cater h2 { color:var(--clay); font-size:32px; margin:0; }
.foot { background:var(--ink); color:var(--cream); padding:2.5rem 0; }
.foot .wrap { display:grid; grid-template-columns:2fr 1fr 1fr; gap:1.5rem; }
.foot .brand { color:#fff; }
.accent { color:var(--clay2); font-weight:700; font-size:13px; letter-spacing:.08em; }
.menu-item { display:grid; grid-template-columns:1fr auto; gap:.4rem 1rem; padding:1rem 0; border-bottom:1px solid #e8dfd6; }
.menu-item h3 { margin:0; font-family:"DM Serif Display",Georgia,serif; font-weight:400; }
.menu-item .price { color:var(--clay2); font-weight:700; }
.menu-item p { grid-column:1 / -1; margin:0; color:var(--muted); font-size:14px; }
.two { display:grid; grid-template-columns:1fr 1fr; gap:3rem; }
.sample-note {
  margin:0; padding:.45rem 1rem; text-align:center;
  background:#c56e4b; color:#fff; font-size:12px; font-weight:700;
}
.sample-note a { color:#fff; text-decoration:underline; }
.menu-note { color:var(--muted); font-size:13px; font-weight:500; margin:1rem 0 2rem; }
.card, .btn { transition: transform .25s ease, box-shadow .25s ease; }
.card:hover, .btn:hover { transform: translateY(-2px); }
.card:hover { box-shadow: 0 12px 28px rgba(45,35,30,.08); }
@media (max-width:800px) {
  .hero-grid, .grid-4, .about-grid, .visit, .foot .wrap, .two, .cater { grid-template-columns:1fr; }
  .top .wrap { flex-wrap: wrap; }
  .top nav {
    display:flex; width:100%; order:3; font-size:14px; gap:1rem;
    padding:0 0 .85rem;
  }
  .phone { margin-left:auto; }
  .hero img, .about-grid img { height:240px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  .card, .btn { transition:none; }
}
