:root {
  color-scheme: light dark;
  --bg: #f7f7f8;
  --card-bg: #ffffff;
  --text: #1a1a1a;
  --muted: #666;
  --border: #e2e2e2;
  --accent: #2563eb;
  --star: #f5a623;
  --google: #1a73e8;
  --trustpilot: #00b67a;
  --score-low: #e74c3c;
  --score-mid: #f39c12;
  --score-high: #2ecc71;
  --transition-fast: 0.2s ease;
  --transition-slow: 0.5s ease;
}

@media (prefers-color-scheme: dark) {
  :root {
    --bg: #15161a;
    --card-bg: #1f2025;
    --text: #eaeaea;
    --muted: #9a9a9a;
    --border: #303136;
    --score-low: #ff6b5b;
    --score-mid: #ffb347;
    --score-high: #3ddc84;
  }
}

html {
  scroll-behavior: smooth;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: var(--bg);
  color: var(--text);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  line-height: 1.4;
}

main {
  flex: 1;
  width: 100%;
  max-width: 640px;
  margin-inline: auto;
  padding: clamp(1.5rem, 6vw, 3rem) 1.25rem 3rem;
}

.hero {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0.5rem;
}

.logo {
  max-width: clamp(160px, 45vw, 280px);
  max-height: clamp(96px, 22vw, 140px);
  width: auto;
  height: auto;
  object-fit: contain;
  margin-bottom: 0.75rem;
}

.company-name {
  font-size: clamp(1.25rem, 4vw, 1.75rem);
  margin: 0;
}

.score {
  font-size: clamp(4rem, 20vw, 8rem);
  font-weight: 800;
  line-height: 1;
  margin: 0.25rem 0 0;
  transition: color var(--transition-slow);
}

.score::after {
  content: " / 5";
  font-size: 0.3em;
  font-weight: 600;
  color: var(--muted);
}

.score.score-low {
  color: var(--score-low);
}

.score.score-mid {
  color: var(--score-mid);
}

.score.score-high {
  color: var(--score-high);
}

.medal {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin: 1.5rem 0 0;
  padding: 0.4rem 1.1rem 0.4rem 0.4rem;
  border-radius: 999px;
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.18);
  border: 1px solid rgba(255, 255, 255, 0.4);
}

.medal-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.7rem;
  height: 1.7rem;
  flex-shrink: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.4);
  font-size: 1rem;
}

.medal-top {
  background: linear-gradient(135deg, #ffe9a8, #d4af37);
  color: #4a3300;
}

.medal-worst {
  background: linear-gradient(135deg, #ffb0a0, #e74c3c);
  color: #4a0f05;
}

.review-count {
  color: var(--muted);
  font-size: clamp(0.7rem, 1.6vw, 0.8rem);
  margin: 0 0 1.25rem;
}

.platform-links {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
  justify-content: center;
}

.platform-btn {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem;
  padding: 0.6rem 1.25rem;
  border-radius: 12px;
  background: var(--card-bg);
  border: 2px solid transparent;
  text-decoration: none;
  font-weight: 600;
  transition: transform var(--transition-fast), box-shadow var(--transition-fast);
}

.platform-btn:hover,
.platform-btn:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);
}

.platform-btn-google {
  border-color: var(--google);
}

.platform-btn-google > span:first-child {
  color: var(--google);
}

.platform-btn-trustpilot {
  border-color: var(--trustpilot);
}

.platform-btn-trustpilot > span:first-child {
  color: var(--trustpilot);
}

.platform-stat {
  font-size: 0.8rem;
  font-weight: 700;
}

.platform-rating.score-low {
  color: var(--score-low);
}

.platform-rating.score-mid {
  color: var(--score-mid);
}

.platform-rating.score-high {
  color: var(--score-high);
}

.platform-count {
  font-weight: 500;
  color: var(--muted);
}

.comments {
  margin-top: clamp(2.5rem, 8vw, 4rem);
}

.comment-card {
  background: var(--card-bg);
  border: 2px solid var(--border);
  border-radius: 14px;
  padding: 1.25rem;
  max-width: 380px;
  min-height: 3.5rem;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity var(--transition-slow), transform var(--transition-slow),
    border-color var(--transition-slow);
}

.comment-card.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.comment-card.score-low {
  border-color: var(--score-low);
}

.comment-card.score-mid {
  border-color: var(--score-mid);
}

.comment-card.score-high {
  border-color: var(--score-high);
}

.comment-content {
  width: 100%;
}

.comment-progress {
  width: 100%;
  max-width: 120px;
  height: 2px;
  margin-top: 1rem;
  background: var(--border);
  border-radius: 999px;
  overflow: hidden;
}

.comment-progress-bar {
  height: 100%;
  width: 0%;
  background: var(--muted);
  border-radius: 999px;
}

.comment-stars {
  color: var(--star);
  font-size: 1.25rem;
  letter-spacing: 2px;
  margin: 0 0 0.5rem;
}

.comment-text {
  margin: 0 0 0.75rem;
  font-size: 1rem;
}

.comment-meta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  font-size: 0.8rem;
  color: var(--muted);
}

.badge {
  font-size: 0.7rem;
  font-weight: 600;
  padding: 0.15rem 0.5rem;
  border-radius: 999px;
  color: #fff;
}

.badge-google_maps {
  background: var(--google);
}

.badge-trustpilot {
  background: var(--trustpilot);
}

.site-footer {
  text-align: center;
  padding: 1.5rem;
  font-size: 0.8rem;
}

.donate-link {
  color: var(--muted);
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: color var(--transition-fast);
}

.donate-link:hover {
  color: var(--accent);
}

.footer-note {
  margin-top: 0.35rem;
  font-size: 0.7rem;
  color: var(--muted);
  opacity: 0.7;
}

.status {
  text-align: center;
  color: var(--muted);
  padding: 0 1.25rem 1.5rem;
}

@media (min-width: 640px) {
  .comment-card {
    padding: 1.5rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  .comment-card,
  .platform-btn,
  .score {
    transition: none;
    animation: none;
  }
}
