.mhs-slider {
    --mrs-accent: #d3a044;
    --mrs-text: #252525;
    --mrs-bg: #fffdf9;
    --mrs-slides-per-view: 1;
    --mrs-review-gap: 24px;
    position: relative;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    padding: 4px 0 34px;
    box-sizing: border-box;
    color: var(--mrs-text);
}

.mhs-slider * { box-sizing: border-box; }

.mhs-slider-viewport {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
    border-radius: inherit;
    transition: height .3s ease;
}

.mhs-slider-track {
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-start;
    gap: var(--mrs-review-gap, 24px);
    width: max-content;
    max-width: none;
    transition: transform .55s cubic-bezier(.22,.61,.36,1);
    will-change: transform;
}

.mhs-review-slide {
    flex: 0 0 100%;
    width: 100%;
    min-width: 0;
    padding: 4px 0;
}

.mhs-review-card {
    display: flex;
    align-items: stretch;
    width: 100%;
    max-width: 100%;
    min-height: 0;
    overflow: hidden;
    background: var(--mrs-bg);
    border: 1px solid rgba(211,160,68,.18);
    box-shadow: 0 14px 38px rgba(25,20,13,.10);
}

.mhs-review-media {
    --mrs-image-x: 50%;
    --mrs-image-y: 50%;
    --mrs-global-image-zoom: 1;
    flex: 0 0 51%;
    position: relative;
    align-self: stretch;
    min-width: 0;
    min-height: 1px;
    overflow: hidden;
    background: #eee;
}

.mhs-review-media img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
    object-fit: var(--mrs-item-image-fit, cover);
    object-position: var(--mrs-item-image-x, var(--mrs-image-x)) var(--mrs-item-image-y, var(--mrs-image-y));
    transform-origin: var(--mrs-item-image-x, var(--mrs-image-x)) var(--mrs-item-image-y, var(--mrs-image-y));
    transform: scale(var(--mrs-item-image-zoom, var(--mrs-global-image-zoom, 1)));
    transition: transform .25s ease;
}

.mhs-review-content {
    position: relative;
    flex: 1 1 0;
    min-width: 0;
    padding: clamp(30px, 4vw, 58px) clamp(30px, 4vw, 58px) 28px;
    display: flex;
    flex-direction: column;
}

.mhs-quote-mark {
    position: absolute;
    top: 18px;
    right: 34px;
    font-family: Georgia, serif;
    font-size: 106px;
    line-height: 1;
    color: rgba(25,25,25,.06);
    pointer-events: none;
}

