/* Clean theme sync: keep each element's own background, only sync colors/glow */
:root{
  --theme-glow-soft: color-mix(in srgb, var(--accent) 24%, transparent);
  --theme-glow-mid: color-mix(in srgb, var(--accent2) 22%, transparent);
}

/* Page background follows active theme */
body:not([data-site-mode="chaos"]) {
  background:
    radial-gradient(circle at 82% 8%, color-mix(in srgb, var(--accent) 22%, transparent), transparent 30%),
    radial-gradient(circle at 14% 10%, color-mix(in srgb, var(--accent2) 16%, transparent), transparent 24%),
    linear-gradient(180deg, var(--bg), var(--bg2) 42%, var(--bg3)) !important;
  color: var(--text) !important;
}

/* Text colors */
body:not([data-site-mode="chaos"]) h1,
body:not([data-site-mode="chaos"]) h2,
body:not([data-site-mode="chaos"]) h3,
body:not([data-site-mode="chaos"]) h4,
body:not([data-site-mode="chaos"]) h5,
body:not([data-site-mode="chaos"]) h6,
body:not([data-site-mode="chaos"]) .brand,
body:not([data-site-mode="chaos"]) .phone,
body:not([data-site-mode="chaos"]) .btn,
body:not([data-site-mode="chaos"]) strong { color: var(--text) !important; }

body:not([data-site-mode="chaos"]) p,
body:not([data-site-mode="chaos"]) li,
body:not([data-site-mode="chaos"]) .sub,
body:not([data-site-mode="chaos"]) .review-time,
body:not([data-site-mode="chaos"]) #googleRatingCount,
body:not([data-site-mode="chaos"]) .siggi-note,
body:not([data-site-mode="chaos"]) .siggi-consent { color: var(--muted) !important; }

body:not([data-site-mode="chaos"]) a { color: var(--accent) !important; }

/* Keep individual element backgrounds from page CSS, only sync border/glow */
body:not([data-site-mode="chaos"]) .hero .img-wrap,
body:not([data-site-mode="chaos"]) .card,
body:not([data-site-mode="chaos"]) .stat,
body:not([data-site-mode="chaos"]) .contact,
body:not([data-site-mode="chaos"]) .text-frame,
body:not([data-site-mode="chaos"]) .section .sub,
body:not([data-site-mode="chaos"]) .review-card,
body:not([data-site-mode="chaos"]) .review-mini,
body:not([data-site-mode="chaos"]) .map-wrap,
body:not([data-site-mode="chaos"]) .phone,
body:not([data-site-mode="chaos"]) .theme-toggle,
body:not([data-site-mode="chaos"]) .mode-btn,
body:not([data-site-mode="chaos"]) .theme-select,
body:not([data-site-mode="chaos"]) .top-design-menu,
body:not([data-site-mode="chaos"]) .sticky-cta a,
body:not([data-site-mode="chaos"]) .trust img,
body:not([data-site-mode="chaos"]) .siggi-panel,
body:not([data-site-mode="chaos"]) .siggi-head,
body:not([data-site-mode="chaos"]) .siggi-body,
body:not([data-site-mode="chaos"]) .siggi-foot,
body:not([data-site-mode="chaos"]) .service-popup-panel {
  border-color: var(--line) !important;
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--line) 60%, transparent),
    0 0 12px var(--theme-glow-soft),
    0 0 22px var(--theme-glow-mid) !important;
}

/* Bring back boxed style where legacy CSS made it transparent */
body:not([data-site-mode="chaos"]) .reviews-map .sub.text-frame,
body:not([data-site-mode="chaos"]) .reviews-map .map-link.text-frame {
  background: var(--panel) !important;
  border: 1px solid var(--line) !important;
  border-radius: 14px !important;
  padding: 12px 14px !important;
}

/* Accent controls */
body:not([data-site-mode="chaos"]) .btn-primary,
body:not([data-site-mode="chaos"]) .review-btn,
body:not([data-site-mode="chaos"]) .siggi-send,
body:not([data-site-mode="chaos"]) .siggi-confirm,
body:not([data-site-mode="chaos"]) .mode-btn.active {
  background: linear-gradient(120deg, var(--accent2), var(--accent)) !important;
  color: #fff !important;
  border-color: transparent !important;
}


