/* Warm visual overrides for public demo routes.
   These routes still inherit legacy dashboard/demo bundles with cool slate gradients. */

body.page-demo,
body.demo-analysis {
  background:
    radial-gradient(circle at top left, rgba(250, 239, 213, 0.92), transparent 42%),
    radial-gradient(circle at 82% 12%, rgba(47, 122, 87, 0.12), transparent 30%),
    linear-gradient(180deg, var(--public-bg) 0%, var(--public-bg-soft) 100%) !important;
  min-height: 100vh;
}

body.page-demo::before,
body.demo-analysis::before {
  content: "";
  position: fixed;
  inset: 0;
  background:
    radial-gradient(circle at 20% 30%, rgba(206, 168, 111, 0.12) 0%, transparent 48%),
    radial-gradient(circle at 80% 70%, rgba(47, 122, 87, 0.08) 0%, transparent 46%),
    radial-gradient(circle at 52% 56%, rgba(146, 180, 132, 0.08) 0%, transparent 42%);
  pointer-events: none;
  z-index: 0;
}

body.page-demo .dashboard,
body.demo-analysis .dashboard {
  position: relative;
  z-index: 1;
}

body.demo-analysis .dashboard {
  padding: 2.5rem 1.75rem 3.5rem;
}

body.demo-analysis .container {
  max-width: 1220px;
}

body.page-demo .dashboard-title,
body.demo-analysis .dashboard-title {
  color: var(--public-ink) !important;
}

body.page-demo .property-type,
body.demo-analysis .property-type {
  color: var(--public-ink-faint);
}

body.demo-analysis .dashboard-title {
  margin-bottom: 0.5rem;
  font-size: clamp(2rem, 3.4vw, 2.8rem);
}

body.demo-analysis .property-type {
  margin-bottom: 1.4rem;
}

body.demo-analysis .back-button {
  margin-bottom: 1.5rem;
}

body.page-demo .card,
body.demo-analysis .card,
body.page-demo .property-nav-card,
body.demo-analysis .sentiment-section,
body.demo-analysis .keyword-item,
body.demo-analysis .analysis-cta,
body.page-demo .analysis-cta,
body.page-demo .business-response,
body.page-demo .response-options,
body.page-demo .response-option,
body.page-demo .properties-nav-intro,
body.page-demo .no-tags-message,
body.demo-analysis .demo-banner,
body.page-demo .demo-banner {
  background: linear-gradient(180deg, var(--public-surface) 0%, var(--public-surface-muted) 100%) !important;
  border-color: color-mix(in srgb, var(--public-highlight) 35%, transparent) !important;
}

body.page-demo .card,
body.demo-analysis .card,
body.page-demo .property-nav-card,
body.demo-analysis .analysis-cta,
body.page-demo .analysis-cta,
body.page-demo .business-response,
body.page-demo .response-options,
body.page-demo .response-option,
body.page-demo .properties-nav-intro,
body.demo-analysis .sentiment-section,
body.demo-analysis .keyword-item,
body.demo-analysis .demo-banner,
body.page-demo .demo-banner {
  box-shadow:
    0 20px 40px rgba(69, 52, 27, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.68) !important;
}

body.demo-analysis .card {
  margin-bottom: 1.75rem;
}

body.page-demo .demo-banner,
body.demo-analysis .demo-banner {
  color: var(--public-ink) !important;
}

body.page-demo .demo-banner .bi-play-circle-fill,
body.demo-analysis .demo-banner .bi-play-circle-fill {
  color: var(--public-accent) !important;
}

body.page-demo .demo-badge,
body.demo-analysis .demo-badge {
  background: color-mix(in srgb, var(--public-accent) 12%, white);
  border-color: color-mix(in srgb, var(--public-accent) 22%, transparent);
  color: var(--public-accent-dark);
}

body.page-demo .demo-text,
body.demo-analysis .demo-text {
  color: var(--public-ink-soft) !important;
}

body.page-demo .demo-banner .btn,
body.demo-analysis .demo-banner .btn {
  background: linear-gradient(135deg, var(--public-accent) 0%, var(--public-accent-dark) 100%) !important;
  border-color: color-mix(in srgb, var(--public-accent-dark) 88%, black 12%) !important;
  color: #fffaf2 !important;
}

body.page-demo .demo-banner .btn:hover,
body.demo-analysis .demo-banner .btn:hover {
  background: linear-gradient(135deg, color-mix(in srgb, var(--public-accent) 86%, white 14%) 0%, var(--public-accent-dark) 100%) !important;
}

