.review-list { display:flex; flex-direction:column; gap:16px; }
.review-card { display:flex; gap:14px; border:1px solid #e0e0e0; border-radius:4px; padding:14px; }
.review-cast { flex:0 0 80px; text-align:center; }
.review-cast a { text-decoration:none; display:block; }
.review-cast img { width:80px; border-radius:4px; object-fit:cover; display:block; margin:0 auto 6px; transition:opacity 0.2s; }
.review-cast a:hover img { opacity:0.8; }
.review-cast .cast-name { font-size:12px; color:#555; font-weight:bold; }
.review-cast a:hover .cast-name { color:#931d1d; text-decoration:underline; }
.review-body { flex:1; }
.review-stars { color:#e5a000; font-size:16px; margin-bottom:6px; }
.review-date { font-size:11px; color:#999; margin-bottom:6px; }
.review-text { font-size:13px; line-height:1.8; color:#333; }
.review-course { font-size:12px; color:#777; margin-top:6px; }
@media(max-width:640px){
    .review-card { flex-direction:column; gap:10px; }
    .review-cast {
        display:grid;
        grid-template-columns:80px 1fr;
        grid-template-areas:
                "img name"
                "img stars";
        column-gap:10px;
        row-gap:4px;
        text-align:left;
        flex:none;
        align-items:start;
    }
    .review-cast a { display:contents; }
    .review-cast img { grid-area:img; margin:0; height: 80px }
    .review-cast .cast-name { grid-area:name; margin:0; align-self:end; }
    .review-cast .review-stars { grid-area:stars; font-size:14px; margin:0; align-self:start; }
}
