/* Interior pages and utility classes. */
.visually-hidden { position:absolute;width:1px;height:1px;padding:0;margin:-1px;clip-path:inset(50%);overflow:clip;white-space:nowrap; }
.booking-note { margin-top:var(--space-lg);font-size:var(--text-sm);color:var(--color-muted); }
.back-link { display:inline-flex;align-items:center;min-height:44px;font-size:var(--text-sm);color:var(--color-muted);margin-bottom:var(--space-xl);white-space:nowrap; }
.location-opening { padding-top:var(--space-xl);padding-bottom:var(--space-xl); }
.location-heading { display:flex;flex-direction:column;gap:var(--space-lg); }
.location-heading p { color:var(--color-muted);font-size:var(--text-sm); }
.location-wide img { width:100%;height:clamp(330px,60svh,680px);object-fit:cover; }
.location-wide figcaption { padding:var(--space-sm) var(--page-gutter);font-size:12px;color:var(--color-muted); }
.location-wide figcaption a { display:inline-flex;min-height:44px;align-items:center;text-decoration:underline;margin-inline-start:var(--space-xs); }
.location-story { padding-block:var(--space-3xl);display:grid;gap:var(--space-xl); }
.prose { display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-lg); }
.prose p { color:var(--color-muted);max-width:55ch; }
.visit-section { padding-block:var(--space-3xl);background:var(--color-paper-2);color:var(--color-ink); }
.visit-grid { display:grid;gap:var(--space-2xl); }
.visit-note { color:var(--color-muted);margin-block:var(--space-lg) var(--space-xl);max-width:48ch; }
.visit-details { display:grid;gap:var(--space-xl); }
.visit-details h3 { font-size:1.75rem;margin-bottom:var(--space-md); }
.visit-details p { font-size:var(--text-sm); }
.contact-link { display:flex;align-items:center;min-height:44px;width:fit-content;font-size:var(--text-sm); }
.next-place { padding-block:var(--space-3xl); }
.next-place p { color:var(--color-muted);margin-bottom:var(--space-lg); }
.next-place .text-link { margin-top:var(--space-lg); }
.story-opening,.menu-opening { padding-block:var(--space-xl) var(--space-3xl); }
.story-opening h1,.menu-opening h1 { max-width:17ch; }
.story-opening>p,.menu-opening>p { margin-top:var(--space-lg);color:var(--color-muted);max-width:45ch; }
.story-body { display:grid;gap:var(--space-2xl);padding-bottom:var(--space-3xl); }
.story-photo img { width:100%;aspect-ratio:4/5;object-fit:cover; }
.story-photo>p,.menu-portrait>p { font-size:var(--text-sm);color:var(--color-muted);margin-top:var(--space-sm); }
.story-prose h2 { margin-bottom:var(--space-md); }
.story-panorama img { height:clamp(320px,55svh,680px);width:100%;object-fit:cover; }
.chapters { display:grid;gap:var(--space-3xl);padding-block:var(--space-3xl); }
.chapters article { display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-lg); }
.chapter-date { font-size:var(--text-sm);color:var(--color-accent); }
.chapters article>p:not(.chapter-date) { color:var(--color-muted); }
.story-close { padding-block:var(--space-xl) var(--space-3xl); }
.story-close h2 { max-width:27ch; }
.menu-layout { display:grid;gap:var(--space-2xl);padding-bottom:var(--space-3xl); }
.menu-portrait img { width:100%;aspect-ratio:4/5;object-fit:cover; }
.menu-help { color:var(--color-muted);font-size:var(--text-sm);margin-block:var(--space-lg); }
.menu-row { display:flex;justify-content:space-between;align-items:center;gap:var(--space-lg);border-top:1px solid var(--color-rule);padding-block:var(--space-lg); }
.menu-row>div { display:flex;flex-direction:column;min-width:0; }
.menu-name { font:var(--weight-display) clamp(1.5rem,2.5vw,2rem)/1.2 var(--font-display);white-space:normal; }
.menu-detail { color:var(--color-muted);font-size:12px;margin-top:var(--space-xs); }
.pdf-label { display:inline-flex;gap:var(--space-sm);align-items:center;font-size:12px;flex-shrink:0;white-space:nowrap; }
.menu-row:hover .arrow { transform:translateX(4px); }
.menu-row:last-of-type { border-bottom:1px solid var(--color-rule); }
.menu-contact { padding-block:var(--space-lg) var(--space-3xl); }
.menu-contact-links { display:flex;gap:var(--space-xl);flex-wrap:wrap;margin-top:var(--space-xl); }
.text-document { padding-block:var(--space-xl) var(--space-3xl);max-width:1000px; }
.text-document>h1 { margin-bottom:var(--space-2xl); }
.text-document h2 { font-size:2rem;margin-top:var(--space-lg); }
.credit-links { display:flex;gap:var(--space-lg);flex-wrap:wrap; }
@media(min-width:48rem) { .location-heading { flex-direction:row;justify-content:space-between;align-items:flex-end; } .location-story { grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-3xl);padding-block:var(--space-4xl); } .visit-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-3xl); } .visit-details { grid-template-columns:repeat(2,minmax(0,1fr)); } .story-opening,.menu-opening { padding-block:var(--space-xl) var(--space-2xl); } .story-opening>p { margin-inline-start:50%; } .story-body { grid-template-columns:minmax(0,.8fr) minmax(0,1fr);gap:var(--space-3xl);align-items:center;padding-block:var(--space-2xl) var(--space-4xl); } .chapters { grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3xl);padding-block:var(--space-4xl) var(--space-3xl); } .menu-layout { grid-template-columns:minmax(0,.8fr) minmax(0,1fr);gap:var(--space-3xl);padding-block:var(--space-xl) var(--space-3xl);align-items:start; } .menu-portrait { position:sticky;top:var(--space-xl); } }

