/* Bewertungsmodul – eigenständig, unabhängig von Swiper und Template-Styles.
   Alle Regeln sind unter #testimonials .rv gekapselt, damit das Template sie nicht überschreibt. */
#testimonials .rv { --rv-star:#fbbc04; --rv-card:rgba(255,255,255,.07); --rv-line:rgba(255,255,255,.18); --rv-gap:24px;
    width:100%; text-align:center; color:inherit; }
#testimonials .rv *, #testimonials .rv *::before, #testimonials .rv *::after { box-sizing:border-box; }
#testimonials .rv p { margin:0; }

#testimonials .rv-summary { display:flex; align-items:center; flex-wrap:wrap; justify-content:center; gap:.25rem .75rem; margin:0 0 2rem; }
#testimonials .rv-summary__score { font-size:2.75rem; font-weight:700; line-height:1; }
#testimonials .rv-summary__stars { font-size:1.5rem; line-height:1; white-space:nowrap; }
#testimonials .rv-summary__count { color:inherit; text-decoration:underline; text-underline-offset:.2em; }

#testimonials .rv-star { display:inline-block; font-style:normal; }
#testimonials .rv-star--full { color:var(--rv-star); }
#testimonials .rv-star--empty { color:var(--rv-line); }
#testimonials .rv-star--half { background:linear-gradient(90deg,var(--rv-star) 50%,var(--rv-line) 50%);
    -webkit-background-clip:text; background-clip:text; color:transparent; }

#testimonials .rv-carousel { position:relative; }
#testimonials .rv-track { display:flex; gap:var(--rv-gap); overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory;
    scroll-behavior:smooth; padding:4px 2px 12px; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
#testimonials .rv-track::-webkit-scrollbar { display:none; }
#testimonials .rv-track:focus-visible { outline:2px solid var(--rv-star); outline-offset:4px; }

#testimonials .rv-card { flex:0 0 85%; scroll-snap-align:start; display:flex; flex-direction:column; gap:.75rem;
    margin:0; padding:1.5rem; text-align:left; background:var(--rv-card); border:1px solid var(--rv-line); border-radius:.5rem; }
@media (min-width:768px)  { #testimonials .rv-card { flex-basis:calc((100% - var(--rv-gap)) / 2); } }
@media (min-width:1200px) { #testimonials .rv-card { flex-basis:calc((100% - 2 * var(--rv-gap)) / 3); } }

#testimonials .rv-card__head { display:flex; align-items:center; gap:.75rem; }
#testimonials .rv-card__meta { display:flex; flex-direction:column; min-width:0; line-height:1.3; }
#testimonials .rv-card__avatar { flex:0 0 44px; width:44px; height:44px; border-radius:50%; display:flex; align-items:center;
    justify-content:center; font-weight:700; font-size:.95rem; background:rgba(255,255,255,.15); }
#testimonials .rv-card__author { color:inherit; font-weight:700; text-decoration:none; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#testimonials a.rv-card__author:hover { text-decoration:underline; }
#testimonials .rv-card__time { font-size:.875rem; opacity:.75; }
#testimonials .rv-card__stars { font-size:1.125rem; line-height:1; letter-spacing:.05em; }
#testimonials .rv-card__text { line-height:1.6; display:-webkit-box; -webkit-line-clamp:7; -webkit-box-orient:vertical; overflow:hidden; }
#testimonials .rv-card__more { margin-top:auto; color:inherit; font-size:.875rem; opacity:.8; text-decoration:underline; }

#testimonials .rv-nav { position:absolute; top:50%; transform:translateY(-50%); z-index:2; width:40px; height:40px; padding:0;
    border-radius:50%; border:1px solid var(--rv-line); background:rgba(0,0,0,.45); color:#fff; font-size:1.6rem; line-height:1; cursor:pointer; }
#testimonials .rv-nav[hidden] { display:none; }
#testimonials .rv-nav:disabled { opacity:.3; cursor:default; }
#testimonials .rv-nav--prev { left:-12px; }
#testimonials .rv-nav--next { right:-12px; }
@media (min-width:1400px) { #testimonials .rv-nav--prev { left:-52px; } #testimonials .rv-nav--next { right:-52px; } }
@media (max-width:767.98px) { #testimonials .rv-nav { display:none; } }

#testimonials .rv-actions { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:1rem 1.5rem; margin-top:1.75rem; }
#testimonials .rv-btn { display:inline-block; color:#fff; background:transparent; border:1px solid #fff; border-radius:2rem;
    padding:.6rem 1.75rem; text-decoration:none; }
#testimonials .rv-btn:hover, #testimonials .rv-btn:focus-visible { background:#fff; color:#212529; }
#testimonials .rv-link { color:inherit; text-decoration:underline; }
#testimonials .rv .rv-note { margin:1.25rem auto 0; max-width:40rem; font-size:.8125rem; opacity:.7; }
#testimonials .rv .rv-empty { margin:0 auto; }
#testimonials .rv a:focus-visible, #testimonials .rv button:focus-visible { outline:2px solid var(--rv-star); outline-offset:3px; }
@media (prefers-reduced-motion:reduce) { #testimonials .rv-track { scroll-behavior:auto; } }
