/* Google-Bewertungen: Badge/Liste/Karussell (Material Design 3). Farb-/
 * Typografie-/Elevation-/Shape-Tokens kommen aus dem Twh-Modul (--md-sys-*)
 * — denselben Tokens, die auch Cards\assets\css\cards.css nutzt, damit
 * Radien/Schatten/Schriftgrößen projektweit konsistent bleiben (z. B.
 * .amgr-review-item und .amhp-card teilen sich jetzt denselben
 * --md-sys-shape-corner-large-Radius statt eigener Ad-hoc-Werte).
 */
@import url('../../Twh/assets/css/md3-tokens.generated.css');
@import url('../../Twh/assets/css/md3-base.css');

.amgr-google-reviews-badge,
.amgr-google-reviews-list,
.amgr-google-reviews-badge *,
.amgr-google-reviews-list *,
.amgr-google-reviews-badge *::before,
.amgr-google-reviews-list *::before {
    box-sizing: border-box;
}

/* Wie .amhp-card (siehe cards.css): Farb-Tokens hier lokal auf feste
 * Light-Werte gesperrt statt sie global (--md-sys-color-*) im Dark-Mode
 * umschlagen zu lassen — sonst genau der Backend/Frontend-Farbbruch, der
 * hier zuvor über var(--wp--preset--color--typography) bestand. */
.amgr-google-reviews-badge,
.amgr-google-reviews-list {
    --md-sys-color-surface-container-low: #ffffff;
    --md-sys-color-surface-variant: #f1f1f1;
    --md-sys-color-on-surface: #1a1a1a;
    --md-sys-color-on-surface-variant: #49454f;
    --md-sys-color-outline: #74777f;
    --md-sys-color-outline-variant: #c4c6cf;
}

/* Badge Styling: kompakte, horizontale Karte (Zahl + Sterne in einer Zeile,
 * dezenter "X Bewertungen"-Text darunter) — bewusst ohne Google-Logo oder
 * "(Google) Rating"-Überschrift, siehe amgr-badge.php. */
.amgr-google-reviews-badge {
    display: inline-flex;
    flex-direction: column;
    gap: 0.125rem;
    width: fit-content;
    padding: 0.875rem 1.25rem;
    border: 1px solid var( --md-sys-color-outline );
    border-radius: var( --md-sys-shape-corner-large );
    background: var( --amgr-badge-bg-color, var( --md-sys-color-surface-container-low ) );
    box-shadow: var( --md-sys-elevation-1 );
    text-align: left;
    text-decoration: none;
    margin: 0 auto;
    transition: box-shadow 0.15s ease, transform 0.15s ease;
}

.amgr-google-reviews-badge:hover {
    box-shadow: var( --md-sys-elevation-2 );
    transform: translateY( -1px );
    text-decoration: none;
}

.amgr-badge-rating-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.amgr-google-reviews-badge .amgr-badge-rating {
    font-size: var( --md-sys-typescale-headline-small-size );
    line-height: 1;
    font-weight: 700;
    color: var( --md-sys-color-on-surface );
}

.amgr-google-reviews-badge .amgr-stars {
    line-height: 1;
}

.amgr-google-reviews-badge .amgr-badge-total {
    font-size: var( --md-sys-typescale-body-medium-size );
    color: var( --md-sys-color-on-surface-variant );
    margin: 0;
}

.amgr-stars .amgr-star {
    font-size: 1.125rem;
    margin: 0;
}