.mhs-review-stars { display:flex; gap:3px; margin-bottom:10px; font-size:21px; line-height:1; }
.mhs-review-stars span { color:#ddd; }
.mhs-review-stars span.is-active { color:var(--mrs-accent); }

.mhs-review-name { margin:0 0 3px; font-size:clamp(24px,2.2vw,31px); font-weight:500; line-height:1.18; color:var(--mrs-text); }
.mhs-review-meta { margin-bottom:22px; color:var(--mrs-accent); font-size:15px; font-weight:500; }

.mhs-review-quote {
    position: relative;
    margin: 0 0 12px;
    font-size: 18px;
    line-height: 1.45;
    font-weight: 600;
    font-style: italic;
    color: var(--mrs-text);
}

.mhs-review-text { font-size:16px; line-height:1.58; color:var(--mrs-text); }
.mhs-review-text p { margin:0 0 12px; }
.mhs-review-text p:last-child { margin-bottom:0; }
.mhs-review-text.mhs-is-collapsible { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:var(--mrs-clamp-lines,7); overflow:hidden; }
.mhs-review-text.mhs-is-collapsible.is-expanded { display:block; overflow:visible; }

.mhs-read-more {
    display: inline-block;
    width: max-content;
    max-width: 100%;
    margin-top: 8px;
    padding: 0;
    border: 0;
    background: none;
    color: var(--mrs-accent);
    font: inherit;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.4;
    cursor: pointer;
    text-decoration: none;
}
.mhs-read-more:hover,.mhs-read-more:focus-visible { text-decoration:underline; }
.mhs-read-more[hidden] { display:none !important; }

.mhs-review-highlight { margin-top:14px; font-size:16px; font-weight:700; line-height:1.5; }
.mhs-review-footer { margin-top:auto; padding-top:24px; display:flex; align-items:center; justify-content:space-between; gap:18px; }
.mhs-review-source { display:inline-flex; align-items:center; gap:10px; color:#71675d; font-size:14px; text-decoration:none !important; }
.mhs-review-source:hover { color:var(--mrs-text); }
.mhs-source-logo { display:block; width:auto; height:22px; max-width:100%; object-fit:contain; flex:0 0 auto; }
.mhs-review-source-google .mhs-source-logo { width:22px; height:22px; }
.mhs-review-source-provenexpert .mhs-source-logo { width:132px; height:auto; }

.mhs-review-link { display:inline-flex; align-items:center; justify-content:center; gap:13px; min-height:42px; padding:9px 21px; border:1px solid var(--mrs-accent); border-radius:5px; color:var(--mrs-accent); text-decoration:none !important; font-size:14px; font-weight:600; transition:.2s ease; white-space:nowrap; }
.mhs-review-link:hover,.mhs-review-link:focus-visible { background:var(--mrs-accent); color:#fff; }

.mhs-slider-arrow { position:absolute; z-index:5; top:calc(50% - 17px); width:52px; height:52px; padding:0; border:0; border-radius:50%; display:flex; align-items:center; justify-content:center; background:#fff; color:#252525; box-shadow:0 7px 22px rgba(0,0,0,.12); cursor:pointer; font-size:25px; line-height:1; transition:transform .2s ease,box-shadow .2s ease,opacity .2s ease; }
.mhs-slider-arrow:hover { transform:scale(1.05); box-shadow:0 9px 28px rgba(0,0,0,.16); }
.mhs-slider-arrow:disabled { opacity:.35; cursor:default; transform:none; }
.mhs-slider-prev { left:max(8px, var(--mrs-arrow-side-offset, 14px)); }
.mhs-slider-next { right:max(8px, var(--mrs-arrow-side-offset, 14px)); }

.mhs-slider-dots { position:absolute; left:50%; bottom:7px; transform:translateX(-50%); display:flex; align-items:center; justify-content:center; gap:11px; }
.mhs-slider-dot { width:10px; height:10px; min-width:10px; min-height:10px; padding:0; border:0; border-radius:50%; background:#d5d5d5; cursor:pointer; transition:transform .2s ease,background .2s ease; }
.mhs-slider-dot.is-active { background:var(--mrs-accent); transform:scale(1.08); }

@media (max-width: 900px) {
    .mhs-review-content { padding:30px; }
    .mhs-slider-arrow { width:46px; height:46px; }
    .mhs-slider-prev { left:max(8px, var(--mrs-arrow-side-offset, 10px)); }
    .mhs-slider-next { right:max(8px, var(--mrs-arrow-side-offset, 10px)); }
}

@media (max-width: 767px) {
    .mhs-slider { padding:4px 0 42px; }
    .mhs-review-card { display:block; min-height:0 !important; }
    .mhs-review-media { width:100%; height:300px; min-height:300px; }
    .mhs-review-content { padding:28px 24px 24px; }
    .mhs-quote-mark { right:20px; top:12px; font-size:82px; }
    .mhs-review-footer { align-items:flex-start; flex-direction:column; }
    .mhs-review-link { width:100%; }
    .mhs-slider-arrow { top:270px; width:44px; height:44px; }
    .mhs-slider-prev { left:max(8px, var(--mrs-arrow-side-offset, 10px)); }
    .mhs-slider-next { right:max(8px, var(--mrs-arrow-side-offset, 10px)); }
}

@media (max-width:480px) {
    .mhs-review-media { height:245px; min-height:245px; }
    .mhs-review-content { padding:24px 20px 22px; }
    .mhs-slider-arrow { top:219px; }
    .mhs-review-name { font-size:25px; }
}

@media (prefers-reduced-motion:reduce) {
    .mhs-slider-track,.mhs-slider-viewport,.mhs-slider-arrow,.mhs-slider-dot,.mhs-review-link { transition:none !important; }
}

/* v1.6.1: Auf Desktop folgt die Bildspalte immer exakt der Karten-/Texthöhe. */
@media (min-width: 768px) {
    .mhs-review-card {
        align-items: stretch !important;
    }
    .mhs-review-media {
        height: auto !important;
        min-height: 0 !important;
        align-self: stretch !important;
    }
}

@media (max-width: 767px) {
    .mhs-review-media {
        height: var(--mrs-mobile-image-height, 300px) !important;
        min-height: var(--mrs-mobile-image-height, 300px) !important;
    }
}

@media (max-width: 480px) {
    .mhs-review-media {
        height: var(--mrs-mobile-image-height, 245px) !important;
        min-height: var(--mrs-mobile-image-height, 245px) !important;
    }
}

/* v1.7.2: feste Sliderhöhe + vollständige Bewertung im Popup */
.mhs-slider-viewport { height: auto !important; transition: none !important; }
.mhs-slider-track { align-items: stretch; }
.mhs-review-slide { height: auto; }
.mhs-review-card { height: 540px; min-height: 0 !important; }
.mhs-review-media { height: 100% !important; min-height: 0 !important; }
.mhs-review-content { height: 100%; overflow: hidden; }
.mhs-review-text.mhs-is-collapsible { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: var(--mrs-clamp-lines,7); overflow: hidden; }
.mhs-read-more { flex: 0 0 auto; }

html.mhs-modal-open, body.mhs-modal-open { overflow: hidden !important; }
.mhs-review-modal[hidden] { display: none !important; }
.mhs-review-modal {
    position: fixed;
    inset: 0;
    z-index: 999999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    color: var(--mrs-text);
}
.mhs-review-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.58);
    backdrop-filter: blur(3px);
}
.mhs-review-modal-dialog {
    position: relative;
    z-index: 1;
    width: min(1180px, calc(100vw - 48px));
    height: min(820px, calc(100vh - 48px));
    max-width: 100%;
    max-height: calc(100vh - 48px);
    overflow: hidden;
    padding: 0;
    background: var(--mrs-bg, #fffdf9);
    color: inherit;
    border-radius: 18px;
    box-shadow: 0 24px 80px rgba(0,0,0,.28);
}
.mhs-review-modal-content {
    width: 100%;
    height: 100%;
    min-height: 0;
}

/* Komplett neutralisiert, damit Theme/Elementor keinen pinken Button-Stil vererbt. */
.mhs-review-modal-close,
.mhs-review-modal-close:hover,
.mhs-review-modal-close:focus,
.mhs-review-modal-close:active {
    -webkit-appearance: none !important;
    appearance: none !important;
    position: absolute !important;
    top: 14px !important;
    right: 14px !important;
    z-index: 50 !important;
    width: 42px !important;
    min-width: 42px !important;
    max-width: 42px !important;
    height: 42px !important;
    min-height: 42px !important;
    max-height: 42px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 1px solid rgba(0,0,0,.12) !important;
    border-radius: 50% !important;
    background: #fff !important;
    background-image: none !important;
    color: #252525 !important;
    box-shadow: 0 4px 16px rgba(0,0,0,.14) !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 28px !important;
    font-weight: 400 !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    text-decoration: none !important;
    text-shadow: none !important;
    cursor: pointer !important;
}
.mhs-review-modal-close:hover { transform: scale(1.04); }
.mhs-review-modal-close:focus-visible { outline: 2px solid currentColor !important; outline-offset: 2px; }

/* Popup übernimmt die gleiche 51/49-Aufteilung wie der Slider. Die rechte
   Textspalte scrollt unabhängig, damit wirklich die komplette Bewertung
   erreichbar bleibt und das Bild stehen bleibt. */
.mhs-review-modal .mhs-popup-card {
    display: flex !important;
    align-items: stretch !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    overflow: hidden !important;
    border-radius: inherit;
    box-shadow: none;
}
.mhs-review-modal .mhs-popup-media {
    flex: 0 0 51% !important;
    width: 51% !important;
    height: 100% !important;
    min-height: 0 !important;
    align-self: stretch !important;
    overflow: hidden !important;
}
.mhs-review-modal .mhs-popup-media img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}
.mhs-review-modal .mhs-popup-content {
    flex: 1 1 49% !important;
    width: 49% !important;
    height: 100% !important;
    min-height: 0 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    padding-bottom: 38px;
}
.mhs-review-modal .mhs-popup-full-text,
.mhs-review-modal .mhs-popup-full-text.mhs-is-collapsible {
    display: block !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    -webkit-line-clamp: unset !important;
    -webkit-box-orient: initial !important;
    white-space: normal !important;
}
.mhs-review-modal .mhs-popup-full-text p {
    display: block !important;
    max-height: none !important;
    overflow: visible !important;
}
.mhs-review-modal .mhs-popup-footer { margin-top: 28px; }

@media (max-width: 767px) {
    .mhs-review-card { height: 680px; display: flex !important; flex-direction: column; }
    .mhs-review-media {
        flex: 0 0 var(--mrs-mobile-image-height, 280px) !important;
        width: 100%;
        height: var(--mrs-mobile-image-height, 280px) !important;
        min-height: 0 !important;
    }
    .mhs-review-content { flex: 1 1 auto; min-height: 0; height: auto; }
    .mhs-slider-arrow { top: calc(var(--mrs-mobile-image-height, 280px) / 2 - 22px); }

    .mhs-review-modal { padding: 12px; }
    .mhs-review-modal-dialog {
        width: calc(100vw - 24px);
        height: calc(100vh - 24px);
        max-height: calc(100vh - 24px);
        border-radius: 14px;
    }
    .mhs-review-modal .mhs-popup-card {
        height: 100% !important;
        min-height: 0 !important;
        display: flex !important;
        flex-direction: column !important;
    }
    .mhs-review-modal .mhs-popup-media {
        flex: 0 0 min(34vh, var(--mrs-mobile-image-height, 280px)) !important;
        width: 100% !important;
        height: min(34vh, var(--mrs-mobile-image-height, 280px)) !important;
        min-height: 0 !important;
    }
    .mhs-review-modal .mhs-popup-content {
        flex: 1 1 auto !important;
        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        overflow-y: auto !important;
    }
    .mhs-review-modal-close,
    .mhs-review-modal-close:hover,
    .mhs-review-modal-close:focus,
    .mhs-review-modal-close:active {
        top: 10px !important;
        right: 10px !important;
        width: 38px !important;
        min-width: 38px !important;
        max-width: 38px !important;
        height: 38px !important;
        min-height: 38px !important;
        max-height: 38px !important;
        font-size: 25px !important;
    }
}


/* v1.8.0: 1 oder 2 Bewertungen gleichzeitig. */
.mhs-slider[data-mrs-two-up="1"] .mhs-review-content {
    padding-left: clamp(22px, 2.3vw, 38px);
    padding-right: clamp(22px, 2.3vw, 38px);
}
.mhs-slider[data-mrs-two-up="1"] .mhs-review-name {
    font-size: clamp(22px, 1.65vw, 28px);
}
.mhs-slider[data-mrs-two-up="1"] .mhs-review-text {
    font-size: 15px;
}
.mhs-slider[data-mrs-two-up="1"] .mhs-review-footer {
    gap: 10px;
}
.mhs-slider[data-mrs-two-up="1"] .mhs-review-source {
    gap: 7px;
}
.mhs-slider[data-mrs-two-up="1"] .mhs-review-link {
    padding-left: 13px;
    padding-right: 13px;
}


.mhs-slider-arrow[hidden], .mhs-slider-dot[hidden] { display: none !important; }

/* v1.9.0: echtes responsives Kartenlayout.
   Auf Mobilgeräten wird die Bildhöhe von der festen Kartenhöhe abgezogen,
   damit Textbereich und Footer vollständig innerhalb der Karte bleiben. */
@media (max-width: 767px) {
    .mhs-review-card:not(.mhs-popup-card) {
        display: flex !important;
        flex-direction: column !important;
    }
    .mhs-review-card:not(.mhs-popup-card) > .mhs-review-media {
        flex: 0 0 var(--mrs-mobile-image-height, 300px) !important;
        width: 100% !important;
        height: var(--mrs-mobile-image-height, 300px) !important;
        min-height: var(--mrs-mobile-image-height, 300px) !important;
    }
    .mhs-review-card:not(.mhs-popup-card) > .mhs-review-content {
        flex: 1 1 auto !important;
        height: auto !important;
        min-height: 0 !important;
        overflow: hidden;
    }
    .mhs-review-card:not(.mhs-popup-card) .mhs-review-text-wrap {
        min-height: 0;
    }
}

@media (max-width: 480px) {
    .mhs-review-card:not(.mhs-popup-card) > .mhs-review-media {
        flex-basis: var(--mrs-mobile-image-height, 245px) !important;
        height: var(--mrs-mobile-image-height, 245px) !important;
        min-height: var(--mrs-mobile-image-height, 245px) !important;
    }
}

/* v1.9.2: Der Kartenabstand wird als echter Flex-Gap umgesetzt.
   Die exakte Kartenbreite wird per JS berechnet, damit 1 oder 2 Karten
   inklusive frei einstellbarem Abstand immer exakt in den Container passen. */
.mhs-slider-track { column-gap: var(--mrs-review-gap, 24px) !important; }
.mhs-review-slide { padding-left: 0 !important; padding-right: 0 !important; }


/* Individuelle Smartphone-Bildausschnitte pro Bewertung */
@media (max-width: 767px) {
    .mhs-review-media img {
        object-position: var(--mrs-mobile-item-image-x, var(--mrs-item-image-x, var(--mrs-image-x))) var(--mrs-mobile-item-image-y, var(--mrs-item-image-y, var(--mrs-image-y)));
        transform-origin: var(--mrs-mobile-item-image-x, var(--mrs-item-image-x, var(--mrs-image-x))) var(--mrs-mobile-item-image-y, var(--mrs-item-image-y, var(--mrs-image-y)));
        transform: scale(var(--mrs-mobile-item-image-zoom, var(--mrs-item-image-zoom, var(--mrs-global-image-zoom, 1))));
    }
}


/* v1.9.5: exakte Zwei-Karten-Geometrie und sichere Pfeilposition */
.mhs-slider { overflow: visible; }
.mhs-slider-viewport { overflow: hidden; contain: paint; }
.mhs-slider-track { flex-wrap: nowrap !important; max-width: none !important; }
.mhs-review-slide { min-width: 0 !important; max-width: none; }
.mhs-slider-prev { left: max(8px, var(--mrs-arrow-side-offset, 14px)) !important; }
.mhs-slider-next { right: max(8px, var(--mrs-arrow-side-offset, 14px)) !important; }
\n\n/* v1.9.6: Plattformbereich bei fester Kartenhöhe immer sichtbar halten.\n   Der Textbereich darf schrumpfen, Footer/Logo dagegen nicht. */\n.mhs-review-card:not(.mhs-popup-card) > .mhs-review-content {\n    min-height: 0 !important;\n    overflow: hidden !important;\n}\n.mhs-review-card:not(.mhs-popup-card) .mhs-review-text-wrap {\n    min-height: 0 !important;\n    flex: 0 1 auto;\n    overflow: hidden;\n}\n.mhs-review-card:not(.mhs-popup-card) .mhs-review-text {\n    min-height: 0;\n}\n.mhs-review-card:not(.mhs-popup-card) .mhs-review-footer {\n    flex: 0 0 auto !important;\n    min-height: max-content;\n    margin-top: auto !important;\n    position: relative;\n    z-index: 3;\n    background: var(--mrs-bg);\n}\n.mhs-review-card:not(.mhs-popup-card) .mhs-review-source,\n.mhs-review-card:not(.mhs-popup-card) .mhs-review-link {\n    flex-shrink: 0;\n}\n.mhs-review-card:not(.mhs-popup-card) .mhs-source-logo {\n    flex-shrink: 0;\n    max-height: 100%;\n}\n\n/* Bei zwei Karten etwas weniger vertikalen Platz im Footer verbrauchen. */\n.mhs-slider[data-mrs-two-up="1"] .mhs-review-footer {\n    padding-top: min(18px, var(--mrs-footer-spacing, 18px));\n}\n
/* v2.0.0: Auto-Fit. Der Slider nutzt die Größe seines Elementor-Widget-Containers.
   Die Kartenhöhe wird per JS aus dem tatsächlich benötigten sichtbaren Inhalt ermittelt.
   Dadurch bleiben alle Slides gleich hoch, ohne Footer/Logos/Text abzuschneiden. */
.mhs-slider.mhs-auto-layout {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto;
    margin-left: 0 !important;
    margin-right: 0 !important;
}
.mhs-slider.mhs-auto-layout .mhs-slider-viewport {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: hidden;
}
.mhs-slider.mhs-auto-layout .mhs-slider-track {
    align-items: stretch !important;
}
.mhs-slider.mhs-auto-layout .mhs-review-slide {
    height: auto !important;
    min-height: 0 !important;
}
.mhs-slider.mhs-auto-layout .mhs-review-card:not(.mhs-popup-card) {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    align-items: stretch !important;
}
.mhs-slider.mhs-auto-layout .mhs-review-content:not(.mhs-popup-content) {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
}
.mhs-slider.mhs-auto-layout .mhs-review-footer:not(.mhs-popup-footer) {
    flex-shrink: 0 !important;
}
.mhs-slider.mhs-auto-layout .mhs-review-source,
.mhs-slider.mhs-auto-layout .mhs-review-link,
.mhs-slider.mhs-auto-layout .mhs-source-logo {
    flex-shrink: 0;
}
@media (min-width: 768px) {
    .mhs-slider.mhs-auto-layout .mhs-review-media:not(.mhs-popup-media) {
        height: auto !important;
        min-height: 0 !important;
        align-self: stretch !important;
    }
}
@media (max-width: 767px) {
    .mhs-slider.mhs-auto-layout .mhs-review-card:not(.mhs-popup-card) {
        display: flex !important;
        flex-direction: column !important;
    }
    .mhs-slider.mhs-auto-layout .mhs-review-media:not(.mhs-popup-media) {
        flex: 0 0 auto !important;
        width: 100% !important;
        /* automatische Bildhöhe statt eines festen manuellen Pixelwerts */
        height: clamp(190px, 52vw, 320px) !important;
        min-height: 190px !important;
    }
    .mhs-slider.mhs-auto-layout .mhs-review-content:not(.mhs-popup-content) {
        flex: 1 1 auto !important;
    }
}
