/* Hallmark · macrostructure: Photographic · theme: custom · nav: N9 · footer: Ft1 */
* { box-sizing: border-box; }
html { overflow-x: clip; scroll-behavior: smooth; scroll-padding-top: 7rem; }
body { margin: 0; overflow-x: clip; background: var(--color-paper); color: var(--color-ink); font: 400 var(--text-base)/1.65 var(--font-body); -webkit-font-smoothing: antialiased; }
body:has(dialog[open]) { overflow-y: hidden; }
img { display: block; max-width: 100%; height: auto; }
button, a { -webkit-tap-highlight-color: var(--color-clear); }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; cursor: pointer; background: none; border: 0; }
button, .button, .text-link, nav a, footer a { white-space: nowrap; }
button, a { touch-action: manipulation; }
button:active, .button:active { transform: translateY(1px); }
:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 5px; }
.photo-fold :focus-visible, footer :focus-visible { outline-color: var(--color-paper); }
::selection { background: var(--color-accent); color: var(--color-accent-ink); }
h1,h2,h3,p,figure { margin: 0; }
h1,h2,h3 { font-family: var(--font-display); font-style: normal; font-weight: var(--weight-display); line-height: 1.08; letter-spacing: -.025em; min-width: 0; overflow-wrap: anywhere; }
h1 { font-size: var(--text-display); }
h2 { font-size: var(--text-title); }
h3 { font-size: var(--text-lg); }
p { max-width: 60ch; }
button svg,a svg { flex-shrink: 0; }
.skip-link { position: fixed; top: .5rem; left: .5rem; padding: 1rem; background: var(--color-paper); color: var(--color-ink); z-index: var(--z-modal); transform: translateY(-200%); }
.skip-link:focus { transform: none; }
.site-header { height: 108px; padding-inline: var(--page-gutter); display: flex; justify-content: space-between; align-items: center; gap: var(--space-md); background: var(--color-paper); color: var(--color-ink); }
.brand { display: flex; flex-direction: column; align-items: center; gap: var(--space-xs); padding-block: var(--space-xs); flex-shrink: 0; }
.brand img { width: 176px; height: auto; }
.brand span { font-size: 10px; letter-spacing: .22em; line-height: 1; text-transform: uppercase; }
.header-actions { display: flex; align-items: center; gap: var(--space-xl); }
.header-actions button,.language-link { font-size: var(--text-sm); }
.language-link { display: flex; align-items: center; min-width: 44px; min-height: 44px; }
.menu-toggle { display: flex; align-items: center; gap: var(--space-sm); min-height: 48px; padding: 0; }
.menu-icon { display: inline-flex; width: 22px; height: 16px; flex-direction: column; justify-content: space-between; }
.menu-icon::before,.menu-icon::after { content: ''; display: block; width: 22px; height: 1px; background: currentColor; }
.button { display: inline-flex; justify-content: center; align-items: center; gap: var(--space-md); min-height: 48px; padding: var(--space-sm) var(--space-lg); border: var(--rule-hairline) solid currentColor; font-size: var(--text-sm); letter-spacing: .025em; line-height: 1.5; }
.button.primary { background: var(--color-accent); color: var(--color-accent-ink); border-color: var(--color-accent); }
.text-link { display: inline-flex; align-items: center; justify-content: space-between; gap: var(--space-xl); min-height: 48px; font-size: var(--text-sm); border-bottom: var(--rule-hairline) solid currentColor; padding-bottom: var(--space-2xs); }
.arrow { width: 22px; height: 16px; }
@media(hover:hover) { .text-link:hover .arrow { transform: translateX(4px); } .button:hover { background: var(--color-ink); border-color: var(--color-ink); color: var(--color-paper); } .photo-fold .button:hover { background: var(--color-paper); border-color: var(--color-paper); color: var(--color-ink); } nav a:hover,footer a:hover { text-decoration: underline; text-underline-offset: 6px; } .menu-toggle:hover { color: var(--color-accent); } }
.arrow { transition: transform var(--dur-short) var(--ease-out); }
.photo-fold { position: relative; isolation: isolate; color: var(--color-paper); background: var(--color-dark); }
.hero { height: clamp(480px,78svh,850px); min-height: 480px; }
.photo-fold > picture,.photo-fold > .bleed { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -2; }
.photo-fold > picture img,.photo-fold > .bleed { width: 100%; height: 100%; object-fit: cover; }
.photo-fold::after { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(0deg,var(--color-overlay-deep),var(--color-overlay-soft)); }
.hero::after { background:linear-gradient(0deg,var(--color-hero-shade),var(--color-hero-shade-mid) 35%,var(--color-clear) 72%); }
.reservation-band::after { background:linear-gradient(0deg,var(--color-hero-shade),var(--color-overlay)); }
.hero > picture img { object-position: center 53%; }
.hero-copy { position: absolute; left: var(--page-gutter); right: var(--page-gutter); bottom: var(--space-2xl); display:flex; justify-content:space-between; align-items:flex-end; gap:var(--space-xl); }
.hero-copy h1 { max-width: 12ch; }
.hero-copy .text-link { margin-top: var(--space-lg); }
.hero-caption { max-width:23ch; font-size:var(--text-sm); line-height:1.7; text-align:right; }
.location-ribbon { display: flex; justify-content: space-between; align-items: center; gap: var(--space-md); padding: var(--space-lg) var(--page-gutter); font-size:var(--text-sm); border-bottom:var(--rule-hairline) solid var(--color-rule); }
.location-ribbon a { min-height:44px; display:flex; align-items:center; gap:var(--space-sm); white-space:nowrap; }
.location-ribbon .ribbon-note { font-size:var(--text-sm); color:var(--color-muted); }
.container { width:min(100%,var(--page-width)); margin-inline:auto; padding-inline:var(--page-gutter); }
.intro { display:grid; gap:var(--space-xl); padding-block:var(--space-3xl); }
.intro h2 { max-width: 16ch; }
.intro-copy { display: flex; flex-direction: column; align-items:flex-start; gap:var(--space-lg); }
.intro-copy p { color:var(--color-muted); max-width:48ch; }
.restaurants { padding-block:var(--space-lg) var(--space-3xl); }
.section-heading { margin-bottom:var(--space-xl); }
.restaurant-grid { display:grid; gap:var(--space-3xl); }
.restaurant figure { position:relative; margin-bottom:var(--space-lg); }
.restaurant figure img { width:100%; height:100%; aspect-ratio:5/4; object-fit:cover; }
.restaurant figcaption { font-size:12px; color:var(--color-muted); margin-top:var(--space-xs); }
.restaurant-title { display:flex; justify-content:space-between; align-items:center; gap:var(--space-md); margin-bottom:var(--space-xs); }
.restaurant-title .place-year { font-size:var(--text-sm); color:var(--color-muted); }
.restaurant .address { color:var(--color-muted); font-size:var(--text-sm); margin-bottom:var(--space-md); }
.restaurant .text-link { min-width:155px; }
.cuisine { background:var(--color-paper-2); color:var(--color-ink); padding-block:var(--space-3xl); }
.cuisine-grid { display:grid; gap:var(--space-xl); align-items:center; }
.cuisine-photo { width:100%; aspect-ratio:4/5; object-fit:cover; }
.cuisine-copy { display:flex; flex-direction:column; align-items:flex-start; gap:var(--space-lg); }
.cuisine-copy p { color:var(--color-muted); }
.cuisine-note { font-size:var(--text-sm); margin-top:var(--space-sm); }
.heritage { padding-block:var(--space-3xl); display:grid; gap:var(--space-xl); align-items:center; }
.heritage-copy { display:flex; flex-direction:column; align-items:flex-start; gap:var(--space-lg); }
.heritage-copy p { color:var(--color-muted); }
.heritage-photo { aspect-ratio:5/4; object-fit:cover; width:100%; }
.reservation-band { min-height:460px; display:flex; align-items:flex-end; padding:var(--space-2xl) var(--page-gutter); }
.reservation-band h2 { max-width:15ch; margin-bottom:var(--space-lg); }
footer { background:var(--color-dark); color:var(--color-paper); padding:var(--space-2xl) var(--page-gutter) var(--space-lg); }
.footer-main { display:flex; justify-content:space-between; align-items:flex-start; gap:var(--space-2xl); flex-wrap:wrap; padding-bottom:var(--space-2xl); }
.footer-brand { font:var(--weight-display) clamp(2rem,4vw,3.5rem)/1.1 var(--font-display); letter-spacing:-.02em; }
.footer-place { margin-top:var(--space-md); color:var(--color-light-muted); font-size:var(--text-sm); }
.footer-links { display:flex; gap:var(--space-lg); flex-wrap:wrap; }
.footer-links a { min-height:44px; display:flex; align-items:center; font-size:var(--text-sm); }
.footer-bottom { display:flex; justify-content:space-between; gap:var(--space-md); flex-wrap:wrap; border-top:var(--rule-hairline) solid var(--color-muted); padding-top:var(--space-lg); font-size:12px; color:var(--color-light-muted); }
.footer-bottom a { min-height:44px; display:inline-flex; align-items:center; }
.dialog { border:0; padding:0; background:var(--color-paper); color:var(--color-ink); position:fixed; inset:0; margin:auto; max-height:90dvh; width:min(760px,calc(100% - 32px)); max-width:none; }
.dialog::backdrop { background:var(--color-overlay-deep); }
.dialog[open] { animation:dialog-in var(--dur-long) var(--ease-out); }
.dialog-inner { padding:var(--space-xl); }
.dialog-header { display:flex; align-items:center; justify-content:space-between; gap:var(--space-md); margin-bottom:var(--space-xl); }
.close-button { width:48px; height:48px; display:flex; align-items:center; justify-content:center; border:1px solid var(--color-rule); flex-shrink:0; }
.dialog h2 { font-size:var(--text-title); }
.dialog-description { color:var(--color-muted); margin-bottom:var(--space-xl); }
.booking-choice { display:flex; flex-direction:column; align-items:flex-start; gap:var(--space-md); padding-block:var(--space-lg); border-top:1px solid var(--color-rule); }
.booking-choice p { font-size:var(--text-sm); color:var(--color-muted); }
.booking-choice h3 { font-size:2rem; }
.navigation-dialog { width:100%; height:100dvh; max-height:100dvh; }
.navigation-dialog .dialog-inner { padding:var(--space-xl) var(--page-gutter); }
.navigation-dialog nav { display:flex; flex-direction:column; align-items:flex-start; gap:var(--space-lg); padding-block:var(--space-lg); }
.navigation-dialog nav a { font:var(--weight-display) clamp(2rem,5vw,4rem)/1.15 var(--font-display); min-height:48px; }
.navigation-bottom { display:flex; justify-content:space-between; flex-wrap:wrap; gap:var(--space-lg); margin-top:var(--space-xl); font-size:var(--text-sm); }
.navigation-bottom a { min-height:44px; display:flex; align-items:center; }
[disabled],[aria-disabled=true] { opacity:.5; cursor:not-allowed; }
[aria-busy=true] { cursor:progress; }
[aria-invalid=true],[data-state=error] { outline:2px solid var(--color-error); }
[data-state=success] { outline:2px solid var(--color-success); }
@keyframes dialog-in { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
@media(min-width:48rem) { .intro { grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); align-items:start; gap:var(--space-2xl); padding-block:var(--space-4xl) var(--space-3xl); } .intro-copy { padding-top:var(--space-xs); } .restaurant-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-2xl); } .restaurant:nth-child(2) { margin-top:var(--space-3xl); } .restaurant figure img { aspect-ratio:5/6; } .restaurant:nth-child(2) figure img { aspect-ratio:5/4; } .cuisine-grid { grid-template-columns:minmax(0,1fr) minmax(0,.85fr); gap:var(--space-3xl); } .cuisine-photo { max-height:600px; } .heritage { grid-template-columns:minmax(0,1fr) minmax(0,.8fr); gap:var(--space-3xl); padding-block:var(--space-4xl); } .heritage-photo { aspect-ratio:4/5; max-height:560px; } .booking-choice { flex-direction:row; align-items:center; justify-content:space-between; gap:var(--space-xl); } .dialog-inner { padding:var(--space-xl) var(--space-2xl); } }
@media(max-width:47.99rem) { .site-header { height:88px; } .brand img { width:92px; } .brand span { font-size:8px; letter-spacing:.15em; } .header-actions { gap:var(--space-md); } .header-actions .language-link,.menu-toggle .toggle-label { display:none; } .header-actions .button { padding:var(--space-xs) var(--space-sm); min-height:44px; } .hero { height:72svh; min-height:470px; } .hero-copy { bottom:var(--space-xl); display:block; } .hero-copy h1 { font-size:clamp(2.75rem,10vw,4.75rem); } .hero-caption { display:none; } .location-ribbon { gap:var(--space-sm); padding-block:var(--space-sm); } .ribbon-note { display:none; } .location-ribbon a { font-size:12px; gap:var(--space-xs); } .location-ribbon a svg { width:16px; } .hero > picture img { object-position:45% center; } .footer-main { flex-direction:column; } .restaurant-grid { gap:var(--space-2xl); } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation:none!important; transition:none!important; } }

