/* Photo-led public pages. Booking and staff layouts retain the shared brand styles. */
.restaurant-page .site-header { height: 96px; background: #2e2b2bef; }
.restaurant-page .site-header .wordmark { width: 140px; }
.restaurant-page .desktop-nav { gap: 22px; }
.restaurant-page .hero { min-height: 660px; height: 86svh; max-height: 880px; }
.restaurant-page .hero-image { left: 38%; }
.restaurant-page .hero-image img { object-position: 55% 52%; filter: none; animation: none; }
.restaurant-page .hero-shade { background: linear-gradient(90deg,#2e2b2b 10%,#2e2b2b 32%,#2e2b2bd4 44%,#2e2b2b08 77%),linear-gradient(0deg,#2e2b2bd9,transparent 22%); }
.restaurant-page .hero-content { padding: 136px var(--gutter) 86px; max-width: 800px; }
.restaurant-page .hero h1 { font-size: clamp(56px,5.6vw,88px); }
.restaurant-page .hero-eyebrow { margin-bottom: 24px; }
.restaurant-page .hero-description { margin: 24px 0; max-width: 370px; font-size: 18px; }
.restaurant-page .hero-bottom { bottom: 24px; }
.restaurant-page .hero-bottom a { text-decoration: underline; text-underline-offset: 5px; }
.restaurant-page .section-space { padding-top: 76px; padding-bottom: 76px; }
.restaurant-page .section-number { margin-right: 20px; }
.restaurant-page .experiences { padding: 64px var(--gutter) 70px; }
.restaurant-page .section-heading { padding: 0; border: 0; margin-bottom: 30px; }
.restaurant-page .section-heading .eyebrow { font-size: 14px; }
.restaurant-page .section-heading h2 { font-size: clamp(32px,3.4vw,48px); }
.restaurant-page .experience-grid { gap: 28px; }
.restaurant-page .experience-bar { padding: 0; }
.restaurant-page .experience-image { aspect-ratio: 1.55; }
.restaurant-page .experience-image img { filter: none; }
.restaurant-page .experience-name.symbol-ta { width: 110px; height: 68px; top: 24px; left: 24px; }
.restaurant-page .experience-name.symbol-bar { width: 120px; height: 88px; top: 18px; left: 24px; }
.restaurant-page .experience-copy { padding: 26px; background: #dbdad5; }
.restaurant-page .experience-bar .experience-copy { padding: 26px; background: var(--bar-orange); }
.restaurant-page .experience-copy .eyebrow { margin: 0 0 12px; }
.restaurant-page .experience-copy h3 { font-size: 34px; }
.restaurant-page .experience-copy .room-facts { margin: 14px 0 12px; color: inherit; font-size: 16px; }
.experience-detail p { font-size: 16px; line-height: 1.6; margin: 0 0 12px; }
.experience-detail summary { min-height: 44px; font-size: 15px; }
.restaurant-page .experience-copy .text-link { min-width: 0; gap: 28px; font-size: 16px; padding-bottom: 5px; }
details summary { cursor: pointer; }
details summary::marker { color: currentColor; }
.restaurant-page .menu-heading { margin-bottom: 28px; }
.restaurant-page .menu-heading h2 { font-size: clamp(44px,5.3vw,74px); margin-top: 20px; }
.restaurant-page .menu-heading h2 br { display: none; }
.restaurant-page .menu-heading h2 em::before { content: ' '; }
.restaurant-page .menu-tabs { margin-bottom: 32px; }
.restaurant-page .menu-tab { padding: 16px 20px; }
.restaurant-page .menu-panel { gap: 8%; grid-template-columns: 1fr 1.6fr; }
.restaurant-page .menu-overview h3 { white-space: pre-line; margin: 16px 0; font-size: 44px; }
.restaurant-page .menu-overview>p:not(.eyebrow) { line-height: 1.55; }
.restaurant-page .price-lockup { margin: 24px 0 16px; }
.restaurant-page .pairing p { font-size: 16px; }
.menu-disclosure { min-width: 0; }
.menu-disclosure summary { padding: 12px 0; border-top: 1px solid currentColor; border-bottom: 1px solid currentColor; min-height: 48px; }
.menu-disclosure .course-list { padding-top: 24px; }
.menu-disclosure .when-open, .menu-disclosure[open] .when-closed { display: none; }
.menu-disclosure[open] .when-open { display: inline; }
.restaurant-page .course-list li { padding: 15px 0; }
.restaurant-page .course-list h4 { font-size: 28px; margin-bottom: 6px; }
.restaurant-page .course-list p { font-size: 16px; line-height: 1.5; }
.restaurant-page .menu-footnote { margin-top: 32px; font-size: 14px; line-height: 1.6; gap: 8%; }
.restaurant-page .chef-section { grid-template-columns: 44% 56%; }
.restaurant-page .chef-image { min-height: 660px; }
.restaurant-page .chef-image img { object-position: center 35%; }
.restaurant-page .chef-copy { padding: 60px 12%; }
.restaurant-page .chef-copy h2 { font-size: clamp(36px,4vw,58px); margin: 28px 0 24px; }
.restaurant-page .chef-copy>p:not(.eyebrow) { font-size: 17px; }
.restaurant-page .chef-signature { margin-top: 26px; font-size: 30px; }
.story-detail { width: 100%; margin-top: 24px; border-top: 1px solid #2e2b2b40; border-bottom: 1px solid #2e2b2b40; }
.story-detail summary { padding: 12px 0; min-height: 48px; }
.restaurant-page .intro { padding: 24px 0; }
.restaurant-page .intro h3 { font-size: 30px; margin: 0 0 18px; }
.restaurant-page .intro-bottom { display: block; margin: 0; padding: 0; border: 0; }
.restaurant-page .intro-bottom p { font-size: 16px; margin-bottom: 14px; line-height: 1.6; }
.restaurant-page .wine-strip { padding: 35px var(--gutter); }
.restaurant-page .wine-statement { font-size: 30px; }
.restaurant-page .wine-aside { font-size: 16px; }
.restaurant-page .gallery-preview .section-heading { align-items: end; }
.restaurant-page .gallery-preview h2 { margin-top: 12px; }
.photo-sequence { display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; }
.photo-sequence a { overflow: hidden; }
.photo-sequence img { width: 100%; height: 100%; aspect-ratio: 4/5; object-fit: cover; transition: transform .4s; }
.photo-sequence a:hover img { transform: scale(1.025); }
.restaurant-page .visit-section { padding-top: 0; }
.restaurant-page .visit-heading { margin: 22px 0 36px; }
.restaurant-page .visit-heading h2 { font-size: clamp(40px,5vw,68px); }
.restaurant-page .reserve-circle { width: auto; height: auto; min-height: 50px; padding: 14px 24px; border-radius: 0; flex-direction: row; gap: 24px; margin: 0; }
.restaurant-page .reserve-circle>span:first-child { font-size: 16px; }
.restaurant-page .reserve-circle>span:last-child { font-size: 24px; }
.restaurant-page .reserve-circle:hover { transform: none; }
.restaurant-page .visit-details { padding-top: 24px; }
.restaurant-page .visit-details h3 { margin-bottom: 16px; }
.restaurant-page .visit-details p { line-height: 1.6; }
.restaurant-page .footer { padding-top: 38px; }
.restaurant-page .footer-wordmark { width: 260px; margin-bottom: 36px; }
@media(min-width:861px) {
  .experience-detail summary { display: none; }
}
@media(max-width:1100px) and (min-width:861px) {
 .restaurant-page .desktop-nav { gap: 13px; }
 .restaurant-page .site-header { gap: 16px; }
 .restaurant-page .site-header .wordmark { width: 120px; }
}
@media(max-width:860px) {
 .restaurant-page .site-header,.restaurant-page .site-header.scrolled { height: 78px; }
 .restaurant-page .site-header .wordmark { width: 120px; }
 .restaurant-page .mobile-nav { top: 78px; padding-top: 28px; gap: 16px; overflow-y: auto; }
 .restaurant-page .mobile-nav a { font-size: 32px; }
 .restaurant-page .mobile-nav .mobile-reserve { font-size: 18px; margin-top: 0; }
 .restaurant-page .hero { min-height: 570px; height: auto; max-height: none; }
 .restaurant-page .hero-content { padding: 116px var(--gutter) 72px; max-width: 580px; }
 .restaurant-page .hero h1 { font-size: clamp(40px,6.8vw,60px); }
 .restaurant-page .hero-image { left: 0; }
 .restaurant-page .hero-shade { background: linear-gradient(90deg,#2e2b2be6,#2e2b2b66),linear-gradient(0deg,#2e2b2b,transparent 50%); }
 .restaurant-page .hero-eyebrow { margin-bottom: 18px; font-size: 14px; }
 .restaurant-page .hero-description { font-size: 16px; margin: 18px 0 20px; max-width: 310px; }
 .restaurant-page .hero-actions { gap: 20px; }
 .restaurant-page .hero-actions .text-link { font-size: 16px; }
 .restaurant-page .hero-bottom { font-size: 14px; bottom: 20px; }
 .restaurant-page .hero-bottom>a { font-size: 14px; }
 .restaurant-page .section-space { padding-top: 44px; padding-bottom: 44px; }
 .restaurant-page .experiences { padding: 36px var(--gutter) 40px; }
 .restaurant-page .section-heading { margin-bottom: 24px; }
 .restaurant-page .section-heading h2 { margin-top: 12px; font-size: 34px; }
 .restaurant-page .experience-grid { gap: 20px; }
 .restaurant-page .experience-image { aspect-ratio: 1.2; }
 .restaurant-page .experience-copy,.restaurant-page .experience-bar .experience-copy { padding: 22px; }
 .restaurant-page .experience-copy .eyebrow { font-size: 14px; line-height: 1.3; }
 .restaurant-page .experience-copy h3 { font-size: 28px; }
 .restaurant-page .experience-copy .room-facts { line-height: 1.45; }
 .restaurant-page .experience-copy>div { display: block; }
 .restaurant-page .experience-copy .text-link { gap: 8px; min-height: 44px; }
 .experience-detail p { margin-top: 8px; }
 .restaurant-page .menu-panel { grid-template-columns: 1fr; gap: 24px; }
 .restaurant-page .menu-overview h3, .restaurant-page .menu-overview h3.cms-copy { white-space: normal; }
 .restaurant-page .menu-overview>p:not(.eyebrow) { max-width: 480px; }
 .restaurant-page .menu-heading h2 { font-size: 44px; margin-top: 14px; }
 .restaurant-page .menu-heading-note { margin-top: 16px; max-width: 320px; }
 .restaurant-page .menu-heading-note p { margin-top: 10px; }
 .restaurant-page .menu-heading { display: flex; align-items: start; gap: 24px; }
 .restaurant-page .menu-overview h3 { font-size: 34px; }
 .restaurant-page .menu-overview .price-lockup>span { font-size: 44px; }
 .restaurant-page .pairing { max-width: 480px; margin-bottom: 20px; padding: 12px 0; }
 .restaurant-page .menu-booking { font-size: 16px; padding: 12px 20px; }
 .restaurant-page .chef-section { grid-template-columns: 40% 60%; }
 .restaurant-page .chef-image { min-height: 460px; }
 .restaurant-page .chef-copy { padding: 36px var(--gutter); }
 .restaurant-page .chef-copy h2 { font-size: 34px; margin: 18px 0; }
 .restaurant-page .chef-copy>p:not(.eyebrow) { font-size: 16px; line-height: 1.6; }
 .restaurant-page .wine-strip { display: block; padding: 28px var(--gutter); }
 .restaurant-page .wine-strip .eyebrow { margin-bottom: 10px; }
 .restaurant-page .wine-statement { font-size: 26px; }
 .restaurant-page .wine-aside { margin-top: 12px; }
 .restaurant-page .wine-aside br { display: none; }
 .restaurant-page .visit-section { padding-top: 0; }
 .restaurant-page .visit-heading { align-items: start; gap: 20px; }
 .restaurant-page .visit-heading h2 { font-size: 38px; }
 .restaurant-page .visit-details { gap: 24px; }
 .restaurant-page .visit-details>div:last-child { margin-top: 0; padding-top: 24px; }
 .restaurant-page .footer-wordmark { width: 180px; margin: 0 0 28px; }
}
@media(max-width:600px) {
 .restaurant-page { --gutter: 20px; }
 .restaurant-page .hero { min-height: 535px; }
 .restaurant-page .hero-content { padding: 110px var(--gutter) 94px; }
 .restaurant-page .hero h1 { font-size: clamp(36px,10.3vw,56px); line-height: 1.08; }
 html:lang(it) .restaurant-page .hero h1 { font-size: clamp(34px,9.1vw,49px); }
 html:lang(de) .restaurant-page .hero h1 { font-size: clamp(35px,9.4vw,51px); }
 .restaurant-page .hero-description { max-width: 290px; line-height: 1.5; }
 .restaurant-page .hero-bottom { gap: 20px; align-items: end; }
 .restaurant-page .hero-bottom>span { max-width: 190px; }
 .restaurant-page .hero-bottom>a { max-width: 108px; }
 .restaurant-page .experience-grid { grid-template-columns: 1fr; gap: 16px; }
 .restaurant-page .experience-card { display: grid; grid-template-columns: 39% 61%; align-items: stretch; }
 .restaurant-page .experience-image { height: 100%; min-height: 210px; aspect-ratio: auto; }
 .restaurant-page .experience-image img { object-position: 47% center; }
 .restaurant-page .experience-image .image-caption { display: none; }
 .restaurant-page .experience-name.symbol-ta { width: 70px; height: 42px; left: 15px; top: 15px; }
 .restaurant-page .experience-name.symbol-bar { width: 80px; height: 58px; left: 15px; top: 15px; }
 .restaurant-page .experience-copy,.restaurant-page .experience-bar .experience-copy { padding: 18px 15px; }
 .restaurant-page .experience-copy .eyebrow { margin-bottom: 10px; max-width: none; }
 .restaurant-page .experience-copy h3 { font-size: 25px; }
 .restaurant-page .experience-copy .room-facts { font-size: 15px; margin: 10px 0 6px; }
 .restaurant-page .experience-copy .text-link { font-size: 15px; line-height: 1.25; gap: 8px; }
 .experience-detail summary { font-size: 14px; line-height: 1.35; padding: 8px 0; }
 .restaurant-page .menu-heading { display: block; margin-bottom: 20px; }
 .restaurant-page .menu-heading h2 { font-size: 40px; }
 .restaurant-page .menu-heading-note { max-width: none; margin-top: 14px; padding: 0; }
 .restaurant-page .menu-heading-note p { font-size: 16px; line-height: 1.5; }
 .restaurant-page .menu-season { border: 0; padding: 0; font-size: 14px; }
 .restaurant-page .menu-tabs { margin-bottom: 24px; }
 .restaurant-page .menu-tab { padding: 12px; row-gap: 8px; }
 .restaurant-page .menu-tab>span:nth-child(2) { font-size: 14px; line-height: 1.35; }
 .restaurant-page .menu-overview h3 { font-size: 32px; margin: 12px 0; }
 .restaurant-page .menu-booking { width: 100%; justify-content: space-between; }
 .restaurant-page .menu-footnote { grid-template-columns: 1fr; gap: 14px; margin-top: 24px; padding-top: 20px; }
 .restaurant-page .course-list h4 { font-size: 25px; }
 .restaurant-page .course-list li { gap: 12px; }
 .restaurant-page .chef-section { grid-template-columns: 1fr; }
 .restaurant-page .chef-image { min-height: 0; height: 300px; }
 .restaurant-page .chef-image img { object-position: 50% 26%; }
 .restaurant-page .chef-copy { padding: 30px var(--gutter); }
 .restaurant-page .chef-copy h2 { font-size: 34px; }
 .restaurant-page .chef-signature { margin-top: 20px; font-size: 26px; }
 .restaurant-page .gallery-preview .section-heading { display: flex; align-items: end; gap: 14px; }
 .restaurant-page .gallery-preview h2 { font-size: 30px; }
 .restaurant-page .gallery-preview .text-link { max-width: 130px; gap: 12px; font-size: 15px; line-height: 1.3; flex-shrink: 0; }
 .photo-sequence { grid-template-columns: repeat(2,1fr); gap: 10px; }
 .photo-sequence img { aspect-ratio: 1.1; }
 .restaurant-page .visit-heading { display: block; margin: 18px 0 26px; }
 .restaurant-page .visit-heading h2 { font-size: 35px; }
 .restaurant-page .reserve-circle { margin-top: 22px; justify-content: space-between; padding: 12px 18px; }
 .restaurant-page .visit-details { grid-template-columns: 1fr 1fr; gap: 20px; }
 .restaurant-page .visit-details h3 { font-size: 14px; margin-bottom: 10px; letter-spacing: .025em; }
 .restaurant-page .visit-details p { font-size: 16px; }
 .restaurant-page .visit-details>div:last-child { grid-column: 1/-1; }
 .restaurant-page .small-link { margin-top: 14px; min-height: 38px; }
 .restaurant-page .footer { padding-top: 30px; }
 .restaurant-page .footer-bottom { font-size: 14px; gap: 16px; }
}
@media(prefers-reduced-motion:reduce) { .photo-sequence img { transition: none; } }
/* German compound labels must fit the compact experience cards without shrinking type. */
.restaurant-page .experience-copy .eyebrow { hyphens: auto; overflow-wrap: anywhere; }
