/* Bewertungs-Bausteine (16.10.2026): Typ-Kennzeichnung (z. B. Google), Seitenzahlen der Rezensionen, Bewertungen-Slider */

.neofire-rating__source {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-left: 8px;
    padding: 2px 8px;
    border: 1px solid #e3e6ea;
    border-radius: 999px;
    background: #fff;
    color: #5b6675;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.4;
    vertical-align: middle;
    white-space: nowrap;
}

.neofire-rating__source svg {
    display: block;
    flex: 0 0 auto;
}

.neofire-rating__source-link,
.neofire-review-slider__source {
    display: inline-block;
    margin-top: 12px;
    color: inherit;
    font-size: 13px;
    text-decoration: underline;
}

.neofire-rating__pages {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 22px 0 4px;
}

.neofire-rating__pages:empty {
    display: none;
}

/* Seiten-Knoepfe wie im Admin: quadratisch 40 px, Pfeile als Chevron */
.neofire-rating__page {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    margin: 0;
    padding: 0 6px;
    border: 1px solid rgba(127, 127, 127, .35);
    border-radius: 8px;
    background: transparent;
    color: inherit;
    font: inherit;
    font-size: 14px;
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
    box-sizing: border-box;
    transition: border-color .16s ease, background-color .16s ease, color .16s ease;
}

.neofire-rating__page svg {
    display: block;
}

.neofire-rating__page:hover {
    border-color: currentColor;
}