body.page-demo .card .card-header,
body.demo-analysis .card .card-header {
  background: linear-gradient(180deg, var(--public-surface-soft) 0%, color-mix(in srgb, var(--public-surface-soft) 70%, var(--public-bg) 30%) 100%) !important;
  border-bottom: 1px solid color-mix(in srgb, var(--public-highlight) 30%, transparent) !important;
}

body.demo-analysis .card .card-header {
  padding: 1.4rem 1.5rem !important;
}

body.demo-analysis .card-body {
  padding: 1.6rem !important;
}

body.page-demo .card .card-header h3,
body.demo-analysis .card .card-header h3,
body.page-demo .card .card-header h2,
body.demo-analysis .card .card-header h2,
body.page-demo .card-body,
body.demo-analysis .card-body,
body.demo-analysis .keyword-term,
body.demo-analysis .insight-content h4,
body.demo-analysis .sentiment-section h4 {
  color: var(--public-ink) !important;
}

body.page-demo .card .card-header small,
body.demo-analysis .card .card-header small,
body.page-demo .card-body p,
body.demo-analysis .card-body p,
body.demo-analysis .keyword-count,
body.demo-analysis .insight-content p,
body.demo-analysis .sentiment-list,
body.page-demo .note-text,
body.page-demo .properties-nav-intro p {
  color: var(--public-ink-soft) !important;
}

body.page-demo .back-button,
body.demo-analysis .back-button {
  background: color-mix(in srgb, var(--public-surface-strong) 88%, white 12%);
  border: 1px solid color-mix(in srgb, var(--public-highlight) 35%, transparent);
  color: var(--public-ink);
}

body.page-demo .back-button:hover,
body.demo-analysis .back-button:hover {
  background: var(--public-surface-soft);
  color: var(--public-ink);
}

body.page-demo .property-stats-grid .stat-card,
body.demo-analysis .property-stats-grid .stat-card {
  background: linear-gradient(180deg, var(--public-surface-strong) 0%, var(--public-surface-soft) 100%);
  border: 1px solid color-mix(in srgb, var(--public-highlight) 28%, transparent);
  box-shadow: 0 12px 24px rgba(69, 52, 27, 0.06);
}

body.page-demo .properties-nav-intro {
  border-left-color: var(--public-highlight) !important;
}

body.page-demo .business-response,
body.page-demo .response-options {
  background-image: linear-gradient(135deg, var(--public-surface) 0%, var(--public-surface-soft) 100%) !important;
}

body.page-demo .cta-glass-container,
body.demo-analysis .cta-glass-container {
  background: linear-gradient(180deg, var(--public-surface) 0%, var(--public-surface-muted) 100%) !important;
  border-color: color-mix(in srgb, var(--public-highlight) 24%, var(--public-border) 76%) !important;
  box-shadow:
    0 24px 44px rgba(69, 52, 27, 0.1),
    inset 0 1px 0 rgba(255, 255, 255, 0.72) !important;
}

body.page-demo .cta-geometric-border,
body.demo-analysis .cta-geometric-border {
  background: linear-gradient(135deg, rgba(198, 138, 63, 0.14), rgba(47, 122, 87, 0.12)) !important;
  animation: none;
}

body.page-demo .cta-title-line,
body.demo-analysis .cta-title-line,
body.page-demo .cta-subtitle,
body.demo-analysis .cta-subtitle,
body.page-demo .cta-dynamic-title,
body.demo-analysis .cta-dynamic-title {
  color: var(--public-ink) !important;
}

body.page-demo .cta-highlight-text,
body.demo-analysis .cta-highlight-text {
  background: linear-gradient(135deg, var(--public-accent-dark), var(--public-accent), var(--public-highlight)) !important;
  background-clip: text !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
}

body.page-demo .cta-rotating-line::after,
body.demo-analysis .cta-rotating-line::after {
  background: linear-gradient(135deg, var(--public-accent), var(--public-highlight)) !important;
  box-shadow: 0 2px 8px rgba(47, 122, 87, 0.18);
}

body.page-demo .cta-primary,
body.demo-analysis .cta-primary {
  background: linear-gradient(135deg, var(--public-accent) 0%, var(--public-accent-dark) 100%) !important;
  box-shadow: 0 14px 28px rgba(34, 87, 63, 0.2) !important;
  color: #fffaf2 !important;
}

body.page-demo .cta-primary:hover,
body.demo-analysis .cta-primary:hover {
  box-shadow: 0 18px 34px rgba(34, 87, 63, 0.24) !important;
}