.label-short { display:none; }
a:active { opacity:.75; }
.footer-links,.footer-bottom,.navigation-bottom { align-items:center; }
.footer-brand { overflow-wrap:anywhere;min-width:0; }
.footer-brand img { width:280px;max-width:100%;height:auto; }
.brand span { letter-spacing:.3em; }
@media(max-width:47.99rem) { .brand img { width:124px; } .brand span { font-size:9px; } }
@media(max-width:47.99rem) { .header-actions { gap:var(--space-xs); } .menu-toggle { min-width:44px;justify-content:center; } .header-actions .label-long { display:none; } .header-actions .label-short { display:block; } }

/* Reference refinement: centred masthead, visible destinations, generous photographic chapters. */
.site-header { height:auto;display:block;padding-inline:var(--page-gutter);position:relative;z-index:var(--z-raised); }
.header-top { display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;min-height:114px;gap:var(--space-lg); }
.header-top>.menu-toggle { justify-self:start; }
.header-actions { justify-self:end;gap:var(--space-lg); }
.brand img { width:182px; }
.desktop-nav { display:flex;align-items:center;justify-content:center;gap:clamp(1.5rem,4.5vw,5rem);min-height:48px;padding-bottom:var(--space-xs); }
.desktop-nav a { display:flex;align-items:center;min-height:44px;font-size:var(--text-sm);letter-spacing:.065em;text-transform:uppercase; }
.hero { height:calc(100svh - 162px);min-height:510px;max-height:920px; }
.hero-copy { left:max(var(--page-gutter),calc((100vw - 1100px)/2));bottom:var(--space-2xl); }
.hero-copy h1 { max-width:16ch; }
.hero-kicker,.eyebrow { font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.14em;line-height:1.5; }
.hero-kicker { margin-bottom:var(--space-md); }
.hero-copy .button { margin-top:var(--space-xl);min-width:240px; }
.intro { display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-lg);padding-block:var(--space-3xl);max-width:920px; }
.intro h2 { max-width:22ch; }
.intro-copy { align-items:center; }
.intro-copy p { max-width:65ch; }
.restaurants { padding-bottom:var(--space-3xl); }
.restaurants>.section-heading { text-align:center;margin-bottom:var(--space-2xl); }
.restaurants>.section-heading .eyebrow { color:var(--color-accent);margin:0 auto var(--space-md); }
.restaurant-grid { display:flex;flex-direction:column;gap:var(--space-2xl); }
.restaurant,.restaurant:nth-child(2) { display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:stretch;margin:0;background:var(--color-paper-2); }
.restaurant figure { margin:0;min-width:0; }
.restaurant figure img,.restaurant:nth-child(2) figure img { aspect-ratio:1;min-height:100%;object-fit:cover; }
.restaurant-copy { display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:clamp(2rem,4vw,5rem); }
.restaurant-copy .eyebrow { margin-bottom:var(--space-lg);color:var(--color-accent); }
.restaurant-copy h3 { font-size:var(--text-title);margin-bottom:var(--space-lg); }
.restaurant-copy>p:not(.eyebrow) { color:var(--color-muted);margin-bottom:var(--space-lg); }
.restaurant:nth-child(2) figure { order:2; }
.restaurant-copy .button { margin-top:var(--space-md); }
.cuisine { padding:0;background:var(--color-paper); }
.cuisine-grid { width:100%;max-width:none;padding:0;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;align-items:stretch; }
.cuisine-visual { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-xs); }
.cuisine-photo { aspect-ratio:3/5;height:100%;max-height:780px; }
.cuisine-copy { padding:clamp(2rem,6vw,7rem);align-self:center; }
.heritage { gap:var(--space-3xl); }
.heritage-photo { aspect-ratio:4/5;max-height:680px; }
.reservation-band { min-height:600px;align-items:center;justify-content:center;text-align:center; }
.reservation-band h2 { max-width:22ch; }
@media(max-width:63.99rem) { .desktop-nav { gap:var(--space-xl); } .header-actions { gap:var(--space-sm); } .header-actions .button { padding-inline:var(--space-md); } }
@media(max-width:47.99rem) { .header-top { min-height:92px;gap:var(--space-xs);grid-template-columns:44px minmax(0,1fr) auto; } .header-top .brand { justify-self:center; } .site-header { padding-inline:var(--space-md); } .brand img { width:116px; } .desktop-nav { display:none; } .header-actions { gap:0; } .header-actions .button { padding-inline:var(--space-sm);min-height:44px; } .hero { height:calc(85svh - 92px);min-height:500px; } .hero-copy h1 { font-size:clamp(2.75rem,10vw,4.75rem); } .hero-copy { bottom:var(--space-xl); } .hero-kicker { font-size:12px; } .hero-copy .button { min-width:0;margin-top:var(--space-lg); } .intro { padding-block:var(--space-3xl); } .restaurant,.restaurant:nth-child(2) { grid-template-columns:minmax(0,1fr); } .restaurant:nth-child(2) figure { order:0; } .restaurant-copy { padding:var(--space-xl) var(--space-lg); } .restaurant figure img,.restaurant:nth-child(2) figure img { aspect-ratio:5/4; } .cuisine-grid { grid-template-columns:minmax(0,1fr); } .cuisine-visual { gap:var(--space-xs); } .cuisine-photo { aspect-ratio:3/4; } .cuisine-copy { padding:var(--space-2xl) var(--page-gutter); } .heritage { gap:var(--space-xl);padding-top:var(--space-xl); } .reservation-band { min-height:480px; } }

