/* La carta · Osteria del Ponte. Same editorial direction as the homepage:
   paper, ink and copper, EB Garamond for reading, Barlow for labels. */
:root{--oh-paper:#f6f2ea;--oh-ink:#241c14;--oh-warm:#e8ded1;--oh-copper:#a25232;--oh-copper-deep:#914428;--oh-copper-light:#e0ac8a;--oh-muted:#6e6153;--oh-line:rgba(36,28,20,.23);--oh-line-dark:#73614f;--oh-dark-text:#d6c6b3;--dock-height:0px;--toolbar-height:56px;
  color-scheme:light;font-family:'EB Garamond',Georgia,serif;color:var(--oh-ink);background:var(--oh-paper);font-synthesis:none;scroll-behavior:smooth}
*{box-sizing:border-box}
body{margin:0;font-size:1.125rem;line-height:1.6;-webkit-font-smoothing:antialiased;padding-bottom:var(--dock-height)}
button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
button{cursor:pointer;color:inherit}button:disabled{cursor:wait;opacity:.6}a{color:inherit;text-decoration:none}
img{display:block;max-width:100%;object-fit:cover}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:400;line-height:1.06}
button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #b46d46;outline-offset:5px}
[hidden]{display:none!important}main{outline:none}body.modal-open{overflow:hidden}
.visually-hidden,.skip-link:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.skip-link{position:fixed;top:12px;left:12px;z-index:100;background:var(--oh-paper);color:var(--oh-ink);padding:12px 18px;font:500 1rem 'Barlow',sans-serif}

