/* --- Reviews Widget (Module 18) --- */
.reviews-widget { overflow: hidden; }
.reviews-header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-4); margin-bottom: var(--space-5); flex-wrap: wrap; }
.reviews-header-text h2 { margin: 0 0 5px 0; }
.reviews-header-text p { margin: 0; color: var(--color-text-secondary); font-size: var(--text-sm); }

.reviews-aggregate { display: flex; flex-direction: column; align-items: center; gap: 4px; background: var(--color-bg-card-alt); padding: 12px 20px; border-radius: var(--radius-md); text-align: center; min-width: 130px; }
.aggregate-score { font-size: 36px; font-weight: 800; color: var(--color-primary); line-height: 1; }
.aggregate-stars { display: flex; align-items: center; gap: 3px; flex-wrap: wrap; justify-content: center; }
.reviews-count { font-size: var(--text-sm); color: var(--color-text-secondary); width: 100%; text-align: center; }
.aggregate-source { font-size: 11px; color: var(--color-primary); text-decoration: none; }
.aggregate-source:hover { text-decoration: underline; }

/* Star styles */
.star { color: var(--color-border); font-size: 16px; }
.star--filled { color: #f59e0b; }

/* Slider */
.reviews-slider { position: relative; overflow: hidden; }
.reviews-track { display: flex; transition: transform 0.4s cubic-bezier(0.4,0,0.2,1); }
.review-card { background: var(--color-bg-card); border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: var(--space-4); width: 100%; flex: 0 0 100%; box-sizing: border-box; }
.review-card-header { display: flex; align-items: flex-start; gap: var(--space-3); margin-bottom: var(--space-3); }
.review-avatar { width: 48px; height: 48px; background: var(--color-primary); color: white; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 20px; font-weight: bold; flex-shrink: 0; }
.review-meta { flex: 1; }
.review-author { display: block; font-weight: 600; }
.review-location { display: block; font-size: var(--text-sm); color: var(--color-text-secondary); margin-bottom: 4px; }
.review-stars { display: flex; gap: 2px; }
.review-date { font-size: var(--text-sm); color: var(--color-muted); white-space: nowrap; }
.review-text { margin: 0 0 var(--space-2) 0; font-style: italic; color: var(--color-text); border-left: 3px solid var(--color-primary); padding-left: var(--space-3); }
.review-source { font-size: 11px; color: var(--color-muted); }

/* Slider Nav */
.slider-nav { display: flex; align-items: center; justify-content: center; gap: var(--space-3); margin-top: var(--space-4); }
.slider-btn { background: var(--color-bg-card-alt); border: 1px solid var(--color-border); border-radius: 50%; width: 36px; height: 36px; cursor: pointer; font-size: 16px; display: flex; align-items: center; justify-content: center; transition: var(--transition-fast); color: var(--color-text); }
.slider-btn:hover { background: var(--color-primary); color: white; border-color: var(--color-primary); }
.slider-dots { display: flex; gap: 6px; }
.slider-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--color-border); cursor: pointer; transition: var(--transition-fast); }
.slider-dot--active { background: var(--color-primary); width: 20px; border-radius: 4px; }

/* CTA */
.reviews-cta { display: flex; gap: var(--space-3); margin-top: var(--space-5); flex-wrap: wrap; }

/* Stats block (Шаг 176) */
.stats-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: var(--space-4); text-align: center; padding: var(--space-4) 0; border-top: 1px solid var(--color-border); border-bottom: 1px solid var(--color-border); margin: var(--space-5) 0; }
.stat-item-num { font-size: 36px; font-weight: 800; color: var(--color-primary); line-height: 1; }
.stat-item-label { font-size: var(--text-sm); color: var(--color-text-secondary); margin-top: 4px; }

/* Lead quote (Шаг 177) */
.lead-quote-block { background: var(--color-bg-card-alt); color: var(--color-text); padding: var(--space-5); border-radius: var(--radius-lg); margin: var(--space-5) 0; position: relative; overflow: hidden; border: 1px solid var(--color-border); border-inline-start: 4px solid var(--color-primary); }
.lead-quote-block::before { content: '"'; position: absolute; top: -20px; left: 10px; font-size: 120px; opacity: 0.05; color: var(--color-primary); font-family: Georgia, serif; line-height: 1; }
.lead-quote-text { font-size: var(--text-lg); font-style: italic; margin: 0 0 var(--space-3) 0; position: relative; z-index: 1; color: var(--color-text); }
.lead-quote-author { font-size: var(--text-sm); color: var(--color-text-secondary); font-weight: var(--font-weight-medium); position: relative; z-index: 1; }