.hero-scenes { position:absolute;inset:0;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);z-index:-2; }
.hero-scenes img { width:100%;height:100%;object-fit:cover;min-height:0; }
.responsive-photo { display:contents; }
.responsive-photo>source { display:none; }
.hero-scenes .hero-exterior { object-position:45% 52%; }
.hero-scenes .hero-interior { object-position:center 65%; }
@media(max-width:47.99rem) { .hero-scenes { grid-template-columns:minmax(0,1fr); } .hero-scenes .hero-interior { display:none; } .hero-scenes .hero-exterior { object-position:43% center; } }

.footer-locations { display:grid;gap:var(--space-lg);margin-top:var(--space-lg); }
.footer-locations address { font-style:normal;font-size:var(--text-sm);color:var(--color-light-muted); }
.footer-locations a { display:inline-flex;align-items:center;min-height:44px; }
@media(max-width:23rem) { .footer-locations address { font-size:.8125rem; } }

.agency-credit { max-width:none;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:0 var(--space-xs);margin-top:var(--space-lg);font-size:var(--text-sm);color:var(--color-light-muted);text-align:center; }
.agency-credit a { display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:.2em; }

/* A quiet booking shortcut follows the visitor after the masthead has left view. */
.mobile-booking { display:none; }
@media(max-width:47.99rem) {
 body { padding-bottom:calc(88px + env(safe-area-inset-bottom,0px)); }
 html { scroll-padding-bottom:calc(100px + env(safe-area-inset-bottom,0px)); }
 .mobile-booking { position:fixed;inset:auto 0 0;z-index:var(--z-sticky);align-items:center;justify-content:space-between;gap:var(--space-sm);padding:var(--space-sm) var(--space-md) calc(var(--space-sm) + env(safe-area-inset-bottom,0px));background:var(--color-paper);color:var(--color-ink);border-top:var(--rule-hairline) solid var(--color-rule); }
 body[data-booking-visible] .mobile-booking { display:flex; }
 body:has(dialog[open]) .mobile-booking { display:none; }
 .mobile-booking>div { min-width:0; }
 .mobile-booking-label { display:block;font-size:.75rem;color:var(--color-muted); }
 .mobile-booking-place { display:block;font-size:var(--text-sm);line-height:1.5; }
 .mobile-booking .button { flex-shrink:0;padding-inline:var(--space-md); }
 .mobile-booking .label-long { display:none; }
 .mobile-booking .label-short { display:inline; }
}

