/* ==========================================================================
   Bänder und Sektionen
   ========================================================================== */
.wg-band { padding-inline: var(--wg-pad); }
.wg-band__in { max-width: var(--wg-container); margin-inline: auto; }
.wg-band__in--narrow { max-width: 56rem; }
.wg-band--alt { background: var(--wg-bg-alt); }
.wg-band--center { text-align: center; }
.wg-band--center .wg-rule { margin-inline: auto; }
.wg-section__body > p:empty { display: none; }
.wg-section__body > *:first-child { margin-top: 0; }
.wg-section__body > *:last-child { margin-bottom: 0; }
.wg-section__title { margin: 0; }
.wg-dark .wg-rule { background: linear-gradient(90deg, var(--wg-gold), var(--wg-gold-light)); }
.wg-arrow { display: inline-block; width: 0.45rem; height: 0.45rem; margin-left: 0.5rem; border-top: 2px solid currentColor; border-right: 2px solid currentColor; rotate: 45deg; transition: translate 0.2s ease; }
a:hover .wg-arrow { translate: 0.25rem 0; }
.wg-buttons { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.5rem; }
.wg-sig { margin-top: 1.5rem; }
.wg-sig b { display: block; font-family: var(--wg-font-display); font-size: 1.15rem; }

/* Seitenkopf */
.wg-pagehead { position: relative; isolation: isolate; padding: clamp(3rem, 7vw, 6rem) var(--wg-pad) clamp(2.5rem, 5vw, 4rem); overflow: hidden; }
.wg-pagehead__bg { position: absolute; inset: 0; z-index: -2; }
.wg-pagehead__bg img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.wg-pagehead--image::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(100deg, rgb(27 36 56 / 92%) 20%, rgb(27 36 56 / 55%) 100%); }
.wg-pagehead::after { content: ""; position: absolute; right: -3rem; bottom: -6rem; width: 22rem; height: 22rem; z-index: -1; border-radius: 50%; border: 1px solid rgb(201 162 74 / 25%); pointer-events: none; }
.wg-pagehead__in { max-width: var(--wg-container); margin-inline: auto; }
.wg-pagehead__title { margin: 0; font-size: clamp(2.1rem, 5vw, 3.6rem); color: #fff; max-width: 20ch; }
.wg-pagehead__text { margin: 0; max-width: 60ch; font-size: 1.125rem; line-height: 1.65; color: rgb(255 255 255 / 84%); }
.wg-pagehead__nav ul { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 1.5rem 0 0; padding: 0; list-style: none; }
.wg-pagehead__nav a { display: inline-block; padding: 0.45rem 0.95rem; border: 1px solid rgb(255 255 255 / 35%); border-radius: 999px; color: #fff; font-size: 0.875rem; text-decoration: none; transition: background 0.2s ease, border-color 0.2s ease; }
.wg-pagehead__nav a:hover { background: var(--wg-gold); border-color: var(--wg-gold); color: var(--wg-navy); }

/* Hero */
.wg-hero { position: relative; isolation: isolate; display: flex; align-items: flex-end; min-height: clamp(26rem, 78vh, 52rem); padding: clamp(4rem, 10vw, 8rem) var(--wg-pad) clamp(2.5rem, 7vw, 5.5rem); overflow: hidden; }
@media (max-width: 700px) { .wg-hero { min-height: 30rem; } .wg-hero--image::before { background: linear-gradient(180deg, rgb(27 36 56 / 30%) 0%, rgb(27 36 56 / 20%) 25%, rgb(27 36 56 / 88%) 100%); } }
.wg-hero__slides { position: absolute; inset: 0; z-index: -2; }
/* Slides liegen gestapelt. Das neue Bild blendet ÜBER dem alten ein, das alte
   bleibt bis zum Ende sichtbar — sonst blitzt zwischendurch der dunkle Grund auf. */
.wg-hero__slide {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: var(--wg-hero-pos, center 42%);
    opacity: 0;
    transition: opacity 1.1s ease;
}
.wg-hero__slide.is-active { opacity: 1; }
.wg-hero__slide.is-active.is-current { animation: wg-kenburns 9s ease-out forwards; }
@keyframes wg-kenburns { from { scale: 1.06; } to { scale: 1; } }

/* Punkte */
.wg-hero__dots {
    position: absolute;
    left: var(--wg-pad);
    bottom: clamp(1.25rem, 3vw, 2.25rem);
    z-index: 2;
    display: flex;
    gap: 0.5rem;
}
.wg-hero__dots::before {
    content: "";
    position: absolute;
    inset: -0.75rem -1rem;
    border-radius: 999px;
    background: rgb(27 36 56 / 35%);
    backdrop-filter: blur(6px);
    z-index: -1;
}
.wg-hero__dot {
    width: 2.25rem;
    height: 3px;
    padding: 0;
    border: 0;
    border-radius: 3px;
    background: rgb(255 255 255 / 40%);
    cursor: pointer;
    transition: background 0.3s ease, width 0.3s ease;
}
.wg-hero__dot:hover { background: rgb(255 255 255 / 70%); }
.wg-hero__dot.is-active { background: var(--wg-gold); width: 3.5rem; }
.wg-hero--image::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgb(27 36 56 / 35%) 0%, rgb(27 36 56 / 15%) 35%, rgb(27 36 56 / 85%) 100%), linear-gradient(100deg, rgb(27 36 56 / 55%) 0%, transparent 60%); }
.wg-hero__in { width: 100%; }
.wg-hero__eyebrow { color: var(--wg-gold-light); }
.wg-hero__title { margin: 0; font-size: clamp(2.4rem, 6vw, 4.6rem); line-height: 1.05; color: #fff; max-width: 16ch; text-shadow: 0 2px 30px rgb(0 0 0 / 35%); }
.wg-hero__claim { margin: 1.25rem 0 0; max-width: 42ch; font-size: clamp(1.1rem, 2vw, 1.4rem); line-height: 1.45; color: rgb(255 255 255 / 90%); text-shadow: 0 1px 14px rgb(0 0 0 / 35%); }
.wg-hero__text { margin: 1rem 0 0; color: rgb(255 255 255 / 84%); }
.wg-hero__actions { display: flex; flex-wrap: wrap; gap: 0.9rem; margin-top: 2rem; }
.wg-hero__scroll { position: absolute; right: var(--wg-pad); bottom: 1.5rem; width: 2rem; height: 3rem; border: 1.5px solid rgb(255 255 255 / 45%); border-radius: 999px; }
.wg-hero__scroll span { position: absolute; left: 50%; top: 0.5rem; width: 3px; height: 0.6rem; margin-left: -1.5px; border-radius: 3px; background: var(--wg-gold-light); animation: wg-scroll 2s ease-in-out infinite; }
@keyframes wg-scroll { 0% { translate: 0 0; opacity: 1; } 100% { translate: 0 1.2rem; opacity: 0; } }
@media (max-width: 700px) { .wg-hero__scroll { display: none; } }
@media (prefers-reduced-motion: reduce) { .wg-hero__slide { transition: none; animation: none; } .wg-hero__scroll span { animation: none; } }

/* Teaser-Kacheln */
.wg-teasers-band { padding-block: var(--wg-space); }
.wg-teasers__head { margin-bottom: 2.5rem; }
.wg-teasers { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.25rem, 3vw, 2.5rem); }
.wg-teaser { display: flex; flex-direction: column; text-decoration: none; color: inherit; background: #fff; border-radius: var(--wg-radius); overflow: hidden; box-shadow: var(--wg-shadow); transition: translate 0.25s ease, box-shadow 0.25s ease; }
.wg-teaser:hover { translate: 0 -4px; box-shadow: 0 18px 44px rgb(27 36 56 / 16%); }
.wg-teaser__media { display: block; aspect-ratio: 3 / 2; overflow: hidden; }
.wg-teaser__media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: scale 0.6s ease; }
.wg-teaser:hover .wg-teaser__media img { scale: 1.05; }
.wg-teaser__body { display: flex; flex-direction: column; gap: 0.5rem; padding: 1.5rem 1.6rem 1.6rem; flex: 1; }
.wg-teaser__kicker, .wg-card__kicker { font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: var(--wg-gold-deep); }
.wg-teaser__title, .wg-card__title { font-family: var(--wg-font-display); font-size: clamp(1.3rem, 2vw, 1.6rem); font-weight: 700; line-height: 1.2; color: var(--wg-navy); }
.wg-teaser__text, .wg-card__text { font-size: 0.9375rem; line-height: 1.65; color: var(--wg-text-muted); }
.wg-teaser__link, .wg-card__link { display: inline-flex; align-items: center; margin-top: auto; padding-top: 0.75rem; font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--wg-gold-deep); }
@media (max-width: 800px) { .wg-teasers { grid-template-columns: minmax(0, 1fr); } }

