// Legal pages — Obchodní podmínky + Ochrana údajů (GDPR).
// Layout: sticky left TOC sidebar (desktop) + main prose column.
(function () {
  if (typeof React === "undefined") return;
  const DS = window.VElaStvNajmanDesignSystem_bc3fc2;
  const { Button } = DS;
  const Icon = window.VNIcon;

  const DOCS = {
    podminky: {
      eyebrow: "Právní informace",
      title: "Obchodní podmínky",
      updated: "Platné od 1. ledna 2026",
      intro: "Tyto obchodní podmínky upravují práva a povinnosti mezi rodinným včelařstvím Najman a kupujícím při nákupu v našem e-shopu. Doporučujeme se s nimi seznámit ještě před objednáním.",
      sections: [
        { h: "Základní údaje o prodávajícím", p: ["Prodávajícím je Rodinné včelařství Najman se sídlem Na Samotě 1029, 253 01 Hostivice, IČO 12345678. Kontaktní e-mail vcelahostivice@seznam.cz, telefon +420 603 887 482.", "Vztahy neupravené těmito podmínkami se řídí právním řádem České republiky, zejména občanským zákoníkem a zákonem o ochraně spotřebitele."] },
        { h: "Objednávka a uzavření smlouvy", p: ["Kupní smlouva vzniká odesláním objednávky kupujícím a jejím potvrzením ze strany prodávajícího (zpravidla e-mailem). Údaje uvedené v objednávce považujeme za správné.", "Před odesláním má kupující možnost zkontrolovat a změnit obsah košíku i zadané údaje."] },
        { h: "Ceny a platební podmínky", p: ["Všechny ceny jsou uvedeny včetně DPH. Platit lze dobírkou, převodem na účet, platební kartou nebo přes platební bránu (Apple Pay / Google Pay).", "Zboží zůstává do úplného zaplacení majetkem prodávajícího."] },
        { h: "Dodací podmínky", p: ["Matky zasíláme v klíckách doporučeně po celé ČR. Oddělky a včelstva se z důvodu kondice a zdraví přebírají výhradně osobně na včelnici po předchozí domluvě termínu.", "Termín expedice závisí na sezóně a počasí — objednávky vyřizujeme v pořadí. O odeslání či připraví k převzetí informujeme e-mailem."] },
        { h: "Odstoupení od smlouvy", p: ["Kupující — spotřebitel má právo odstoupit od smlouvy do 14 dnů od převzetí bez udání důvodu. U živých zvířat (včelí matky, oddělky a včelstva) může být toto právo s ohledem na povahu zboží omezeno dle zákona.", "Na zdraví dodaných včel dbáme — při prokazatelném problému při převzetí se vždy domluvíme na řešení."] },
        { h: "Reklamace a vady", p: ["Práva z vadného plnění se řídí občanským zákoníkem. Reklamaci uplatněte e-mailem nebo telefonicky; vyřídíme ji bez zbytečného odkladu, nejpozději do 30 dnů.", "Ke každé zásilce přikládáme veterinární osvědčení o zdraví včelstev."] },
        { h: "Ochrana osobních údajů", p: ["Zpracování osobních údajů se řídí samostatným dokumentem Ochrana údajů (GDPR), dostupným v patičce webu."] },
        { h: "Závěrečná ustanovení", p: ["Tyto podmínky může prodávající měnit; pro objednávku platí znění účinné v okamžiku jejího odeslání.", "Toto je vzorové znění pro účely prototypu — před spuštěním doporučujeme právní revizi."] },
      ],
    },
    gdpr: {
      eyebrow: "Právní informace",
      title: "Ochrana osobních údajů",
      updated: "Platné od 1. ledna 2026",
      intro: "Vážíme si vašeho soukromí. Tento dokument vysvětluje, jaké osobní údaje zpracováváme, proč, jak dlouho a jaká máte práva.",
      sections: [
        { h: "Správce údajů", p: ["Správcem osobních údajů je Rodinné včelařství Najman, Na Samotě 1029, 253 01 Hostivice, IČO 12345678, e-mail vcelahostivice@seznam.cz."] },
        { h: "Jaké údaje zpracováváme", p: ["Zpracováváme údaje, které nám sami poskytnete: jméno a příjmení, doručovací a fakturační adresu, e-mail a telefon, obsah objednávek a komunikaci s námi. Údaje o platební kartě nezpracováváme — ty zpracovává poskytovatel platební brány."] },
        { h: "Účel a právní základ", p: ["Údaje zpracováváme za účelem vyřízení objednávky a plnění smlouvy, vedení účetnictví dle zákona a — máte-li zájem — na základě vašeho souhlasu pro zasílání newsletteru."] },
        { h: "Doba uchování", p: ["Údaje uchováváme po dobu nezbytně nutnou: pro plnění objednávky a zákonem stanovenou dobu (např. účetní doklady 10 let). Souhlas s newsletterem platí do jeho odvolání."] },
        { h: "Předání třetím stranám", p: ["Údaje předáváme jen v nezbytném rozsahu zpracovatelům, kteří nám pomáhají — dopravcům (Zásilkovna, kurýr), poskytovateli platební brány a účetní. Údaje neprodáváme."] },
        { h: "Cookies", p: ["Web používá nezbytné cookies pro správnou funkci. Analytické či marketingové cookies používáme pouze s vaším souhlasem, který lze kdykoli odvolat v nastavení prohlížeče."] },
        { h: "Vaše práva", p: ["Máte právo na přístup ke svým údajům, jejich opravu nebo výmaz, na omezení zpracování, přenositelnost a právo vznést námitku. Souhlas se zpracováním můžete kdykoli odvolat."] },
        { h: "Kontakt a dozorový úřad", p: ["S žádostí či dotazem se obraťte na vcelahostivice@seznam.cz. Máte rovněž právo podat stížnost u Úřadu pro ochranu osobních údajů (uoou.cz).", "Toto je vzorové znění pro účely prototypu — před spuštěním doporučujeme právní revizi."] },
      ],
    },
  };

  function Legal({ go, kind }) {
    const d = DOCS[kind] || DOCS.podminky;
    const secId = (i) => kind + "-s" + i;
    const [active, setActive] = React.useState(0);

    // Scrollspy — highlight active section in sidebar
    React.useEffect(() => {
      const els = d.sections.map((_, i) => document.getElementById(secId(i))).filter(Boolean);
      if (!els.length) return;
      const io = new IntersectionObserver(
        (entries) => {
          const vis = entries.filter(e => e.isIntersecting);
          if (!vis.length) return;
          vis.sort((a,b) => a.boundingClientRect.top - b.boundingClientRect.top);
          const id = vis[0].target.id;
          const idx = parseInt(id.replace(kind + "-s", ""), 10);
          if (!isNaN(idx)) setActive(idx);
        },
        { rootMargin: "-100px 0px -55% 0px", threshold: 0 }
      );
      els.forEach(el => io.observe(el));
      return () => io.disconnect();
    }, [kind]);

    const jump = (i) => {
      if (i === 0) { window.scrollTo({ top: 0, behavior: "smooth" }); return; }
      const el = document.getElementById(secId(i));
      if (el) window.scrollTo({ top: el.getBoundingClientRect().top + window.scrollY - 132, behavior: "smooth" });
    };

    return (
      <main className="kit">
        <div className="kit-shell kit-legal">
          <nav className="kit-breadcrumb">
            <a href="#" onClick={(e)=>{e.preventDefault();go("home");}}>Domů</a>
            <Icon name="chevronRight" size={13} /> <span className="kit-breadcrumb__here">{d.title}</span>
          </nav>

          <div className="kit-legal__layout">
            {/* LEFT SIDEBAR — sticky TOC */}
            <aside className="kit-legal__sidebar">
              <nav className="kit-legal__toc" aria-label="Obsah dokumentu">
                <p className="kit-legal__toc-h">Obsah</p>
                <ol>
                  {d.sections.map((s, i) => (
                    <li key={i}>
                      <a
                        href={"#" + secId(i)}
                        className={"kit-legal__toc-link" + (active === i ? " is-active" : "")}
                        onClick={(e)=>{e.preventDefault();jump(i);}}
                      >
                        <span className="kit-legal__toc-num">{String(i+1).padStart(2,"0")}</span>
                        <span className="kit-legal__toc-label">{s.h}</span>
                      </a>
                    </li>
                  ))}
                </ol>
              </nav>
            </aside>

            {/* MAIN CONTENT */}
            <div className="kit-legal__main">
              <header className="kit-legal__head">
                <span className="vn-eyebrow"><Icon name="shield" size={15} /> {d.eyebrow}</span>
                <h1>{d.title}</h1>
                <p className="kit-legal__updated"><Icon name="clock" size={15} /> {d.updated}</p>
                <p className="kit-legal__intro">{d.intro}</p>
              </header>

              <div className="kit-prose kit-legal__body">
                {d.sections.map((s, i) => (
                  <section className="kit-legal__sec" id={secId(i)} key={i}>
                    <h2>
                      <span className="kit-legal__num">{String(i+1).padStart(2,"0")}</span>
                      {s.h}
                    </h2>
                    {s.p.map((para, j) => <p key={j}>{para}</p>)}
                  </section>
                ))}
              </div>

              <div className="kit-legal__foot">
                <div>
                  <p className="kit-legal__foot-h">Máte dotaz k podmínkám nebo zpracování údajů?</p>
                  <p className="kit-legal__foot-d">Rádi vám odpovíme — ozvěte se kdykoli.</p>
                </div>
                <Button variant="primary" onClick={() => go("contact")} iconEnd={<Icon name="arrowRight" size={18} />}>Napsat nám</Button>
              </div>
            </div>
          </div>
        </div>
      </main>
    );
  }

  window.VNLegal = Legal;
})();
