/* Go Panda refinements. Keep custom edits here; styles.css is the supplied theme. */
:root { --page-gutter: clamp(1rem, 3vw, 2rem); }
html { scroll-behavior: smooth; scroll-padding-top: 6rem; }
body { font-size: 1rem; line-height: 1.65; }
[hidden] { display: none !important; }
img, video { max-width: 100%; }
.final-menu-pdf { background: var(--paper); padding: clamp(1rem, 3vw, 2.5rem); }
.final-menu-intro { max-width: 80rem; margin: 0 auto clamp(1.5rem, 4vw, 2.5rem); text-align: center; }
.final-menu-intro span { color: var(--lucky); font-size: .75rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; }
.final-menu-intro h1 { color: var(--forest); font-family: 'Zilla Slab', Georgia, serif; font-size: clamp(2.5rem, 6vw, 4.5rem); line-height: 1; margin: .55rem 0 .75rem; }
.final-menu-intro p { color: color-mix(in srgb, var(--forest) 70%, transparent); margin: 0 auto; max-width: 38rem; }
.final-menu-pdf figure { max-width: 1357px; margin: 0 auto clamp(1.5rem, 3vw, 2.5rem); overflow: hidden; border-radius: 1rem; box-shadow: 0 12px 36px #163b2c1f; }
.final-menu-pdf figure a { display: block; background: #fff; }
.final-menu-pdf img { display: block; width: 100%; height: auto; }
.final-menu-pdf figure a:focus-visible { outline: 4px solid var(--lucky); outline-offset: 4px; }
.footer-socials { display: flex; gap: .75rem; padding-top: .75rem; }
.footer-socials a { display: inline-flex; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; border: 1px solid #ffffff33; border-radius: .75rem; color: var(--paper); transition: background-color .2s, border-color .2s, color .2s; }
.footer-socials a:hover, .footer-socials a:focus-visible { background: var(--lucky); border-color: var(--lucky); color: var(--paper); }
.footer-socials svg { width: 1.25rem; height: 1.25rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.footer-socials a:nth-child(2) svg { fill: currentColor; stroke: none; }
button, a, summary { -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
button, summary { cursor: pointer; }
:focus-visible { outline: 3px solid var(--lucky); outline-offset: 5px; }
.skip-link { position: fixed; left: 1rem; top: .75rem; z-index: 100; padding: .75rem 1rem; border-radius: .75rem; background: var(--forest); color: white; transform: translateY(-180%); }
.skip-link:focus { transform: translateY(0); }
#main-content:focus { outline: none; }
main h1 { font-size: clamp(2.4rem, 5.5vw, 4.5rem); line-height: 1.1; text-wrap: balance; overflow-wrap: anywhere; }
main h2, main h3 { overflow-wrap: anywhere; }
main p { text-wrap: pretty; }
main .grid > *, main .flex > div { min-width: 0; }
main .text-forest\/60, main .text-forest\/50 { color: #4d6457; }
main .text-xs, footer .text-xs { font-size: .875rem; line-height: 1.5; }
main .text-\[10px\] { font-size: .75rem; }
nav[aria-label="Hauptnavigation"] { gap: 1rem; }
nav[aria-label="Hauptnavigation"] > a { flex-shrink: 0; }
nav[aria-label="Hauptnavigation"] > div { font-size: .875rem; letter-spacing: .1em; gap: clamp(1rem, 2vw, 2rem); }
#mobile-menu-toggle { min-width: 44px; min-height: 44px; }
#mobile-menu { position: fixed; inset: var(--nav-height, 72px) 0 auto; z-index: 50; max-height: calc(100dvh - var(--nav-height, 72px)); overflow-y: auto; background-color: var(--paper); box-shadow: 0 16px 24px #163b2c12; }
#mobile-menu:not([hidden]) { display: block !important; visibility: visible; opacity: 1; }
#mobile-menu a { min-height: 44px; font-size: .875rem; }
.welcome-hero { isolation: isolate; display: flex; align-items: stretch; min-height: 34rem; height: min(74svh, 46rem); background: var(--forest) url('welcome-poster.jpg') center / cover no-repeat; }
.welcome-hero video { object-position: 50% 42%; }
.hero-shade { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, #0a201514 25%, #0a201538 45%, #0a2015e8 100%); }
.hero-copy { width: 100%; padding: clamp(1.5rem, 5vw, 4rem); padding-top: 6rem; pointer-events: none; }
.hero-copy h1 { max-width: 16ch; }
.hero-copy p { color: #fff8ed; max-width: 39rem; }
.hero-copy > span { font-size: .75rem; line-height: 1.6; color: #ffe29a; background: #163b2ca6; }
.photo-strip { animation: none; padding-bottom: 1rem; }
.menu-category { scroll-margin-top: 6rem; }
.menu-category h3 { line-height: 1.4; hyphens: auto; }
.menu-category p:not([aria-label]) { font-size: 1rem; }
.menu-category [aria-label="Allergene und Zusatzstoffe"] { font-size: .875rem; }
.menu-category .menu-photo { max-height: 44rem; }
summary { min-height: 48px; }
summary > span { min-width: 0; }
summary svg { flex-shrink: 0; }
.deco-edge { animation: none; }
@media (max-width: 1199px) {
 nav[aria-label="Hauptnavigation"] > div { display: none; }
 #mobile-menu-toggle { display: inline-flex; align-items: center; justify-content: center; }
 #mobile-menu:not([hidden]) { display: block; }
}
@media (min-width: 1200px) { #mobile-menu { display: none !important; } }
@media (max-width: 767px) {
 main .px-6, footer .px-6 { padding-inline: var(--page-gutter); }
 main .pt-16 { padding-top: 2.5rem; }
 main .pb-20 { padding-bottom: 3.5rem; }
 main .py-14 { padding-block: 2.5rem; }
 .welcome-hero { height: auto; min-height: 36rem; border-radius: 1.75rem; }
 .welcome-hero video { object-position: 48% 35%; }
 .hero-copy { padding: 1.5rem; padding-top: 7rem; }
 .hero-copy h1 { font-size: clamp(2.3rem, 9vw, 3.4rem); }
 .hero-copy p { font-size: 1rem; }
 [data-page="index"] main > div > section:first-child { padding-top: 1.25rem; padding-bottom: 2.5rem; }
 [data-page="index"] main > div > section:first-child > .grid { gap: .75rem; margin-top: 1.25rem; }
 [data-page="index"] main > div > section:first-child > .grid > a { padding: 1.25rem .75rem; border-radius: 1.25rem; }
 [data-page="index"] main > div > section:first-child > .grid h3 { font-size: 1.125rem; }
 [data-page="gallery"] figure { border-radius: 1.25rem; }
 [data-page="contact"] main .bg-card { padding: 1.25rem; gap: 1rem; }
 [data-page="contact"] main .font-display.text-xl { font-size: 1.125rem; overflow-wrap: anywhere; }
 #pv-badges { gap: .5rem; }
 #pv-badges > span { padding: .5rem .9rem; font-size: .875rem; }
 #pv-hero-img { height: 25rem; }
 .step-row { gap: 1rem; }
 .step-num { width: 2.5rem; }
 .menu-category .grid { gap: 2rem; }
 .menu-category h2 { font-size: clamp(1.8rem, 7vw, 2.4rem); }
}
@media (max-width: 359px) {
 .welcome-hero { min-height: 38rem; }
 [data-page="index"] main > div > section:first-child > .grid { grid-template-columns: 1fr; }
 [data-page="contact"] main .bg-card { flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
 html { scroll-behavior: auto; }
 *, *::before, *::after { animation: none !important; transition: none !important; }
}
/* Reflow for large text, including 200% text-only enlargement. */
nav[aria-label="Hauptnavigation"] { padding-inline: var(--page-gutter); gap: .5rem; }
nav[aria-label="Hauptnavigation"] > div { min-width: 0; flex-wrap: wrap; justify-content: flex-end; }
nav[aria-label="Hauptnavigation"] > a { gap: .5rem; }
nav[aria-label="Hauptnavigation"] > a img { width: 40px; height: 40px; }
#mobile-menu-toggle { flex-shrink: 0; }
#mobile-menu { top: var(--nav-height, 72px); max-height: calc(100dvh - var(--nav-height, 72px)); }
[data-page="contact"] main .bg-card { flex-wrap: wrap; }
[data-page="contact"] main .bg-card > div:last-child { flex: 1 1 12rem; overflow-wrap: anywhere; }
summary > span, #pv-badges > span { overflow-wrap: anywhere; hyphens: auto; }
#pv-badges > span { max-width: 100%; }
#pv-badges svg { flex-shrink: 0; }

/* Show the full buffet rather than cropping the side plates on narrow screens. */
.partyservice-visual #pv-hero-img { height: auto; aspect-ratio: 3 / 2; }
@media (max-width: 767px) {
 .partyservice-visual > div:last-child { position: relative; padding: 1rem; background: var(--forest); }
 .partyservice-visual > div:nth-child(2) { display: none; }
}
