/* Public font assets use SIL OFL families; licenses accompany the font files. */
@font-face {
  font-family:Fraunces Preview;
  src:url('/assets/fonts/fraunces.woff') format('woff');
  font-weight:400;
  font-display:swap
}
@font-face {
  font-family:Jennings Sans Preview;
  src:url('/assets/fonts/jennings-sans.woff') format('woff');
  font-weight:200 900;
  font-display:swap
}
:root {
  --green:#173f35;
  --cream:#f5f0e4;
  --trim:#245653;
  --red:#a3312c;
  --ink:#20322e;
  --rule:#c4cdbe;
  --display:'Fraunces Preview',Georgia,serif;
  --body:'Jennings Sans Preview',sans-serif;
  --u:calc(min(100vw,1440px)/1440);
  --end-mask:polygon(4% 0,96% 0,100% 6%,100% 94%,96% 100%,4% 100%,0 94%,0 6%);
  --start-mask:polygon(72% 39%,76% 39%,79% 43%,79% 51%,76% 55%,72% 55%,69% 51%,69% 43%)
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:auto
}
body {
  margin:0;
  background:var(--green);
  color:var(--cream);
  font:20px/1.4 var(--body)
}
a {
  color:inherit;
  text-decoration:none
}
a:hover {
  text-decoration:underline;
  text-underline-offset:5px
}
button,a {
  touch-action:manipulation
}
img {
  display:block;
  max-width:100%;
  height:auto
}
figure,dl,dd,p,h1,h2,h3 {
  margin:0
}
h1,h2,h3 {
  font-family:var(--display);
  font-weight:400
}
a:focus-visible {
  outline:3px solid var(--red);
  outline-offset:5px
}
.opening a:focus-visible,.visit a:focus-visible,.footer a:focus-visible,.menu-categories a:focus-visible {
  outline-color:var(--cream)
}
.action:focus-visible {
  outline:3px solid currentColor;
  outline-offset:5px
}
.page-shell {
  max-width:1440px;
  margin-inline:auto
}
.wrap {
  width:calc(100% - 128px);
  max-width:1312px;
  margin-inline:auto
}
.skip {
  position:absolute;
  left:20px;
  top:10px;
  transform:translateY(-180%);
  background:var(--cream);
  color:var(--green);
  padding:12px 20px;
  z-index:20
}
.skip:focus {
  transform:none
}
.masthead {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding-block:18px 22px;
  border-bottom:1px solid #a1b6a9
}
.identity {
  display:flex;
  align-items:center;
  gap:30px
}
.identity img {
  width:159px;
  height:auto
}
.identity strong {
  display:block;
  font-size:18px;
  font-weight:600
}
.identity small {
  display:block;
  font-size:17px;
  margin-top:8px
}
.masthead nav {
  display:flex;
  align-items:center;
  gap:30px;
  font-size:19px;
  font-weight:600
}
.masthead nav>a:not(.action) {
  min-height:48px;
  display:flex;
  align-items:center
}
.visit-nav {
  display:none!important
}
.action {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  min-height:56px;
  padding:14px 20px;
  font:600 18px/1 var(--body)
}
.action:hover {
  text-decoration:none;
  box-shadow:inset 0 -3px 0 currentColor
}
.red {
  background:var(--red);
  color:var(--cream)
}
.cream {
  background:var(--cream);
  color:var(--green)
}
.arrow {
  display:inline-block;
  flex:none;
  width:21px;
  height:1.5px;
  background:currentColor;
  position:relative;
  margin-right:3px
}
.arrow:after {
  content:'';
  position:absolute;
  right:0;
  top:-3px;
  width:8px;
  height:8px;
  border-top:1.5px solid;
  border-right:1.5px solid;
  transform:rotate(45deg)
}
.text-link {
  display:inline-flex;
  align-items:center;
  gap:17px;
  min-height:48px;
  font-weight:600;
  font-size:18px
}
.eyebrow {
  font-size:14px;
  font-weight:600;
  letter-spacing:.015em;
  line-height:1.4
}
.mobile-heading,.mobile-locality {
  display:none
}
.hero {
  display:grid;
  grid-template-columns:minmax(0,640px) minmax(0,1fr);
  column-gap:72px;
  row-gap:32px;
  padding-top:36px
}
.hero-intro {
  grid-column:1/3;
  grid-row:1;
  z-index:1;
  pointer-events:none
}
.hero-intro a {
  pointer-events:auto
}
.hero .eyebrow span {
  display:inline-block;
  margin-left:24px
}
.hero h1 {
  font-size:78px;
  line-height:1.07;
  margin-top:26px;
  letter-spacing:-.012em
}
.hero-actions {
  display:flex;
  gap:16px;
  margin-top:28px
}
.hero-actions .action {
  min-width:190px
}
.visit-intro {
  grid-column:2;
  grid-row:1;
  justify-self:end;
  align-self:center;
  padding-top:12px;
  width:283px;
  z-index:2
}
.visit-intro>.eyebrow {
  font-size:12px
}
.visit-intro>p:nth-child(2) {
  margin-top:18px;
  font-size:20px;
  line-height:1.5
}
.visit-intro .text-link {
  margin-top:12px
}
.address-line {
  display:block
}
.breakfast-figure {
  grid-column:1;
  grid-row:2
}
.breakfast-figure>img {
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover
}
.breakfast-figure figcaption {
  margin-top:18px;
  font-size:19px
}
.house-figure {
  grid-column:2;
  grid-row:2;
  align-self:start;
  margin-top:46px;
  position:relative
}
.house-figure:before {
  content:'';
  width:42px;
  height:1px;
  background:#a1b6a9;
  position:absolute;
  left:-58px;
  top:27px
}
.architectural-frame {
  position:relative;
  padding:13px;
  background:var(--trim);
  clip-path:var(--end-mask)
}
.architectural-frame img {
  width:100%;
  height:100%;
  object-fit:cover;
  clip-path:var(--end-mask)
}
.house-photo {
  aspect-ratio:640/456;
  height:auto!important;
  object-fit:contain!important
}
.trim-svg {
  position:absolute;
  inset:5px;
  width:calc(100% - 10px);
  height:calc(100% - 10px);
  pointer-events:none;
  overflow:visible
}
.trim-path {
  fill:none;
  stroke:var(--cream);
  stroke-width:1.35;
  vector-effect:non-scaling-stroke
}
.house-figure figcaption {
  margin-top:20px;
  font-size:18px
}
.caption-detail {
  display:block;
  font-size:16px;
  margin-top:7px
}
.visit-rail {
  display:flex;
  justify-content:space-between;
  border-top:1px solid #a1b6a9;
  margin-top:37px;
  padding-block:22px 30px;
  font-size:17px
}
.visit-rail a {
  font-weight:600;
  min-height:44px;
  display:flex;
  align-items:center;
  margin-block:-10px
}
.food,.history,.visit {
  position:relative;
  isolation:isolate;
  scroll-margin-top:20px
}
.food {
  height:calc(1460 * var(--u));
  background:var(--cream);
  color:var(--green)
}
.bakery>.eyebrow {
  position:absolute;
  left:calc(64 * var(--u));
  top:calc(55 * var(--u));
  color:var(--red);
  font-size:15px
}
.bakery>h2 {
  position:absolute;
  left:calc(64 * var(--u));
  top:calc(91 * var(--u));
  font-size:calc(80 * var(--u));
  line-height:1.1
}
.bakery>.action {
  position:absolute;
  left:calc(595 * var(--u));
  top:calc(136 * var(--u));
  width:calc(206 * var(--u))
}
.bakery-figure {
  position:absolute;
  left:0;
  top:calc(228 * var(--u));
  width:calc(790 * var(--u));
  height:calc(614 * var(--u))
}
.bakery-figure>img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:50% 34%
}
.bakery-figure figcaption {
  position:absolute;
  left:0;
  bottom:0;
  width:calc(564 * var(--u));
  min-height:calc(112 * var(--u));
  padding:calc(20 * var(--u)) calc(64 * var(--u));
  padding-right:20px;
  background:var(--cream)
}
.bakery-figure .eyebrow {
  color:var(--red);
  font-size:15px;
  white-space:nowrap
}
.bakery-figure h3 {
  font-size:calc(30 * var(--u));
  line-height:1.1;
  margin-top:12px;
  white-space:nowrap
}
.bakery-note {
  position:absolute;
  left:calc(64 * var(--u));
  top:calc(884 * var(--u));
  font-size:22px
}
.garden {
  position:absolute;
  right:0;
  top:0;
  width:calc(600 * var(--u));
  height:calc(938 * var(--u));
  background:var(--green);
  color:var(--cream)
}
.garden h2 {
  position:absolute;
  left:calc(72 * var(--u));
  top:calc(100 * var(--u));
  font-size:calc(61 * var(--u));
  line-height:1.05
}
.garden .architectural-frame {
  position:absolute;
  left:calc(58 * var(--u));
  top:calc(300 * var(--u));
  width:calc(492 * var(--u));
  height:calc(542 * var(--u));
  padding:calc(12 * var(--u))
}
.garden img {
  object-position:50% 50%
}
.garden figcaption {
  position:absolute;
  left:calc(70 * var(--u));
  top:calc(884 * var(--u));
  font-size:18px;
  font-weight:600
}
.garden:after {
  content:'';
  position:absolute;
  left:0;
  right:calc(50 * var(--u));
  top:calc(866 * var(--u));
  height:1px;
  background:var(--cream)
}
.bakery:after {
  content:'';
  position:absolute;
  left:calc(64 * var(--u));
  width:calc(776 * var(--u));
  top:calc(866 * var(--u));
  height:1px;
  background:var(--trim)
}
.table-heading {
  position:absolute;
  left:calc(64 * var(--u));
  top:calc(974 * var(--u))
}
.table-heading .eyebrow {
  color:var(--red);
  font-size:15px
}
.table-heading h2 {
  font-size:calc(52 * var(--u));
  line-height:1.06;
  margin-top:20px
}
.table-description {
  position:absolute;
  left:calc(712 * var(--u));
  top:calc(986 * var(--u));
  font-size:21px;
  line-height:1.45
}
.lunch-figure {
  position:absolute;
  left:calc(64 * var(--u));
  right:calc(64 * var(--u));
  top:calc(1171 * var(--u))
}
.lunch-figure img {
  width:100%;
  height:calc(238 * var(--u));
  object-fit:cover;
  object-position:50% 64%
}
.lunch-figure figcaption {
  font-size:17px;
  font-weight:600;
  margin-top:16px
}
.history {
  height:calc(1050 * var(--u));
  color:var(--green);
  background:linear-gradient(to bottom,var(--green) 0 calc(595 * var(--u)),var(--cream) calc(595 * var(--u)) 100%)
}
.history-label {
  position:absolute;
  left:calc(64 * var(--u));
  top:calc(62 * var(--u));
  font-size:15px;
  color:var(--cream)
}
.history-intro {
  position:absolute;
  left:calc(64 * var(--u));
  top:calc(105 * var(--u));
  color:var(--cream);
  font-family:var(--display);
  font-size:33px;
  line-height:1.1
}
.history h2 {
  position:absolute;
  left:calc(808 * var(--u));
  top:calc(86 * var(--u));
  font-size:calc(66 * var(--u));
  line-height:1.09;
  color:var(--cream)
}
.history-figure {
  position:absolute;
  left:calc(64 * var(--u));
  top:calc(260 * var(--u));
  width:calc(668 * var(--u))
}
.history-figure .architectural-frame {
  height:calc(484 * var(--u));
  padding:calc(14 * var(--u))
}
.history-figure figcaption {
  margin-top:26px;
  font-weight:600;
  font-size:20px
}
.history-story {
  position:absolute;
  left:calc(808 * var(--u));
  right:calc(64 * var(--u));
  top:calc(626 * var(--u));
  font-size:23px;
  line-height:1.45
}
.history-lives {
  position:absolute;
  left:calc(64 * var(--u));
  top:calc(818 * var(--u));
  font:400 29px/1.12 var(--display)
}
.history-attribution {
  position:absolute;
  left:calc(64 * var(--u));
  top:calc(959 * var(--u));
  font-size:16px
}
.history-link {
  position:absolute;
  left:calc(808 * var(--u));
  top:calc(883 * var(--u))
}
.visit {
  height:calc(1040 * var(--u));
  background:var(--green)
}
.visit-label {
  position:absolute;
  left:calc(64 * var(--u));
  top:calc(62 * var(--u));
  font-size:15px
}
.visit>h2 {
  position:absolute;
  left:calc(64 * var(--u));
  top:calc(97 * var(--u));
  font-size:calc(65 * var(--u));
  line-height:1.1
}
.hours-notice {
  position:absolute;
  left:calc(64 * var(--u));
  top:calc(240 * var(--u));
  width:calc(760 * var(--u));
  height:calc(665 * var(--u));
  padding:calc(30 * var(--u)) calc(36 * var(--u));
  background:var(--cream);
  color:var(--green);
  clip-path:polygon(24px 0,calc(100% - 24px) 0,100% 24px,100% calc(100% - 24px),calc(100% - 24px) 100%,24px 100%,0 calc(100% - 24px),0 24px)
}
.hours-notice>.eyebrow {
  color:var(--red);
  font-size:15px
}
.hours-notice h3 {
  font-size:54px;
  line-height:1.1;
  margin-top:20px
}
.hours-intro {
  font-size:18px;
  margin-top:28px
}
.hours {
  border-block:1px solid var(--trim);
  margin-top:27px;
  padding-block:9px 14px
}
.hours>div {
  display:grid;
  grid-template-columns:52% 48%;
  min-height:49px;
  align-items:center;
  font-size:22px
}
.hours dt {
  font-family:var(--body)
}
.hours>div:nth-child(3) {
  font-weight:600
}
.hours-note {
  font-size:16px;
  line-height:1.55;
  margin-top:16px
}
.hours-note a {
  display:inline-flex;
  align-items:center;
  min-height:44px;
  font-weight:600
}
.destination {
  position:absolute;
  left:calc(904 * var(--u));
  top:calc(268 * var(--u));
  right:calc(64 * var(--u))
}
.destination>h3 {
  font-size:calc(55 * var(--u));
  line-height:1.05
}
.destination>p {
  font-size:22px;
  margin-top:34px
}
.destination>.action {
  width:258px;
  margin-top:39px
}
.phone {
  border-top:1px solid #a1b6a9;
  margin-top:46px;
  padding-top:27px
}
.phone>.eyebrow {
  font-size:15px
}
.phone>a {
  font-weight:600;
  font-size:33px;
  display:flex;
  min-height:56px;
  align-items:center;
  margin-top:13px;
  width:max-content
}
.phone>p:last-child:not(.eyebrow) {
  font-size:21px;
  margin-top:18px
}
.seating {
  position:absolute;
  left:calc(64 * var(--u));
  right:calc(64 * var(--u));
  top:calc(952 * var(--u));
  border-top:1px solid #a1b6a9;
  padding-top:22px;
  font-size:21px
}
.footer {
  display:grid;
  grid-template-columns:1fr auto auto;
  gap:24px;
  padding-block:30px 32px;
  font-size:16px;
  border-top:1px solid #a1b6a9
}
.footer>a,.footer nav>a {
  min-height:44px;
  display:inline-flex;
  align-items:center
}
.footer nav {
  display:flex;
  gap:28px
}
.footer>span {
  grid-column:1/-1;
  font-size:14px
}
.menu-opening {
  display:grid;
  grid-template-columns:1fr auto;
  gap:20px;
  padding-block:48px 54px
}
.menu-opening>.eyebrow {
  grid-column:1/-1
}
.menu-opening h1 {
  font-size:74px;
  line-height:1.05
}
.menu-opening>div {
  align-self:center;
  font-size:22px
}
.menu-opening .action {
  margin-top:28px;
  width:260px
}
.menu-categories {
  position:sticky;
  top:0;
  z-index:5;
  background:var(--green);
  border-block:1px solid #a1b6a9
}
.menu-categories>.wrap {
  display:flex;
  gap:48px
}
.menu-categories a {
  display:flex;
  align-items:center;
  min-height:64px;
  font-size:20px;
  font-weight:600;
  padding:6px 12px;
  margin-left:-12px
}
.menu-categories a:target,.menu-categories a[aria-current=true] {
  color:var(--cream);
  box-shadow:inset 0 -3px 0 var(--cream)
}
.menu-content {
  background:var(--cream);
  color:var(--green);
  width:100%;
  max-width:none;
  padding-inline:64px
}
.menu-category {
  display:grid;
  grid-template-columns:300px minmax(0,1fr);
  gap:100px;
  padding-block:56px 64px;
  border-bottom:1px solid var(--trim);
  scroll-margin-top:84px
}
.category-heading>.eyebrow {
  color:var(--red)
}
.category-heading h2 {
  font-size:48px;
  line-height:1.05;
  margin-top:18px
}
.category-heading img {
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  margin-top:32px
}
.menu-items {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 40px
}
.menu-items>div {
  border-top:1px solid var(--rule);
  padding-block:23px 28px;
  break-inside:avoid
}
.menu-items dt {
  font-family:var(--display);
  font-size:27px;
  line-height:1.13
}
.menu-items dd {
  font-size:19px;
  line-height:1.45;
  margin-top:14px;
  color:var(--ink)
}
.menu-subtitle {
  font-size:27px;
  margin:25px 0 12px
}
.category-content>p {
  font-size:19px
}
.menu-dietary {
  padding-block:40px 54px;
  max-width:900px;
  font-size:18px
}
.menu-dietary .action {
  margin-top:24px;
  margin-right:24px
}
.menu-dietary .text-link {
  margin-top:24px
}
@media(min-width:1441px) {
  .page-shell {
    border-inline:1px solid #ffffff24
  }
}
@media(min-width:701px) and (max-width:1100px) {
  :root {
    --u:calc(100vw/768)
  }
  .wrap {
    width:calc(100% - 56px)
  }
  .masthead nav {
    gap:24px;
    font-size:18px
  }
  .identity span {
    display:none
  }
  .identity img {
    width:130px
  }
  .hero {
    grid-template-columns:1fr 1fr;
    gap:32px
  }
  .hero h1 {
    font-size:60px;
    line-height:1.03
  }
  .hero-intro {
    grid-column:1/3
  }
  .visit-intro {
    display:none
  }
  .hero .eyebrow span {
    margin-left:20px
  }
  .house-figure {
    margin-top:46px
  }
  .house-figure:before {
    width:22px;
    left:-27px
  }
  .caption-detail {
    display:none
  }
  .breakfast-figure figcaption,.house-figure figcaption {
    font-size:16px
  }
  .visit-rail {
    margin-top:30px
  }
  .food {
    height:calc(1158 * var(--u))
  }
  .bakery>.eyebrow {
    left:calc(28 * var(--u));
    top:calc(35 * var(--u));
    font-size:13px
  }
  .bakery>h2 {
    left:calc(28 * var(--u));
    top:calc(65 * var(--u));
    font-size:calc(48 * var(--u))
  }
  .bakery>.action {
    left:calc(28 * var(--u));
    top:calc(149 * var(--u));
    width:184px
  }
  .bakery-figure {
    top:calc(231 * var(--u));
    width:calc(412 * var(--u));
    height:calc(413 * var(--u))
  }
  .bakery-figure figcaption {
    width:calc(340 * var(--u));
    min-height:calc(92 * var(--u));
    padding:calc(16 * var(--u)) calc(28 * var(--u))
  }
  .bakery-figure .eyebrow {
    font-size:13px
  }
  .bakery-figure h3 {
    font-size:calc(26 * var(--u));
    white-space:normal;
    margin-top:9px
  }
  .bakery-figure h3 .desktop-heading {
    display:none
  }
  .bakery-figure h3 .mobile-heading {
    display:block
  }
  .bakery-note {
    left:calc(28 * var(--u));
    top:calc(690 * var(--u));
    font-size:18px
  }
  .bakery:after {
    left:calc(28 * var(--u));
    top:calc(671 * var(--u));
    width:calc(412 * var(--u))
  }
  .garden {
    width:calc(328 * var(--u));
    height:calc(740 * var(--u))
  }
  .garden h2 {
    left:calc(28 * var(--u));
    top:calc(83 * var(--u));
    font-size:calc(42 * var(--u))
  }
  .garden .architectural-frame {
    left:calc(28 * var(--u));
    top:calc(290 * var(--u));
    width:calc(272 * var(--u));
    height:calc(354 * var(--u));
    padding:8px
  }
  .garden figcaption {
    left:calc(28 * var(--u));
    top:calc(690 * var(--u));
    font-size:16px
  }
  .garden:after {
    top:calc(671 * var(--u));
    right:calc(28 * var(--u))
  }
  .table-heading {
    left:calc(28 * var(--u));
    top:calc(778 * var(--u))
  }
  .table-heading .eyebrow {
    font-size:13px
  }
  .table-heading h2 {
    font-size:calc(36 * var(--u))
  }
  .table-description {
    left:calc(456 * var(--u));
    right:28px;
    top:calc(814 * var(--u));
    font-size:18px
  }
  .lunch-figure {
    left:calc(28 * var(--u));
    right:calc(28 * var(--u));
    top:calc(938 * var(--u))
  }
  .lunch-figure img {
    height:calc(152 * var(--u))
  }
  .lunch-figure figcaption {
    font-size:16px
  }
  .history {
    height:calc(668 * var(--u));
    background:linear-gradient(to bottom,var(--green) 0 calc(357 * var(--u)),var(--cream) calc(357 * var(--u)) 100%)
  }
  .history-label {
    left:calc(28 * var(--u));
    top:calc(35 * var(--u));
    font-size:13px
  }
  .history-intro {
    left:calc(28 * var(--u));
    top:calc(74 * var(--u));
    font-size:27px
  }
  .history h2 {
    left:calc(400 * var(--u));
    top:calc(53 * var(--u));
    font-size:calc(40 * var(--u))
  }
  .history-figure {
    left:calc(28 * var(--u));
    top:calc(187 * var(--u));
    width:calc(340 * var(--u))
  }
  .history-figure .architectural-frame {
    height:calc(259 * var(--u));
    padding:8px
  }
  .history-figure figcaption {
    font-size:16px;
    margin-top:15px
  }
  .history-story {
    left:calc(400 * var(--u));
    right:calc(28 * var(--u));
    top:calc(385 * var(--u));
    font-size:18px;
    line-height:1.42
  }
  .history-lives {
    left:calc(28 * var(--u));
    top:calc(505 * var(--u));
    font-size:23px
  }
  .history-attribution {
    left:calc(28 * var(--u));
    top:calc(583 * var(--u));
    font-size:13px
  }
  .history-link {
    left:calc(400 * var(--u));
    top:calc(594 * var(--u));
    font-size:17px
  }
  .visit {
    height:auto;
    display:grid;
    grid-template-columns:calc(392 * var(--u)) 1fr;
    column-gap:calc(36 * var(--u));
    align-items:start;
    padding:calc(172 * var(--u)) calc(28 * var(--u)) calc(120 * var(--u))
  }
  .visit-label {
    left:calc(28 * var(--u));
    top:calc(33 * var(--u));
    font-size:13px
  }
  .visit>h2 {
    left:calc(28 * var(--u));
    top:calc(70 * var(--u));
    font-size:calc(43 * var(--u))
  }
  .hours-notice {
    position:static;
    width:auto;
    height:auto;
    padding:24px 19px;
    clip-path:polygon(16px 0,calc(100% - 16px) 0,100% 16px,100% calc(100% - 16px),calc(100% - 16px) 100%,16px 100%,0 calc(100% - 16px),0 16px)
  }
  .hours-notice>.eyebrow {
    font-size:13px
  }
  .hours-notice h3 {
    font-size:38px;
    margin-top:20px
  }
  .hours-intro {
    font-size:15px;
    margin-top:24px
  }
  .hours {
    margin-top:27px
  }
  .hours>div {
    font-size:18px;
    min-height:40px;
    grid-template-columns:46% 54%
  }
  .hours-note {
    font-size:15px
  }
  .destination {
    position:static;
    margin-top:calc(23 * var(--u))
  }
  .destination>h3 {
    font-size:calc(36 * var(--u))
  }
  .destination>p {
    font-size:18px;
    line-height:1.4;
    margin-top:35px
  }
  .destination>.action {
    margin-top:42px;
    width:100%;
    font-size:17px
  }
  .phone {
    margin-top:49px;
    padding-top:27px
  }
  .phone>.eyebrow {
    font-size:13px
  }
  .phone>a {
    font-size:27px
  }
  .phone>p:last-child:not(.eyebrow) {
    font-size:18px
  }
  .seating {
    left:calc(28 * var(--u));
    right:calc(28 * var(--u));
    top:calc(810 * var(--u));
    font-size:17px
  }
  .footer {
    font-size:15px;
    gap:16px
  }
  .footer nav {
    gap:18px
  }
  .menu-opening h1 {
    font-size:60px
  }
  .menu-opening>div {
    font-size:18px
  }
  .menu-opening .action {
    width:220px
  }
  .menu-content {
    padding-inline:28px
  }
  .menu-category {
    grid-template-columns:220px 1fr;
    gap:40px
  }
  .menu-items {
    grid-template-columns:1fr
  }
  .category-heading h2 {
    font-size:38px
  }
}
@media(max-width:700px) {
  :root {
    --gutter:20px
  }
  body {
    font-size:18px
  }
  .wrap {
    width:calc(100% - 2 * var(--gutter))
  }
  .desktop-heading,.desktop-locality {
    display:none
  }
  .mobile-heading,.mobile-locality {
    display:block
  }
  .masthead {
    display:block;
    padding-block:18px 0
  }
  .identity {
    justify-content:space-between;
    gap:15px
  }
  .identity img {
    width:112px
  }
  .identity strong {
    font-size:13.5px;
    max-width:220px;
    line-height:1.4;
    text-align:right;
    white-space:nowrap
  }
  .identity small {
    font-size:14px;
    text-align:right;
    margin-top:6px
  }
  .masthead nav {
    border-top:1px solid #a1b6a9;
    margin-top:17px;
    justify-content:space-between;
    gap:0;
    font-size:16px
  }
  .masthead nav>.action {
    display:none
  }
  .masthead nav>a:not(.action) {
    min-height:49px;
    flex:1;
    justify-content:center
  }
  .hero {
    display:flex;
    flex-direction:column;
    width:100%;
    padding-top:27px;
    gap:0
  }
  .hero-intro {
    width:calc(100% - 2 * var(--gutter));
    margin-inline:var(--gutter);
    pointer-events:auto
  }
  .hero .eyebrow {
    font-size:13px;
    line-height:1.5
  }
  .hero .eyebrow span {
    display:block;
    margin:0;
    font-size:13px
  }
  .hero h1 {
    font-size:43px;
    line-height:1.035;
    letter-spacing:0;
    margin-top:28px
  }
  .hero-actions {
    margin-top:29px;
    gap:10px
  }
  .hero-actions .action {
    min-width:0;
    flex:1;
    min-height:54px;
    font-size:17px;
    padding:15px 14px;
    gap:12px
  }
  .arrow {
    width:19px
  }
  .visit-intro {
    order:1;
    width:auto;
    align-self:stretch;
    margin:23px var(--gutter) 0;
    padding:0;
    display:block
  }
  .visit-intro>.eyebrow,.visit-intro .text-link {
    display:none
  }
  .visit-intro>p:nth-child(2) {
    margin:0;
    font-size:16px;
    line-height:1.4
  }
  .visit-intro .address-line,.mobile-locality {
    display:inline
  }
  .visit-intro .address-line+.address-line:before {
    content:' · '
  }
  .breakfast-figure {
    order:2;
    margin-top:29px
  }
  .breakfast-figure>img {
    aspect-ratio:10/7;
    object-fit:cover;
    object-position:51% 59%
  }
  .breakfast-figure figcaption {
    margin:17px var(--gutter) 0;
    font-size:16px
  }
  .house-figure {
    order:3;
    width:calc(100% - 2 * var(--gutter));
    margin:35px var(--gutter) 0
  }
  .house-shell {
    padding:8px
  }
  .house-figure:before {
    display:none
  }
  .house-figure figcaption {
    font-size:16px;
    margin-top:17px
  }
  .caption-detail {
    display:none
  }
  .visit-rail {
    display:none
  }
  .opening {
    padding-bottom:36px
  }
  .architectural-frame .trim-svg {
    inset:4px;
    width:calc(100% - 8px);
    height:calc(100% - 8px)
  }
  .food {
    height:auto
  }
  .bakery {
    position:relative;
    padding-top:28px
  }
  .bakery>.eyebrow {
    position:static;
    margin-inline:var(--gutter);
    font-size:13px
  }
  .bakery>h2 {
    position:static;
    margin:24px var(--gutter) 0;
    font-size:43px;
    line-height:1.05
  }
  .bakery>.action {
    position:static;
    width:160px;
    min-height:54px;
    margin:28px var(--gutter) 29px;
    font-size:17px;
    padding-inline:14px
  }
  .bakery-figure {
    position:relative;
    top:auto;
    width:100%;
    height:calc(100vw * .78);
    margin-top:0
  }
  .bakery-figure>img {
    object-position:50% 32%
  }
  .bakery-figure figcaption {
    width:calc(100% - 56px);
    min-height:83px;
    padding:14px var(--gutter) 13px;
    bottom:-25px
  }
  .bakery-figure .eyebrow {
    font-size:13px
  }
  .bakery-figure h3 {
    font-size:28px;
    margin-top:9px;
    white-space:normal
  }
  .bakery-note {
    position:static;
    margin:39px var(--gutter) 29px;
    font-size:18px;
    line-height:1.4
  }
  .bakery:after,.garden:after {
    display:none
  }
  .garden {
    position:relative;
    right:auto;
    top:auto;
    width:100%;
    height:auto;
    padding:27px var(--gutter) 35px
  }
  .garden h2 {
    position:static;
    font-size:39px;
    line-height:1.02
  }
  .garden figure {
    position:relative;
    margin-top:30px;
    padding-left:28%
  }
  .garden .architectural-frame {
    position:relative;
    left:auto;
    top:auto;
    width:100%;
    height:auto;
    aspect-ratio:252/237;
    padding:8px
  }
  .garden figure:before {
    content:'';
    position:absolute;
    top:0;
    left:0;
    height:100%;
    width:1px;
    background:#a1b6a9
  }
  .garden figcaption {
    position:absolute;
    left:11px;
    top:auto;
    bottom:30px;
    font-size:15px;
    line-height:1.3;
    max-width:24%;
    font-weight:600
  }
  .table {
    padding-top:26px
  }
  .table-heading {
    position:static;
    margin-inline:var(--gutter)
  }
  .table-heading .eyebrow {
    font-size:13px
  }
  .table-heading h2 {
    font-size:31px;
    line-height:1.1;
    margin-top:20px
  }
  .table-description {
    position:static;
    margin:18px var(--gutter) 26px;
    font-size:18px;
    line-height:1.4
  }
  .lunch-figure {
    position:static
  }
  .lunch-figure img {
    height:calc(100vw * .341);
    object-position:50% 64%
  }
  .lunch-figure figcaption {
    font-size:15px;
    margin:17px var(--gutter) 0;
    padding-bottom:31px
  }
  .history {
    height:auto;
    background:var(--cream);
    padding-top:28px
  }
  .history:before {
    content:'';
    position:absolute;
    z-index:-1;
    top:0;
    left:0;
    right:0;
    height:calc(185px + 100vw * .41);
    background:var(--green)
  }
  .history-label {
    position:static;
    margin-inline:var(--gutter);
    font-size:13px
  }
  .history-intro {
    display:none
  }
  .history h2 {
    position:static;
    margin:24px var(--gutter) 0;
    font-size:32px;
    line-height:1.05;
    color:var(--cream)
  }
  .history-figure {
    position:static;
    width:auto;
    margin:28px var(--gutter) 0
  }
  .history-figure .architectural-frame {
    height:auto;
    aspect-ratio:350/267;
    padding:8px
  }
  .history-figure figcaption {
    font-size:16px;
    margin-top:17px
  }
  .history-story {
    position:static;
    font-size:18px;
    line-height:1.42;
    margin:26px var(--gutter) 0
  }
  .history-lives {
    position:static;
    margin:23px var(--gutter) 0;
    font-size:18px;
    line-height:1.12
  }
  .history-attribution {
    position:static;
    margin:6px var(--gutter) 0;
    font-size:13.5px
  }
  .history-link {
    position:static;
    margin:12px var(--gutter) 26px;
    font-size:17px;
    min-height:48px
  }
  .visit {
    height:auto;
    padding:29px var(--gutter) 36px
  }
  .visit-label {
    position:static;
    font-size:13px
  }
  .visit>h2 {
    position:static;
    margin-top:25px;
    font-size:40px;
    line-height:1.04
  }
  .hours-notice {
    position:relative;
    left:auto;
    top:auto;
    width:100%;
    height:auto;
    min-height:571px;
    margin-top:30px;
    padding:23px 18px 22px;
    clip-path:polygon(14px 0,calc(100% - 14px) 0,100% 14px,100% calc(100% - 14px),calc(100% - 14px) 100%,14px 100%,0 calc(100% - 14px),0 14px)
  }
  .hours-notice>.eyebrow {
    font-size:13px;
    max-width:260px
  }
  .hours-notice h3 {
    font-size:40px;
    margin-top:22px
  }
  .hours-intro {
    font-size:15.5px;
    line-height:1.4;
    margin-top:26px;
    max-width:250px
  }
  .hours {
    margin-top:26px;
    padding-block:10px 12px
  }
  .hours>div {
    font-size:18px;
    min-height:40px;
    grid-template-columns:45% 55%
  }
  .hours-note {
    font-size:15.5px;
    margin-top:13px;
    line-height:1.4
  }
  .destination {
    position:static;
    margin-top:33px
  }
  .destination>h3 {
    font-size:34px;
    line-height:1.04
  }
  .destination>p {
    font-size:17px;
    margin-top:24px;
    line-height:1.4
  }
  .destination>.action {
    width:100%;
    min-height:54px;
    font-size:17px;
    margin-top:27px;
    padding-inline:14px
  }
  .phone {
    margin-top:31px;
    padding-top:22px
  }
  .phone>.eyebrow {
    font-size:13px
  }
  .phone>a {
    font-size:29px;
    min-height:56px;
    margin-top:12px
  }
  .seating {
    position:static;
    border:0;
    margin-top:28px;
    padding:0;
    font-size:17px;
    line-height:1.4
  }
  .footer {
    grid-template-columns:1fr;
    gap:4px;
    padding-block:22px;
    font-size:15px
  }
  .footer nav {
    gap:30px
  }
  .footer>span {
    margin-top:12px
  }
  .menu-opening {
    display:block;
    padding-block:30px 36px
  }
  .menu-opening h1 {
    font-size:43px;
    line-height:1.05;
    margin-top:24px
  }
  .menu-opening>div {
    font-size:18px;
    margin-top:26px
  }
  .menu-opening .action {
    width:100%;
    min-height:54px;
    font-size:17px;
    margin-top:23px
  }
  .menu-categories>.wrap {
    gap:0;
    justify-content:space-between
  }
  .menu-categories a {
    font-size:16px;
    min-height:56px;
    padding-inline:8px;
    margin:0
  }
  .menu-categories>.wrap {
    width:calc(100% - 24px)
  }
  .menu-content {
    padding-inline:var(--gutter)
  }
  .menu-category {
    display:block;
    padding-block:32px 38px;
    scroll-margin-top:76px
  }
  .category-heading>.eyebrow {
    font-size:13px
  }
  .category-heading h2 {
    font-size:36px;
    margin-top:17px
  }
  .category-heading img {
    aspect-ratio:2/1;
    margin-top:25px
  }
  .menu-items {
    display:block;
    margin-top:30px
  }
  .menu-items dt {
    font-size:26px;
    line-height:1.1
  }
  .menu-items dd {
    font-size:18px;
    line-height:1.42;
    margin-top:13px
  }
  .menu-items>div {
    padding-block:23px 25px
  }
  .menu-subtitle {
    font-size:26px
  }
  .category-content>p {
    font-size:18px;
    line-height:1.5
  }
  .menu-dietary {
    font-size:17px;
    line-height:1.5;
    padding-block:32px 38px
  }
  .menu-dietary .action {
    font-size:17px;
    width:100%;
    margin-right:0
  }
  .menu-dietary .text-link {
    font-size:17px
  }
}
@media(min-width:411px) and (max-width:700px) {
  :root {
    --gutter:24px
  }
  .hero h1,.bakery>h2 {
    font-size:46px
  }
  .garden h2 {
    font-size:42px
  }
  .history h2 {
    font-size:34px
  }
  .visit>h2 {
    font-size:43px
  }
}
@media(prefers-reduced-motion:reduce) {
  * {
    scroll-behavior:auto!important
  }
  .house-photo {
    clip-path:var(--end-mask)!important
  }
  .trim-path {
    stroke-dashoffset:0!important
  }
}
/* Optical alignment with the approved phone compositions. */
@media(max-width:700px) {
  .hero h1 {
    margin-top:18px
  }
  .hero-actions {
    margin-top:32px
  }
  .visit-intro {
    margin-top:18px
  }
  .breakfast-figure {
    margin-top:25px
  }
  .opening {
    padding-bottom:31px
  }
  .bakery>h2 {
    margin-top:15px
  }
  .bakery>.action {
    margin-top:30px
  }
  .bakery-note {
    margin-top:36px;
    margin-bottom:27px
  }
  .garden {
    padding-top:24px
  }
  .garden figure {
    margin-top:38px
  }
  .table-heading h2 {
    margin-top:14px
  }
  .table-description {
    margin-top:13px;
    margin-bottom:22px
  }
  .history h2 {
    margin-top:18px;
    line-height:1.08
  }
  .history-story {
    margin-top:22px
  }
  .history-link {
    margin-bottom:24px
  }
  .visit>h2 {
    margin-top:18px
  }
  .visit .destination>p {
    margin-top:18px
  }
  .visit .phone {
    margin-top:25px
  }
  .visit {
    padding-bottom:29px
  }
}
.garden img {
  object-position:50% 64%
}
.history-figure img {
  object-position:56% 52%
}
@media(max-width:1100px) {
  .garden img {
    object-position:50% 61%
  }
}
/* Direct access to visiting information is the sole navigation addition. */
.visit-nav {
  display:flex!important
}
.lunch-figure img {
  object-position:50% 50%
}
html[data-motion=preparing] .house-photo,html[data-motion=awaiting-house] .house-photo {
  clip-path:var(--start-mask)
}
html[data-motion=preparing] .house-shell .trim-path,html[data-motion=awaiting-house] .house-shell .trim-path {
  stroke-dasharray:1;
  stroke-dashoffset:1
}
/* Equal chamfers on editorial frames; the original C hero keeps its own geometry. */
.architectural-frame:not(.house-shell) {
  --corner:27px;
  clip-path:polygon(var(--corner) 0,calc(100% - var(--corner)) 0,100% var(--corner),100% calc(100% - var(--corner)),calc(100% - var(--corner)) 100%,var(--corner) 100%,0 calc(100% - var(--corner)),0 var(--corner))
}
.architectural-frame:not(.house-shell) img {
  position:relative;
  z-index:2;
  --corner:18px;
  clip-path:polygon(var(--corner) 0,calc(100% - var(--corner)) 0,100% var(--corner),100% calc(100% - var(--corner)),calc(100% - var(--corner)) 100%,var(--corner) 100%,0 calc(100% - var(--corner)),0 var(--corner))
}
.architectural-frame:not(.house-shell) .trim-svg {
  display:none
}
.architectural-frame:not(.house-shell):before,.architectural-frame:not(.house-shell):after {
  content:'';
  position:absolute;
  inset:6px;
  background:var(--cream);
  --c:22px;
  clip-path:polygon(var(--c) 0,calc(100% - var(--c)) 0,100% var(--c),100% calc(100% - var(--c)),calc(100% - var(--c)) 100%,var(--c) 100%,0 calc(100% - var(--c)),0 var(--c))
}
.architectural-frame:not(.house-shell):after {
  inset:7px;
  background:var(--trim);
  --c:21px
}
@media(max-width:1100px) {
  .architectural-frame:not(.house-shell) {
    --corner:18px
  }
  .architectural-frame:not(.house-shell) img {
    --corner:13px
  }
  .architectural-frame:not(.house-shell):before {
    inset:4px;
    --c:16px
  }
  .architectural-frame:not(.house-shell):after {
    inset:5px;
    --c:15px
  }
}
@media(min-width:701px) and (max-width:1100px) {
  .identity span {
    display:block
  }
  .identity img {
    width:112px
  }
  .identity {
    gap:20px
  }
  .identity strong,.identity small {
    font-size:14px
  }
  .masthead {
    padding-block:20px 28px
  }
  .masthead nav {
    gap:18px;
    font-size:16px
  }
  .masthead nav>.action {
    display:none
  }
  .hero {
    padding-top:30px;
    row-gap:41px
  }
  .hero h1 {
    margin-top:18px
  }
  .hero-actions {
    margin-top:34px
  }
  .hero-actions .action {
    min-width:184px;
    min-height:54px
  }
  .hero-actions {
    gap:12px
  }
  .house-shell {
    padding:8px
  }
  .visit-rail {
    display:none
  }
  .opening {
    padding-bottom:34px
  }
  .visit-intro {
    display:block;
    width:296px;
    align-self:end;
    padding:0;
    position:relative;
    bottom:12px
  }
  .visit-intro>.eyebrow,.visit-intro .text-link {
    display:none
  }
  .visit-intro>p:nth-child(2) {
    font-size:16px;
    line-height:1.4;
    margin:0
  }
  .visit-intro .address-line,.visit-intro .mobile-locality {
    display:inline
  }
  .visit-intro .desktop-locality {
    display:none
  }
  .visit-intro .address-line+.address-line:before {
    content:' · '
  }
}
@media(min-width:701px) and (max-width:750px) {
  .visit-intro {
    display:none
  }
  .identity strong {
    font-size:13px
  }
  .masthead nav {
    gap:14px
  }
}
@media(max-width:700px) {
  .identity {
    justify-content:flex-start;
    gap:21px
  }
  .identity strong,.identity small {
    text-align:left
  }
}
/* Keep the seven-day notice readable as desktop columns narrow. */
@media(min-width:1101px) {
  .visit {
    min-height:1040px
  }
  .hours-notice {
    height:665px;
    padding:30px 36px
  }
  .seating {
    top:auto;
    bottom:35px
  }
}
@media(min-width:701px) and (max-width:1100px) {
  .seating {
    top:auto;
    bottom:35px
  }
}
/* Small navigation labels retain a comfortable hit area. */
.masthead nav > a:not(.action), .footer nav > a {
  min-width: 44px;
}

/* Concept attribution stays secondary to the restaurant information. */
.footer .concept-note {
  grid-column:1 / -1;
  font-size:14px;
  line-height:1.4;
}
