@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap');
:root {
  --paper:#faf8f2;--ink:#263f34;--muted:#5f685e;--line:#dcded3;--cream:#eeeee4;--accent:#d6e1ae;--serif:Georgia,'Times New Roman',serif}

* {
  box-sizing:border-box}
html {
  scroll-behavior:smooth;scroll-padding-top:24px}
body {
  margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:16px;line-height:1.65}
a {
  color:inherit;text-underline-offset:5px}
img {
  display:block;max-width:100%;object-fit:cover}
h1,h2,h3,h4,p {
  margin:0}
h1,h2 {
  font-family:var(--serif);font-weight:400;letter-spacing:-.045em;line-height:1.07}
h1 {
  font-size:clamp(3.5rem,6.2vw,6rem)}
h2 {
  font-size:clamp(2.5rem,4vw,3.7rem)}
h3,h4 {
  line-height:1.35}
p {
  overflow-wrap:anywhere}
a:focus-visible {
  outline:3px solid #b16a30;outline-offset:5px}
.wrap {
  width:min(1180px,calc(100% - 96px));margin-inline:auto}
.announcement {
  text-align:center;background:var(--ink);color:var(--paper);font-size:.78rem;padding:10px 24px;letter-spacing:.015em}
.site-header {
  min-height:110px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand {
  font-family:var(--serif);font-size:1.65rem;font-weight:600;text-decoration:none;letter-spacing:-.055em;display:flex;align-items:center;gap:12px;line-height:1.1;overflow-wrap:anywhere}
.brand-mark {
  width:39px;height:39px;flex:none;border:1px solid var(--ink);border-radius:50%;display:grid;place-items:center;font-size:1.8rem;font-style:italic}
.site-header nav {
  display:flex;gap:30px;font-size:.88rem}
.site-header nav a {
  text-decoration:none}
.site-header nav a:hover {
  text-decoration:underline}
.button {
  display:inline-flex;align-items:center;justify-content:center;gap:28px;background:var(--ink);color:var(--paper);padding:14px 24px;text-decoration:none;border-radius:4px;font-weight:500;font-size:.92rem;min-height:48px;line-height:1.5;transition:background .2s}
.button:hover {
  background:#3b5944}
.button.small {
  padding:12px 19px;gap:17px;white-space:nowrap}
.hero {
  display:grid;grid-template-columns:1fr 1.04fr;gap:64px;align-items:center;padding-top:28px;padding-bottom:84px}
.eyebrow {
  text-transform:uppercase;letter-spacing:.16em;font-weight:700;font-size:.68rem;line-height:1.8;margin-bottom:21px}
.hero h1 {
  max-width:620px}
.lead {
  color:var(--muted);font-size:1.02rem;max-width:390px;margin:25px 0 30px}
.hero-note {
  font-size:.72rem;color:var(--muted);margin-top:31px;display:flex;gap:10px;align-items:center}
.hero-note span {
  font-size:1.35rem;color:var(--ink)}
.hero-image {
  position:relative;height:530px;border-radius:170px 170px 8px 8px;overflow:hidden;background:#ded7c6}
.hero-image img {
  width:100%;height:100%}
.image-label {
  position:absolute;bottom:24px;left:24px;background:var(--paper);padding:10px 19px;border-radius:3px;font-family:var(--serif);font-style:italic;font-size:1.1rem}
.story {
  border-top:1px solid var(--line);padding-top:55px;padding-bottom:65px;display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.story h2 {
  font-size:2.65rem}
.story p:not(.eyebrow) {
  color:var(--muted);font-size:.98rem}
.section-pad {
  padding-top:75px;padding-bottom:78px}
.favorites {
  background:var(--cream)}
.section-heading {
  display:flex;justify-content:space-between;align-items:end;gap:35px;margin-bottom:35px}
.section-heading .eyebrow {
  margin-bottom:13px}
.section-heading>p {
  font-size:.86rem;color:var(--muted)}
.text-link {
  font-size:.85rem;font-weight:600;white-space:nowrap}
.favorite-grid {
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}
.favorite-image {
  display:block;aspect-ratio:4/3;border-radius:5px;overflow:hidden;margin-bottom:23px;background:#e0ddcd}
.favorite-image img {
  width:100%;height:100%;transition:transform .3s}
.favorite-image:hover img {
  transform:scale(1.025)}
.favorite-card .eyebrow {
  font-size:.6rem;margin-bottom:7px}
.item-title {
  display:flex;justify-content:space-between;gap:15px;align-items:baseline}
.favorite-card h3 {
  font-family:var(--serif);font-size:1.45rem;font-weight:400;letter-spacing:-.025em}
.price {
  white-space:nowrap;font-size:.95rem;font-weight:600;font-variant-numeric:tabular-nums}
.favorite-card>p:last-child {
  font-size:.84rem;color:var(--muted);margin-top:10px;line-height:1.7}
.category-nav {
  display:flex;flex-wrap:wrap;gap:10px;border-bottom:1px solid var(--line);padding-bottom:25px;margin-bottom:39px}
.category-nav a {
  border:1px solid #bec5b4;border-radius:30px;padding:8px 18px;text-decoration:none;font-size:.83rem}
.category-nav a:hover {
  background:var(--accent)}
.category-nav span {
  margin-left:22px}
.menu-group {
  display:grid;grid-template-columns:190px 1fr;gap:32px;margin-bottom:40px;scroll-margin-top:30px}
.menu-group>h3 {
  font-family:var(--serif);font-size:1.6rem;font-weight:400}
.menu-grid {
  display:grid;grid-template-columns:1fr 1fr;column-gap:48px;row-gap:25px}
.menu-item {
  border-bottom:1px solid var(--line);padding-bottom:23px;scroll-margin-top:40px}
.menu-item h4 {
  font-size:1rem;font-weight:600}
.menu-item p {
  font-size:.82rem;color:var(--muted);margin-top:8px}
.availability {
  display:inline-block;margin-top:10px;background:#eee5d5;color:#695138;padding:2px 9px;border-radius:3px;font-size:.7rem}
.menu-note {
  border-top:1px solid var(--line);padding-top:23px;font-size:.76rem;color:var(--muted)}
.visit {
  background:var(--ink);color:var(--paper)}
.visit-grid {
  display:grid;grid-template-columns:1fr .85fr;gap:120px}
.visit .eyebrow {
  color:var(--accent)}
address {
  font-style:normal;margin-top:25px;margin-bottom:8px;font-size:.94rem;white-space:pre-line}
.visit p:not(.eyebrow) {
  margin-top:15px}
.social-links {
  display:flex;flex-wrap:wrap;gap:22px;margin-top:13px;font-size:.87rem}
.button.light {
  background:var(--accent);color:var(--ink);margin-top:30px}
.button.light:hover {
  background:#e6edcc}
.hours {
  padding-top:8px}
.hours h3 {
  font-family:var(--serif);font-size:1.65rem;font-weight:400;margin-bottom:25px}
.hours dl {
  margin:0}
.hours dl>div {
  display:flex;justify-content:space-between;gap:18px;border-bottom:1px solid #52665a;padding:12px 0;font-size:.86rem}
.hours dd {
  margin:0;text-align:right;font-variant-numeric:tabular-nums}
.hours small {
  display:block}
.site-footer {
  padding-block:33px;display:flex;align-items:center;justify-content:space-between;gap:25px}
.site-footer .brand {
  font-size:1.35rem}
.site-footer p,.site-footer>a:last-child {
  font-size:.72rem;color:var(--muted)}
.image-placeholder {
  height:100%;width:100%;min-height:160px;display:grid;place-items:center;text-align:center;background:#e4e4d6;color:var(--ink);font-family:var(--serif);font-style:italic;font-size:2rem;padding:25px}
.setup-panel {
  max-width:700px;padding-block:100px}
.setup-panel h1 {
  font-size:3.5rem;margin-bottom:25px}
.setup-panel p {
  margin-bottom:22px}
.setup-panel code {
  overflow-wrap:anywhere}
.sr-only,.skip-link:not(:focus) {
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link:focus {
  position:fixed;top:10px;left:10px;padding:15px;background:white;z-index:10}

@media(min-width:1500px) {
  .hero {
  padding-top:45px}
}

@media(max-width:1000px) {
  .wrap {
  width:calc(100% - 56px)}
.site-header {
  gap:18px}
.site-header nav {
  gap:18px}
.brand {
  font-size:1.4rem}
.hero {
  gap:35px}
.hero-image {
  height:480px}
.visit-grid {
  gap:65px}
.menu-group {
  grid-template-columns:150px 1fr}
.menu-grid {
  column-gap:28px}
.favorite-grid {
  gap:22px}
}

@media(max-width:720px) {
  .wrap {
  width:calc(100% - 40px)}
.site-header {
  flex-wrap:wrap;min-height:120px;padding-block:20px;gap:18px}
.site-header .brand {
  flex:1;font-size:1.4rem}
.brand-mark {
  display:none}
.site-header nav {
  order:3;width:100%;justify-content:center;gap:32px;font-size:.82rem}
.button.small {
  font-size:.75rem;gap:12px;padding:10px 13px;min-height:42px}
.hero {
  grid-template-columns:1fr;gap:34px;padding-top:25px;padding-bottom:45px}
.hero h1 {
  font-size:clamp(3.4rem,12vw,4.8rem);max-width:540px}
.hero .eyebrow {
  margin-bottom:18px}
.lead {
  max-width:500px;font-size:1rem;margin-top:22px}
.hero-note {
  margin-top:21px}
.hero-image {
  height:380px;border-radius:110px 110px 5px 5px}
.story {
  grid-template-columns:1fr;gap:22px;padding-block:42px}
.story h2 {
  font-size:2.35rem}
.story .eyebrow {
  margin-bottom:15px}
.section-pad {
  padding-block:48px}
.section-heading {
  display:block;margin-bottom:29px}
.section-heading>.text-link,.section-heading>p {
  display:inline-block;margin-top:18px}
.favorite-grid {
  grid-template-columns:1fr;gap:32px}
.favorite-image {
  aspect-ratio:1.5;margin-bottom:18px}
.favorite-card h3 {
  font-size:1.65rem}
.favorite-card>p:last-child {
  font-size:.9rem}
.menu-group {
  grid-template-columns:1fr;gap:20px}
.menu-grid {
  grid-template-columns:1fr;gap:22px}
.menu-group>h3 {
  font-size:1.7rem}
.category-nav {
  gap:8px}
.category-nav a {
  padding:8px 13px;font-size:.76rem}
.category-nav span {
  margin-left:9px}
.visit-grid {
  grid-template-columns:1fr;gap:48px}
.hours {
  padding:0}
.site-footer {
  flex-wrap:wrap;padding-block:28px;gap:15px}
.site-footer p {
  order:3;width:100%}
.setup-panel h1 {
  font-size:2.7rem}
}

@media(prefers-reduced-motion:reduce) {
  html {
  scroll-behavior:auto}
* {
  transition:none!important}
}

