:root { --wm-dark:#171717; --wm-gold:#c8a24a; --wm-cream:#f5f2eb; }
.wm-header { position:sticky; top:0; z-index:1000; display:flex; align-items:center; justify-content:space-between; gap:1.25rem; padding:.8rem clamp(1rem,2vw,2rem); background:var(--wm-dark); color:var(--wm-cream); font-family:Montserrat, sans-serif; }
.wm-header a, .wm-legal a { color:inherit; text-decoration:none; }
.wm-header a:hover, .wm-header a[aria-current="page"] { color:var(--wm-gold); }
.wm-header a:focus-visible, .wm-toggle:focus-visible { outline:2px solid var(--wm-gold); outline-offset:4px; }
.wm-logo { flex:none; padding:.55rem clamp(.75rem,2vw,2.75rem); border:1px solid currentColor; text-align:center; text-transform:uppercase; font:600 clamp(.85rem,1.15vw,1.4rem)/1.05 "Playfair Display",Georgia,serif; }
.wm-logo strong { display:block; font-size:1.4em; }
.wm-logo small { font:500 .68em/1.6 Montserrat,sans-serif; letter-spacing:.25em; }
.wm-header nav { display:flex; align-items:center; gap:clamp(.85rem,2vw,2.6rem); }
.wm-header .wm-contact, .wm-toggle { border:0; border-radius:.5rem; padding:.9rem 1rem; background:var(--wm-gold); color:var(--wm-dark); font-weight:650; }
.wm-header .wm-contact:hover { color:var(--wm-dark); background:var(--wm-cream); }
.wm-header button.wm-toggle { display:none; cursor:pointer; }
body.admin-bar .wm-header { top:var(--wp-admin--admin-bar--height,32px); }
body:has(.wm-header) main > .page-header { display:none; }
body:has(.wm-header) #site-header,
.elementor-13 .elementor-element-adad4fd,
.elementor-13 .elementor-element-3727ccb { display:none!important; }
.wm-legal { padding:1rem; background:var(--wm-dark); color:var(--wm-cream); text-align:center; }
#biergarten { scroll-margin-top:2rem; }
@media (max-width:1100px) {
    .wm-header .wm-contact { display:none; }
    .wm-header nav { gap:clamp(.6rem,1.55vw,1.4rem); font-size:clamp(.75rem,1.55vw,1rem); }
    .elementor .e-con, .elementor [data-element_type="e-flexbox"] { min-inline-size:0; max-inline-size:100%; }
    .elementor img { max-inline-size:100%; height:auto; }
    .elementor .elementor-element-efeb5f4 > .e-con-inner,
    .elementor .elementor-element-efeb5f4.e-con-full { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
    .elementor .elementor-element-efeb5f4 .e-con { width:100%; }
    .elementor .gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.8rem; }
    .elementor .gallery .gallery-item { width:100%; max-width:none; margin:0; }
}
@media (max-width:767px) {

    .elementor .elementor-element-43fc607 :is(h1,h2,span) { font-size:clamp(1.75rem,7vw,3.25rem); }
    .elementor .gallery { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .elementor [role="tablist"] { flex-wrap:wrap; max-width:100%; }
    .elementor :is(h1,h2,h3,p) { overflow-wrap:anywhere; }
}
@media (prefers-reduced-motion:no-preference) {
    .wm-header a, .wm-toggle { transition:color .18s ease,background-color .18s ease; }
    .wm-toggle[aria-expanded="true"] + nav { animation:wm-reveal .18s ease-out; }
    @keyframes wm-reveal { from { opacity:0; transform:translateY(-.25rem); } to { opacity:1; transform:translateY(0); } }
}

.wm-gallery { width:min(100%,80rem); margin:0 auto; padding:1rem; display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:.8rem; }
.wm-gallery-track { display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 4rem)/5); gap:1rem; overflow-x:auto; scroll-snap-type:x mandatory; }
.wm-gallery-track > a { display:block; min-width:0; scroll-snap-align:start; }
.wm-gallery-track img { display:block; width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; border-radius:1rem; }
.wm-gallery button { padding:0; width:2.75rem; height:2.75rem; border:0; border-radius:50%; background:var(--wm-gold); color:var(--wm-dark); font-size:1.6rem; cursor:pointer; }
.wm-gallery-more { grid-column:2; justify-self:center; color:var(--wm-dark); text-decoration:underline; }


