/* OLLA: original visual design, independent responsive interactions. */
html { scroll-behavior: smooth; scroll-padding-top: 24px; }
body { overflow-x: clip; }
img { max-width: 100%; }
body[data-page=contact] #qodef-page-content h1.elementor-heading-title { white-space:nowrap; }
@media (max-width:680px) {
 body[data-page=contact] #qodef-page-content h1.elementor-heading-title { font-size:clamp(18px,5.6vw,38px) !important; }
}
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
a:focus-visible, button:focus-visible { outline: 2px solid #d4af37 !important; outline-offset: 5px; }
:root { --olla-gold: #b58c67; --olla-brown: #261911; }
#qodef-page-wrapper, #qodef-page-content, #qodef-page-inner { opacity: 1; visibility: visible; }
.qodef-header--vertical #qodef-page-header { z-index: 50; }
#qodef-page-header .qodef-header-logo-link { transition: transform .4s ease; }
#qodef-page-header .qodef-header-logo-link:hover { transform: translateY(-3px); }
#qodef-page-header .qodef-header-logo-image { object-fit: contain; }
.qodef-image-with-text .qodef-m-image { overflow: hidden; }
.qodef-image-with-text .qodef-m-image img, .qodef-image-gallery img { transition: transform .7s cubic-bezier(.2,.65,.3,1), filter .7s; }
@media (hover:hover) {
 .qodef-image-with-text:hover .qodef-m-image img, .qodef-image-gallery a:hover img { transform: scale(1.035); filter: brightness(1.04); }
}
/* Reveal effects only initialize below the viewport; content remains visible without JS. */
.olla-reveal { opacity: 0; transform: translate3d(0,26px,0); transition: opacity .8s ease, transform .9s cubic-bezier(.2,.65,.3,1); transition-delay: var(--reveal-delay,0ms); }
.olla-reveal.olla-visible { opacity: 1; transform: translateZ(0); }
body[data-page=home] .elementor-element-52fb12a { animation: olla-hero-enter 1.3s ease both; }
body[data-page=home] .qodef-custom-font { animation: olla-title-enter 1.2s .15s both; }
@keyframes olla-hero-enter { from { filter: brightness(.7); } to { filter: brightness(1); } }
@keyframes olla-title-enter { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:translateY(0); } }
/* Original FOOD / DRINKS links with working hover imagery. */
.qodef-interactive-link-showcase { visibility: visible !important; }
.qodef-interactive-link-showcase .qodef-e-title { opacity: .65; transition: color .3s, opacity .3s; }
.qodef-interactive-link-showcase .qodef-m-item:hover .qodef-e-title,
.qodef-interactive-link-showcase .qodef-m-item:focus-visible .qodef-e-title { opacity: 1; color: #d4b08e; }
.qodef-interactive-link-showcase .qodef-m-item > img { pointer-events: none; }
/* Native scroll carousel: swiping, keyboard controls and gentle auto advance. */
.qodef-swiper-container { overflow: visible !important; visibility: visible !important; opacity: 1 !important; }
.qodef-swiper-container .swiper-wrapper { display: flex; width: 100%; gap: 25px; overflow-x: auto; scroll-snap-type:x mandatory; scroll-behavior: smooth; scrollbar-width: none; transform: none !important; }
.qodef-swiper-container .swiper-wrapper::-webkit-scrollbar { display:none; }
.qodef-swiper-container .swiper-slide { flex: 0 0 calc((100% - 75px)/4); width: calc((100% - 75px)/4) !important; scroll-snap-align: start; }
.qodef-swiper-container .swiper-slide img { width:100%; aspect-ratio: 3/2; object-fit:cover; }
.olla-carousel-controls { display:flex; justify-content:flex-end; gap:12px; margin-top:20px; }
.olla-carousel-controls button { width:46px; height:46px; border:1px solid #b58c67; color:#e5ccae; background:transparent; font:24px serif; transition:background .25s,color .25s; }
.olla-carousel-controls button:hover { background:#b58c67; color:#261911; }
/* Shared dialogs use native focus trapping and restore focus when dismissed. */
body.olla-dialog-open { overflow: hidden; }
dialog { border:0; padding:0; }
dialog:not([open]) { display:none !important; }
dialog::backdrop { background:rgba(11,7,5,.72); backdrop-filter:blur(7px); }
dialog[open] { animation:olla-modal-in .35s ease both; }
@keyframes olla-modal-in { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:translateY(0); } }
.olla-dialog-close { position:absolute; right:18px; top:16px; z-index:5; width:44px; height:44px; border:1px solid rgba(181,140,103,.5); background:rgba(38,25,17,.8); color:#f4e8da; font:30px/1 Arial,sans-serif; border-radius:50%; }
#olla-mobile-nav { position:fixed; inset:0 0 0 auto; margin:0; width:min(400px,92vw); max-width:100%; height:100%; height:100dvh; max-height:none; padding:52px 32px max(34px,env(safe-area-inset-bottom)); background:#211710; color:#eee2d5; overflow-y:auto; }
#olla-mobile-nav[open] { animation:olla-drawer-in .4s cubic-bezier(.2,.7,.3,1) both; }
@keyframes olla-drawer-in { from {transform:translateX(100%);opacity:.5;} to{transform:translateX(0);opacity:1;} }
.olla-drawer-logo { display:block; text-align:center; margin:6px auto 36px; }
.olla-drawer-logo img { width:115px; height:auto; }
#olla-mobile-nav nav { display:flex; flex-direction:column; gap:10px; }
#olla-mobile-nav nav a { display:block; font:25px/1.4 Cormorant,Georgia,serif; padding:12px 0; letter-spacing:1px; text-transform:uppercase; color:#eadccf; }
#olla-mobile-nav nav a:hover { color:#c99d74; }
#olla-mobile-nav .olla-reserve { font:12px/1.7 Jost,sans-serif; text-align:center; border:1px solid #b58c67; padding:16px 12px; margin-top:15px; }
#olla-mobile-nav p { margin-top:32px; text-align:center; font:14px/1.7 Jost,sans-serif; color:#bda894; }
#olla-lightbox { position:fixed; inset:0; margin:auto; width:100vw; height:100vh; height:100dvh; max-width:none; max-height:none; background:rgba(18,12,8,.97); color:#f6eee5; overflow:hidden; }
#olla-lightbox[open] { display:flex; align-items:center; justify-content:center; }
#olla-lightbox figure { margin:48px 64px; text-align:center; }
#olla-lightbox figure img { display:block; max-width:calc(100vw - 128px); max-height:calc(100dvh - 130px); width:auto; object-fit:contain; margin:auto; border-radius:2px; animation:olla-modal-in .25s; }
#olla-lightbox figcaption { font:12px/1.5 Jost,sans-serif; color:#c8b8a6; margin-top:12px; letter-spacing:1px; }
.olla-lightbox-prev,.olla-lightbox-next { position:absolute; top:50%; background:none; color:#fff; border:0; padding:8px; font:48px/1 Georgia,serif; width:52px; height:64px; }
.olla-lightbox-prev { left:6px; }.olla-lightbox-next { right:6px; }
#olla-reservation { width:min(700px,calc(100vw - 30px)); max-height:calc(100dvh - 32px); background:#fff; color:#333; padding:30px; border-radius:8px; overflow:auto; }
#olla-reservation h2 { color:#261911; font:32px/1.2 Cormorant,Georgia,serif; margin:0 50px 10px 0; }
#olla-reservation p { font:15px/1.6 Jost,sans-serif; color:#555; }
#olla-reservation iframe { border:0; display:block; width:100%; height:560px; min-height:350px; }
#olla-reservation a { color:#76522e; text-decoration:underline; }
/* Original menu design with robust responsive layout and all categories. */
html body #menu-container .menu-section,html body #menu-container .menu-intro { opacity:1 !important; transform:none !important; will-change:auto !important; }
html body #menu-container .menu-section.olla-reveal,html body #menu-container .menu-intro.olla-reveal { opacity:0 !important; transform:translateY(18px) !important; transition:opacity .65s ease,transform .7s ease !important; }
html body #menu-container .menu-section.olla-visible,html body #menu-container .menu-intro.olla-visible { opacity:1 !important; transform:none !important; }
html body #menu-container .menu-item-details { min-width:0; }
html body #menu-container .menu-item-price { min-width:80px; }
html body #menu-container .menu-item { gap:8px; }
html body #menu-container .menu-item-name { overflow-wrap:anywhere; }
html body #menu-container .olla-menu-flyer { margin:0 auto 35px; max-width:683px; width:calc(100% - 40px); }
html body #menu-container .olla-menu-flyer img { display:block; width:100%; height:auto; }
html body #menu-bottom-nav-menu { padding:10px 0 calc(10px + env(safe-area-inset-bottom)) !important; overscroll-behavior-x:contain; touch-action:pan-x pan-y; -webkit-overflow-scrolling:touch; }
html body #menu-bottom-nav-menu a { min-height:44px; display:flex !important; align-items:center; }
html body #menu-bottom-nav-menu a:focus-visible { outline-offset:-3px; }
body[data-page=karte] { padding-bottom:0; }
body[data-page=karte] #qodef-page-content { min-width:0; }
body[data-page=karte] #qodef-page-footer { padding-bottom:15px; }
@media (min-width:1201px) {
 body[data-page=karte] #qodef-page-inner { padding:120px 20px 60px; }
}
@media (max-width:1200px) {
 #qodef-page-mobile-header { z-index:100; }
 #qodef-page-mobile-header-inner { padding-left:24px; padding-right:24px; }
 button.qodef-side-area-mobile-header-opener { border:0; background:transparent; width:48px; height:48px; padding:10px; color:#eee0d1; }
 .qodef-side-area-mobile-header-opener .qodef-m-line { background:currentColor; }
 body[data-page=karte] #qodef-page-mobile-header { background:#261911; }
 body[data-page=karte] #qodef-page-outer { margin-top:0; }
 body[data-page=karte] #qodef-page-inner { padding:20px 24px 35px; }
 body[data-page=karte] #qodef-page-content { width:100%; max-width:100%; }
 body[data-page=karte] #qodef-page-inner > .qodef-content-grid { width:100%; }
}
@media (max-width:880px) {
 .qodef-swiper-container .swiper-slide { flex-basis:calc((100% - 20px)/2); width:calc((100% - 20px)/2) !important; }
 .qodef-swiper-container .swiper-wrapper { gap:20px; }
}
@media (max-width:768px) {
 body[data-page=karte] #qodef-page-inner { padding:0; }
 body[data-page=karte] #qodef-page-outer,body[data-page=karte] #qodef-page-inner { width:100%; max-width:100%; }
 html body #menu-container { max-width:100% !important; border-radius:0 !important; padding-bottom:28px !important; }
 html body #menu-container .menu-main-header { padding:24px 18px !important; }
 html body #menu-container .menu-section,html body #menu-container .menu-intro,html body #menu-container .menu-footnotes { padding:25px 20px !important; scroll-margin-top:18px !important; }
 html body #menu-container .menu-header-content { gap:8px !important; }
 html body #menu-container .menu-main-header .menu-header-content { grid-template-rows:auto !important; }
 html body #menu-container .menu-main-header .menu-title-area { grid-row:1 !important; }
 html body #menu-container .menu-logo { display:none !important; }
 html body #menu-container .menu-section h2 { font-size:1.6em !important; }
 html body #menu-container .menu-item-price { white-space:nowrap !important; font-size:.92em !important; min-width:78px !important; }
 html body #menu-container .menu-special-format .menu-item-price { padding-left:0 !important; }
 html body #menu-bottom-nav-menu ul { gap:8px !important; }
 html body #menu-bottom-nav-menu a { padding:9px 14px !important; }
 #olla-lightbox figure { margin:60px 38px; }
 #olla-lightbox figure img { max-width:calc(100vw - 76px); }
 .olla-lightbox-prev,.olla-lightbox-next { width:36px; font-size:40px; }
 #olla-reservation { padding:22px 16px; }
}
@media (max-width:480px) {
 body[data-page=home] .qodef-custom-font { font-size:60px !important; line-height:.95 !important; }
 html body #menu-container .menu-item-details { margin-right:0 !important; }
 html body #menu-container .menu-item-name { font-size:1em !important; }
 html body #menu-container .menu-section h2 { font-size:1.5em !important; }
}
@media (prefers-reduced-motion:reduce) {
 html {scroll-behavior:auto !important;}
 *,*::before,*::after {animation:none !important;transition:none !important;scroll-behavior:auto !important;}
 .olla-reveal,html body #menu-container .menu-section.olla-reveal,html body #menu-container .menu-intro.olla-reveal {opacity:1 !important;transform:none !important;}
}
/* Match the scripted typography and repair the original tablet hero offset. */
h1.qodef-custom-font { text-transform:none; letter-spacing:0; margin:0; }
.olla-video-poster { display:block; width:100%; height:100%; object-fit:cover; }
@media (min-width:1201px) {
 body[data-page=home] .elementor-element-52fb12a { --width:calc(100% + 320px); }
}
@media (min-width:768px) and (max-width:1200px) {
 body[data-page=home] .elementor-element-52fb12a { --margin-left:0px; --width:100%; }
 body[data-page=home] .elementor-element-e283607 > .elementor-widget-container { padding:0 6% 56px; }
 body[data-page=home] .elementor-element-43b98d1 { --gap:0px 30px; --column-gap:30px; }
}
@media (max-width:767px) {
 body[data-page=home] .elementor-element-52fb12a { --min-height:90svh; }
 body[data-page=home] .elementor-element-9318302 { --margin-left:0px; --margin-right:0px; }
}
/* Language is part of the shared navigation, clear of the menu's bottom dock. */
.olla-language { display:flex; align-items:center; padding:0; gap:2px; border:0; border-radius:0; background:transparent; }
.olla-language a { position:relative; display:flex; align-items:center; justify-content:center; min-height:44px; box-sizing:border-box; padding:0 12px; border-radius:0; color:#aa9480; font:12px/1 Jost,sans-serif; letter-spacing:.08em; text-transform:uppercase; transition:color .25s; }
.olla-language a::after { content:""; position:absolute; left:12px; right:12px; bottom:7px; height:1px; background:currentColor; transform:scaleX(0); transition:transform .25s; }
.olla-language a:hover { color:#e5c6a8; }
.olla-language a.is-active { color:#d6b18e; }
.olla-language a.is-active::after { transform:scaleX(1); }
.olla-language-short { display:none; }
#olla-language-switcher { position:static; inset:auto; align-self:center; flex:0 0 auto; width:auto; margin-top:12px; }
#olla-mobile-language { display:none; }
/* Footer columns share a baseline and cover the template's background rules. */
html body #qodef-page-footer.olla-footer { position:relative; z-index:2; isolation:isolate; box-sizing:border-box; padding:0 !important; margin:0 0 0 calc(291px + var(--vertical-header-offset,29px)); width:calc(100% - 291px - var(--vertical-header-offset,29px)); background:#211710; border-top:1px solid rgba(181,140,103,.22); text-align:left; }
.olla-footer-inner { max-width:1180px; margin:0 auto; padding:44px clamp(24px,5vw,72px) 24px; }
/* Keep the fixed category dock clear within the footer's background. */
body[data-page=karte] .olla-footer-inner { padding-bottom:calc(var(--olla-menu-nav-height,calc(85px + env(safe-area-inset-bottom))) + 40px); }
.olla-footer-brand { display:inline-flex; margin:0 0 30px; }
.olla-footer-brand img { display:block; width:80px; height:auto; }
.olla-footer-columns { display:grid; grid-template-columns:1.15fr 1fr 1.1fr; gap:clamp(24px,3vw,48px); }
.olla-footer-columns section { min-width:0; }
html body .olla-footer h2 { margin:0 0 16px; color:#b58c67; font:14px/1.4 Jost,sans-serif; letter-spacing:.14em; text-transform:uppercase; }
html body .olla-footer p,html body .olla-footer address { margin:0; color:#d0bdac; font:15px/1.85 Jost,sans-serif; font-style:normal; letter-spacing:0; }
.olla-footer a { color:#d0bdac; overflow-wrap:anywhere; transition:color .25s; }
.olla-footer a:hover { color:#f3e3d2; }
.olla-footer-link { display:inline-block; margin-top:14px; font:12px/1.7 Jost,sans-serif; letter-spacing:.05em; }
.olla-footer-bottom { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:36px; padding-top:20px; border-top:1px solid rgba(181,140,103,.2); }
html body .olla-footer-bottom p,.olla-footer-bottom a { font:11px/1.7 Jost,sans-serif; letter-spacing:.06em; }
#olla-legal { scroll-margin-top:100px; }
.olla-gallery-title { text-align:center; color:#d7b89b; margin:0 0 38px; font:46px/1.15 Cormorant,Georgia,serif; }
@media (max-width:1200px) {
 html { scroll-padding-top:90px; }
 html body #qodef-page-mobile-header { position:sticky; top:0; z-index:900; height:76px; background:rgba(38,25,17,.94); backdrop-filter:blur(12px); }
 html body #qodef-page-mobile-header-inner { display:flex; align-items:center; height:76px; padding:0 20px; gap:10px; box-sizing:border-box; }
 html body #qodef-page-mobile-header .qodef-mobile-header-logo-link { padding:0; height:60px; margin:0 auto 0 0; flex-shrink:0; }
 html body #qodef-page-mobile-header .qodef-header-logo-image { height:60px; width:auto; object-fit:contain; }
 #olla-mobile-language { display:flex; flex-shrink:0; gap:6px; }
 #olla-mobile-language a { width:52px; min-height:48px; padding:0; border:1px solid rgba(181,140,103,.7); border-radius:0; background:rgba(255,255,255,.035); color:#ead5c3; font-size:14px; font-weight:500; letter-spacing:.04em; text-transform:none; white-space:nowrap; transition:background .2s,color .2s,border-color .2s; }
 #olla-mobile-language a::after { display:none; }
 #olla-mobile-language a:hover { background:rgba(181,140,103,.16); border-color:#d6b18e; color:#fff2e5; }
 #olla-mobile-language a.is-active { background:#b58c67; border-color:#b58c67; color:#261911; }
 #olla-mobile-language a:focus-visible { outline:2px solid #ead5c3; outline-offset:3px; }
 #olla-mobile-language .olla-language-short { display:inline; }
 #olla-mobile-language .olla-language-name { display:none; }
 html body #qodef-page-mobile-header .qodef-side-area-mobile-header-opener { margin:0; flex-shrink:0; }
 html body #qodef-page-footer.olla-footer { margin-left:0; width:100%; }
 html body #menu-container .menu-section,html body #menu-container .menu-intro { scroll-margin-top:90px !important; }
}
@media (max-width:680px) {
 html body #qodef-page-mobile-header-inner { padding:0 14px; gap:6px; }
 .olla-footer-inner { padding:36px 24px 24px; }
 .olla-footer-brand { margin-bottom:28px; }
 .olla-footer-columns { grid-template-columns:1fr; gap:28px; }
 .olla-footer-bottom { align-items:flex-start; flex-wrap:wrap; gap:12px; margin-top:28px; }
 .olla-gallery-title { font-size:36px; margin-bottom:28px; }
}
@media (min-width:400px) and (max-width:1200px) {
 #olla-mobile-language a { width:auto; min-width:80px; padding:0 12px; }
 #olla-mobile-language .olla-language-short { display:none; }
 #olla-mobile-language .olla-language-name { display:inline; }
}
/* More specific than the original inline stylesheet, loaded later in the body. */
html body #menu-bottom-nav-menu ul li a { display:flex !important; align-items:center !important; justify-content:center !important; box-sizing:border-box !important; height:44px !important; min-height:44px !important; padding:0 18px !important; line-height:20px !important; text-align:center !important; }
html body #menu-bottom-nav-menu ul { align-items:center !important; }
@media (max-width:768px) {
 html body #menu-bottom-nav-menu ul li a { padding:0 14px !important; }
}