/* Karten */
.wg-cards { display: grid; gap: clamp(1.25rem, 2.5vw, 2rem); margin-block: 2rem; }
.wg-cards--1 { grid-template-columns: 1fr; }
.wg-cards--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.wg-cards--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.wg-cards--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.wg-card { display: flex; flex-direction: column; text-decoration: none; color: inherit; background: #fff; border-radius: var(--wg-radius); overflow: hidden; box-shadow: var(--wg-shadow); border: 1px solid var(--wg-line); transition: translate 0.25s ease, box-shadow 0.25s ease; }
a.wg-card:hover { translate: 0 -4px; box-shadow: 0 18px 44px rgb(27 36 56 / 16%); }
.wg-card__media { display: block; aspect-ratio: 3 / 2; overflow: hidden; }
.wg-card__media img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
.wg-card__body { display: flex; flex-direction: column; gap: 0.4rem; padding: 1.25rem 1.4rem 1.4rem; flex: 1; }
.wg-cards--plain .wg-card { background: transparent; box-shadow: none; border: 0; }
.wg-cards--plain .wg-card__body { padding-inline: 0; }
.wg-cards--plain .wg-card__media { border-radius: var(--wg-radius); }
@media (max-width: 900px) { .wg-cards--3, .wg-cards--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .wg-cards--2, .wg-cards--3, .wg-cards--4 { grid-template-columns: minmax(0, 1fr); } }

/* Text + Bild */
.wg-split { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; margin-block: 1rem; }
.wg-split--left .wg-split__text { order: 2; }
.wg-split__text > *:first-child { margin-top: 0; }
.wg-split__media { margin: 0; }
.wg-split__media img { display: block; width: 100%; height: auto; border-radius: var(--wg-radius); box-shadow: var(--wg-shadow); }
.wg-split--cover .wg-split__media img { aspect-ratio: 4 / 5; object-fit: cover; }
.wg-split--contain .wg-split__media img { box-shadow: none; }
@media (max-width: 800px) { .wg-split { grid-template-columns: minmax(0, 1fr); } .wg-split--left .wg-split__text { order: 0; } }

/* Zitat */
.wg-quote { padding-block: var(--wg-space); }
.wg-quote__in { display: grid; grid-template-columns: minmax(0, 14rem) minmax(0, 1fr); gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.wg-quote__media { margin: 0; }
.wg-quote__media img { display: block; width: 100%; height: auto; border-radius: 50%; aspect-ratio: 1; object-fit: cover; box-shadow: var(--wg-shadow); }
.wg-quote__text { margin: 0; padding: 0; border: 0; }
.wg-quote__text p { margin: 0; font-family: var(--wg-font-display); font-style: italic; font-size: clamp(1.35rem, 2.6vw, 2rem); line-height: 1.4; }
.wg-quote__text p::before { content: "„"; color: var(--wg-gold); }
.wg-quote__text p::after { content: "“"; color: var(--wg-gold); }
.wg-quote__sig { margin-top: 1.25rem; font-family: var(--wg-font); font-size: 0.9375rem; }
.wg-quote__sig b { display: block; }
.wg-quote__sig span { color: var(--wg-text-muted); }
.wg-dark .wg-quote__sig span { color: rgb(255 255 255 / 65%); }
.wg-quote__in:not(:has(.wg-quote__media)) { grid-template-columns: minmax(0, 1fr); }
@media (max-width: 700px) { .wg-quote__in { grid-template-columns: minmax(0, 1fr); } .wg-quote__media { width: 10rem; } }

/* CTA-Band */
.wg-cta { padding-block: clamp(2.5rem, 5vw, 4rem); background: var(--wg-navy) radial-gradient(60% 100% at 100% 50%, rgb(201 162 74 / 18%), transparent 70%) no-repeat; }
.wg-cta__in { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem 3rem; }
.wg-cta__title { margin: 0 0 0.4rem; font-size: clamp(1.5rem, 3vw, 2.2rem); }
.wg-cta__text p { margin: 0; color: rgb(255 255 255 / 80%); }
.wg-cta__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; }

/* Öffnungszeiten / Kontakt / Karte */
.wg-hours { margin: 0; display: grid; gap: 0; }
.wg-hours__row { display: flex; justify-content: space-between; gap: 1.5rem; padding-block: 0.75rem; border-bottom: 1px solid var(--wg-line); }
.wg-hours__row:first-child { border-top: 1px solid var(--wg-line); }
.wg-hours__row dt { font-weight: 700; }
.wg-hours__row dd { margin: 0; text-align: right; }
.wg-hours__row--closed dd { color: var(--wg-text-muted); }
.wg-hours__row--kitchen { font-size: 0.9375rem; color: var(--wg-text-muted); }
.wg-hours__today { display: inline-flex; align-items: center; gap: 0.5rem; margin: 1rem 0 0; padding: 0.4rem 0.9rem; border-radius: 999px; background: var(--wg-navy); color: #fff; font-size: 0.875rem; font-weight: 600; }
.wg-contact__address { margin: 0 0 1rem; font-style: normal; line-height: 1.6; }
.wg-contact__address b { display: block; font-family: var(--wg-font-display); font-size: 1.15rem; }
.wg-contact__reach { display: grid; gap: 0.5rem; margin: 0; }
.wg-contact__reach a { display: grid; grid-template-columns: 5.5rem 1fr; gap: 0.5rem; text-decoration: none; color: var(--wg-text); padding-block: 0.35rem; border-bottom: 1px solid var(--wg-line); }
.wg-contact__reach a span { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--wg-gold-deep); align-self: center; }
.wg-contact__reach a:hover { color: var(--wg-navy); }
.wg-map { position: relative; aspect-ratio: 4 / 3; border-radius: var(--wg-radius); overflow: hidden; background: var(--wg-navy); }
.wg-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.wg-map__cover { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.75rem; padding: 1.5rem; text-align: center; color: #fff; background: var(--wg-navy) url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="80" height="80"><path d="M0 40h80M40 0v80" stroke="%23ffffff10" stroke-width="1"/></svg>'); }
.wg-map__hint { margin: 0; max-width: 34ch; font-size: 0.875rem; color: rgb(255 255 255 / 75%); }
.wg-map__ext { color: var(--wg-gold-light); font-size: 0.875rem; }
.wg-info__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(2rem, 4vw, 4rem); margin-top: 2.5rem; }
.wg-info__grid h3 { margin: 0 0 1rem; }
@media (max-width: 900px) { .wg-info__grid { grid-template-columns: minmax(0, 1fr); } }

/* Galerie + Lightbox */
.wg-gallery { display: grid; gap: 1rem; margin-block: 2rem; }
.wg-gallery--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.wg-gallery--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.wg-gallery--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.wg-gallery__item { margin: 0; }
.wg-gallery__item a { display: block; aspect-ratio: var(--wg-ratio, 3 / 2); overflow: hidden; border-radius: var(--wg-radius); }
.wg-gallery__item img { width: 100%; height: 100%; object-fit: cover; transition: scale 0.6s ease; border-radius: 0; }
.wg-gallery__item a:hover img { scale: 1.04; }
.wg-gallery__item figcaption { margin-top: 0.5rem; font-size: 0.875rem; color: var(--wg-text-muted); }
@media (max-width: 700px) { .wg-gallery--3, .wg-gallery--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.wg-lightbox { position: fixed; inset: 0; z-index: 200; display: grid; place-items: center; padding: 2rem; background: rgb(27 36 56 / 92%); opacity: 0; transition: opacity 0.25s ease; cursor: zoom-out; }
.wg-lightbox--open { opacity: 1; }
.wg-lightbox__figure { margin: 0; max-width: min(92vw, 1400px); max-height: 90vh; text-align: center; }
.wg-lightbox__figure img { max-width: 100%; max-height: 82vh; border-radius: var(--wg-radius); }
.wg-lightbox__figure figcaption { margin-top: 0.75rem; color: #fff; }
.wg-lightbox__close { position: absolute; top: 1rem; right: 1rem; width: 2.75rem; height: 2.75rem; border: 0; border-radius: 50%; background: rgb(255 255 255 / 12%); color: #fff; font-size: 1.6rem; cursor: pointer; }

/* Hinweisbox, Listen */
.wg-notice { margin-block: 2rem; padding: 1.5rem 1.75rem; border-radius: var(--wg-radius); background: var(--wg-bg-alt); border-left: 4px solid var(--wg-gold); }
.wg-notice--navy { background: var(--wg-navy); color: rgb(255 255 255 / 86%); border-left-color: var(--wg-gold); }
.wg-notice--navy h3, .wg-notice--navy a { color: #fff; }
.wg-notice__title { margin: 0 0 0.75rem; }
.wg-notice > :last-child { margin-bottom: 0; }
.wg-list { margin: 1rem 0; padding: 0; list-style: none; columns: 2; column-gap: 2.5rem; }
.wg-list li { position: relative; padding-left: 1.4rem; margin-bottom: 0.55rem; break-inside: avoid; }
.wg-list li::before { content: ""; position: absolute; left: 0; top: 0.55em; width: 0.5rem; height: 0.5rem; border-radius: 50%; background: var(--wg-gold); }
@media (max-width: 640px) { .wg-list { columns: 1; } }

/* Saison-Badge */
.wg-badge { position: fixed; right: 1rem; bottom: 1.25rem; z-index: 90; width: 11rem; height: 11rem; translate: 14rem 0; opacity: 0; transition: translate 0.6s cubic-bezier(.2,.8,.2,1), opacity 0.5s ease; }
.wg-badge.is-in { translate: 0 0; opacity: 1; }
.wg-badge__disc { position: relative; width: 100%; height: 100%; border-radius: 50%; background: radial-gradient(circle at 30% 25%, #F3E7C5, #E2C983 70%, #C9A24A); border: 3px solid var(--wg-navy); box-shadow: 0 12px 30px rgb(0 0 0 / 30%); display: grid; place-items: center; overflow: hidden; }
.wg-badge__slide { position: absolute; inset: 0; display: none; flex-direction: column; align-items: center; justify-content: center; gap: 0.35rem; padding: 1.4rem; text-align: center; color: var(--wg-navy); }
.wg-badge__slide.is-active { display: flex; }
.wg-badge__slide strong { font-family: var(--wg-font-display); font-size: 0.95rem; line-height: 1.25; }
.wg-badge__slide a { font-size: 0.8rem; font-weight: 700; color: var(--wg-navy); }
.wg-badge__close { position: absolute; top: 0; right: 0; width: 1.75rem; height: 1.75rem; border: 0; border-radius: 50%; background: var(--wg-navy); color: #fff; font-size: 1rem; line-height: 1; cursor: pointer; box-shadow: 0 3px 8px rgb(0 0 0 / 25%); }
@media (max-width: 700px) { .wg-badge { width: 8.5rem; height: 8.5rem; bottom: 0.75rem; right: 0.75rem; } .wg-badge__slide strong { font-size: 0.8rem; } }

/* Fluent Forms auf unsere Linie */
.fluentform .ff-el-form-control { border-radius: 10px; border: 1px solid var(--wg-line); padding: 0.7rem 0.9rem; }
.fluentform .ff-el-form-control:focus { border-color: var(--wg-gold); box-shadow: 0 0 0 3px rgb(201 162 74 / 25%); }
.fluentform .ff-btn-submit { background: var(--wg-gold) !important; color: var(--wg-navy) !important; border: 0 !important; border-radius: 999px !important; padding: 0.85rem 1.8rem !important; font-weight: 700 !important; }
.fluentform .ff-el-input--label label { font-weight: 600; }
.wg-form-wrap { background: #fff; border: 1px solid var(--wg-line); border-radius: var(--wg-radius); padding: clamp(1.25rem, 3vw, 2.5rem); box-shadow: var(--wg-shadow); }

/* FAQ-Plugin: Die Fragezeilen des Plugins sind für dunklen Grund gebaut (weiße
   Schrift). Wir nehmen den Hintergrund weg — also auch die Farbe selbst setzen. */
.faq-question { background: transparent !important; font-family: var(--wg-font-display); font-size: 1.1rem; }
.faq-question,
.faq-question a,
.faq-question a:visited,
.faq-question > * { color: var(--wg-navy-ink) !important; }
.faq-question a:hover,
.faq-question a:focus-visible,
.faq-question:hover,
.faq-question:hover > * { color: var(--wg-gold-deep) !important; }
.faq-answer, .faq-body, .faq-content { color: var(--wg-text); }
.faq-answer a, .faq-body a, .faq-content a { color: var(--wg-accent); }