.no-script-nav { display:flex;flex-wrap:wrap;gap:var(--space-lg);padding:var(--space-lg) var(--page-gutter); }
.no-script-nav a { min-height:44px;display:flex;align-items:center; }

.venue-opening { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-xs); }
.venue-opening img { height:clamp(420px,72svh,820px);object-position:center 65%; }
.venue-gallery { padding-bottom:var(--space-3xl); }
.venue-gallery-heading { text-align:center;margin-bottom:var(--space-2xl); }
.venue-gallery-heading .eyebrow { margin:0 auto var(--space-md);color:var(--color-accent); }
.venue-detail-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-xl); }
.venue-detail-grid img { width:100%;aspect-ratio:4/5;object-fit:cover; }
.venue-detail-grid figcaption { margin-top:var(--space-sm);font-size:var(--text-sm);color:var(--color-muted); }
@media(max-width:47.99rem) { .venue-opening { grid-template-columns:minmax(0,1fr); } .venue-opening img { height:480px; } .venue-opening>:nth-child(2) { display:none; } .venue-detail-grid { gap:var(--space-lg);grid-template-columns:minmax(0,1fr); } .venue-detail-grid img { aspect-ratio:5/4; } }

/* Practical information remains visible in HTML for visitors and search engines. */
.breadcrumbs { display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm);font-size:var(--text-sm);color:var(--color-muted);margin-bottom:var(--space-xl); }
.breadcrumbs a { display:inline-flex;align-items:center;min-height:44px; }
.location-category { margin-bottom:var(--space-lg);color:var(--color-accent); }
.practical-info { padding-block:var(--space-3xl);display:grid;gap:var(--space-2xl); }
.practical-info .eyebrow { margin-bottom:var(--space-lg);color:var(--color-accent); }
.practical-answers { display:grid;gap:var(--space-xl); }
.practical-answers article { border-top:1px solid var(--color-rule);padding-top:var(--space-lg); }
.practical-answers h3 { font-size:1.5rem;line-height:1.3;margin-bottom:var(--space-md); }
.practical-answers p { color:var(--color-muted); }
.practical-answers a { white-space:nowrap;text-decoration:underline;text-underline-offset:.2em; }
@media(min-width:48rem) { .practical-info { grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-3xl); } }

