.review-card{background:var(--chalk);border:1px solid var(--border);border-radius:var(--radius-xl);overflow:hidden;transition:box-shadow .22s,transform .22s;cursor:pointer}.review-card:hover{box-shadow:var(--shadow-card);transform:translateY(-2px)}.card-top{display:grid;grid-template-columns:120px 1fr;min-height:160px}@media (max-width:600px){.card-top{grid-template-columns:90px 1fr;min-height:120px}}.card-image{background:var(--steam);position:relative;overflow:hidden}.card-image-inner{width:100%;height:100%;object-fit:cover;display:block}.card-image-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:2.5rem}.card-badge{position:absolute;top:8px;left:8px;background:var(--espresso);color:var(--caramel-light);font-size:.62rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:100px}.card-body{padding:1rem 1.25rem;display:flex;flex-direction:column;justify-content:space-between}.card-header-row{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.4rem}.card-name{font-family:"Playfair Display",serif;font-size:clamp(1rem,2vw,1.2rem);font-weight:700;color:var(--text-main);line-height:1.2}.card-price{font-size:.82rem;color:var(--caramel);font-weight:500;white-space:nowrap}.card-location{font-size:.75rem;color:var(--text-light);margin-bottom:.5rem}.stars-row{display:flex;align-items:center;gap:.4rem;margin-bottom:.6rem}.stars{display:flex;gap:2px}.star{font-size:.85rem;color:var(--star-fill)}.star.empty{color:var(--star-empty)}.rating-number{font-size:.82rem;font-weight:500;color:var(--text-main)}.review-count{font-size:.75rem;color:var(--text-light)}.card-snippet{font-size:.83rem;color:var(--text-muted);line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:.75rem;flex:1}.card-tags{display:flex;gap:.35rem;flex-wrap:wrap}.tag{background:var(--steam);color:var(--text-muted);font-size:.68rem;font-weight:500;letter-spacing:.04em;padding:3px 8px;border-radius:100px;border:1px solid var(--border);text-transform:uppercase}.card-footer{border-top:1px solid var(--border);padding:.75rem 1.25rem;display:flex;justify-content:space-between;align-items:center;gap:.5rem;flex-wrap:wrap;background:var(--milk)}.reviewer-info{display:flex;align-items:center;gap:.5rem}.avatar{width:28px;height:28px;border-radius:50%;background:var(--caramel);display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:500;color:#fff;flex-shrink:0}.reviewer-name{font-size:.78rem;font-weight:500;color:var(--text-main)}.review-date{font-size:.7rem;color:var(--text-light)}.card-actions{display:flex;gap:.4rem}.action-btn{background:0 0;border:1px solid var(--border-strong);color:var(--text-muted);padding:.3rem .7rem;border-radius:100px;font-size:.72rem;font-family:"DM Sans",sans-serif;cursor:pointer;transition:all .15s;white-space:nowrap}.action-btn:hover{background:var(--espresso);border-color:var(--espresso);color:var(--cream)}.action-btn.liked{background:var(--caramel);border-color:var(--caramel);color:#fff}.modal-overlay.open{opacity:1;pointer-events:all}.modal-overlay.open .modal{transform:translateY(0)}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}