/* Cascina Bonfiglio — SEZIONE: Recensioni clienti (Figma 18:464). */

.cb-rev {
    position: relative;
    background: #FFFFFF;
    padding: 30px 0 100px;
    box-sizing: border-box;
}

.cb-rev__inner {
    position: relative;
    max-width: 1438px;
    margin: 0 auto;
    padding: 0 20px;
    display: grid;
    grid-template-columns: minmax(280px, 420px) 1fr;
    align-items: center;
    gap: 60px;
}

/* ---------- Heading column ---------- */
.cb-rev__kicker {
    margin: 0;
    font-family: var(--cb-font-body);
    font-weight: 700;
    font-size: 14px;
    line-height: 47px;
    letter-spacing: 1.174px;
    text-transform: uppercase;
    color: var(--cb-text);
}

.cb-rev__title {
    margin: 0 0 24px;
    font-family: var(--cb-font-body);
    font-weight: 400;
    font-size: 36px;
    line-height: 47px;
    letter-spacing: 1.174px;
    color: var(--cb-text);
    max-width: 320px;
}
.cb-rev__title-accent {
    font-family: var(--cb-font-accent); font-style: italic;
    font-weight: 700;
    font-size: 1.35em;
    color: #000000;
    padding-left: .05em;
}

.cb-rev__rating {
    display: flex;
    align-items: center;
    gap: 14px;
}
.cb-rev__rating-star {
    color: #F5A623;
    font-size: 60px;
    line-height: 1;
    font-family: "DM Sans", sans-serif;
}
.cb-rev__rating-num {
    font-family: var(--cb-font-body);
    font-weight: 700;
    font-size: 56px;
    line-height: 1;
    color: var(--cb-text);
}
.cb-rev__rating-count {
    font-family: var(--cb-font-body);
    font-size: 18px;
    color: #7c7c7c;
    margin-left: 4px;
}

/* ---------- Cards ---------- */
.cb-rev__cards {
    display: flex;
    gap: 24px;
    align-items: stretch;
}

.cb-rev__card {
    flex: 1 0 0;
    min-width: 0;
    background: #ffffff;
    border-radius: 20px;
    padding: 28px;
    box-shadow: 0 8px 40px rgba(44, 26, 14, .12);
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.cb-rev__stars {
    color: #F5A623;
    font-size: 18px;
    letter-spacing: 2px;
    font-family: "DM Sans", sans-serif;
}

.cb-rev__text {
    margin: 0;
    font-family: var(--cb-font-body);
    font-style: italic;
    font-weight: 400;
    font-size: 15px;
    line-height: 24px;
    color: #000000;
}

.cb-rev__author {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-top: 4px;
}

.cb-rev__avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #F5A623;
    color: #ffffff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: "DM Sans", sans-serif;
    font-weight: 700;
    font-size: 16px;
    flex-shrink: 0;
}

.cb-rev__name {
    margin: 0;
    font-family: var(--cb-font-body);
    font-weight: 700;
    font-size: 14px;
    color: #000000;
    line-height: 1.35;
}
.cb-rev__loc {
    margin: 0;
    font-family: var(--cb-font-body);
    font-size: 12px;
    color: #7c7c7c;
    line-height: 1.35;
}

/* ---------- Responsive ---------- */
@media (max-width: 1500px) {
    .cb-rev__inner { grid-template-columns: minmax(260px, 360px) 1fr; gap: 40px; padding: 0 30px; }
    .cb-rev__title { font-size: 32px; line-height: 42px; }
    .cb-rev__rating-star { font-size: 48px; }
    .cb-rev__rating-num { font-size: 44px; }
    .cb-rev__cards { gap: 18px; }
    .cb-rev__card { padding: 22px; }
}

@media (max-width: 1280px) {
    .cb-rev { padding: 20px 0 80px; }
    .cb-rev__inner { grid-template-columns: minmax(220px, 280px) 1fr; gap: 28px; }
    .cb-rev__title { font-size: 26px; line-height: 36px; max-width: 240px; margin-bottom: 18px; }
    .cb-rev__rating { gap: 8px; }
    .cb-rev__rating-star { font-size: 36px; }
    .cb-rev__rating-num { font-size: 32px; }
    .cb-rev__rating-count { font-size: 14px; }
    .cb-rev__cards { gap: 14px; }
    .cb-rev__card { padding: 18px; gap: 12px; }
    .cb-rev__text { font-size: 14px; line-height: 21px; }
}

@media (max-width: 1100px) {
    .cb-rev__inner {
        grid-template-columns: 1fr;
        gap: 40px;
        text-align: center;
    }
    .cb-rev__title { max-width: none; }
    .cb-rev__rating { justify-content: center; }
}

@media (max-width: 1024px) {
    .cb-rev__title { font-size: 32px; line-height: 42px; }
    .cb-rev__cards { gap: 16px; }
    .cb-rev__card { padding: 22px; }
}

@media (max-width: 760px) {
    .cb-rev { padding: 20px 0 60px; }
    /* Cliente: "recensioni a carosello centrando anche la scritta".
       Head centrato con max-width ridotto, cards in carosello full-vw snap-center
       (pattern condiviso con categories/bestsellers/combo: vw consistente). */
    .cb-rev__inner { padding: 0 !important; gap: 24px; max-width: none !important; }
    .cb-rev__head {
        display: grid;
        grid-template-columns: 1fr auto;
        grid-template-areas:
            "kicker rating"
            "title  rating";
        align-items: center;
        column-gap: 12px;
        padding: 0 16px;
        text-align: left;
    }
    .cb-rev__kicker { grid-area: kicker; text-align: left; }
    .cb-rev__title {
        grid-area: title;
        font-size: 22px;
        line-height: 1.25;
        text-align: left;
        margin: 0;
        max-width: none;
    }
    .cb-rev__title-accent { font-size: 1.3em; }
    .cb-rev__rating {
        grid-area: rating;
        display: grid;
        grid-template-columns: auto auto;
        grid-template-rows: auto auto;
        column-gap: 6px;
        row-gap: 0;
        align-items: center;
        justify-content: end;
    }
    .cb-rev__rating-star { grid-column: 1; grid-row: 1; font-size: 32px; }
    .cb-rev__rating-num  { grid-column: 2; grid-row: 1; font-size: 32px; }
    .cb-rev__rating-count {
        grid-column: 1 / -1;
        grid-row: 2;
        font-size: 12px;
        margin-left: 0;
        text-align: left;
    }

    .cb-rev__cards {
        flex-direction: row;
        flex-wrap: nowrap;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scroll-padding-inline: 14vw;
        gap: 14px;
        padding: 8px 14vw;
        margin: 0;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }
    .cb-rev__cards::-webkit-scrollbar { display: none; }
    .cb-rev__card {
        flex: 0 0 72vw;
        max-width: 320px;
        scroll-snap-align: center;
        padding: 20px;
        gap: 10px;
        align-items: center;
        text-align: center;
        box-shadow: 0 0px 16px rgba(44, 26, 14, .12);
    }
    .cb-rev__stars { text-align: center; width: 100%; }
    .cb-rev__text { font-size: 14px; line-height: 21px; text-align: center; }
    .cb-rev__author {
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 8px;
        width: 100%;
    }
    .cb-rev__author > div { text-align: center; }
    .cb-rev__name, .cb-rev__loc { text-align: center; }
}
