/* Presentation refinements: compact navigation, reading pages and photo viewing. */
:root { --header-height:76px; --logo-teal:#124241; }
html { scroll-padding-top:calc(var(--header-height) + 18px); scrollbar-gutter:stable; }
.site-header { position:sticky; top:0; z-index:20; background:var(--logo-teal); box-shadow:0 1px 0 #ffffff18; }
.header-inner { min-height:var(--header-height); border:0; gap:24px; }
.header-inner .wordmark { width:162px; }
.wordmark img { mask-image:linear-gradient(to right,transparent,#000 4%,#000 96%,transparent),linear-gradient(to bottom,transparent,#000 6%,#000 94%,transparent); mask-composite:intersect; }
.header-inner nav { gap:30px; font-size:13px; }
.header-inner nav a { padding-block:14px; }
.nav-call { margin-left:10px; }
.nav-toggle { display:none; }
footer { background:var(--logo-teal); }
.menu-aside { top:calc(var(--header-height) + 28px); }
.menu-group { scroll-margin-top:26px; }
.dish-price small { letter-spacing:0; }
.size-prices { gap:24px; }
.more-gallery { margin-top:45px; border-top:1px solid #c8ccc0; }
.more-gallery summary { display:flex; align-items:center; justify-content:space-between; padding:24px 0; cursor:pointer; font-size:15px; font-weight:600; list-style:none; }
.more-gallery summary::-webkit-details-marker { display:none; }
.more-gallery summary>span:last-child { font-size:26px; font-weight:400; transition:transform .25s; }
.more-gallery[open] summary>span:last-child { transform:rotate(45deg); }
.less-label,.more-gallery[open] .more-label { display:none; }
.more-gallery[open] .less-label { display:inline; }
.more-gallery-heading { display:flex; gap:30px; justify-content:space-between; align-items:baseline; padding:15px 0 30px; }
.more-gallery-heading h3 { font:30px var(--serif); }
.more-gallery-heading p { max-width:420px; font-size:13px; color:var(--muted); }
.additional-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px 22px; }
.additional-gallery .gallery-photo { grid-column:auto; }
.additional-gallery .gallery-link img { aspect-ratio:4/3; }
.additional-gallery figcaption { font-size:13px; }
.review-preview { text-align:center; padding-block:85px; max-width:880px; }
.review-preview blockquote { margin:0 0 25px; font:36px/1.4 var(--serif); letter-spacing:-.02em; }
.review-preview>p:not(.eyebrow) { font-size:13px; color:var(--muted); margin-bottom:22px; }
.review-preview .stars { margin-left:10px; }
.stars { color:#9b5a09; letter-spacing:3px; font-size:14px; white-space:nowrap; }
.reviews-hero { display:grid; grid-template-columns:1.15fr 1fr; align-items:end; gap:70px; padding-block:75px 65px; border-bottom:1px solid var(--rule); }
.reviews-hero h1 { font-size:clamp(65px,7.2vw,104px); }
.reviews-hero h1 em { color:var(--red); }
.reviews-intro { max-width:390px; justify-self:end; padding-bottom:10px; }
.reviews-intro>p:first-child { font-size:19px; line-height:1.7; }
.reviews-intro .review-disclosure { font-size:13px; color:var(--muted); margin-block:20px 15px; }
.review-entry { display:grid; grid-template-columns:1fr 2.5fr; gap:70px; padding:58px 0; border-bottom:1px solid var(--rule); }
.review-number { font:italic 18px var(--serif); color:var(--red); }
.review-meta h2 { font:15px/1.5 var(--sans); letter-spacing:0; margin:13px 0 16px; }
.review-words blockquote { margin:0 0 24px; font:28px/1.55 var(--serif); letter-spacing:-.012em; }
.review-author { font-size:14px; font-weight:600; }
.review-author span { display:block; font-size:12px; font-weight:400; color:var(--muted); margin-top:5px; }
.reviews-list { padding-bottom:45px; }
.review-outro { background:var(--teal); color:var(--paper); padding:70px 0; }
.review-outro h2 { margin-bottom:32px; }
.review-outro h2 em { color:var(--yellow); }
dialog { opacity:0; transform:translateY(12px) scale(.97); transition:opacity .22s ease,transform .28s cubic-bezier(.2,.8,.2,1); border-radius:3px; padding-top:52px; max-width:min(94vw,1000px); }
dialog.is-visible { opacity:1; transform:none; }
dialog::backdrop { background:#061916; opacity:0; transition:opacity .22s; }
dialog.is-visible::backdrop { opacity:.94; }
dialog img { max-height:calc(90dvh - 165px); min-height:50px; }
.dialog-controls { display:flex; align-items:center; justify-content:center; gap:24px; margin-top:12px; }
.dialog-controls button { background:transparent; color:var(--paper); border:1px solid #ffffff50; width:44px; height:40px; font-size:20px; }
#photo-counter { min-width:55px; text-align:center; font-size:12px; font-variant-numeric:tabular-nums; }
.dialog-close { min-height:40px; }
@media(max-width:1000px) { .header-inner nav { gap:22px; } .review-entry { gap:40px; } }
@media(max-width:760px) {
  :root { --header-height:70px; }
  .header-inner { min-height:70px; }
  .header-inner .wordmark { width:140px; }
  .header-inner nav { gap:18px; font-size:12px; }
  .menu-aside { top:var(--header-height); }
  .menu-group { scroll-margin-top:94px; }
  .size-prices { gap:16px; }
  .drink-group .dish-price small { font-size:10px; }
  .more-gallery { margin-top:30px; }
  .more-gallery-heading { display:block; }
  .more-gallery-heading p { margin-top:12px; }
  .additional-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 15px; }
  .additional-gallery .gallery-photo:first-child { grid-column:auto; }
  .review-preview { padding-block:55px; }
  .review-preview blockquote { font-size:28px; }
  .review-preview .stars { display:block; margin:10px 0 0; }
  .reviews-hero { display:block; padding-block:45px; }
  .reviews-hero h1 { font-size:65px; }
  .reviews-intro { margin-top:30px; max-width:100%; padding:0; }
  .reviews-intro>p:first-child { font-size:16px; }
  .review-entry { display:block; padding:38px 0; }
  .review-meta { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-bottom:18px; }
  .review-meta h2 { margin:0; }
  .review-meta .stars { margin-left:auto; font-size:12px; letter-spacing:1px; }
  .review-words blockquote { font-size:24px; line-height:1.5; }
  .review-outro { padding-block:50px; }
  .footer-links { flex-wrap:wrap; }
}
@media(max-width:600px) {
  :root { --header-height:64px; }
  .header-inner { position:relative; min-height:64px; display:flex; padding-block:0; flex-wrap:wrap; gap:0; }
  .header-inner .wordmark { width:134px; margin:0; }
  .js .nav-toggle { display:flex; align-items:center; gap:13px; color:var(--paper); background:none; border:1px solid #ffffff45; padding:8px 12px; font-size:12px; min-height:40px; }
  .header-inner nav { width:100%; flex-wrap:wrap; gap:8px 20px; padding:8px 0 14px; }
  .js .header-inner nav { display:none; position:absolute; top:64px; left:-20px; width:calc(100% + 40px); background:var(--logo-teal); padding:14px 20px 20px; box-shadow:0 12px 20px #0002; }
  .js .nav-open nav { display:flex; }
  .header-inner nav a { padding:9px 0; font-size:14px; }
  .header-inner nav .nav-call { margin-left:auto; }
  .location-line { font-size:9px; padding-block:6px; }
  .footer-top { display:block; }
  .footer-top .wordmark { margin-bottom:20px; }
  .footer-links { justify-content:space-between; gap:14px; font-size:12px; }
}
@media(max-width:360px) { .size-prices { gap:10px; } .drink-group .dish { gap:10px; } .drink-group .dish-copy h3 { font-size:14px; } .reviews-hero h1 { font-size:50px; } .review-meta .stars { width:100%; margin:0; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; } }
@media print { .review-entry { break-inside:avoid; } .nav-toggle,.review-outro { display:none; } }

.arrow-icon { display:inline-block; width:1em; height:1em; flex:none; vertical-align:-.125em; }
