/* ============================================
ADDITIONAL ENHANCEMENTS - v5.3.1
============================================ */

/* Video Container (responsive embeds) */
.video-container {
position: relative;
padding-bottom: 56.25%; /* 16:9 aspect ratio */
height: 0;
overflow: hidden;
max-width: 100%;
background: #000;
margin: 1.5rem 0;
border-radius: var(--med-radius);
}

.video-container iframe,
.video-container object,
.video-container embed {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border: 0;
}

/* Reading Progress Bar */
#reading-progress {
background: linear-gradient(90deg, var(--med-primary), var(--med-secondary));
box-shadow: 0 0 10px rgba(102, 126, 234, 0.5);
}

/* Read More Link */
.read-more {
color: var(--med-primary);
text-decoration: none;
font-weight: 600;
transition: color 0.2s;
}

.read-more:hover {
color: var(--med-secondary);
text-decoration: underline;
}

.read-more::after {
content: ' →';
}

/* Offline indicator */
body.is-offline::before {
content: '⚠ Вы офлайн';
position: fixed;
top: 0;
left: 0;
right: 0;
background: #ff9800;
color: #fff;
text-align: center;
padding: 0.5rem;
z-index: 99999;
font-weight: 600;
font-size: 0.9rem;
}

body.is-offline {
padding-top: 40px;
}

/* Enhanced focus styles */
:focus-visible {
outline: 3px solid var(--med-focus);
outline-offset: 2px;
border-radius: 4px;
}

/* Skip link enhancement */
.skip-link:focus {
z-index: 100000;
}

/* Print improvements */
@media print {
#reading-progress,
.video-container,
.med-messenger-btn,
.messengers-scroll {
display: none !important;
}

.read-more {
text-decoration: none;
color: #000;
}
}

/* High contrast mode fixes */
@media (prefers-contrast: high) {
.video-container {
border: 2px solid #000;
}

.read-more {
text-decoration: underline;
}
}

/* Reduced motion preferences */
@media (prefers-reduced-motion: reduce) {
#reading-progress {
transition: none;
}

.read-more::after {
content: none;
}
}

/* Dark mode adjustments for new elements */
@media (prefers-color-scheme: dark) {
.read-more {
color: var(--med-primary);
}

body.is-offline::before {
background: #e65100;
}
}

/* Reviews external links buttons */
.reviews-external-links {
margin-top: 2rem;
text-align: center;
}

.reviews-external-links .med-btn {
display: inline-flex;
align-items: center;
gap: 0.5rem;
padding: 0.75rem 1.5rem;
transition: transform 0.2s, box-shadow 0.2s;
}

.reviews-external-links .med-btn:hover {
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

.reviews-external-links .med-btn[href*="yandex"] {
background: #fc3f1d;
color: #fff;
}

.reviews-external-links .med-btn[href*="google"] {
background: #4285f4;
color: #fff;
}

/* Responsive adjustments */
@media (max-width: 768px) {
.review-header-sm {
flex-direction: column;
align-items: flex-start;
gap: 0.5rem;
}

.reviews-external-links .med-btn {
width: 100%;
justify-content: center;
margin-bottom: 0.5rem;
}
}

/* Reviews Section with API Integration */

/* Rating Summary */
.reviews-rating-summary {
background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
border: 1px solid #dee2e6;
}

/* Review Card with Avatar */
.review-card-sm {
padding: 1.5rem;
transition: transform 0.2s, box-shadow 0.2s;
}

.review-card-sm:hover {
transform: translateY(-2px);
box-shadow: 0 8px 25px rgba(0,0,0,0.1);
}

.review-header-sm {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 1rem;
}

.review-author-avatar {
width: 40px;
height: 40px;
border-radius: 50%;
object-fit: cover;
}

.review-author-initial {
width: 40px;
height: 40px;
border-radius: 50%;
background: linear-gradient(135deg, var(--med-primary), var(--med-secondary));
color: #fff;
display: flex;
align-items: center;
justify-content: center;
font-weight: 600;
font-size: 16px;
}

.review-author-sm {
color: var(--med-text);
font-size: 1rem;
}

.review-stars-sm {
color: #ffc107;
font-size: 1.1rem;
letter-spacing: 2px;
}

.review-text-sm {
margin: 0 0 1rem;
font-style: italic;
color: var(--med-text-light);
line-height: 1.6;
border-left: 3px solid var(--med-primary);
padding-left: 1rem;
}

.review-footer-sm {
display: flex;
justify-content: space-between;
align-items: center;
font-size: 0.875rem;
color: var(--med-text-muted);
}

.review-footer-sm time {
font-size: 0.8rem;
}

.review-source-badge {
display: inline-flex;
align-items: center;
gap: 5px;
padding: 2px 8px;
border-radius: 12px;
font-size: 12px;
font-weight: 500;
}

.review-source-badge.google {
background: #e8f0fe;
color: #4285f4;
}

.review-source-badge.yandex {
background: #ffebee;
color: #fc3f1d;
}

/* Reviews external links buttons */
.reviews-external-links {
margin-top: 2rem;
text-align: center;
}

.reviews-external-links .med-btn {
display: inline-flex;
align-items: center;
gap: 0.5rem;
padding: 0.75rem 1.5rem;
transition: transform 0.2s, box-shadow 0.2s;
}

.reviews-external-links .med-btn:hover {
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

.reviews-external-links .med-btn[href*="yandex"] {
background: #fc3f1d;
color: #fff;
}

.reviews-external-links .med-btn[href*="google"] {
background: #4285f4;
color: #fff;
}

/* Reviews Loading State */
.reviews-loading {
text-align: center;
padding: 3rem;
}

.reviews-loading-spinner {
width: 40px;
height: 40px;
border: 3px solid var(--med-bg-light);
border-top-color: var(--med-primary);
border-radius: 50%;
animation: spin 1s linear infinite;
margin: 0 auto 1rem;
}

@keyframes spin {
to { transform: rotate(360deg); }
}

/* Responsive adjustments */
@media (max-width: 768px) {
.review-header-sm {
flex-direction: column;
align-items: flex-start;
gap: 0.5rem;
}

.reviews-external-links .med-btn {
width: 100%;
justify-content: center;
margin-bottom: 0.5rem;
}

.reviews-rating-summary > div {
flex-direction: column;
gap: 1rem;
}
}

/* Source Selector in Customizer Preview */
.review-source-indicator {
display: inline-block;
width: 8px;
height: 8px;
border-radius: 50%;
margin-right: 5px;
}

.review-source-indicator.api {
background: #4caf50;
}

.review-source-indicator.manual {
background: #ff9800;
}

.review-source-indicator.mixed {
background: linear-gradient(90deg, #4caf50 50%, #ff9800 50%);
}
