// app.jsx — root composition + tweaks

const ACCENT_OPTIONS = [
  "#111111", // monochrome black
  "#D9582E", // warm clay
  "#1B5E3F", // deep green
  "#2A4FDB"  // klein blue
];

const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{
  "accent": "#111111",
  "lang": "de"
}/*EDITMODE-END*/;

function App() {
  const [tweaks, setTweak] = useTweaks(TWEAK_DEFAULTS);
  const [lang, setLang] = React.useState(tweaks.lang || "de");

  const accent = tweaks.accent || "#111111";
  const t = COPY[lang];

  // Apply lang + dir to <html>
  React.useEffect(() => {
    document.documentElement.lang = lang;
    document.documentElement.dir = lang === "ar" ? "rtl" : "ltr";
  }, [lang]);

  // Apply accent CSS vars. On dark surfaces the monochrome accent (#111) is
  // invisible, so derive a light "on-dark" variant; colored themes keep their hue.
  React.useEffect(() => {
    const root = document.documentElement.style;
    root.setProperty("--accent", accent);
    const isMono = accent.toLowerCase() === "#111111";
    root.setProperty("--accent-on-dark", isMono ? "#ffffff" : accent);
    root.setProperty("--accent-on-dark-ink", isMono ? "#111111" : "#ffffff");
  }, [accent]);

  const onSetLang = (l) => {
    setLang(l);
    setTweak("lang", l);
  };

  return (
    <>
      <Nav lang={lang} setLang={onSetLang} t={t} />
      <Hero lang={lang} t={t} accent={accent} />
      <Marquee t={t} />
      <Services lang={lang} t={t} accent={accent} />
      <section className="section" id="quote">
        <div className="wrap">
          <QuoteFlow lang={lang} t={t} accent={accent} />
        </div>
      </section>
      <Process lang={lang} t={t} />
      {/* Reviews-Sektion ausgeblendet bis erste Kundenstimmen vorliegen.
          Zum Reaktivieren: nächste Zeile einkommentieren. */}
      {/* <Reviews lang={lang} t={t} accent={accent} /> */}
      <About lang={lang} t={t} accent={accent} />
      <Footer lang={lang} t={t} accent={accent} />
      <CookieBanner lang={lang} />

      <TweaksPanel title="Tweaks">
        <TweakSection label={lang === "ar" ? "لون التركيز" : "Akzentfarbe"}>
          <TweakColor
            label="Accent"
            value={tweaks.accent}
            onChange={(v) => setTweak("accent", v)}
            options={ACCENT_OPTIONS}
          />
        </TweakSection>
        <TweakSection label={lang === "ar" ? "اللغة" : "Sprache"}>
          <TweakRadio
            label={lang === "ar" ? "لغة" : "Lang"}
            value={lang}
            onChange={(v) => onSetLang(v)}
            options={["de", "ar"]}
          />
        </TweakSection>
      </TweaksPanel>
    </>
  );
}

const root = ReactDOM.createRoot(document.getElementById("root"));
root.render(<App />);