.neofire-rating__page[aria-current="page"] {
    border-color: var(--main-button-hover-background, #2f2e33);
    background: var(--main-button-hover-background, #2f2e33);
    color: var(--main-button-hover-color, #ffffff);
    cursor: default;
}

.neofire-rating__page[disabled] {
    opacity: .35;
    pointer-events: none;
    cursor: default;
}

.neofire-rating__gap {
    align-self: center;
    padding: 0 2px;
    opacity: .6;
}

/* Rezensionen immer linksbuendig - auch wenn der Baustein mittig steht; nur die Seitenzahlen bleiben mittig */
.neofire-rating--list,
.neofire-rating--list .neofire-rating__main,
.neofire-rating--list .neofire-rating__entry {
    text-align: left;
}

/* Ueberschriften von Bewertungen und Rezensionen im Einbau: Abstand wie im Shop (die Zone setzt h2 sonst auf margin 0) */
.neofire-zone .neofire-rating > .neofire-rating__heading {
    margin: 0 0 26px;
}

/* Zusammenfassung links, Rezensionen rechts daneben (ein Baustein) */
.neofire-rating-duo {
    display: grid;
    grid-template-columns: minmax(240px, 300px) minmax(0, 1fr);
    gap: 56px;
    align-items: start;
    text-align: left;
}

.neofire-rating-duo > .neofire-rating {
    min-width: 0;
}

@media (max-width: 860px) {
    .neofire-rating-duo {
        grid-template-columns: minmax(0, 1fr);
        gap: 32px;
    }
}

/* Slider: oben immer Luft - mit und ohne Titel (Nutzer 16.10.2026) */
.neofire-review-slider,
.neofire-zone .neofire-review-slider {
    padding-top: 40px;
}

@media (max-width: 760px) {
    .neofire-review-slider,
    .neofire-zone .neofire-review-slider {
        padding-top: 28px;
    }
}

/* Titel ueber dem Slider: Groesse wie bei Bewertungen und Rezensionen, deutlich Luft zu den Karten */
.neofire-review-slider__heading,
#all .neofire-review-slider > .neofire-review-slider__heading,
.neofire-zone .neofire-review-slider > .neofire-review-slider__heading {
    margin: 0 0 32px;
    padding: 0;
    font-size: 28px;
    font-weight: 700;
    line-height: 1.2;
}

@media (max-width: 760px) {
    .neofire-review-slider__heading,
    #all .neofire-review-slider > .neofire-review-slider__heading,
    .neofire-zone .neofire-review-slider > .neofire-review-slider__heading {
        margin-bottom: 24px;
        font-size: 23px;
    }
}

/* Pfeile innerhalb des Sliders: links und rechts Platz, die Pfeile sitzen darin (die Bereichs-Regeln legen sie sonst
   48 px nach aussen - dann ragen sie aus schmalen Spalten heraus, Nutzer 16.10.2026) */
.neofire-review-slider .neofire-lay-gslider:has(> .neofire-lay-gnav) {
    padding: 0 52px;
}

.neofire-review-slider .neofire-lay-gslider .neofire-lay-gprev,
.neofire-zone .neofire-review-slider .neofire-lay-gslider .neofire-lay-gprev.neofire-lay-gprev.neofire-lay-gprev.neofire-lay-gprev,
#all .neofire-review-slider .neofire-lay-gslider .neofire-lay-gprev.neofire-lay-gprev.neofire-lay-gprev {
    left: 0;
}

.neofire-review-slider .neofire-lay-gslider .neofire-lay-gnext,
.neofire-zone .neofire-review-slider .neofire-lay-gslider .neofire-lay-gnext.neofire-lay-gnext.neofire-lay-gnext.neofire-lay-gnext,
#all .neofire-review-slider .neofire-lay-gslider .neofire-lay-gnext.neofire-lay-gnext.neofire-lay-gnext {
    right: 0;
}

@media (max-width: 600px) {
    .neofire-review-slider .neofire-lay-gslider:has(> .neofire-lay-gnav) {
        padding: 0 40px;
    }
}

/* Platz fuer den Schatten der Karten im Slider (sonst schneidet die Spur ihn ab) */
.neofire-review-slider .neofire-lay-gtrack {
    padding: 8px 8px 22px;
    margin: 0 -8px -16px;
    scroll-padding-inline: 8px;
}

/* Karten: weisser Hintergrund, leichter Schatten, kein Rahmen (auch gegen die allgemeinen .card-Regeln des Themes) */
.neofire-review-card,
#all .neofire-review-slider .neofire-lay-gtrack > .neofire-review-card,
#all .neofire-review-slider .neofire-lay-gtrack > .neofire-review-card:hover,
.neofire-zone .neofire-review-slider .neofire-lay-gtrack > .card.neofire-review-card,
.neofire-zone .neofire-review-slider .neofire-lay-gtrack > .card.neofire-review-card:hover {
    display: flex;
    flex-direction: column;
    gap: 10px;
    height: 100%;
    padding: 22px;
    border: 0;
    border-radius: 14px;
    background: #ffffff;
    box-shadow: 0 1px 2px rgba(13, 31, 51, .06), 0 6px 18px rgba(13, 31, 51, .08);
    transform: none;
    color: inherit;
    text-align: left;
    box-sizing: border-box;
}

/* Kopf jeder Karte gleich hoch - Sterne stehen mit und ohne Google-Kennzeichnung auf derselben Linie */
.neofire-review-card__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    min-height: 28px;
}

.neofire-review-card__head .neofire-rating__source {
    margin-left: 0;
}

.neofire-review-card .neofire-rating__stars {
    display: inline-block;
    font-size: 18px;
    line-height: 1;
    letter-spacing: 2px;
    white-space: nowrap;
    background: linear-gradient(90deg, #f5b301 var(--neofire-rating-fill, 0%), #d5d9e0 var(--neofire-rating-fill, 0%));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}

.neofire-review-card__title {
    margin: 0;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.35;
}

.neofire-review-card__text {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 7;
    overflow: hidden;
    margin: 0;
    font-size: 14px;
    line-height: 1.55;
}

.neofire-review-card__foot {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 6px;
    margin-top: auto;
    padding-top: 6px;
    font-size: 13px;
    opacity: .8;
}

.neofire-review-card__foot strong {
    font-weight: 600;
}

.darkmode .neofire-rating__source {
    background: #1b1f24;
    border-color: #343a42;
    color: #e8ebef;
}

.darkmode .neofire-review-card,
.darkmode .neofire-zone .neofire-review-slider .neofire-lay-gtrack > .card.neofire-review-card,
#all.darkmode .neofire-review-slider .neofire-lay-gtrack > .neofire-review-card,
.darkmode #all .neofire-review-slider .neofire-lay-gtrack > .neofire-review-card {
    background: #1b1f24;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 6px 18px rgba(0, 0, 0, .35);
}