/* Footer directory: warm paper, open columns and a distinct company-information line. */
.site-footer { background:var(--color-paper);color:var(--color-ink);border-top:var(--rule-hairline) solid var(--color-rule);padding-block:var(--space-3xl) var(--space-lg); }
.footer-directory { display:grid;grid-template-columns:minmax(0,1.1fr) repeat(3,minmax(0,1fr));gap:var(--space-xl);align-items:start; }
.footer-directory .footer-brand { display:block;padding-top:var(--space-xs); }
.footer-directory .footer-brand img { width:220px; }
.footer-column { display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-xs); }
.footer-column h2 { font:400 var(--text-sm)/1.5 var(--font-body);text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--space-sm); }
.footer-column a { display:inline-flex;align-items:center;min-height:44px;font-size:var(--text-base);white-space:normal; }
.footer-addresses { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-xl);padding-block:var(--space-xl);margin-top:var(--space-xl);border-block:var(--rule-hairline) solid var(--color-rule); }
.footer-addresses address { font-style:normal;font-size:var(--text-sm);display:flex;flex-direction:column;align-items:flex-start; }
.footer-addresses a { display:inline-flex;align-items:center;min-height:44px;white-space:normal; }
.footer-addresses span { color:var(--color-muted); }
.footer-venue-name { letter-spacing:.015em; }
.footer-company { margin-top:var(--space-xl);text-align:center;font-size:var(--text-sm);color:var(--color-muted); }
.footer-company p { max-width:none;overflow-wrap:anywhere; }
.site-footer .agency-credit { color:var(--color-muted); }
.site-footer :focus-visible { outline-color:var(--color-ink); }
@media(max-width:63.99rem) { .footer-directory { grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-xl) var(--space-lg); } }
@media(max-width:47.99rem) { .site-footer { padding-top:var(--space-2xl); } .footer-directory { grid-template-columns:minmax(0,1fr);gap:var(--space-xl); } .footer-directory .footer-brand img { width:210px; } .footer-addresses { grid-template-columns:minmax(0,1fr);gap:var(--space-lg); } .footer-company { text-align:left; } .site-footer .agency-credit { justify-content:flex-start;text-align:left; } }