.location-quick-actions,.menu-jump,.menu-venue-actions { display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-lg); }
.location-quick-actions { margin-top:var(--space-xl); }
.menu-jump { margin-top:var(--space-xl); }
.menu-venue { scroll-margin-top:var(--space-xl);border-top:var(--rule-hairline) solid var(--color-rule);padding-block:var(--space-xl); }
.menu-venue .eyebrow { margin-bottom:var(--space-md);color:var(--color-muted);font-size:.75rem; }
.menu-venue h2 { margin-bottom:var(--space-lg); }
.menu-venue-actions { gap:var(--space-md) var(--space-lg); }
.menu-archive { border-block:var(--rule-hairline) solid var(--color-rule);margin-top:var(--space-xl); }
.menu-archive summary { cursor:pointer;padding-block:var(--space-lg);font-size:var(--text-md);min-height:48px; }
.menu-archive .menu-name { white-space:normal; }
@media(max-width:47.99rem) {
 .menu-layout { display:flex;flex-direction:column;gap:var(--space-xl); }
 .menu-list { order:-1;width:100%; }
 .menu-portrait { width:100%; }
 .location-quick-actions { gap:var(--space-sm) var(--space-lg); }
}

.story-photo { max-width:426px;width:100%;justify-self:center; }
.story-hospitality { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-xl); }
.story-hospitality img { width:100%;aspect-ratio:4/5;object-fit:cover; }
.story-hospitality figcaption { margin-top:var(--space-sm);font-size:var(--text-sm);color:var(--color-muted); }
@media(max-width:47.99rem) { .story-hospitality { grid-template-columns:minmax(0,1fr);gap:var(--space-xl); } .story-hospitality img { aspect-ratio:4/5; } }

.service-opening { padding-block:var(--space-xl) var(--space-2xl); }
.service-opening h1 { max-width:18ch; }
.service-opening>p { margin-top:var(--space-lg);color:var(--color-muted);max-width:52ch; }
.service-locations,.reservation-locations { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2xl);padding-bottom:var(--space-3xl); }
.service-locations article { border-top:var(--rule-hairline) solid var(--color-rule);padding-top:var(--space-xl); }
.service-locations .eyebrow { margin-bottom:var(--space-lg);color:var(--color-muted); }
.service-locations address { margin-top:var(--space-lg);font-style:normal;color:var(--color-muted); }
.service-actions { display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-md) var(--space-lg);margin-top:var(--space-lg); }
.service-note { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2xl);padding-bottom:var(--space-3xl); }
.service-note p { margin-block:var(--space-lg);color:var(--color-muted); }
.reservation-photo { display:block; }
.reservation-photo img { width:100%;height:clamp(250px,36vw,480px);object-fit:cover; }
.reservation-details { padding-block:var(--space-xl); }
.reservation-details p { color:var(--color-muted);margin-block:var(--space-lg); }
.reservation-details .contact-link { margin-top:var(--space-sm); }
.company-document { padding-bottom:var(--space-3xl); }
.company-document dl { max-width:850px;margin:0 0 var(--space-xl); }
.company-document dl>div { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:var(--space-lg);padding-block:var(--space-lg);border-top:var(--rule-hairline) solid var(--color-rule); }
.company-document dt { color:var(--color-muted); }
.company-document dd { margin:0;overflow-wrap:anywhere; }
.company-document dd a { text-decoration:underline;text-underline-offset:.2em; }
@media(max-width:47.99rem) { .service-locations,.reservation-locations,.service-note { grid-template-columns:minmax(0,1fr);gap:var(--space-xl); } .company-document dl>div { grid-template-columns:minmax(0,1fr);gap:var(--space-xs); } .service-note .text-link { white-space:normal;overflow-wrap:anywhere; } }