/* Keep each existing Elementor page within the viewport at its smaller breakpoints. */
@media (max-width: 1024px) {
    body:has(.wm-header) main .elementor { min-width: 0; }
    body:has(.wm-header) .elementor :is(.e-con, .e-con-inner, .elementor-widget) {
        min-inline-size: 0;
        max-inline-size: 100%;
    }
    body:has(.wm-header) .elementor :is(iframe, video, table, input, textarea, select) {
        max-inline-size: 100%;
    }
    body:has(.wm-header) .elementor :is(.elementor-button, .e-button) {
        white-space: normal;
    }
    body:has(.wm-header) .elementor .wpforms-container .wpforms-field input {
        max-width: 100%;
    }
}

@media (max-width: 767px) {
    body:has(.wm-header) .elementor > [data-element_type] {
        box-sizing: border-box;
        max-inline-size: 100%;
    }
    body:has(.wm-header) .elementor :is(.e-con, .e-con-inner) {
        --flex-wrap: wrap;
    }
    body:has(.wm-header) .elementor :is(.e-con, .e-con-inner) > :is(.e-con, .elementor-widget-wpforms) {
        max-inline-size: 100%;
        min-inline-size: 0;
    }
    body:has(.wm-header) .elementor :is([role="tab"], .wpforms-submit) {
        min-height: 44px;
        white-space: normal;
    }
    body:has(.wm-header) .elementor :is(.wpforms-one-half, .wpforms-one-third, .wpforms-two-thirds) {
        float: none;
        width: 100%;
        margin-inline-start: 0;
    }
    body:has(.wm-header) .elementor :is(a, address) {
        overflow-wrap: anywhere;
    }
}

#biergarten { scroll-margin-top:8rem; }
@media (max-width:1100px) {
    body:has(.wm-header) .elementor > [data-element_type] {
        box-sizing:border-box;
        padding-inline:clamp(1.25rem,4vw,2.5rem) !important;
    }
    .elementor .elementor-element-efeb5f4 img {
        width:100%;
        aspect-ratio:4/3;
        height:auto !important;
        object-fit:cover;
    }
}
@media (max-width:767px) {
    .wm-header { gap:.75rem; padding:.55rem 1.25rem; }
    .wm-header button.wm-toggle {
        display:block;
        margin-inline-start:auto;
        min-height:44px;
        padding:.5rem .8rem;
        border:1px solid var(--wm-gold);
        background:var(--wm-gold);
        color:var(--wm-dark);
        font:650 .9rem/1 Montserrat,sans-serif;
    }
    .wm-header nav {
        position:absolute;
        inset:100% 0 auto;
        display:none;
        padding:.6rem 1.25rem;
        background:var(--wm-dark);
        font-size:.9rem;
        max-height:65vh;
        overflow:auto;
    }
    .wm-header .wm-toggle[aria-expanded="true"] + nav { display:grid; gap:0; }
    .wm-header nav a { padding:.75rem .5rem; }
    body:has(.wm-header) .elementor > [data-element_type] {
        min-height:0 !important;
        padding-block:clamp(1.8rem,6vw,3.25rem) !important;
    }
    body:has(.wm-header) .elementor h1 { font-size:clamp(1.7rem,6.5vw,2.4rem) !important; line-height:1.1 !important; }
    body:has(.wm-header) .elementor h2 { font-size:clamp(1.25rem,4.9vw,1.75rem) !important; line-height:1.16 !important; }
    body:has(.wm-header) .elementor h3 { font-size:1rem !important; line-height:1.2 !important; }
    body:has(.wm-header) .elementor p { font-size:.875rem !important; line-height:1.5 !important; }
    body:has(.wm-header) .elementor :is(.elementor-button, .e-button, .e-atomic-element a) { font-size:.825rem; }
    .elementor .elementor-element-efeb5f4 :is(.e-con,.e-con-inner) { gap:.55rem; }
    .elementor .elementor-element-efeb5f4 > :is(.e-con-inner,.e-con) { min-width:0; }
    .elementor .elementor-element-efeb5f4 > .e-con,
    .elementor .elementor-element-efeb5f4 > .e-con-inner > .e-con {
        padding:.65rem !important;
        border-radius:.8rem;
        box-shadow:0 .35rem 1rem #17171733;
    }
    .elementor .elementor-element-6635588,
    .elementor .elementor-element-b1d79ca {
        --flex-direction:row;
        --flex-wrap:wrap;
        gap:.5rem;
    }
    .elementor .elementor-element-b1d79ca > .e-con { flex:1 1 45%; }
}