/* Client supplied XXX IV / ROMA artwork, 2 October 2026. Original pixels retained. */
.brand .logo-art,.footer-brand .logo-art { display:block;position:relative;overflow:hidden;aspect-ratio:1090 / 483;width:182px;max-width:100%;padding:0;mix-blend-mode:multiply; }
.brand .logo-art img,.footer-directory .footer-brand .logo-art img { position:absolute;display:block;width:187.889908%;max-width:none;height:auto;left:-44.036697%;top:-81.780538%; }
.footer-brand .logo-art { width:220px; }
@media(max-width:47.99rem) { .brand .logo-art { width:116px; } .footer-brand .logo-art { width:210px; } }

/* Guest information: real Google destinations beside each restaurant address. */
.address-link { display:inline-flex;align-items:center;gap:var(--space-xs);min-height:44px;max-width:100%;font-size:var(--text-sm);line-height:1.5; }
.address-link svg { flex-shrink:0; }
.address-link span:first-of-type { text-decoration:underline;text-decoration-thickness:var(--rule-hairline);text-underline-offset:.25em; }
.address-link:hover,.review-link:hover { color:var(--color-accent); }
.review-link { display:inline-flex;align-items:center;gap:var(--space-xs);min-height:44px;text-decoration:underline;text-underline-offset:.25em;font-size:var(--text-sm); }
.guest-reviews { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-3xl);padding-block:var(--space-2xl);border-top:var(--rule-hairline) solid var(--color-rule); }
.guest-reviews h2 { font-size:var(--text-title);line-height:1.1;margin-bottom:var(--space-lg); }
.guest-reviews>div>p { max-width:45ch;color:var(--color-muted); }
.review-venues { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-xl);align-items:start; }
.review-venues article { min-width:0; }
.review-venues h3 { font-size:var(--text-lg);line-height:1.2;margin-bottom:var(--space-md); }
.review-source { color:var(--color-muted);font-size:var(--text-sm);margin-bottom:var(--space-md); }
.review-venues .address-link,.review-venues .review-link { display:flex;width:fit-content; }
.events-feature { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-3xl);padding-block:var(--space-2xl) var(--space-3xl);align-items:center; }
.events-feature figure { margin:0; }
.events-feature img { width:100%;aspect-ratio:5/4;object-fit:cover; }
.events-feature h2 { font-size:var(--text-title);margin-bottom:var(--space-lg); }
.events-feature p { max-width:44ch;color:var(--color-muted);margin-bottom:var(--space-xl); }
.desktop-nav { gap:clamp(.75rem,2.5vw,3rem); }
@media(max-width:47.99rem) { .guest-reviews,.events-feature { grid-template-columns:minmax(0,1fr);gap:var(--space-xl); } .review-venues { grid-template-columns:minmax(0,1fr);gap:var(--space-xl); } .review-venues article+article { padding-top:var(--space-lg);border-top:var(--rule-hairline) solid var(--color-rule); } .address-link { font-size:var(--text-sm); } }