/* Legal documents extend the established ivory, olive and brand typography. */
.policy-opening h1 { max-width:24ch;font-size:clamp(2.5rem,5vw,4.5rem);overflow-wrap:anywhere; }
.policy-opening .policy-date { font-size:var(--text-sm);margin-top:var(--space-md); }
.policy-review { border-block:var(--rule-hairline) solid var(--color-rule);padding-block:var(--space-lg);max-width:100%; }
.policy-review strong { display:block;font-weight:500;margin-bottom:var(--space-sm); }
.policy-review p { max-width:85ch;color:var(--color-muted);font-size:var(--text-sm); }
.policy-layout { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.1fr);gap:var(--space-3xl);padding-block:var(--space-2xl) var(--space-3xl);align-items:start; }
.policy-index { position:sticky;top:var(--space-xl); }
.policy-index h2 { font-family:var(--font-body);font-size:var(--text-md);margin-bottom:var(--space-lg); }
.policy-index ol { margin:0;padding-left:var(--space-lg);color:var(--color-muted); }
.policy-index a { display:block;padding:var(--space-sm) 0;min-height:44px;line-height:1.45; }
.policy-body { max-width:68ch;min-width:0; }
.policy-body section { margin-bottom:var(--space-2xl);scroll-margin-top:var(--space-xl); }
.policy-body h2 { font-size:clamp(1.65rem,2.5vw,2.1rem);line-height:1.2;margin-bottom:var(--space-lg); }
.policy-body p { color:var(--color-muted);line-height:1.75; }
.policy-body a { color:var(--color-ink);text-decoration:underline;text-underline-offset:.2em;overflow-wrap:anywhere; }
.policy-related { padding-top:var(--space-xl);border-top:var(--rule-hairline) solid var(--color-rule); }
.policy-related a { display:inline-flex;align-items:center;min-height:44px;margin-right:var(--space-lg); }
@media(max-width:47.99rem) { .policy-layout { grid-template-columns:minmax(0,1fr);gap:var(--space-xl); } .policy-index { position:static;border-bottom:var(--rule-hairline) solid var(--color-rule);padding-bottom:var(--space-lg); } .policy-body { max-width:100%; } }

