/* Keep the banner inside the product's existing col-full container. */
.child-product-reviews {
    clear: both;
    min-width: 0;
    margin: var(--child-product-section-gap, 3rem) 0 0;
    border: 1px solid var(--child-color-border, #d3d3d3);
    border-radius: var(--child-radius-surface, 5px);
    overflow: hidden;
    scroll-margin-top: calc(8rem + var(--wp-admin--admin-bar--height, 0px));
    color: var(--child-color-text, #111);
}

.child-product-reviews [hidden] {
    display: none !important;
}

.child-product-reviews .child-product-reviews-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch;
}

.child-product-reviews .child-product-reviews-carousel {
    min-width: 0;
    padding: 2rem;
    background: var(--child-color-reviews-bg, #f5f5f5);
}

.child-product-reviews #child-product-reviews-title {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin: 0 0 1.5rem;
    color: inherit;
    font-size: clamp(1.5rem, 2.5vw, 2rem);
    font-weight: 600;
    line-height: 1.2;
    overflow-wrap: anywhere;
}

.child-product-reviews .child-product-reviews-title-star {
    flex: 0 0 auto;
    font-size: 1.5em;
    color: var(--child-color-review-stars, #f59f00);
}

.child-product-reviews .child-product-review-window {
    position: relative;
    min-width: 0;
}

.child-product-reviews button.child-product-review-nav {
    position: absolute;
    z-index: 2;
    top: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #000;
    color: #fff;
    box-shadow: none;
    transform: translateY(-50%);
    cursor: pointer;
    transition: opacity 200ms ease;
}

/* Centred on the outer edge of the cards (the track has .25rem padding on every side). */

.child-product-reviews .child-product-review-prev {
    left: calc(.25rem - 20px);
}

.child-product-reviews .child-product-review-next {
    right: calc(.25rem - 20px);
}

/* With a mouse: the arrows fade in while the pointer is over the cards and fade out when it leaves.
   Keyboard focus (:focus-visible) also shows them; a mouse click alone must not keep them visible. */
@media (hover: hover) and (pointer: fine) {
    .child-product-reviews button.child-product-review-nav {
        opacity: 0;
        pointer-events: none;
    }
    .child-product-reviews .child-product-review-window:is(:hover, :has(:focus-visible)) button.child-product-review-nav {
        opacity: 1;
        pointer-events: auto;
    }
    .child-product-reviews .child-product-review-window:is(:hover, :has(:focus-visible)) button.child-product-review-nav:hover {
        opacity: .85;
    }
    .child-product-reviews .child-product-review-window:is(:hover, :has(:focus-visible)) button.child-product-review-nav:disabled {
        opacity: .35;
    }
}

/* Same arrows as the image slider ([mvo_carousel]), inverted: white chevron on black. */
.child-product-reviews .child-product-review-nav .ti {
    display: block;
    font-size: 32px;
}

.child-product-reviews .child-product-review-prev .ti { transform: translateX(-1px); }
.child-product-reviews .child-product-review-next .ti { transform: translateX(1px); }

.child-product-reviews button.child-product-review-nav:hover {
    background: #000;
    color: #fff;
    opacity: .85;
}

.child-product-reviews button.child-product-review-nav:disabled {
    opacity: .35;
    cursor: default;
}

.child-product-reviews .child-product-review-track {
    display: flex;
    align-items: stretch;
    gap: 1rem;
    min-width: 0;
    padding: .25rem; /* Room for the focus outline; same on all sides so the cards sit evenly in the box. */
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x proximity;
    scroll-padding-inline: .25rem;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.child-product-reviews .child-product-review-track::-webkit-scrollbar {
    display: none;
}

.child-product-reviews .child-product-review-card {
    box-sizing: border-box;
    display: flex;
    flex: 0 0 18rem;
    flex-direction: column;
    min-width: 0;
    max-width: calc(100% - 1.5rem);

    margin: 0;
    padding: 1.5rem 1.5rem .75rem;
    border: 1px solid var(--child-color-review-card-border, var(--child-color-border, #dedede));
    border-radius: var(--child-radius-surface, 1rem);
    background: var(--child-color-review-card-bg, #fff);
    color: var(--child-color-review-card-text, var(--child-color-text, #111));
    scroll-snap-align: start;
    overflow-wrap: anywhere;
}

@media (min-width: 1024px) {
    .child-product-reviews .child-product-review-card {
        flex-basis: calc((100% - 3rem) / 3.5);
    }
}

.child-product-reviews .child-product-review-track-enhanced .child-product-review-card {
    height: 16rem;
    max-height: 16rem;
}

.child-product-reviews .child-product-review-card h3 {
    margin: 0 0 .25rem;
    color: inherit;
    font-size: 1.125rem;
    font-weight: 600;
    line-height: 1.35;
}

.child-product-reviews .child-product-review-author-line {
    display: flex;
    align-items: center;
    gap: .5rem;
    min-width: 0;
}

.child-product-reviews .child-product-review-author-line h3 {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.child-product-reviews .child-product-review-rating {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    margin: 0 0 0 auto;
    line-height: 1;
}

/* Native WooCommerce font/geometry, not Storefront's wider Font Awesome stars. */
body.single-product #content div.product .star-rating {
    position: relative;
    overflow: hidden;
    width: max-content;
    white-space: nowrap;
    height: 1em;
    line-height: 1;
    font-family: WooCommerce;
    font-style: normal;
    font-weight: 400;
    letter-spacing: normal;
    color: var(--child-color-review-stars, #f59f00);
}

body.single-product #content div.product .star-rating::before,
body.single-product #content div.product .star-rating span::before {
    position: absolute;
    top: 0;
    left: 0;
    font-family: WooCommerce;
    font-weight: 400;
    line-height: 1;
}

/* Identical glyphs and intrinsic width keep both layers pixel-aligned. */
body.single-product #content div.product .star-rating::before {
    position: static;
    display: block;
    float: none;
    content: "SSSSS";
    color: var(--child-color-border-light, #ddd);
    opacity: 1;
}

body.single-product #content div.product .star-rating span {
    position: absolute;
    top: 0;
    left: 0;
    overflow: hidden;
    padding-top: 1.5em;
}

body.single-product #content div.product .star-rating span::before {
    content: "SSSSS";
    color: var(--child-color-review-stars, #f59f00);
}

body.single-product #content div.product a.child-product-review-stars-link {
    display: inline-flex;
    text-decoration: none;
}

body.single-product #content div.product .child-product-review-stars-link .star-rating {
    float: none;
    margin: 0;
}

/* Reset WooCommerce floats only for the banner's decorative rating groups. */
.child-product-reviews .child-product-review-rating .star-rating,
.child-product-reviews .child-product-reviews-metrics .star-rating {
    display: block;
    float: none;
    flex: 0 0 auto;
    margin: 0;
    font-size: .875rem;
}

.child-product-reviews .child-product-review-copy,
.child-product-reviews .child-product-review-preview {
    min-height: 0;
    margin: 0;
    font-size: .9375rem;
    line-height: 1.6;
}

.child-product-reviews .child-product-review-preview {
    flex: 0 0 auto;
}

.child-product-reviews .child-product-review-copy {
    overflow: hidden;
}

.child-product-reviews .child-product-review-copy p {
    margin: 0 0 .75rem;
}

.child-product-reviews .child-product-review-copy p:last-child {
    margin-bottom: 0;
}


.child-product-reviews .child-product-review-author {
    margin: 0 0 1rem;
    font-size: .8125rem;
    line-height: 1.5;
}

.child-product-reviews .child-product-review-author time {
    display: block;
    margin-top: .25rem;
}

.child-product-reviews .child-product-reviews-summary {
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 2rem;
    min-width: 0;
    padding: 2rem;
    background: var(--child-color-surface, #fff);
}

.child-product-reviews .child-product-reviews-metrics {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
    text-align: center;
}

.child-product-reviews .child-product-reviews-metrics > div {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .625rem;
    min-width: 0;
    overflow-wrap: anywhere;
}

.child-product-reviews .child-product-reviews-number {
    display: block;
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 600;
    line-height: 1.1;
    font-variant-numeric: tabular-nums;
}

.child-product-reviews .child-product-reviews-metrics > div > span {
    font-size: .875rem;
    line-height: 1.4;
}

.child-product-reviews .child-product-reviews-retry {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.75rem;
    padding: .875rem 1rem;
    border: 1px solid var(--child-color-border, #111);
    border-radius: var(--child-radius-control, 999px);
    background: var(--child-color-surface, #fff);
    color: var(--child-color-text, #111);
    box-shadow: none;
    font: inherit;
    font-weight: 600;
    line-height: 1.4;
    text-align: center;
    text-decoration: none;
    overflow-wrap: anywhere;
    cursor: pointer;
}

.child-product-reviews .child-product-reviews-retry:hover {
    background: var(--child-color-surface-muted, #f5f5f5);
    color: var(--child-color-text, #111);
    text-decoration: none;
}

.child-product-reviews .child-product-review-card.is-expanded .child-product-review-copy {
    flex: 1 1 auto;
    overflow-y: auto;
    overscroll-behavior-y: contain;
    scrollbar-width: thin;
}

.child-product-reviews .child-product-review-footer {
    position: sticky;
    bottom: 0;
    display: flex;
    flex: 0 0 auto;
    justify-content: flex-end;
    margin-top: auto;
    padding-top: .5rem;
    background: var(--child-color-review-card-bg, #fff);
}

.child-product-reviews .child-product-review-more {
    display: inline;
    align-self: flex-start;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: inherit;
    box-shadow: none;
    font: inherit;
    font-size: .9375rem;
    font-weight: 600;
    line-height: inherit;
    white-space: nowrap;
    text-decoration: none;
    cursor: pointer;
}

.child-product-reviews .child-product-review-more:hover {
    background: transparent;
    color: inherit;
    text-decoration: none;
}

.child-product-reviews .child-product-reviews-status {
    margin: 0;
    font-size: .875rem;
}

.child-product-reviews .child-product-reviews-status:empty {
    display: none;
}

@media (max-width: 767px) {
    .child-product-reviews .child-product-reviews-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .child-product-reviews .child-product-reviews-carousel,
    .child-product-reviews .child-product-reviews-summary {
        padding: 1.5rem 1rem;
    }

    .child-product-reviews .child-product-review-card {
        padding: 1.25rem 1.25rem .75rem;
    }

    .child-product-reviews .child-product-reviews-summary {
        gap: 1.5rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .child-product-reviews .child-product-review-track {
        scroll-behavior: auto;
        scroll-snap-type: none;
    }

    .child-product-reviews .child-product-review-more,
    .child-product-reviews button.child-product-review-nav,
    .child-product-reviews .child-product-reviews-retry {
        animation: none;
        transition: none;
    }
}

/* "Verifizierter Käufer": badge with a green shield, bottom right of the card. */
.child-product-reviews .child-product-review-verified {
    display: inline-flex;
    align-items: center;
    align-self: flex-end;
    gap: .375rem;
    margin: auto 0 .25rem;
    padding: .25rem .625rem .25rem .5rem;
    border-radius: 999px;
    background: var(--child-color-success-bg, #ebfbee);
    color: var(--child-color-success-text, #2b8a3e);
    font-size: .8125rem;
    font-weight: 600;
    line-height: 1.4;
}
.child-product-reviews .child-product-review-verified .ti { font-size: 1rem; color: var(--child-color-success, #2f9e44); }
/* With "mehr lesen" visible, that footer takes the free space; the badge follows directly below it. */
.child-product-reviews .child-product-review-footer:not([hidden]) + .child-product-review-verified { margin-top: .5rem; }
