/*
 * Product reviews, aligned with the product-page Figma composition.
 * The native Magento list and form remain the only data and submission paths.
 */
.catalog-product-view .koshi-product-reviews {
    border: 0;
    padding: 112px clamp(24px, 4.45vw, 64px);
    background: var(--koshi-mist);
}

/* The old decorative asset baked in a half-star, even for a 5/5 rating. */
.catalog-product-view .koshi-product-review-stars__empty,
.catalog-product-view .koshi-product-review-stars__value {
    background-image: url("../images/koshi-review-card-stars-figma.svg");
}

.catalog-product-view .koshi-product-reviews__inner {
    border: 0;
    border-radius: 0;
    overflow: visible;
}

.catalog-product-view .koshi-product-reviews__heading {
    align-items: flex-start;
    border: 0;
    padding: 0;
    margin: 0 0 80px;
}

.catalog-product-view .koshi-product-reviews__heading h2 {
    font-size: clamp(36px, 3.34vw, 48px);
    line-height: 1.14;
}

.catalog-product-view .koshi-product-reviews__aggregate {
    margin-top: 16px;
}

.catalog-product-view .koshi-product-reviews__write {
    margin-top: 6px;
}

.catalog-product-view .koshi-product-reviews__list-panel,
.catalog-product-view .koshi-product-reviews.is-review-form-open .koshi-product-reviews__list-panel {
    display: block;
    min-height: 0;
    padding: 0;
}

.catalog-product-view .koshi-review-list .review-items {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 32px;
}

.catalog-product-view .koshi-review-list .review-item,
.catalog-product-view .koshi-review-list .review-item:first-child {
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-width: 0;
    min-height: 260px;
    margin: 0;
    border: 0;
    border-radius: var(--koshi-radius);
    padding: 32px;
    background: var(--koshi-paper);
}

.catalog-product-view .koshi-review-item__rating {
    width: 116px;
    height: 19px;
    margin: 0 0 16px;
}

.catalog-product-view .koshi-review-card__stars {
    position: relative;
    display: block;
    width: 116px;
    height: 19px;
}

.catalog-product-view .koshi-review-card__stars::before,
.catalog-product-view .koshi-review-card__stars-value {
    position: absolute;
    inset: 0 auto auto 0;
    display: block;
    width: 116px;
    height: 19px;
    background: url("../images/koshi-review-card-stars-figma.svg") left center / 116px 19px no-repeat;
}

.catalog-product-view .koshi-review-card__stars::before {
    content: "";
    opacity: .24;
}

.catalog-product-view .koshi-review-card__stars-value {
    max-width: 100%;
    overflow: hidden;
}

.catalog-product-view .koshi-review-list .review-title {
    margin: 0 0 8px;
    color: var(--koshi-ink);
    font: 400 17px/1.35 var(--koshi-serif);
}

.catalog-product-view .koshi-review-list .review-content {
    margin: 0;
    color: var(--koshi-ink);
    font: 400 18px/1.35 var(--koshi-sans);
    overflow-wrap: anywhere;
}

.catalog-product-view .koshi-review-card__footer {
    display: flex;
    gap: 12px;
    align-items: center;
    margin-top: 24px;
}

.catalog-product-view .koshi-review-card__avatar {
    flex: 0 0 48px;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: url("../images/koshi-review-card-avatar-figma.png") center / cover no-repeat;
}

.catalog-product-view .koshi-review-card__identity {
    display: flex;
    flex-direction: column;
    min-width: 0;
    color: var(--koshi-soft);
    font: 400 12px/1.35 var(--koshi-sans);
}

.catalog-product-view .koshi-review-card__identity strong {
    color: var(--koshi-ink);
    font-weight: 600;
    overflow-wrap: anywhere;
}

.catalog-product-view .koshi-review-item__context {
    display: flex;
    flex-wrap: wrap;
    gap: 3px 8px;
    margin: 4px 0 0;
    font: inherit;
}

.catalog-product-view .koshi-review-item__context > span + span::before {
    display: none;
}

.catalog-product-view .koshi-review-toolbar {
    display: flex;
    gap: 24px;
    align-items: center;
    justify-content: center;
    margin: 32px 0 0;
}

.catalog-product-view .koshi-review-toolbar__pages {
    display: flex;
    gap: 10px;
    align-items: center;
}

.catalog-product-view .koshi-review-toolbar__dot {
    box-sizing: border-box;
    display: block;
    width: 10px;
    height: 10px;
    border: 1px solid var(--koshi-ink);
    border-radius: 50%;
    background: transparent;
}

.catalog-product-view .koshi-review-toolbar__dot.is-current {
    background: var(--koshi-ink);
}

.catalog-product-view .koshi-review-toolbar__arrow {
    display: block;
    width: 31px;
    height: 31px;
    background: center / contain no-repeat;
}

.catalog-product-view .koshi-review-toolbar__arrow--prev {
    background-image: url("../images/koshi-review-card-arrow-left-figma.svg");
}

.catalog-product-view .koshi-review-toolbar__arrow--next {
    background-image: url("../images/koshi-review-card-arrow-right-figma.svg");
}

.catalog-product-view .koshi-review-toolbar a:focus-visible {
    outline: 2px solid var(--koshi-clay);
    outline-offset: 4px;
}

.catalog-product-view .koshi-product-reviews__form-panel {
    margin-top: 40px;
    border: 0;
    border-radius: var(--koshi-radius);
    padding: clamp(32px, 3.5vw, 48px);
    background: var(--koshi-paper);
}

@media (max-width: 980px) {
    .catalog-product-view .koshi-product-reviews {
        padding-top: 80px;
        padding-bottom: 80px;
    }

    .catalog-product-view .koshi-product-reviews__heading {
        margin-bottom: 56px;
    }

    .catalog-product-view .koshi-review-list .review-items {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 24px;
    }
}

@media (max-width: 620px) {
    .catalog-product-view .koshi-product-reviews {
        padding: 64px 24px;
    }

    .catalog-product-view .koshi-product-reviews__heading {
        gap: 24px;
        margin-bottom: 40px;
        padding: 0;
    }

    .catalog-product-view .koshi-product-reviews__heading h2 {
        font-size: 36px;
    }

    .catalog-product-view .koshi-product-reviews__write {
        margin-top: 0;
    }

    .catalog-product-view .koshi-review-list .review-items {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .catalog-product-view .koshi-review-list .review-item,
    .catalog-product-view .koshi-review-list .review-item:first-child {
        min-height: 240px;
        padding: 28px;
    }

    .catalog-product-view .koshi-product-reviews__form-panel {
        margin-top: 24px;
        padding: 28px 24px;
    }
}