.review-rating { font-family:var(--font-display);font-size:3rem;line-height:1.2;color:var(--color-accent);margin-bottom:var(--space-xs); }
.review-rating .rating-scale { font-family:var(--font-body);font-size:var(--text-md);color:var(--color-muted); }
.review-count { font-size:var(--text-sm);color:var(--color-muted);margin-bottom:var(--space-md); }
.review-checked { grid-column:1 / -1;font-size:var(--text-sm);color:var(--color-muted); }

/* Hallmark · component scope: visible social links and Google review summary.
 * Existing olive / ivory tokens · pre-emit critique: P4 H4 E4 S5 R5 V4 */
.social-bar { display:flex;justify-content:center;align-items:center;gap:var(--space-lg);border-top:var(--rule-hairline) solid var(--color-rule);min-height:48px; }
.social-bar>span { color:var(--color-muted);font-size:var(--text-sm); }
.social-bar a { display:inline-flex;align-items:center;gap:var(--space-xs);min-height:44px;white-space:nowrap;font-size:var(--text-sm);color:var(--color-accent); }
.social-bar a:hover { text-decoration:underline;text-underline-offset:.25em; }
.social-bar a:active,.review-summary-venue:active { opacity:.75; }
.social-bar a:focus-visible,.review-summary-venue:focus-visible { outline:2px solid var(--color-ink);outline-offset:4px; }
.hero { height:calc(100svh - 210px); }
.review-summary { background:var(--color-paper-2);border-bottom:var(--rule-hairline) solid var(--color-rule); }
.review-summary-inner { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);align-items:center;gap:var(--space-xl);padding-block:var(--space-lg); }
.review-summary-title h2 { font-family:var(--font-body);font-size:var(--text-md);font-weight:400;line-height:1.4; }
.review-summary-title p { color:var(--color-muted);font-size:var(--text-sm);margin-top:var(--space-2xs); }
.review-summary-venues { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-lg); }
.review-summary-venue { display:grid;grid-template-columns:auto minmax(0,1fr);align-items:baseline;column-gap:var(--space-sm);row-gap:var(--space-2xs);padding:var(--space-xs) var(--space-md);border-left:var(--rule-hairline) solid var(--color-rule);min-width:0; }
.review-summary-name { grid-column:1 / -1;display:flex;justify-content:space-between;gap:var(--space-xs);font-size:var(--text-base);white-space:nowrap; }
.review-summary-score { font-size:var(--text-md);color:var(--color-accent);white-space:nowrap; }
.review-summary-scale,.review-summary-count,.review-summary-date { color:var(--color-muted);font-size:var(--text-sm);white-space:nowrap; }
.review-summary-date { grid-column:1 / -1;font-size:.75rem; }
.review-summary-venue:hover .review-summary-name { text-decoration:underline;text-underline-offset:.25em; }
@media(max-width:63.99rem) { .review-summary-inner { grid-template-columns:minmax(0,1fr);gap:var(--space-sm); } .review-summary-title { display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-sm); } }
@media(max-width:47.99rem) { .social-bar { gap:var(--space-md); } .social-bar>span { display:none; } .hero { height:calc(85svh - 140px); } .review-summary-inner { padding-block:var(--space-md); } .review-summary-title { display:block; } .review-summary-title p { margin-top:0; } .review-summary-venues { gap:var(--space-sm); } .review-summary-venue { grid-template-columns:minmax(0,1fr);padding:var(--space-xs) 0;border-left:0; } .review-summary-score,.review-summary-count { grid-column:1 / -1; } .review-summary-name { font-size:var(--text-sm); } .review-summary-date { font-size:.6875rem; } }