body.page-demo .cta-secondary,
body.demo-analysis .cta-secondary {
  background: color-mix(in srgb, var(--public-surface-strong) 88%, white 12%) !important;
  color: var(--public-accent-dark) !important;
  border-color: color-mix(in srgb, var(--public-border) 88%, var(--public-accent) 12%) !important;
}

body.page-demo .cta-secondary:hover,
body.demo-analysis .cta-secondary:hover {
  background: color-mix(in srgb, var(--public-surface-soft) 82%, white 18%) !important;
  color: var(--public-accent-dark) !important;
}

body.page-demo .cta-float-circle,
body.demo-analysis .cta-float-circle {
  background: rgba(198, 138, 63, 0.06) !important;
  border-color: rgba(47, 122, 87, 0.1) !important;
}

body.page-demo #site-footer-root,
body.demo-analysis #site-footer-root {
  --site-footer-accent: var(--public-accent);
  --site-footer-border: var(--public-border);
  --site-footer-ink: var(--public-ink);
  --site-footer-ink-soft: var(--public-ink-soft);
  --site-footer-ink-faint: var(--public-ink-faint);
  --site-footer-surface: rgba(255, 250, 244, 0.9);
}

body.page-demo .property-nav-icon,
body.demo-analysis .insight-item.positive .insight-icon {
  background: color-mix(in srgb, var(--public-accent) 16%, transparent);
  color: var(--public-accent);
}

body.page-demo .insight-item,
body.demo-analysis .insight-item {
  border-color: color-mix(in srgb, var(--public-highlight) 22%, transparent);
}

body.page-demo .insight-item.positive,
body.demo-analysis .insight-item.positive {
  background: color-mix(in srgb, var(--public-accent) 10%, transparent);
}

body.page-demo .insight-item.improvement,
body.demo-analysis .insight-item.improvement {
  background: var(--public-highlight-soft);
}

body.demo-analysis .sentiment-section.positive {
  border-left-color: var(--public-accent);
}

body.demo-analysis .sentiment-section.negative {
  border-left-color: var(--public-highlight);
}

body.demo-analysis .keyword-item {
  border-left-color: color-mix(in srgb, var(--public-highlight) 40%, transparent);
}

body.demo-analysis .keyword-item.high-frequency {
  background: color-mix(in srgb, var(--public-accent) 10%, transparent) !important;
}

body.demo-analysis .keyword-item.medium-frequency {
  background: var(--public-highlight-soft) !important;
}

body.demo-analysis .keyword-item.low-frequency {
  background: color-mix(in srgb, var(--public-ink) 8%, transparent) !important;
}

body.demo-analysis .sentiment-grid {
  align-items: start;
  gap: 1.25rem;
}

body.demo-analysis .sentiment-section {
  padding: 1.2rem 1.25rem;
  border-radius: 18px;
}

body.demo-analysis .sentiment-list {
  margin-top: 0.85rem;
}

body.demo-analysis .sentiment-list li + li {
  margin-top: 0.75rem;
}

body.demo-analysis .keywords-grid {
  gap: 0.9rem;
  padding: 0.35rem 0 0;
}

body.demo-analysis .keyword-item {
  padding: 0.95rem 1rem;
  border-radius: 14px;
}

body.demo-analysis .insights-container {
  gap: 1rem !important;
  margin-top: 0.25rem;
}

body.demo-analysis .insight-item {
  padding: 1.2rem;
  border-radius: 18px;
}

@media (max-width: 768px) {
  body.demo-analysis .sentiment-grid {
    grid-template-columns: 1fr !important;
    gap: 1rem;
  }

  body.demo-analysis .sentiment-section,
  body.demo-analysis .sentiment-list,
  body.page-demo .cta-content-grid,
  body.demo-analysis .cta-content-grid {
    min-width: 0;
  }

  body.page-demo .cta-glass-container,
  body.demo-analysis .cta-glass-container {
    padding: 2rem 1.25rem;
    overflow: hidden;
  }

  body.page-demo .cta-actions,
  body.demo-analysis .cta-actions {
    flex-direction: column;
    align-items: stretch;
  }

  body.page-demo .cta-primary,
  body.page-demo .cta-secondary,
  body.demo-analysis .cta-primary,
  body.demo-analysis .cta-secondary {
    width: 100%;
    max-width: 100%;
    justify-content: center;
    text-align: center;
  }

  body.page-demo .cta-shine-effect,
  body.demo-analysis .cta-shine-effect {
    display: none;
  }
}