/* Force remaining hardcoded blue text to follow theme */
body:not([data-site-mode="chaos"]) .map-link a,
body:not([data-site-mode="chaos"]) .review-card a,
body:not([data-site-mode="chaos"]) .siggi-note a,
body:not([data-site-mode="chaos"]) .siggi-consent a,
body:not([data-site-mode="chaos"]) .consent-row a,
body:not([data-site-mode="chaos"]) .head nav a,
body:not([data-site-mode="chaos"]) footer a,
body:not([data-site-mode="chaos"]) .reviews-map a,
body:not([data-site-mode="chaos"]) .text-frame a,
body:not([data-site-mode="chaos"]) #service-ablauf .text-frame a,
body:not([data-site-mode="chaos"]) #qualitaet .text-frame a,
body:not([data-site-mode="chaos"]) #qualität-plus .text-frame a,
body:not([data-site-mode="chaos"]) #anfrage a,
body:not([data-site-mode="chaos"]) .contact a,
body:not([data-site-mode="chaos"]) .review-time,
body:not([data-site-mode="chaos"]) #googleRatingCount,
body:not([data-site-mode="chaos"]) .author,
body:not([data-site-mode="chaos"]) .muted {
  color: var(--accent) !important;
}

body:not([data-site-mode="chaos"]) .review-card p,
body:not([data-site-mode="chaos"]) .review-mini,
body:not([data-site-mode="chaos"]) .map-link,
body:not([data-site-mode="chaos"]) .siggi-note,
body:not([data-site-mode="chaos"]) .siggi-consent,
body:not([data-site-mode="chaos"]) .consent-text {
  color: var(--muted) !important;
}


/* Absolute text color unification */
body:not([data-site-mode="chaos"]) h1,
body:not([data-site-mode="chaos"]) h2,
body:not([data-site-mode="chaos"]) h3,
body:not([data-site-mode="chaos"]) h4,
body:not([data-site-mode="chaos"]) h5,
body:not([data-site-mode="chaos"]) h6,
body:not([data-site-mode="chaos"]) p,
body:not([data-site-mode="chaos"]) li,
body:not([data-site-mode="chaos"]) a,
body:not([data-site-mode="chaos"]) span,
body:not([data-site-mode="chaos"]) small,
body:not([data-site-mode="chaos"]) strong,
body:not([data-site-mode="chaos"]) em,
body:not([data-site-mode="chaos"]) label,
body:not([data-site-mode="chaos"]) .brand,
body:not([data-site-mode="chaos"]) .phone,
body:not([data-site-mode="chaos"]) .sub,
body:not([data-site-mode="chaos"]) .muted,
body:not([data-site-mode="chaos"]) .author,
body:not([data-site-mode="chaos"]) .review-time,
body:not([data-site-mode="chaos"]) #googleRatingCount,
body:not([data-site-mode="chaos"]) .head nav a,
body:not([data-site-mode="chaos"]) footer a,
body:not([data-site-mode="chaos"]) .map-link a,
body:not([data-site-mode="chaos"]) .text-frame a,
body:not([data-site-mode="chaos"]) .review-card a,
body:not([data-site-mode="chaos"]) .siggi-note,
body:not([data-site-mode="chaos"]) .siggi-note a,
body:not([data-site-mode="chaos"]) .siggi-consent,
body:not([data-site-mode="chaos"]) .siggi-consent a,
body:not([data-site-mode="chaos"]) .consent-text,
body:not([data-site-mode="chaos"]) .consent-row a {
  color: var(--text) !important;
}


/* FINAL: force absolutely all text nodes to theme text */
body:not([data-site-mode="chaos"]) *,
body:not([data-site-mode="chaos"]) *::before,
body:not([data-site-mode="chaos"]) *::after {
  color: var(--text) !important;
}

/* keep icons/special media unaffected where needed */
body:not([data-site-mode="chaos"]) svg,
body:not([data-site-mode="chaos"]) svg * {
  color: inherit !important;
}



/* Hard fix: all content-box text follows current theme text color */
body:not([data-site-mode="chaos"]) .sub.text-frame,
body:not([data-site-mode="chaos"]) .text-frame,
body:not([data-site-mode="chaos"]) .sub.text-frame *,
body:not([data-site-mode="chaos"]) .text-frame *,
body:not([data-site-mode="chaos"]) #service-ablauf .sub.text-frame,
body:not([data-site-mode="chaos"]) #service-ablauf .sub.text-frame *,
body:not([data-site-mode="chaos"]) #qualität-plus .sub.text-frame,
body:not([data-site-mode="chaos"]) #qualität-plus .sub.text-frame *,
body:not([data-site-mode="chaos"]) #qualitaet .sub.text-frame,
body:not([data-site-mode="chaos"]) #qualitaet .sub.text-frame * {
  color: var(--text) !important;
}