.amgr-stars .amgr-star-full {
    color: var( --amgr-star-color, #A05200 );
}

.amgr-stars .amgr-star-empty {
    color: var( --amgr-star-empty-color, #767676 );
}

/* Listen-/Karussell-Styling: dieselbe Card-Optik wie .amhp-card (weißer
 * Untergrund, großer Radius, elevation-1). */
.amgr-google-reviews-list {
    color: var( --md-sys-color-on-surface );
}

.amgr-review-item {
    height: 100%;
    border: 1px solid var( --amgr-border-color, var( --md-sys-color-outline-variant ) );
    border-radius: var( --md-sys-shape-corner-large );
    padding: 1.25rem;
    margin-bottom: 1.25rem;
    background-color: var( --amgr-card-bg-color, var( --md-sys-color-surface-container-low ) );
    box-shadow: var( --md-sys-elevation-1 );
}

.amgr-google-reviews-list > .amgr-review-item:last-child {
    margin-bottom: 0;
}

.amgr-review-header {
    display: flex;
    align-items: center;
    margin-bottom: 0.75rem;
}

.amgr-review-time {
    font-size: var( --md-sys-typescale-body-medium-size );
    color: var( --md-sys-color-on-surface-variant );
}

.amgr-review-author-photo {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: var( --md-sys-shape-corner-full );
    margin-right: 0.75rem;
    object-fit: cover;
}

.amgr-review-author-details {
    display: flex;
    flex-direction: column;
}

.amgr-review-author-name {
    font-size: var( --md-sys-typescale-title-medium-size );
    font-weight: var( --md-sys-typescale-title-medium-weight );
    color: var( --md-sys-color-on-surface );
}

.amgr-review-rating {
    margin-bottom: 0.625rem;
}

.amgr-review-text {
    font-size: var( --md-sys-typescale-body-medium-size );
    line-height: var( --md-sys-typescale-body-medium-line-height );
    color: var( --md-sys-color-on-surface );
}

.amgr-reviews-summary {
    margin: 1.25rem auto;
    font-size: var( --md-sys-typescale-body-medium-size );
    color: var( --md-sys-color-on-surface-variant );
    text-align: center;
}

.amgr-google-reviews-list a.wp-element-button {
    width: fit-content;
}

/* Karussell-Layout (Design: Karussell) — nutzt dieselbe Scroll-Snap-Pfeil-
 * Steuerung wie Modules\Cards (assets/js/carousel.js, generisch über die
 * .amhp-card-collection-Klassen), daher identische Klassennamen UND
 * identische Radien/Schatten-Tokens wie cards.css' .amhp-card-collection--
 * carousel-Regeln. */
.amgr-google-reviews-list .amhp-card-collection {
    position: relative;
}

.amgr-google-reviews-list .amhp-card-collection__track {
    display: flex;
    gap: 1.25rem;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: 0.25rem;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 0.5rem;
    scrollbar-width: none;
}

.amgr-google-reviews-list .amhp-card-collection__track::-webkit-scrollbar {
    display: none;
}

.amgr-google-reviews-list .amhp-card-collection__item {
    flex: 0 0 min( 20rem, 85% );
    scroll-snap-align: start;
}

.amgr-google-reviews-list .amhp-card-collection__item .amgr-review-item {
    margin-bottom: 0;
}

/* Karussell-Karten liegen als Flex-Items in einer gemeinsamen Reihe und
 * strecken sich standardmäßig auf die Höhe der höchsten Karte (align-items:
 * stretch) — eine einzelne sehr lange Rezension würde sonst alle Nachbar-
 * karten unnötig in die Höhe ziehen. Daher hier (nur im Karussell, nicht in
 * der gestapelten Liste) auf max. 10 Zeilen gekürzt. */
.amgr-google-reviews-list .amhp-card-collection__item .amgr-review-text p {
    display: -webkit-box;
    -webkit-line-clamp: 10;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Pfeile + Dots als eigene Reihe UNTER dem Track, linksbündig — identisch
 * zu cards.css' .amhp-card-collection__nav-Regeln (siehe dort für den
 * Kommentar zur Dot-Erzeugung via Cards/assets/js/carousel.js). */
.amgr-google-reviews-list .amhp-card-collection__nav {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-top: 1.25rem;
}

.amgr-google-reviews-list .amhp-card-collection__control {
    position: static;
    z-index: 1;
    display: flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    padding: 0;
    border: none;
    border-radius: var( --md-sys-shape-corner-full );
    background: var( --md-sys-color-surface-container-low );
    color: var( --md-sys-color-on-surface );
    box-shadow: var( --md-sys-elevation-1 );
    font-size: 1.375rem;
    line-height: 1;
    cursor: pointer;
    transition: background-color 0.15s ease;
}

.amgr-google-reviews-list .amhp-card-collection__control:hover {
    background: var( --md-sys-color-surface-variant );
}

.amgr-google-reviews-list .amhp-card-collection__dots {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.amgr-google-reviews-list .amhp-card-collection__dot {
    width: 0.5rem;
    height: 0.5rem;
    padding: 0;
    border: none;
    border-radius: var( --md-sys-shape-corner-full );
    background: var( --md-sys-color-outline-variant );
    cursor: pointer;
    transition: background-color 0.15s ease, width 0.15s ease;
}

.amgr-google-reviews-list .amhp-card-collection__dot:hover {
    background: var( --md-sys-color-on-surface-variant );
}

.amgr-google-reviews-list .amhp-card-collection__dot.is-active {
    width: 1.5rem;
    background: var( --md-sys-color-on-surface );
}