/* Google review excerpts: separate venue groups, original source per quote. */
.guest-testimonials { grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3xl); }
.guest-testimonials-single { grid-template-columns:minmax(0,1fr);max-width:75ch; }
.testimonial-venue { min-width:0; }
.testimonial-venue>h3 { font-size:var(--text-lg);line-height:1.2;margin-bottom:var(--space-lg); }
.guest-quote { margin:0;padding-block:var(--space-lg);border-top:var(--rule-hairline) solid var(--color-rule); }
.guest-quote-rating { display:flex;align-items:center;gap:var(--space-sm);color:var(--color-accent);font-size:var(--text-sm);margin-bottom:var(--space-sm); }
.guest-quote-rating>span:first-child { letter-spacing:.08em; }
.guest-quote blockquote { margin:0;font-family:var(--font-display);font-size:calc(var(--text-md) * 1.5);line-height:1.4;overflow-wrap:anywhere; }
.guest-quote figcaption { display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--space-xs) var(--space-md);margin-top:var(--space-md);font-size:var(--text-sm); }
.guest-quote-author { color:var(--color-ink); }
.guest-quote figcaption a { display:inline-flex;align-items:center;gap:var(--space-xs);min-height:44px;white-space:nowrap;text-decoration:underline;text-underline-offset:.25em; }
.guest-quote figcaption a:hover { color:var(--color-accent); }
.guest-quote figcaption a:active { opacity:.75; }
.guest-quote figcaption a:focus-visible { outline:2px solid var(--color-ink);outline-offset:4px; }
.guest-quote-note { font-size:var(--text-sm);color:var(--color-muted);margin-top:var(--space-xs); }
.guest-reviews>.review-checked { max-width:75ch;margin:0; }
@media(max-width:47.99rem) { .guest-testimonials { grid-template-columns:minmax(0,1fr);gap:var(--space-xl); } .guest-quote blockquote { font-size:var(--text-md); } }

