.cmr2-reviews{
    --cmr2-primary:#123A63;
    --cmr2-accent:#218BC1;
    --cmr2-text:#344452;
    --cmr2-muted:#6B7785;
    --cmr2-stars:#F7B900;
    --cmr2-border:#D8E0E7;
    --cmr2-radius:14px;
    --cmr2-cards:3;
    --cmr2-lines:5;
    --cmr2-gap:20px;

    width:100%;
    max-width:1440px;
    margin:0 auto;
    padding:8px 0 28px;
    color:var(--cmr2-text);
    font-family:inherit;
    box-sizing:border-box;
}

.cmr2-reviews *,
.cmr2-reviews *::before,
.cmr2-reviews *::after{
    box-sizing:border-box;
}

.cmr2-summary{
    text-align:center;
    padding:2px 12px 28px;
    margin:0 0 30px;
    border-bottom:1px solid var(--cmr2-border);
}

.cmr2-summary-title{
    margin:0 0 9px;
    color:#344452;
    font-family:"Lato", Arial, sans-serif;
    font-size:22px;
    line-height:1.3;
    font-weight:700;
    letter-spacing:0;
}

.cmr2-summary-stars{
    color:var(--cmr2-stars);
    font-family:Arial, Helvetica, sans-serif;
    font-size:40px;
    line-height:1;
    letter-spacing:2px;
}

.cmr2-summary-count{
    margin-top:10px;
    color:var(--cmr2-text);
    font-size:18px;
    line-height:1.45;
}

.cmr2-source-row{
    position:relative;
    margin-top:28px;
    padding:22px 22px 24px;
    border:1px solid var(--cmr2-border);
    border-radius:calc(var(--cmr2-radius) + 4px);
    background:#fff;
    overflow:hidden;
    box-shadow:0 10px 30px rgba(18,58,99,.05);
}

.cmr2-source-row::before{
    content:"";
    position:absolute;
    top:0;
    left:0;
    right:0;
    height:4px;
}

