/* Reviews Modal */
.reviews-modal {
   display: none;
   position: fixed;
   z-index: 10000;
   left: 0;
   top: 0;
   width: 100%;
   height: 100%;
   overflow: auto;
   background-color: rgba(0, 0, 0, 0.7);
   backdrop-filter: blur(4px);
   -webkit-backdrop-filter: blur(4px);
   animation: fadeIn 0.3s ease;
}

.reviews-modal.active {
   display: flex;
   align-items: center;
   justify-content: center;
}

@keyframes fadeIn {
   from {
      opacity: 0;
   }
   to {
      opacity: 1;
   }
}

.reviews-modal-content {
   background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
   margin: 20px;
   padding: 0;
   border-radius: 16px;
   width: 90%;
   max-width: 650px;
   max-height: 85vh;
   overflow: hidden;
   box-shadow: 0 25px 80px rgba(0, 0, 0, 0.3);
   animation: slideUp 0.3s ease;
   position: relative;
}

@keyframes slideUp {
   from {
      transform: translateY(50px);
      opacity: 0;
   }
   to {
      transform: translateY(0);
      opacity: 1;
   }
}

.reviews-modal-header {
   background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
   color: white;
   padding: 24px;
   border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

.reviews-header-content {
   display: flex;
   justify-content: space-between;
   align-items: center;
   flex-wrap: wrap;
   gap: 16px;
}

.reviews-modal-header h3 {
   margin: 0;
   font-size: 1.5rem;
   font-weight: 700;
   color: white;
}

.verified-educators-badge {
   display: inline-flex;
   align-items: center;
   gap: 6px;
   background: rgba(255, 255, 255, 0.15);
   backdrop-filter: blur(10px);
   border: 1px solid rgba(255, 255, 255, 0.2);
   color: white;
   padding: 8px 16px;
   border-radius: 20px;
   font-size: 0.85rem;
   font-weight: 600;
   box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.verified-educators-badge i {
   font-size: 1rem;
}

.reviews-close {
   position: absolute;
   top: 20px;
   right: 20px;
   background: rgba(255, 255, 255, 0.15);
   backdrop-filter: blur(10px);
   border: 1px solid rgba(255, 255, 255, 0.2);
   color: white;
   font-size: 1.5rem;
   font-weight: 300;
   cursor: pointer;
   width: 40px;
   height: 40px;
   border-radius: 50%;
   display: flex;
   align-items: center;
   justify-content: center;
   transition: all 0.3s ease;
   line-height: 1;
}

.reviews-close:hover {
   background: rgba(255, 255, 255, 0.25);
   transform: rotate(90deg);
   box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

.reviews-modal-body {
   padding: 24px;
   overflow-y: auto;
   max-height: calc(85vh - 100px);
}

.review-item {
   background: white;
   border: 1px solid #f1f5f9;
   border-radius: 16px;
   padding: 24px;
   margin-bottom: 20px;
   transition: all 0.3s ease;
   box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04);
   position: relative;
}

.review-item:last-child {
   margin-bottom: 0;
}

.review-item:hover {
   box-shadow: 0 12px 32px rgba(0, 0, 0, 0.12);
   transform: translateY(-2px);
   border-color: #e2e8f0;
}

.review-item::before {
   content: '';
   position: absolute;
   top: 0;
   left: 0;
   right: 0;
   height: 4px;
   background: linear-gradient(90deg, #6366f1, #8b5cf6);
   border-radius: 16px 16px 0 0;
   opacity: 0.8;
}

.review-header {
   display: flex;
   justify-content: space-between;
   align-items: center;
   margin-bottom: 20px;
   padding-bottom: 16px;
   border-bottom: 1px solid #f8fafc;
}

.review-stars {
   color: #fbbf24;
   font-size: 1.2rem;
   letter-spacing: 3px;
   text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}

.review-date {
   color: #64748b;
   font-size: 0.85rem;
   font-weight: 500;
   background: #f8fafc;
   padding: 4px 12px;
   border-radius: 12px;
}

.review-user-info {
   display: flex;
   align-items: flex-start;
   gap: 16px;
   margin-bottom: 20px;
}

.review-avatar {
   flex-shrink: 0;
}

.avatar-initials {
   width: 48px;
   height: 48px;
   border-radius: 50%;
   background: linear-gradient(135deg, #e0e7ff, #c7d2fe);
   color: #6366f1;
   display: flex;
   align-items: center;
   justify-content: center;
   font-weight: 700;
   font-size: 1.1rem;
   box-shadow: 0 4px 12px rgba(99, 102, 241, 0.15);
   border: 2px solid rgba(255, 255, 255, 0.8);
}

.review-user-details {
   flex: 1;
   min-width: 0;
}

.review-author-info {
   margin-bottom: 8px;
}

.review-author {
   color: #1e293b;
   font-weight: 700;
   font-size: 1.1rem;
   display: block;
   margin-bottom: 4px;
}

.review-meta {
   display: flex;
   align-items: center;
   gap: 12px;
   font-size: 0.85rem;
   flex-wrap: wrap;
}

.review-plan {
   background: linear-gradient(135deg, #f1f5f9, #e2e8f0);
   color: #475569;
   padding: 6px 12px;
   border-radius: 8px;
   font-weight: 600;
   border: 1px solid #e2e8f0;
}

.review-location {
   color: #64748b;
   font-weight: 500;
}

.post-purchase {
   display: inline-flex;
   align-items: center;
   gap: 6px;
   background: linear-gradient(135deg, #fef3c7, #fde68a);
   color: #92400e;
   padding: 6px 12px;
   border-radius: 8px;
   font-size: 0.8rem;
   font-weight: 600;
   border: 1px solid #f59e0b;
   box-shadow: 0 1px 3px rgba(245, 158, 11, 0.1);
}

.post-purchase i {
   font-size: 0.9rem;
}

.review-text {
   color: #374151;
   font-size: 0.95rem;
   line-height: 1.7;
   margin: 0;
   font-weight: 400;
}

/* Responsive */
@media (max-width: 768px) {
   .reviews-modal-content {
      width: 95%;
      margin: 10px;
      max-width: none;
   }

   .reviews-modal-header {
      padding: 20px;
   }

   .reviews-header-content {
      flex-direction: column;
      align-items: flex-start;
      gap: 12px;
   }

   .reviews-modal-header h3 {
      font-size: 1.3rem;
   }

   .verified-educators-badge {
      font-size: 0.8rem;
      padding: 6px 12px;
   }

   .reviews-close {
      top: 16px;
      right: 16px;
      width: 36px;
      height: 36px;
      font-size: 1.3rem;
   }

   .reviews-modal-body {
      padding: 20px;
      max-height: calc(85vh - 120px);
   }

   .review-item {
      padding: 20px;
      margin-bottom: 16px;
   }

   .review-header {
      margin-bottom: 16px;
      padding-bottom: 12px;
   }

   .review-stars {
      font-size: 1.1rem;
   }

   .review-date {
      font-size: 0.8rem;
      padding: 3px 8px;
   }

   .review-user-info {
      gap: 12px;
      margin-bottom: 16px;
   }

   .avatar-initials {
      width: 42px;
      height: 42px;
      font-size: 1rem;
   }

   .review-author {
      font-size: 1rem;
   }

   .review-meta {
      gap: 10px;
      font-size: 0.8rem;
   }

   .review-plan,
   .post-purchase {
      font-size: 0.75rem;
      padding: 5px 10px;
   }

   .review-text {
      font-size: 0.9rem;
      line-height: 1.6;
   }
}