/* Live reviews inherit the existing brand system; preserve Google's logo and the provider credit. */
.live-review-widget[hidden],[data-review-fallback][hidden] { display:none!important; }
.live-review-widget { min-width:0; }
.live-review-status { color:var(--color-muted);font-size:var(--text-sm);margin-top:var(--space-md); }
.live-review-widget .rr-widget { font-family:var(--font-body)!important;color:var(--color-ink)!important;max-width:100%!important; }
.live-review-widget .rr-business-name { font-family:var(--font-body)!important;font-size:var(--text-base)!important;line-height:1.5!important;overflow-wrap:anywhere; }
.live-review-widget .rr-business-header-row { flex-wrap:wrap!important;gap:var(--space-sm)!important; }
.live-review-widget .rr-business-address,.live-review-widget .rr-review-date { color:var(--color-muted)!important;font-size:var(--text-sm)!important; }
.live-review-widget .rr-stacked-list { margin:0!important;padding:0!important; }
.live-review-widget .rr-stacked-item { background:var(--color-paper)!important;border:0!important;border-top:var(--rule-hairline) solid var(--color-rule)!important;border-radius:0!important;box-shadow:none!important;padding:var(--space-lg) 0!important;min-width:0; }
.live-review-widget .rr-stacked-item-content { gap:var(--space-sm)!important; }
.live-review-widget .rr-reviewer-name { font-family:var(--font-body)!important;color:var(--color-ink)!important;font-size:var(--text-base)!important;font-weight:400!important;overflow-wrap:anywhere; }
.live-review-widget .rr-review-text { font-family:var(--font-display)!important;color:var(--color-ink)!important;font-size:calc(var(--text-md) * 1.5)!important;line-height:1.4!important;overflow-wrap:anywhere; }
.live-review-widget .rr-review-text button { font-family:var(--font-body)!important;font-size:var(--text-sm)!important;min-height:44px;white-space:nowrap;color:var(--color-accent)!important; }
.live-review-widget button:focus-visible,.live-review-widget a:focus-visible { outline:2px solid var(--color-ink)!important;outline-offset:4px!important; }
@media(max-width:47.99rem) { .live-review-widget .rr-review-text { font-size:var(--text-md)!important; } }
