:root{--cream:#f7f3e8;--green:#394a32;--olive:#77815a;--line:#d9d9c9}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--green);font:15px/1.7 Arial,sans-serif}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:3px solid #9e744d;outline-offset:5px}header{max-width:1320px;margin:auto;padding:22px 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:12px}
.brand img{width:68px;height:68px;flex-shrink:0;border-radius:50%}
.brand span{font:28px Georgia,serif;letter-spacing:3px}
.brand small{display:block;font:9px Arial;letter-spacing:2px}nav{display:flex;gap:32px;align-items:center;font-size:13px}
.pill{border:1px solid var(--green);padding:10px 22px;border-radius:30px}
.hero{max-width:1320px;margin:auto;padding:58px 5% 64px;display:grid;grid-template-columns:1fr 1.05fr;gap:7%;align-items:center}
.eyebrow{text-transform:uppercase;letter-spacing:3px;font-size:10px;font-weight:600}
.hero h1{font:normal clamp(56px,7.4vw,108px)/.99 Georgia,serif;letter-spacing:-4px;margin:28px 0}
.hero h1 em{font-weight:normal;color:var(--olive)}
.intro{max-width:330px;color:#6c7161;font-size:15px}
.actions{display:flex;gap:25px;align-items:center;margin-top:31px}
.button{background:var(--green);color:var(--cream);border-radius:30px;padding:14px 25px;font-size:12px;display:inline-block}
.textlink{font-size:12px;border-bottom:1px solid #9dA28e;padding-bottom:3px}
.hero figure{margin:0;position:relative}
.hero figure>img{width:100%;height:530px;object-fit:cover;border-radius:240px 240px 8px 8px}
.seal{position:absolute;bottom:28px;left:-35px;background:#e9ebd7;width:115px;height:115px;border:6px solid var(--cream);border-radius:50%;display:grid;place-content:center;text-align:center;font:italic 18px Georgia;transform:rotate(-10deg)}
.caption{display:flex;justify-content:space-between;margin-top:15px;font-size:9px;letter-spacing:1.5px;text-transform:uppercase}
.strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center;padding:18px;letter-spacing:3px;font-size:10px}
.strip span{padding:0 25px;color:#899273}
.welcome{max-width:780px;margin:80px auto;text-align:center;padding:0 24px}h2{font:normal clamp(32px,4vw,50px)/1.18 Georgia,serif;letter-spacing:-1px;margin:17px 0 23px}
.welcome p{max-width:530px;margin:auto;color:#6c7161}
.gallery{max-width:1200px;margin:auto;padding:0 4% 28px}
.sectionhead{display:flex;justify-content:space-between;align-items:end;margin-bottom:30px}
.sectionhead h2{margin-bottom:0}
.photos{display:grid;grid-template-columns:1fr 1fr 1fr;gap:25px}
.photos img{width:100%;height:330px;object-fit:cover;border-radius:4px}
.photos a:nth-child(2){padding-top:42px}
.photos h3{font:24px Georgia;margin:15px 0 5px}
.photos p{font-size:12px;color:#6c7161;margin:0}
.menu{background:#e7e9da;padding:26px 6% 18px;text-align:center}
.menu p{color:#666e59;margin:0 auto 25px;max-width:480px}
.visit{max-width:1100px;margin:75px auto;display:grid;grid-template-columns:1fr 1fr;gap:10%;padding:0 5%;align-items:center}
.visit img{height:350px;width:100%;object-fit:cover;border-radius:4px}
.visit p{color:#6c7161}footer{border-top:1px solid var(--line);padding:25px 5%;display:flex;justify-content:space-between;font-size:11px}
.note{background:#eae6db;color:#6e7164;text-align:center;padding:8px 15px;font-size:10px}@media(max-width:700px){header{padding:15px 6%}nav{gap:15px}nav .optional{display:none}
.brand span{font-size:22px}
.brand img{width:50px;height:50px}
.hero{grid-template-columns:1fr;padding:38px 7%;gap:35px}
.hero h1{font-size:70px;letter-spacing:-3px;margin:20px 0}
.hero figure>img{height:410px}
.seal{left:-12px;width:95px;height:95px}
.strip{font-size:8px;letter-spacing:1px}
.strip span {
  display: inline-block;
  width: 4px;
  height: 4px;
  margin: 0 8px;
  padding: 0;
  border-radius: 50%;
  background: currentColor;
  font-size: 0;
  vertical-align: middle;
}
.welcome{margin:55px auto}
.photos{gap:12px}
.photos img{height:220px}
.photos h3{font-size:18px}
.photos p{font-size:10px}
.photos a:nth-child(2){padding-top:25px}
.sectionhead{align-items:start;gap:20px}
.visit{grid-template-columns:1fr;gap:30px;margin:50px auto}
.visit img{height:300px}footer{gap:20px}
.caption{font-size:8px}}

:root { --terracotta: #815437; }
body { font-size: 16px; }
.skip { position: absolute; top: -10rem; left: 1rem; z-index: 1; background: var(--cream); padding: .75rem 1rem; }
.skip:focus { top: .5rem; }
.eyebrow, .caption { color: var(--terracotta); }
.hero h1 em { color: #61704e; }
.hero figure > img, .photos img { display: block; }
.visit { background: #eee8db; max-width: none; margin: 0; padding: 28px max(6%, calc((100% - 1050px) / 2)) 75px; }
.visit img { object-position: center; }
.menu { text-align: left; }
.menu-inner { max-width: 1040px; margin: auto; }
.menu-inner h2 { margin: 0 0 14px; }
.menu p { max-width: none; margin: 0 0 24px; }
.menu-groups { margin: 28px 0; border-top: 1px solid #aeb39d; }
.menu details { border-bottom: 1px solid #aeb39d; }
.menu summary { display: flex; justify-content: space-between; gap: 12px; align-items: center; cursor: pointer; padding: 17px 0; font: 24px/1.2 Georgia, serif; }
.menu summary::after { content: '+'; font: 24px Arial, sans-serif; }
.menu details[open] summary::after { content: '−'; }
.menu details h3 { font: 20px Georgia, serif; margin: 0 0 12px; }
.menu-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; padding: 6px 0 24px; }
.menu ul { margin: 0; padding: 0; list-style: none; }
.menu li { padding: 10px 0; border-top: 1px solid #cdd0bf; }
.menu-item { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.menu-price { flex-shrink: 0; font-variant-numeric: tabular-nums; }
.menu .item-description, .menu .menu-note { margin: 5px 0 0; font-size: 14px; color: #505944; }
@media (max-width: 700px) {
  nav a { white-space: nowrap; }
  .pill { padding: 10px 13px; }
  .hero h1 { font-size: clamp(48px, 13vw, 70px); }
  .hero figure > img { height: clamp(290px, 110vw, 490px); }
  .photos { grid-template-columns: 1fr; gap: 28px; }
  .photos a:nth-child(2) { padding: 0; }
  .photos img { height: auto; aspect-ratio: 4 / 3; }
  .photos h3 { font-size: 23px; }
  .photos p { font-size: 14px; }
  .sectionhead { flex-direction: column; }
  .menu-columns { grid-template-columns: 1fr; }
  .menu summary { font-size: 21px; }
  .visit { margin: 0; padding: 16px 6% 50px; }
  footer { flex-wrap: wrap; }
}
@media (max-width: 370px) {
  header { gap: 9px; }
  .brand { gap: 6px; }
  .brand small { letter-spacing: 1px; }
  header nav { gap: 6px; }
  nav { gap: 8px; }
  .pill { padding: 8px 8px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