/* Events: a compact calendar and chronological agenda, using established brand tokens. */
.events-layout { display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:var(--space-3xl);align-items:start;padding-bottom:var(--space-3xl); }
.events-calendar,.events-announcements { min-width:0; }
.events-calendar>h2 { font-size:var(--text-lg);margin-bottom:var(--space-xl); }
.calendar-controls { display:flex;justify-content:space-between;align-items:end;gap:var(--space-md);padding-bottom:var(--space-lg);border-bottom:var(--rule-hairline) solid var(--color-rule); }
.calendar-arrows { display:flex;gap:var(--space-xs); }
.calendar-control { border:var(--rule-hairline) solid var(--color-rule);background:var(--color-clear);color:var(--color-ink);width:48px;height:48px;font-size:var(--text-md);cursor:pointer; }
.calendar-control:hover { border-color:var(--color-accent);color:var(--color-accent); }
.calendar-control:active { background:var(--color-paper-2); }
.calendar-control:disabled { color:var(--color-muted);cursor:default; }
.calendar-location { min-width:0; }
.calendar-location label { display:block;font-size:var(--text-sm);color:var(--color-muted);margin-bottom:var(--space-xs); }
.calendar-location select { font:inherit;font-size:var(--text-sm);color:var(--color-ink);background:var(--color-paper);border:var(--rule-hairline) solid var(--color-rule);padding:var(--space-sm);min-height:48px;max-width:100%; }
.calendar-month { display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-md);padding-block:var(--space-xl) var(--space-lg); }
.calendar-month h3 { text-transform:capitalize;font-size:var(--text-lg); }
.calendar-month p { font-size:var(--text-sm);color:var(--color-muted); }
.calendar-grid { display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--space-xs);padding-bottom:var(--space-xl);border-bottom:var(--rule-hairline) solid var(--color-rule); }
.calendar-weekday { text-align:center;font-size:var(--text-sm);color:var(--color-muted);padding-block:var(--space-xs); }
.calendar-day { display:flex;position:relative;align-items:center;justify-content:center;min-height:44px;font-size:var(--text-md);border:var(--rule-hairline) solid var(--color-clear); }
.calendar-day.is-today { border-color:var(--color-rule); }
.calendar-day.has-event { background:var(--color-accent);color:var(--color-accent-ink); }
.calendar-day.has-event:hover { background:var(--color-dark); }
.calendar-dot { position:absolute;bottom:var(--space-2xs);width:4px;height:4px;background:currentColor;border-radius:50%; }
.events-agenda { padding-top:var(--space-xl); }
.events-empty h3,.event-entry h3 { font-size:var(--text-lg);line-height:1.2;margin-bottom:var(--space-md); }
.events-empty p,.events-announcements>p,.event-entry p { color:var(--color-muted); }
.events-announcements figure { margin:0 0 var(--space-xl); }
.events-announcements img { width:100%;aspect-ratio:4/3;object-fit:cover; }
.events-announcements>h2 { font-size:var(--text-lg);margin-bottom:var(--space-lg); }
.events-announcements>.text-link { margin-top:var(--space-md); }
.event-contacts { display:grid;gap:var(--space-lg);margin-top:var(--space-xl); }
.event-contacts>div { border-top:var(--rule-hairline) solid var(--color-rule);padding-top:var(--space-lg); }
.event-contacts h3 { font-size:1.5rem; }
.event-entry { padding-bottom:var(--space-xl);margin-bottom:var(--space-xl);border-bottom:var(--rule-hairline) solid var(--color-rule);scroll-margin-top:var(--space-xl); }
.event-entry time { display:block;font-size:var(--text-sm);color:var(--color-accent);margin-bottom:var(--space-md); }
.event-entry .event-location { margin-bottom:var(--space-md); }
.event-entry .text-link { margin-top:var(--space-lg); }
@media(max-width:47.99rem) { .events-layout { grid-template-columns:minmax(0,1fr);gap:var(--space-2xl); } .calendar-grid { gap:var(--space-2xs); } .calendar-month { align-items:start;flex-direction:column;gap:var(--space-xs); } }

/* Preserve the garnish in the new portrait photograph used by the events sidebar. */
.events-announcements img[src*="cocktail-coppa-trentaquattro-2026"] { object-position:center 20%; }

/* Supplied event artwork remains fully visible and opens at its original size. */
.events-announcements .event-poster img { aspect-ratio:auto;height:auto;object-fit:contain; }
.event-poster figcaption { margin-top:var(--space-sm);font-size:var(--text-sm);color:var(--color-muted); }
.event-actions { display:flex;flex-wrap:wrap;gap:var(--space-sm) var(--space-lg);align-items:center;margin-top:var(--space-lg); }
.event-actions .text-link { margin-top:0; }
.event-entry .event-time-note { margin-top:var(--space-sm);font-size:var(--text-sm); }

/* Context for the client-supplied menu documents. */
.menu-document-meta { color:var(--color-muted);font-size:12px;line-height:1.7;margin-top:var(--space-sm); }
.menu-venue-intro { color:var(--color-muted);margin-bottom:var(--space-lg);max-width:48ch; }
.menu-venue-actions { margin-top:var(--space-lg); }
.menu-other-cards { scroll-margin-top:var(--space-xl); }