.wm-gallery-replacement { width:100%; min-width:0; }
.wm-gallery-replacement + :is([data-id="589f9d0"],.elementor-element-589f9d0) { display:none!important; }
.wm-gallery .wm-gallery-track { grid-template-rows:auto; min-width:0; }
@media (max-width:1100px) {
    body:has(.wm-header) .elementor > .elementor-element {
        --wm-gutter:clamp(18px,4vw,36px);
        padding-inline:var(--wm-gutter)!important;
    }
    .elementor-19 .gallery .gallery-icon,
    .elementor-19 .gallery .gallery-icon a { display:block; width:100%; }
    .elementor-19 .gallery .gallery-icon img {
        display:block; width:100%!important; max-width:none!important;
        aspect-ratio:4/3; object-fit:cover; height:auto!important; border-radius:.55rem;
    }
}
@media (max-width:767px) {
    .elementor-13 :is(.elementor-element-9d07000,.elementor-element-84102c8,.elementor-element-efeb5f4),
    .elementor-15 :is(.elementor-element-be9600e,.elementor-element-24ba827) {
        width:100%!important; max-width:none!important; margin-inline:0!important; padding-inline:0!important;
    }
    .elementor-13 .elementor-element-84102c8 > .elementor-element {
        width:100%!important; max-width:none!important;
    }
    .elementor-13 .elementor-element-efeb5f4 :is(.e-con-inner,.e-con) { margin-inline:0!important; }
    .elementor-13 .elementor-element-efeb5f4 > .e-con-inner { padding:0!important; width:100%; }
    .elementor-13 .elementor-element-efeb5f4 :is(h2,h3,h4,h5,h6) {
        font-size:clamp(.85rem,3.8vw,1.1rem)!important;
        letter-spacing:normal!important;
    }
    body:has(.wm-header) .elementor-13 .elementor-element-efeb5f4 p { font-size:.75rem!important; line-height:1.38!important; }
    .elementor-13 .elementor-element-efeb5f4 .elementor-widget-text-editor { padding:0!important; width:100%!important; }
    .elementor-13 .elementor-element-efeb5f4 .elementor-widget-image img { width:100%!important; }
    .elementor-15 [role="tablist"] {
        display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr));
        width:100%!important; padding:0!important; gap:.4rem;
    }
    .elementor-15 [role="tablist"] [role="tab"] {
        width:100%!important; min-width:0!important; white-space:normal!important;
        padding:.45rem .3rem!important; font-size:.8rem!important; line-height:1.25!important;
    }
    .elementor-15 [role="tabpanel"] { width:100%!important; padding-inline:.75rem!important; }
    .elementor-15 .elementor-element-24ba827 :is(.e-con-inner,.elementor-widget) { width:100%!important; }
    .elementor-17 .elementor > .elementor-element,
    .elementor-28 .elementor > .elementor-element { gap:.75rem; }
    body:has(.wm-header) :is(.elementor-17,.elementor-28) > .elementor-element { padding-block:1.5rem!important; }
}


@media (min-width:768px) and (max-width:1024px) {
    /* Atomic Elementor sections also appear without the classic widget classes. */
    body [data-elementor-type="wp-page"]:is([data-elementor-id="13"],[data-elementor-id="15"],[data-elementor-id="17"],[data-elementor-id="19"],[data-elementor-id="26"],[data-elementor-id="28"]) > [data-id] {
        box-sizing:border-box;
        padding-left:clamp(28px,4.2vw,44px)!important;
        padding-right:clamp(28px,4.2vw,44px)!important;
    }

    [data-elementor-id="19"] .elementor-image-gallery .gallery {
        display:grid!important;
        grid-template-columns:repeat(3,minmax(0,1fr));
        gap:16px;
        width:100%;
        margin:0!important;
    }
    [data-elementor-id="19"] .elementor-image-gallery .gallery :is(.gallery-item,.gallery-icon,.gallery-icon a) {
        display:block;
        width:100%!important;
        max-width:none!important;
        min-width:0;
        padding:0!important;
        margin:0!important;
    }
    [data-elementor-id="19"] .elementor-image-gallery .gallery img {
        display:block;
        width:100%!important;
        max-width:none!important;
        height:auto!important;
        aspect-ratio:4/3;
        object-fit:cover;
        border-radius:8px;
    }

}

@media (max-width:1024px) {
    .wm-gallery .wm-gallery-track { grid-auto-columns:calc((100% - 2rem)/3); }
}

@media (max-width:767px) {
    .wm-gallery { padding-inline:0; gap:.4rem; }
    .wm-gallery .wm-gallery-track { gap:.5rem; grid-auto-columns:calc((100% - .5rem)/2); }
}