.cmr2-row-google{
    background:linear-gradient(180deg,rgba(66,133,244,.035),#fff 92px);
}

.cmr2-row-google::before{
    background:linear-gradient(90deg,#4285F4 0 35%,#34A853 35% 58%,#FBBC05 58% 78%,#EA4335 78%);
}

.cmr2-row-miodottore{
    background:linear-gradient(180deg,rgba(0,184,156,.045),#fff 92px);
}

.cmr2-row-miodottore::before{
    background:#00B89C;
}

.cmr2-row-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    margin-bottom:17px;
}

.cmr2-row-identity{
    display:flex;
    align-items:center;
    gap:13px;
    min-width:0;
}

.cmr2-source-logo{
    width:46px;
    height:46px;
    flex:0 0 46px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:12px;
    overflow:hidden;
}

.cmr2-logo-google{
    border:1px solid var(--cmr2-border);
    background:#fff;
    padding:9px;
}

.cmr2-logo-miodottore{
    background:#00B89C;
    border:1px solid #00B89C;
}

.cmr2-source-logo img{
    width:100%;
    height:100%;
    display:block;
    object-fit:contain;
}

.cmr2-row-header h3{
    margin:0;
    padding:0;
    color:var(--cmr2-primary);
    font-family:"Libre Baskerville", Georgia, serif;
    font-size:24px;
    line-height:1.2;
    font-weight:700;
}

.cmr2-row-meta{
    margin:5px 0 0;
    color:var(--cmr2-muted);
    font-size:13px;
    line-height:1.4;
}

.cmr2-row-controls{
    display:flex;
    gap:8px;
    flex:0 0 auto;
}

.cmr2-arrow{
    width:40px;
    height:40px;
    border:1px solid var(--cmr2-border);
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#fff;
    color:var(--cmr2-muted);
    font-family:Arial, Helvetica, sans-serif;
    font-size:28px;
    line-height:1;
    cursor:pointer;
    box-shadow:0 2px 7px rgba(0,0,0,.035);
    transition:transform .16s ease,border-color .16s ease,opacity .16s ease;
}

.cmr2-arrow:hover{
    transform:translateY(-1px);
    border-color:var(--cmr2-accent);
}

.cmr2-arrow:disabled{
    opacity:.28;
    cursor:default;
    transform:none;
}

.cmr2-viewport{
    overflow:hidden;
    padding:4px 1px 5px;
}

.cmr2-track{
    display:flex;
    gap:var(--cmr2-gap);
    align-items:stretch;
    transition:transform .38s cubic-bezier(.22,.61,.36,1);
    will-change:transform;
}

.cmr2-card{
    flex:0 0 calc((100% - (var(--cmr2-cards) - 1) * var(--cmr2-gap)) / var(--cmr2-cards));
    min-width:0;
    min-height:275px;
    padding:23px 22px;
    display:flex;
    flex-direction:column;
    border:1px solid var(--cmr2-border);
    border-radius:var(--cmr2-radius);
    background:#fff;
    box-shadow:0 5px 16px rgba(0,0,0,.03);
}

.cmr2-row-google .cmr2-card{
    border-top:3px solid #4285F4;
}

.cmr2-row-miodottore .cmr2-card{
    border-top:3px solid #00B89C;
}

.cmr2-card-head{
    display:grid;
    grid-template-columns:50px minmax(0,1fr);
    gap:13px;
    align-items:center;
    margin-bottom:17px;
}

.cmr2-avatar{
    width:50px;
    height:50px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
    background:#1674A3;
    color:#fff;
    font-size:22px;
    font-weight:700;
    text-transform:uppercase;
}

.cmr2-row-miodottore .cmr2-avatar{
    background:#00A98F;
}

.cmr2-avatar img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}

.cmr2-person{
    min-width:0;
}

.cmr2-name-line{
    display:flex;
    align-items:baseline;
    gap:7px;
    min-width:0;
    flex-wrap:wrap;
}

.cmr2-name{
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    color:var(--cmr2-text);
    font-size:18px;
    line-height:1.2;
    font-weight:700;
}

.cmr2-date{
    color:var(--cmr2-muted);
    font-size:12px;
    white-space:nowrap;
}

.cmr2-card-stars{
    margin-top:7px;
    color:var(--cmr2-stars);
    font-family:Arial, Helvetica, sans-serif;
    font-size:21px;
    letter-spacing:1px;
    line-height:1;
}

.cmr2-comment{
    margin:0;
    color:var(--cmr2-text);
    font-size:16px;
    line-height:1.55;
    overflow-wrap:anywhere;
}

.cmr2-reviews[data-lines]:not([data-lines="0"]) .cmr2-comment{
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:var(--cmr2-lines);
    overflow:hidden;
}

.cmr2-status{
    min-height:18px;
    padding:8px 4px 0;
    text-align:center;
    color:var(--cmr2-muted);
    font-size:13px;
}

.cmr2-status:empty{
    display:none;
}

.cmr2-source-row.is-empty{
    display:none;
}

@media(max-width:1050px){
    .cmr2-reviews{
        --cmr2-cards:2 !important;
    }
}

@media(max-width:700px){
    .cmr2-reviews{
        --cmr2-cards:1 !important;
        padding:4px 0 20px;
    }

    .cmr2-summary{
        padding:0 8px 22px;
        margin-bottom:24px;
    }

    .cmr2-summary-title{
        font-size:20px;
    }

    .cmr2-summary-stars{
        font-size:33px;
        letter-spacing:1px;
    }

    .cmr2-summary-count{
        margin-top:8px;
        font-size:16px;
    }

    .cmr2-source-row{
        margin-top:22px;
        padding:18px 13px 18px;
        border-radius:16px;
    }

    .cmr2-row-header{
        gap:10px;
        margin-bottom:14px;
    }

    .cmr2-row-identity{
        gap:10px;
    }

    .cmr2-source-logo{
        width:42px;
        height:42px;
        flex-basis:42px;
        border-radius:11px;
    }

    .cmr2-row-header h3{
        font-size:20px;
    }

    .cmr2-arrow{
        width:36px;
        height:36px;
        font-size:25px;
    }

    .cmr2-card{
        min-height:255px;
        padding:20px 18px;
    }
}