/* Shared site furniture */
.oh-eyebrow{font:500 .875rem/1.5 'Barlow',sans-serif;letter-spacing:.2em;text-transform:uppercase;color:var(--oh-copper-deep);margin-bottom:1rem;overflow-wrap:anywhere}
.oh-copper-light{color:var(--oh-copper-light)}
.oh-small{font:400 .875rem/1.6 'Barlow',sans-serif}
.oh-button{font:500 1rem/1.35 'Barlow',sans-serif;letter-spacing:.1em;text-transform:uppercase;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;text-align:center;min-height:50px;padding:.95rem 1.8rem;border:1px solid transparent;border-radius:0;background:none;transition:background .2s,color .2s,border-color .2s;overflow-wrap:anywhere;max-width:100%}
.oh-button-copper{background:var(--oh-copper);color:#fff}.oh-button-copper:hover{background:#874125}
.oh-button-outline{border-color:#b3a18c;color:var(--oh-paper)}.oh-button-outline:hover{background:var(--oh-paper);color:var(--oh-ink);border-color:var(--oh-paper)}
.oh-button-dark{background:var(--oh-ink);color:var(--oh-paper)}.oh-button-dark:hover{background:#493627}
.oh-button-paper{border-color:var(--oh-ink);color:var(--oh-ink)}.oh-button-paper:hover{background:var(--oh-ink);color:var(--oh-paper)}
.oh-demo{min-height:40px;display:flex;gap:.2rem 1rem;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:.45rem 1.5rem;font:400 .875rem/1.5 'Barlow',sans-serif;background:var(--oh-paper);border-bottom:1px solid var(--oh-line)}
.oh-demo a{text-decoration:underline;text-underline-offset:3px}.oh-demo b{font-weight:500;font-variant-numeric:tabular-nums;display:inline-block;min-width:2.7rem}
.oh-status{padding:.85rem 1.5rem;font:1rem/1.5 'Barlow',sans-serif;color:#7d341d;background:#ffebdf;border-bottom:1px solid #b87860;text-align:center}
.oh-status button{font:inherit;background:none;border:0;text-decoration:underline;margin-left:1rem;min-height:40px;padding:0}
.menu-loading{display:grid;justify-items:center;align-content:center;min-height:70vh;gap:22px;text-align:center;padding:20px;color:var(--oh-muted)}
.loading-mark{display:grid;place-items:center;border:1px solid var(--oh-line);color:var(--oh-copper);font:4rem/1 'EB Garamond',Georgia,serif;width:74px;height:74px}

/* Opening: the same full-bleed photographic composition as the site */
.carta-hero{display:grid;grid-template-columns:96px minmax(0,1fr);background:var(--oh-ink);color:var(--oh-paper);min-height:min(700px,86dvh)}
.carta-rail{border-right:1px solid #4a3e31;display:flex;flex-direction:column;justify-content:space-between;align-items:center;padding:1.6rem .25rem;gap:2rem}
.carta-rail nav{display:flex;align-items:center;flex-direction:column;gap:1.8rem}
.carta-rail nav a{writing-mode:vertical-rl;font:500 .875rem/1.3 'Barlow',sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#c6b9aa;min-width:44px;display:flex;align-items:center;padding:.1rem .75rem}
.carta-rail nav a:first-child{color:#dda17a}.carta-rail nav a:hover,.carta-rail nav a:focus-visible{color:#e7ab87}
.carta-year{writing-mode:vertical-rl;font:500 .875rem/1 'Barlow',sans-serif;letter-spacing:.2em;color:#b0a18f}
.carta-hero-stage{position:relative;min-width:0}
.carta-hero-photos{position:absolute;inset:0;overflow:hidden}
.carta-hero-photo{position:absolute;inset:0;width:100%;height:100%;object-position:50% 52%;opacity:0;transform:scale(1.06);filter:saturate(.72) blur(8px);transition:opacity 1.3s cubic-bezier(.22,.72,.19,1),transform 1.3s cubic-bezier(.22,.72,.19,1),filter 1.3s}
.carta-hero-photo.is-active{opacity:1;transform:scale(1);filter:saturate(.72) blur(0)}
.carta-hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,15,10,.88),rgba(20,15,10,.64) 48%,rgba(20,15,10,.24)),linear-gradient(0deg,rgba(20,15,10,.3),transparent 70%)}
.carta-hero-content{position:relative;min-height:inherit;height:100%;padding:2.4rem clamp(1.5rem,4.8vw,5rem) 2rem;display:flex;flex-direction:column}
.carta-header{display:flex;justify-content:space-between;align-items:center;gap:1.5rem}
.carta-brand{display:inline-flex;align-items:center;gap:.8rem;font-size:1.625rem;line-height:1.2;overflow-wrap:anywhere;min-width:0}
.carta-monogram{width:44px;height:44px;flex:0 0 auto;overflow:hidden}.carta-monogram img{width:100%;height:100%;object-fit:contain}
.carta-header-actions{display:flex;align-items:center;gap:1.5rem;flex:0 0 auto}
.carta-page-index{font:500 .875rem/1.3 'Barlow',sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#dda17a;white-space:nowrap}
.carta-header-waiter{padding:.75rem 1.45rem;background:rgba(20,15,10,.66)}
.carta-hero-copy{margin:auto 0 3rem;padding-top:4.5rem;max-width:44rem}
.carta-hero-copy .oh-eyebrow{margin-bottom:1.1rem}
.carta-title{font-size:clamp(3.2rem,6.4vw,7rem);line-height:1.04;letter-spacing:-.035em}
.carta-title em{padding-inline-start:.08em;color:var(--oh-copper-light);font-weight:400}
.carta-subtitle{font-size:1.375rem;line-height:1.55;max-width:34rem;color:#e0d2c2;margin-top:1.4rem;overflow-wrap:anywhere}
.carta-hero-meta{display:flex;flex-wrap:wrap;gap:.35rem 1.5rem;margin-top:1.1rem;font:500 .875rem/1.5 'Barlow',sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#c6b9aa}
.carta-hero-meta span{overflow-wrap:anywhere}
.carta-hero-buttons{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:2rem}
#allergen-count{display:inline-grid;place-items:center;min-width:24px;height:24px;border:1px solid currentColor;font-size:.8125rem;letter-spacing:0}
.carta-scroll{display:flex;justify-content:space-between;align-items:center;gap:1rem;font:500 .875rem/1.3 'Barlow',sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#dbc9b4}
.carta-scroll>span:last-child{font-size:1.75rem}

/* Dark gallery strip, as on the site */
.carta-gallery{display:flex;gap:10px;padding:10px;background:var(--oh-ink);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-color:#a68464 var(--oh-ink)}
.carta-gallery>button{position:relative;flex:1 0 23%;min-width:230px;aspect-ratio:1.48;border:0;padding:0;overflow:hidden;scroll-snap-align:start;background:var(--oh-ink);text-align:left}
.carta-gallery img{width:100%;height:100%;transition:transform .4s}.carta-gallery button:hover img{transform:scale(1.04)}
.carta-gallery button:focus-visible{outline-offset:-5px;outline-color:var(--oh-paper)}
.carta-gallery button span{position:absolute;inset:auto 0 0;padding:1.3rem 1rem .7rem;background:linear-gradient(transparent,rgba(20,15,10,.82));color:#fff;font:500 .875rem/1.4 'Barlow',sans-serif;letter-spacing:.1em;text-transform:uppercase;overflow-wrap:anywhere}
.carta-gallery-end{flex:0 0 8rem;display:flex;flex-direction:column;justify-content:center;padding:1rem;color:#d1c1ad;font:500 .875rem/1.5 'Barlow',sans-serif;letter-spacing:.12em;text-transform:uppercase}
.carta-gallery-end>span:last-child{font-size:2rem;margin-top:.6rem}

/* Chapter index stays with the reader */
.carta-toolbar{position:sticky;top:0;z-index:15;display:flex;align-items:stretch;gap:1rem;min-height:56px;padding:0 clamp(1rem,3vw,3rem);background:rgba(246,242,234,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--oh-line)}
.carta-chapters{display:flex;align-items:stretch;gap:.2rem;flex:1 1 auto;min-width:0;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.carta-chapters::-webkit-scrollbar{display:none}
.carta-chapters a{display:inline-flex;align-items:center;gap:.5rem;padding:0 .85rem;border-bottom:2px solid transparent;font:500 .875rem/1.4 'Barlow',sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--oh-muted);white-space:nowrap;min-height:56px;transition:color .2s,border-color .2s}
.carta-chapters a span{font:400 1rem/1 'EB Garamond',Georgia,serif;color:var(--oh-copper)}
.carta-chapters a:hover,.carta-chapters a[aria-current]{color:var(--oh-ink);border-bottom-color:var(--oh-copper)}
.carta-toolbar-actions{display:flex;align-items:center;gap:.6rem;flex:0 0 auto;padding:.5rem 0}
.carta-tool{display:inline-flex;align-items:center;gap:.5rem;min-height:40px;padding:.45rem 1rem;border:1px solid var(--oh-ink);background:none;font:500 .875rem/1.3 'Barlow',sans-serif;letter-spacing:.08em;text-transform:uppercase;transition:background .2s,color .2s}
.carta-tool:hover{background:var(--oh-ink);color:var(--oh-paper)}.carta-tool-dark{background:var(--oh-ink);color:var(--oh-paper)}.carta-tool-dark:hover{background:var(--oh-copper);border-color:var(--oh-copper)}
.carta-tool>span{color:var(--oh-copper-light)}.carta-tool:not(.carta-tool-dark)>span{color:var(--oh-copper)}

/* Sections share the site's rhythm */
.carta-section{padding:5rem 3rem;scroll-margin-top:var(--toolbar-height)}
.carta-inner{max-width:1000px;margin:0 auto;min-width:0}
.carta-section-warm{background:var(--oh-warm)}
.section-heading{display:flex;justify-content:space-between;align-items:end;flex-wrap:wrap;gap:12px;margin-bottom:2.4rem}
.section-heading>div{min-width:0;flex:1 1 220px}
.section-heading h2{font-size:clamp(2.25rem,4.2vw,3.5rem);letter-spacing:-.025em;overflow-wrap:anywhere}.section-heading h2:focus{outline:none}
.oh-section-subtitle{font-size:1.25rem;font-style:italic;color:var(--oh-muted);margin-top:.7rem}
.menu-section-heading{text-align:center;margin-bottom:2.6rem}
.menu-tools{display:flex;flex-wrap:wrap;align-items:end;gap:1rem 2.5rem;margin-bottom:3rem}
.menu-search{display:flex;align-items:center;gap:.8rem;flex:1 1 300px;min-width:0;border-bottom:1px solid #8d7a66;padding:.2rem 0}
.search-icon{width:14px;height:14px;flex-shrink:0;border:1.5px solid var(--oh-muted);border-radius:50%;position:relative;margin:0 2px}
.search-icon::after{content:'';position:absolute;width:6px;height:1.5px;right:-4px;bottom:-2px;transform:rotate(45deg);background:var(--oh-muted)}
.menu-search input{width:100%;min-width:0;min-height:46px;background:transparent;border:0;outline:none;color:var(--oh-ink);font:400 1.2rem/1.4 'EB Garamond',Georgia,serif}
.menu-search input::placeholder{color:var(--oh-muted);opacity:1}.menu-search input::-webkit-search-cancel-button{-webkit-appearance:none}
.menu-search:focus-within{border-bottom-color:var(--oh-copper);box-shadow:0 1px 0 var(--oh-copper)}
.clear-search{border:0;background:transparent;padding:2px 5px;font-size:1.5rem;line-height:1;min-width:40px;min-height:40px}
.filter-toggle{display:inline-flex;align-items:center;gap:.5rem;border-bottom:1px solid currentColor;padding:.35rem 0;font:500 1rem/1.5 'Barlow',sans-serif;color:var(--oh-copper-deep);min-height:44px}
.filter-toggle:hover{color:var(--oh-ink)}
.active-filters{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;margin:-1.6rem 0 2.4rem;font:400 .875rem/1.5 'Barlow',sans-serif;color:var(--oh-muted)}
.filter-pill{border:1px solid #9b8269;padding:.35rem .75rem;background:transparent;font:500 .875rem/1.4 'Barlow',sans-serif;color:var(--oh-ink);min-height:36px}
.filter-pill span{margin-left:.5rem;font-size:1rem}.filter-pill:hover{background:var(--oh-warm)}

/* Chapters: one photograph, one list */
.categories{display:grid;gap:4.5rem}
.category{min-width:0;scroll-margin-top:calc(var(--toolbar-height) + 1rem)}
.category summary{list-style:none;display:flex;align-items:baseline;gap:1.2rem;cursor:pointer;padding:1.4rem 0 1.1rem;border-top:1px solid var(--oh-ink);user-select:none}
.category summary::-webkit-details-marker{display:none}
.category-index{font:400 1.25rem/1 'EB Garamond',Georgia,serif;color:var(--oh-copper);flex:0 0 auto}
.category-title{font-size:clamp(2rem,3.4vw,2.75rem);line-height:1.1;letter-spacing:-.02em;min-width:0;flex:1;overflow-wrap:anywhere}
.category-size{font:500 .875rem/1.5 'Barlow',sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--oh-muted);flex-shrink:0;white-space:nowrap}
.category-chevron{display:grid;place-items:center;flex-shrink:0;width:28px;height:28px;font-size:1.5rem;line-height:1;color:var(--oh-copper);transition:transform .2s;align-self:center}
.category[open] .category-chevron{transform:rotate(45deg)}
.category-body{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:1.5rem 3.5rem;align-items:start;padding-top:.5rem}
.category:nth-of-type(even) .category-figure{order:2}
.category.no-figure .category-body{grid-template-columns:minmax(0,1fr)}
.category-figure{position:sticky;top:calc(var(--toolbar-height) + 1.5rem);min-width:0}
.category-figure img{width:100%;aspect-ratio:1.05;background:var(--oh-warm)}
.category-figure figcaption{font-style:italic;font-size:1rem;margin-top:.6rem;color:var(--oh-muted);overflow-wrap:anywhere}
.category-items{min-width:0}
.dish-button{display:grid;grid-template-columns:minmax(0,1fr) 84px;gap:1.25rem;width:100%;min-width:0;padding:1.1rem 0;border:0;border-top:1px solid var(--oh-line);background:transparent;text-align:left;align-items:start;transition:padding .2s,background .2s}
.dish-button:first-child{border-top:0;padding-top:.2rem}.dish-button:last-child{border-bottom:1px solid var(--oh-line)}
.dish-button:hover{padding-left:.7rem;padding-right:.7rem;background:#eee4d8}
.dish-button.no-image{grid-template-columns:minmax(0,1fr)}
.dish-copy{display:block;min-width:0}
.dish-name{display:block;font-size:1.5rem;line-height:1.25;overflow-wrap:anywhere;transition:color .15s}
.dish-button:hover .dish-name{color:var(--oh-copper-deep)}
.dish-ingredients{display:block;font:400 .875rem/1.55 'Barlow',sans-serif;color:var(--oh-muted);margin-top:.3rem}
.dish-price-line{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 12px;margin-top:.5rem}
.dish-price{font-size:1.25rem;line-height:1.4;color:var(--oh-muted);font-variant-numeric:tabular-nums}
.weight-unit{font:400 .875rem/1.4 'Barlow',sans-serif;color:var(--oh-muted);display:inline-block;white-space:nowrap}
.dish-variant-label{display:block;font:400 .875rem/1.5 'Barlow',sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--oh-copper-deep);margin-top:.35rem}
.dish-image{width:84px;height:84px;background:var(--oh-warm)}
@media(min-width:601px){.dish-copy{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 1rem}.dish-name{grid-column:1;grid-row:1}.dish-price-line{grid-column:2;grid-row:1;margin-top:.15rem}.dish-ingredients{grid-column:1/-1;grid-row:2}.dish-variant-label{grid-column:1/-1;grid-row:3}}
.empty-message{text-align:center;padding:2.5rem 1.4rem;color:var(--oh-muted);font-size:1.125rem;border:1px solid var(--oh-line)}
.carta-note{text-align:center;margin-top:4rem;padding-top:2rem;border-top:1px solid var(--oh-line)}
.cover-charge{font:400 .875rem/1.6 'Barlow',sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--oh-muted)}
.menu-footnote{font-size:1.35rem;font-style:italic;margin:1rem auto 0;max-width:36rem}

/* Allergens, on the warm ground the site uses for the house */
.panel-description{font-size:1.25rem;line-height:1.6;color:var(--oh-muted);margin-bottom:2rem;max-width:40rem}
.carta-section-warm .panel-description{color:#5e5245}
.allergen-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem}
.allergen-option{display:flex;gap:.7rem;align-items:center;min-height:56px;border:1px solid #9b8269;background:transparent;padding:.75rem .9rem;font-size:1.2rem;line-height:1.3;cursor:pointer;min-width:0;transition:background .2s,color .2s}
.allergen-option span{overflow-wrap:anywhere}
.allergen-option:hover{background:rgba(246,242,234,.6)}
.allergen-option:has(input:checked){background:var(--oh-ink);color:var(--oh-paper);border-color:var(--oh-ink)}
.allergen-option input{accent-color:var(--oh-copper);width:18px;height:18px;flex-shrink:0;margin:0}
.filter-actions{display:flex;align-items:center;flex-wrap:wrap;gap:1.4rem;margin:2rem 0}
.text-button{border:0;border-bottom:1px solid currentColor;background:none;padding:.35rem 0;font:500 1rem/1.5 'Barlow',sans-serif;color:var(--oh-copper-deep);min-height:44px}
.text-button:hover{color:var(--oh-ink)}
.allergen-note{font:400 .875rem/1.6 'Barlow',sans-serif;color:#5e5245;border-top:1px solid var(--oh-line);padding-top:1.2rem;max-width:40rem}

/* Information and social, in the dark closing block of the site */
.carta-dark{background:var(--oh-ink);color:var(--oh-paper)}
.carta-dark .oh-eyebrow{color:var(--oh-copper-light)}
.carta-dark .carta-section{padding-bottom:3rem}
.carta-dark .panel-description{color:var(--oh-dark-text)}
.information-cards{display:grid;gap:1.5rem 3rem;grid-template-columns:repeat(2,minmax(0,1fr))}
.info-card{padding:1.4rem 0 .4rem;border-top:1px solid var(--oh-line-dark);min-width:0}
.info-card h3{font:500 .875rem/1.5 'Barlow',sans-serif;letter-spacing:.15em;text-transform:uppercase;color:var(--oh-copper-light);margin-bottom:.9rem}
.info-card p,.info-card a,.info-card dl{font-size:1.15rem;color:var(--oh-dark-text);overflow-wrap:anywhere}
.info-card a{display:block;margin-top:.6rem;color:var(--oh-paper);text-decoration:underline;text-underline-offset:4px}.info-card a:hover{color:var(--oh-copper-light)}
.info-card .info-label{display:block;font:400 .875rem/1.5 'Barlow',sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#b0a18f;margin-bottom:.15rem}
.venue-figure{margin-bottom:.5rem}.venue-image{width:100%;height:210px;filter:saturate(.6);background:#3a2f25}
.venue-figure figcaption{margin-top:.5rem;font-style:italic;color:var(--oh-dark-text);font-size:1rem}
.info-card .wifi-value{font-family:'Barlow',sans-serif;font-size:1.05rem;color:var(--oh-paper);overflow-wrap:anywhere}.wifi-row+.wifi-row{margin-top:.9rem}
.opening-hours{margin:0;display:grid;gap:.45rem}.opening-hours>div{display:flex;justify-content:space-between;gap:1rem}
.opening-hours dt{color:var(--oh-dark-text)}.opening-hours dd{margin:0;text-align:right;color:var(--oh-dark-text)}.opening-hours dd>span{display:block}
.opening-hours .today dt,.opening-hours .today dd{color:var(--oh-paper);font-weight:500}
.social-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 3rem}
.social-link{display:flex;align-items:center;gap:1rem;padding:1.1rem 0;border-top:1px solid var(--oh-line-dark);color:var(--oh-paper);transition:color .2s}
.social-link:hover{color:var(--oh-copper-light)}
.social-initial{display:grid;place-items:center;width:40px;height:40px;flex-shrink:0;border:1px solid var(--oh-line-dark);font:400 1.5rem 'EB Garamond',Georgia,serif;color:var(--oh-copper-light)}
.social-name{font-size:1.3rem;overflow-wrap:anywhere}.social-link>span:last-child{margin-left:auto;font-size:1.25rem;color:var(--oh-copper-light)}
.carta-dark .empty-message{color:var(--oh-dark-text);border-color:var(--oh-line-dark)}
.restaurant-footer{max-width:1000px;margin:0 auto;padding:1.5rem 3rem 2rem;border-top:1px solid var(--oh-line-dark);display:flex;align-items:baseline;gap:1.5rem;flex-wrap:wrap}
.restaurant-footer>span:first-child{font-size:1.3rem;overflow-wrap:anywhere}
.restaurant-footer nav{display:flex;flex-wrap:wrap;gap:1rem;margin-left:auto;font:400 .875rem/1.5 'Barlow',sans-serif}
.restaurant-footer nav a{padding:.3rem 0;text-decoration:underline;text-underline-offset:4px}
.restaurant-footer>.oh-small{width:100%;color:#c6b9aa}

/* Mobile dock: the two actions a guest keeps at hand */
.carta-dock{display:none}

/* Dish, list and waiter dialogs share the site's modal language */
.dish-dialog,.wish-list{position:fixed;padding:0;border:1px solid #806b57;width:calc(100% - 32px);max-width:600px;max-height:min(90dvh,940px);overflow:auto;background:var(--oh-paper);color:var(--oh-ink);box-shadow:0 30px 80px #241c1440;overscroll-behavior:contain;border-radius:0}
.dish-dialog::backdrop,.wish-list::backdrop{background:#241c14ce;backdrop-filter:blur(4px)}
.close-dialog{position:sticky;float:right;top:14px;right:14px;margin:14px 14px -58px 0;z-index:2;border:1px solid #806b57;display:grid;place-items:center;width:44px;height:44px;background:#f6f2eaf2;color:var(--oh-ink);font-size:1.8125rem;line-height:1;padding:0}
.close-dialog:hover{background:var(--oh-ink);color:var(--oh-paper)}
.dialog-image{width:100%;aspect-ratio:4/3;max-height:340px;background:var(--oh-warm);filter:saturate(.9)}
.dialog-body{padding:2rem 2.2rem 2.2rem}.dialog-body.no-photo{padding-top:4.2rem}
.dialog-eyebrow{font:500 .875rem/1.5 'Barlow',sans-serif;letter-spacing:.17em;text-transform:uppercase;color:var(--oh-copper-deep);margin-bottom:.6rem}
.dialog-body h2{font-size:2.6rem;line-height:1.08;letter-spacing:-.02em;overflow-wrap:anywhere}
.dialog-price{font-size:1.6rem;line-height:1.3;color:var(--oh-muted);margin-top:.7rem}.dialog-price small{font:.875rem 'Barlow',sans-serif;color:var(--oh-muted)}
.dialog-section{margin-top:1.4rem;padding-top:1.3rem;border-top:1px solid var(--oh-line)}
.dialog-section h3{font:500 .875rem/1.5 'Barlow',sans-serif;letter-spacing:.15em;text-transform:uppercase;color:var(--oh-copper-deep);margin-bottom:.6rem}
.dialog-section p{font-size:1.15rem;line-height:1.6;color:#4c3e31;white-space:pre-line}
.allergen-tags{display:flex;flex-wrap:wrap;gap:.45rem}.allergen-tag{display:inline-block;border:1px solid #9b8269;color:var(--oh-ink);font:500 .875rem/1.4 'Barlow',sans-serif;padding:.35rem .7rem}
.variant-row{display:flex;justify-content:space-between;align-items:start;gap:1rem;padding:.7rem 0;border-bottom:1px solid var(--oh-line);font-size:1.15rem}
.variant-row:last-of-type{border-bottom:0}.variant-row .variant-price{white-space:nowrap;color:var(--oh-muted)}
.variant-allergens{display:block;color:var(--oh-muted);font:400 .875rem/1.5 'Barlow',sans-serif;margin-top:.2rem}.variant-note{font:400 .875rem/1.5 'Barlow',sans-serif!important;color:var(--oh-muted)!important;margin-top:.8rem}
.wish-add{display:flex;width:100%;margin-top:1.8rem;font:500 1rem/1.35 'Barlow',sans-serif;letter-spacing:.1em;text-transform:uppercase;min-height:52px;padding:.95rem 1.4rem;border:1px solid var(--oh-copper);background:var(--oh-copper);color:#fff;justify-content:center;align-items:center;text-align:center;transition:background .2s}
.wish-add:hover{background:#874125}.wish-add:disabled{background:var(--oh-warm);border-color:var(--oh-warm);color:var(--oh-ink);opacity:1;cursor:default}
.wish-body{padding:3rem 2.2rem 2.2rem}.wish-body h2{font-size:2.5rem;line-height:1.05;margin:.4rem 0 1rem;overflow-wrap:anywhere}
.wish-body>p{color:var(--oh-muted);line-height:1.5}
.wish-body ul{padding:0;margin:1.4rem 0;list-style:none;border-top:1px solid var(--oh-line)}
.wish-body li{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.7rem 0;border-bottom:1px solid var(--oh-line);font-size:1.3rem}
.wish-body li span{overflow-wrap:anywhere;min-width:0}
.wish-body li button{border:0;background:transparent;color:var(--oh-copper-deep);font:500 .875rem/1.4 'Barlow',sans-serif;letter-spacing:.06em;text-transform:uppercase;text-decoration:underline;text-underline-offset:3px;min-height:40px;flex-shrink:0}
.wish-empty{padding:1.4rem 0}
.waiter-chat{position:fixed;z-index:20;right:max(22px,calc((100vw - 1180px)/2));bottom:calc(var(--dock-height) + env(safe-area-inset-bottom) + 22px);width:min(400px,calc(100vw - 32px));max-height:min(640px,calc(100dvh - var(--dock-height) - 60px));display:flex;flex-direction:column;overflow:hidden;border:1px solid #806b57;background:var(--oh-paper);color:var(--oh-ink);box-shadow:0 22px 70px #241c1440}
.waiter-chat>header{display:flex;gap:1rem;padding:1.3rem 1.3rem 1.1rem;background:var(--oh-ink);color:var(--oh-paper)}.waiter-chat>header>div{min-width:0}
.waiter-chat header p{font:500 .75rem/1.4 'Barlow',sans-serif;letter-spacing:.16em;color:var(--oh-copper-light);overflow-wrap:anywhere}
.waiter-chat header h2{font-size:2rem;line-height:1;margin:.3rem 0 .4rem}.waiter-chat header span{font:400 .875rem/1.4 'Barlow',sans-serif;color:var(--oh-dark-text)}
.waiter-chat header button{margin-left:auto;flex:0 0 auto;width:40px;height:40px;border:1px solid var(--oh-line-dark);background:transparent;color:var(--oh-paper);font-size:1.65rem;line-height:1;padding:0}
.waiter-log{min-height:130px;overflow:auto;padding:1.1rem 1.2rem;background:var(--oh-paper);overscroll-behavior:contain}
.waiter-message{max-width:92%;margin:0 0 .75rem;padding:.7rem .85rem;font-size:1.05rem;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}
.waiter-message.assistant{background:var(--oh-warm);border-left:2px solid var(--oh-copper)}.waiter-message.user{margin-left:auto;background:var(--oh-ink);color:var(--oh-paper)}
.waiter-prompts{display:flex;gap:.45rem;flex-wrap:wrap;padding:0 1.2rem .9rem;background:var(--oh-paper)}
.waiter-prompts button{border:1px solid #9b8269;background:transparent;padding:.5rem .7rem;font:500 .875rem/1.3 'Barlow',sans-serif;color:#5e4934;min-height:36px}
.waiter-prompts button:hover{background:var(--oh-warm);border-color:var(--oh-copper)}
#waiter-form{display:flex;gap:.5rem;padding:.85rem 1rem;border-top:1px solid var(--oh-line);background:#fffdf9}
#waiter-form input{flex:1;min-width:0;border:1px solid #95806a;background:transparent;padding:.65rem .75rem;font:400 1rem/1.4 'Barlow',sans-serif;min-height:44px}
#waiter-form button{width:44px;flex:0 0 auto;border:0;background:var(--oh-copper);color:#fff;font-size:1.35rem}#waiter-form button:hover{background:#874125}
.waiter-status{min-height:0;padding:0 1rem .75rem;background:#fffdf9;color:#87522f;font:400 .875rem/1.4 'Barlow',sans-serif}.waiter-status:empty{display:none}

/* Editor preview: the phone frame shows the guest view without site chrome */
.preview-mode .oh-demo,.preview-mode .carta-site-nav,.preview-mode .carta-rail,.preview-mode .carta-header-waiter{display:none}
.preview-mode .carta-hero{grid-template-columns:minmax(0,1fr)}

/* Text-only zoom keeps every control readable */
.oh-large-text .carta-title{overflow-wrap:anywhere}.oh-large-text .carta-hero{grid-template-columns:minmax(96px,6rem) minmax(0,1fr)}
.oh-large-text .carta-header{flex-wrap:wrap}.oh-large-text .category-body{grid-template-columns:minmax(0,1fr)}.oh-large-text .category-figure{position:static}
.oh-large-text .dish-copy{display:block}.oh-large-text .dish-price-line{margin-top:.5rem}.oh-large-text .information-cards,.oh-large-text .social-links,.oh-large-text .allergen-options{grid-template-columns:minmax(0,1fr)}
.oh-large-text .category summary{flex-wrap:wrap}.oh-large-text .carta-chapters a{white-space:normal}

@media(min-width:1650px){.carta-hero{min-height:min(780px,86dvh)}}
@media(max-width:1099px){.carta-title{font-size:clamp(3.2rem,6vw,5rem)}.carta-section{padding-left:2rem;padding-right:2rem}.category-body{gap:1.5rem 2rem}.allergen-options{grid-template-columns:repeat(3,minmax(0,1fr))}.restaurant-footer{padding-inline:2rem}.carta-toolbar-actions .carta-tool{padding-inline:.8rem}}
@media(max-width:800px){.category-body{grid-template-columns:minmax(0,1fr)}.category:nth-of-type(even) .category-figure{order:0}.category-figure{position:static}.category-figure img{aspect-ratio:16/10}.information-cards,.social-links{grid-template-columns:minmax(0,1fr)}.allergen-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
  body{font-size:1.0625rem}
  .oh-demo{padding:.4rem 1rem}.oh-demo>span{margin-left:auto}.oh-demo a{width:100%;text-align:right}
  .carta-hero{display:block;min-height:min(600px,80dvh)}.carta-rail{display:none}.carta-hero-content{padding:1.1rem 1.25rem 1.4rem;min-height:min(600px,80dvh)}
  .carta-hero-photo{object-position:58% center}.carta-hero-shade{background:linear-gradient(90deg,rgba(20,15,10,.86),rgba(20,15,10,.4)),linear-gradient(0deg,rgba(20,15,10,.5),transparent)}
  .carta-header{gap:.5rem}.carta-brand{font-size:1.35rem;gap:.5rem}.carta-monogram{width:36px;height:36px}.carta-header-waiter{display:none}
  .carta-hero-copy{margin:auto 0 2.2rem;padding-top:4rem}.carta-title{font-size:clamp(3rem,10.6vw,5rem);line-height:1.03}.carta-title em{display:block;padding:0}
  .carta-subtitle{font-size:1.25rem;margin-top:1.2rem}.carta-hero-meta{letter-spacing:.09em}.carta-hero-buttons{margin-top:1.5rem;gap:.65rem}.carta-hero-buttons .oh-button{padding:.8rem 1rem;letter-spacing:.07em}
  .carta-gallery>button{flex:0 0 62%;min-width:200px}.carta-gallery-end{flex-basis:7rem}
  .carta-toolbar{padding:0 .5rem;min-height:50px}.carta-chapters a{min-height:50px;padding:0 .7rem;letter-spacing:.07em}.carta-toolbar-actions{display:none}
  .carta-section{padding:3rem 1.25rem}.menu-section-heading{text-align:left}.section-heading{margin-bottom:1.8rem}.oh-section-subtitle{font-size:1.125rem}
  .menu-tools{gap:.9rem 1.5rem;margin-bottom:2.2rem}.active-filters{margin:-1.2rem 0 1.8rem}
  .categories{gap:3rem}.category summary{gap:.8rem;padding:1.1rem 0 .9rem}.category-title{font-size:2rem}.category-size{display:none}
  .dish-button{grid-template-columns:minmax(0,1fr) 72px;gap:1rem;padding:.9rem 0}.dish-button:hover{padding-left:0;padding-right:0;background:transparent}.dish-name{font-size:1.35rem}.dish-image{width:72px;height:72px}.dish-price{font-size:1.15rem}
  .carta-note{margin-top:2.5rem}.menu-footnote{font-size:1.2rem}
  .allergen-option{padding:.7rem .75rem;gap:.55rem;font-size:1.1rem}.filter-actions{flex-direction:column;align-items:stretch;gap:1rem}.filter-actions .text-button{align-self:center}
  .restaurant-footer{padding:1.5rem 1.25rem 2rem;gap:1rem}.restaurant-footer nav{margin-left:0}
  .carta-dock{position:fixed;z-index:20;bottom:0;left:0;right:0;display:flex;gap:.6rem;align-items:center;background:var(--oh-paper);border-top:1px solid #a28c73;padding:.6rem 1rem max(.6rem,env(safe-area-inset-bottom));box-shadow:0 -3px 16px #241c1410}
  .carta-dock .oh-button{flex:1 1 0;min-width:0;padding:.75rem .6rem;min-height:46px;letter-spacing:.06em}
  .waiter-chat{right:12px;bottom:calc(var(--dock-height) + 12px);width:calc(100vw - 24px);max-height:calc(100dvh - var(--dock-height) - 40px)}.waiter-chat>header{padding:1rem}.waiter-log{padding:.9rem}.waiter-prompts{padding-inline:.9rem}#waiter-form{padding-inline:.8rem}
  .dish-dialog,.wish-list{width:calc(100% - 24px)}.dialog-body{padding:1.5rem 1.4rem 1.6rem}.dialog-body h2{font-size:2.2rem}.wish-body{padding:2.8rem 1.4rem 1.6rem}.wish-body h2{font-size:2.1rem}
}
@media(max-width:359px){
  .oh-demo>span{margin-left:0;width:100%}.oh-demo a{width:auto;text-align:left}
  .carta-hero-content{padding-inline:1rem}.carta-title{font-size:2.8rem}.carta-brand{font-size:1.2rem}.carta-hero-buttons{flex-direction:column;align-items:stretch}.carta-page-index{display:none}
  .carta-gallery>button{flex-basis:80%}.carta-section{padding-inline:1rem}.category-title{font-size:1.75rem}.category-index{font-size:1.1rem}
  .dish-button{grid-template-columns:minmax(0,1fr) 60px;gap:.8rem}.dish-image{width:60px;height:60px}.dish-name{font-size:1.25rem}
  .allergen-options{grid-template-columns:minmax(0,1fr)}.restaurant-footer{padding-inline:1rem}.carta-dock{padding-inline:.6rem;gap:.4rem}.carta-dock .oh-button{padding-inline:.4rem;letter-spacing:.03em}
  .dialog-body{padding:1.3rem 1.1rem 1.4rem}.wish-body{padding-inline:1.1rem}.close-dialog{width:40px;height:40px}
}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}.carta-hero-photo{opacity:1;transform:none;filter:saturate(.72)}.carta-gallery button:hover img{transform:none}}
@media print{.oh-demo,.carta-rail,.carta-dock,.carta-toolbar,.carta-header-actions,.carta-gallery,.waiter-chat,.menu-tools{display:none!important}.carta-hero{display:block;min-height:22rem}.category{break-inside:avoid}body{padding:0}}

/* Ordering: quantity and add-to-cart on every dish, cart dialog with simulated checkout */
.dish{display:grid;grid-template-columns:minmax(0,1fr);gap:.2rem;border-top:1px solid var(--oh-line);padding:.55rem 0 .9rem}
.dish:first-child{border-top:0;padding-top:0}.dish:last-child{border-bottom:1px solid var(--oh-line)}
.dish .dish-button,.dish .dish-button:first-child,.dish .dish-button:last-child{border:0;padding:.55rem 0;transition:none}
.dish .dish-button:hover{padding-left:0;padding-right:0;background:transparent}
.dish-buy{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-start;gap:.5rem .6rem}
.quantity{display:inline-flex;align-items:center;border:1px solid #9b8269;background:#fffdf9}
.quantity button{width:40px;height:40px;border:0;background:transparent;color:var(--oh-ink);font:400 1.4rem/1 'EB Garamond',Georgia,serif;display:grid;place-items:center;padding:0}
.quantity button:hover:not(:disabled){background:var(--oh-warm)}.quantity button:disabled{opacity:.35;cursor:default}
.quantity output{min-width:2.1rem;text-align:center;font:500 1rem/1 'Barlow',sans-serif;font-variant-numeric:tabular-nums}
.dish-add,.cart-add{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:.5rem 1rem;border:1px solid var(--oh-ink);background:var(--oh-ink);color:var(--oh-paper);font:500 .8125rem/1.3 'Barlow',sans-serif;letter-spacing:.08em;text-transform:uppercase;transition:background .2s,border-color .2s;overflow-wrap:anywhere}
.dish-add:hover,.cart-add:hover{background:var(--oh-copper);border-color:var(--oh-copper)}
.dish-add.is-added,.cart-add.is-added{background:#3e6a44;border-color:#3e6a44}
.dish-in-cart,.dialog-buy-note{flex-basis:100%;text-align:left;font:500 .8125rem/1.4 'Barlow',sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--oh-copper-deep)}
.cart-badge{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 .4rem;background:var(--oh-copper);color:#fff;font:500 .75rem/1 'Barlow',sans-serif;letter-spacing:0;border-radius:999px}
.oh-button-copper .cart-badge{background:var(--oh-paper);color:var(--oh-copper-deep)}
.cart-dock-total{font-weight:400;letter-spacing:0;text-transform:none;font-size:.95rem}
.dialog-variants{display:grid;gap:.5rem}
.dialog-variant{display:flex;align-items:center;gap:.75rem;border:1px solid #9b8269;padding:.7rem .85rem;cursor:pointer;font-size:1.1rem;line-height:1.3;transition:background .2s,color .2s}
.dialog-variant input{accent-color:var(--oh-copper);width:18px;height:18px;margin:0;flex-shrink:0}
.dialog-variant-copy{flex:1;min-width:0;overflow-wrap:anywhere}.dialog-variant .variant-price{white-space:nowrap;color:var(--oh-muted)}
.dialog-variant:has(input:checked){background:var(--oh-ink);color:var(--oh-paper);border-color:var(--oh-ink)}
.dialog-variant:has(input:checked) .variant-price,.dialog-variant:has(input:checked) .variant-allergens{color:var(--oh-dark-text)}
.dialog-buy-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}
.cart-add{flex:1 1 12rem;min-height:48px;font-size:.9375rem;padding:.75rem 1.2rem}
.dialog-buy-note{text-align:left;margin-top:.75rem}
.cart-dialog{position:fixed;padding:0;border:1px solid #806b57;width:calc(100% - 32px);max-width:600px;max-height:min(90dvh,940px);overflow:auto;background:var(--oh-paper);color:var(--oh-ink);box-shadow:0 30px 80px #241c1440;overscroll-behavior:contain;border-radius:0}
.cart-dialog::backdrop{background:#241c14ce;backdrop-filter:blur(4px)}
.cart-body{padding:3rem 2.2rem 2.2rem}.cart-body h2{font-size:2.5rem;line-height:1.05;margin:.3rem 0 1rem;overflow-wrap:anywhere}
.cart-empty,.cart-summary,.cart-cover,.cart-order-number{color:var(--oh-muted);line-height:1.5;margin-bottom:1.2rem}
.cart-lines{list-style:none;margin:1rem 0;padding:0;border-top:1px solid var(--oh-line)}
.cart-lines li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:.4rem 1rem;align-items:center;padding:.8rem 0;border-bottom:1px solid var(--oh-line)}
.cart-lines-plain li{grid-template-columns:minmax(0,1fr) auto;font-size:1.2rem}
.cart-line-copy{min-width:0}.cart-line-name{display:block;font-size:1.3rem;line-height:1.2;overflow-wrap:anywhere}
.cart-lines small{display:block;font:400 .8125rem/1.4 'Barlow',sans-serif;color:var(--oh-muted)}
.cart-line-total{font-size:1.15rem;font-weight:400;white-space:nowrap;min-width:5rem;text-align:right}
.cart-remove{grid-column:2/-1;justify-self:end;border:0;background:none;color:var(--oh-copper-deep);font:500 .8125rem/1.4 'Barlow',sans-serif;letter-spacing:.06em;text-transform:uppercase;text-decoration:underline;text-underline-offset:3px;min-height:36px;padding:0}
.cart-total{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;font-size:1.25rem;margin:.5rem 0 1rem}.cart-total strong{font-weight:400;font-size:1.6rem}
.cart-actions{display:flex;align-items:center;flex-wrap:wrap;gap:1rem 1.5rem;margin-top:1.5rem}.cart-full{width:100%}
.cart-form{display:grid;gap:1rem}.cart-form label{display:block;font:500 1rem/1.5 'Barlow',sans-serif}
.cart-form input,.cart-form textarea{display:block;width:100%;max-width:100%;border:1px solid #95806a;background:#fffdf9;color:var(--oh-ink);padding:.75rem;font:400 1rem/1.4 'Barlow',sans-serif;min-height:46px;margin-top:.4rem;border-radius:0;resize:vertical}
.cart-demo,.cart-note{font:400 .875rem/1.55 'Barlow',sans-serif;color:var(--oh-muted);border-top:1px solid var(--oh-line);padding-top:.9rem;margin-top:.5rem}
.cart-note{color:var(--oh-ink);white-space:pre-line}.cart-note span{display:block;font-weight:500;letter-spacing:.08em;text-transform:uppercase;font-size:.75rem;color:var(--oh-muted);margin-bottom:.2rem}
.carta-dock .oh-button-copper{flex:1.5 1 0}
.oh-large-text .dish,.oh-large-text .cart-lines li{grid-template-columns:minmax(0,1fr)}.oh-large-text .dish-buy{justify-content:flex-start}.oh-large-text .cart-remove{grid-column:1;justify-self:start}.oh-large-text .dish-in-cart{text-align:left}
@media(max-width:760px){.dish{grid-template-columns:minmax(0,1fr);gap:.2rem;padding:.6rem 0}.dish-buy{justify-content:flex-start;padding-bottom:.3rem}.dish-add{flex:1 1 auto}.dish-in-cart{text-align:left}.cart-body{padding:2.8rem 1.4rem 1.6rem}.cart-body h2{font-size:2.1rem}.cart-lines li{grid-template-columns:minmax(0,1fr) auto}.cart-lines li .cart-line-total{grid-column:2;grid-row:1}.cart-lines li .quantity{grid-column:1;grid-row:2}.cart-lines li .cart-remove{grid-column:2;grid-row:2}}
@media(max-width:359px){.quantity button{width:36px;height:36px}.dish-add{padding-inline:.7rem;font-size:.75rem}.cart-body{padding-inline:1.1rem}.cart-add{padding-inline:.8rem}}
