// pages-legal.jsx — Aviso legal, política de privacidad, cookies, 404

function LegalWrap({ titleEs, titleEn, titleEl, titlePl, children }) {
  const T = useT();
  return (
    <section className="section page-hero legal-page" data-screen-label="Legal">
      <div className="container">
        <div className="rule-h reveal-soft in">
          <span className="num">·</span> {T('Información legal','Legal information','Νομικές πληροφορίες','Informacje prawne')}
        </div>
        <h1 className="display-xl reveal-soft in" style={{ maxWidth: '20ch', marginBottom: 48 }}>
          {T(titleEs, titleEn, titleEl, titlePl)}
        </h1>
        <div className="legal-body reveal">{children}</div>
      </div>
    </section>
  );
}

function AvisoLegalPage() {
  const T = useT();
  return (
    <LegalWrap titleEs="Aviso legal." titleEn="Legal notice." titleEl="Νομική σημείωση." titlePl="Nota prawna.">
      <p><strong>{T('Titular del sitio','Site owner','Κάτοχος','Właściciel')}:</strong> Mateo Roncagliolo. {T(
        'Sitio web oficial del escritor Santiago Roncagliolo, desarrollado y mantenido por encargo suyo.',
        'Official website of the writer Santiago Roncagliolo, developed and maintained on his behalf.',
        'Επίσημος ιστότοπος του συγγραφέα Santiago Roncagliolo, που αναπτύσσεται και συντηρείται κατ’ ανάθεσή του.',
        'Oficjalna strona pisarza Santiago Roncagliolo, tworzona i utrzymywana na jego zlecenie.'
      )}</p>

      <p><strong>{T('Contacto','Contact','Επικοινωνία','Kontakt')}:</strong> <a href="mailto:mateo@mateoroncagliolo.com">mateo@mateoroncagliolo.com</a></p>

      <h3>{T('Objeto','Purpose','Αντικείμενο','Cel')}</h3>
      <p>{T(
        'Este sitio web tiene carácter informativo y divulgativo sobre la obra del autor. No se realizan transacciones comerciales a través de él.',
        'This website is informational only and is dedicated to the author’s work. No commercial transactions are carried out here.',
        'Ο ιστότοπος είναι ενημερωτικού χαρακτήρα σχετικά με το έργο του συγγραφέα. Δεν πραγματοποιούνται εμπορικές συναλλαγές.',
        'Strona ma charakter informacyjny. Nie są na niej prowadzone transakcje handlowe.'
      )}</p>

      <h3>{T('Propiedad intelectual','Intellectual property','Πνευματική ιδιοκτησία','Własność intelektualna')}</h3>
      <p>{T(
        'Los textos, imágenes y demás contenidos del sitio son propiedad de Santiago Roncagliolo o de sus respectivas editoriales, productoras y titulares de derechos. Queda prohibida su reproducción sin autorización expresa.',
        'Texts, images and other contents on this site belong to Santiago Roncagliolo or to their respective publishers, producers and rightsholders. Reproduction without express permission is forbidden.',
        'Τα κείμενα, εικόνες και λοιπό περιεχόμενο ανήκουν στον Santiago Roncagliolo ή στους αντίστοιχους εκδότες και κατόχους δικαιωμάτων.',
        'Teksty, zdjęcia i pozostała zawartość należą do Santiago Roncagliolo lub odpowiednich wydawców i właścicieli praw.'
      )}</p>

      <h3>{T('Responsabilidad','Liability','Ευθύνη','Odpowiedzialność')}</h3>
      <p>{T(
        'Se hace todo lo posible para mantener la información actualizada y veraz, pero no se garantiza la ausencia de errores u omisiones.',
        'Every effort is made to keep the information up to date and accurate, but no guarantee is given against errors or omissions.',
        'Γίνεται κάθε προσπάθεια για ακριβείς πληροφορίες, χωρίς όμως εγγύηση μη ύπαρξης σφαλμάτων.',
        'Dokładamy starań, aby informacje były aktualne; nie gwarantujemy braku błędów.'
      )}</p>

      <h3>{T('Enlaces a terceros','Third-party links','Σύνδεσμοι τρίτων','Linki zewnętrzne')}</h3>
      <p>{T(
        'Este sitio enlaza a webs de terceros —editoriales, librerías, medios y plataformas de vídeo— para que puedas comprar los libros o consultar las piezas citadas. No controlamos esos sitios ni respondemos de sus contenidos, sus precios ni de sus políticas de privacidad, que debes consultar por separado.',
        'This site links to third-party websites —publishers, bookshops, media outlets and video platforms— so you can buy the books or read the pieces cited. We do not control those sites and are not responsible for their content, prices or privacy policies, which you should review separately.',
        'Ο ιστότοπος περιέχει συνδέσμους προς τρίτους. Δεν ελέγχουμε το περιεχόμενο ούτε τις πολιτικές τους.',
        'Strona zawiera linki do witryn zewnętrznych. Nie odpowiadamy za ich treść ani polityki prywatności.'
      )}</p>

      <h3>{T('Ley aplicable','Applicable law','Εφαρμοστέο δίκαιο','Prawo właściwe')}</h3>
      <p>{T(
        'Este aviso se rige por la legislación española. Para cualquier controversia, las partes se someten a los juzgados y tribunales de Barcelona.',
        'This notice is governed by Spanish law. Any dispute will be subject to the courts of Barcelona.',
        'Ισχύει το ισπανικό δίκαιο και τα δικαστήρια της Βαρκελώνης.',
        'Obowiązuje prawo hiszpańskie i sądy w Barcelonie.'
      )}</p>
    </LegalWrap>
  );
}

function PrivacidadPage() {
  const T = useT();
  return (
    <LegalWrap titleEs="Política de privacidad." titleEn="Privacy policy." titleEl="Πολιτική απορρήτου." titlePl="Polityka prywatności.">
      <p><strong>{T('Responsable','Controller','Υπεύθυνος','Administrator')}:</strong> Mateo Roncagliolo — <a href="mailto:mateo@mateoroncagliolo.com">mateo@mateoroncagliolo.com</a></p>

      <h3>{T('Datos que tratamos','Data we handle','Δεδομένα','Dane')}</h3>
      <p>{T(
        'Este sitio no recoge datos personales mediante formularios. Solo se almacenan en el navegador del usuario (localStorage) las preferencias de idioma y de país de compra y, si lo acepta, una cookie de analítica anónima de Vercel. Para mostrar el enlace de compra de la tienda correcta se consulta el país aproximado a partir de la dirección IP de la conexión; ese dato no se almacena ni se asocia a ninguna persona.',
        'This site does not collect personal data through forms. It only stores language preferences in the user’s browser and, if accepted, an anonymous Vercel analytics cookie.',
        'Δεν συλλέγουμε προσωπικά δεδομένα μέσω φορμών. Αποθηκεύεται μόνο η γλώσσα και, αν συναινέσετε, ένα ανώνυμο cookie του Vercel.',
        'Nie zbieramy danych osobowych przez formularze. Zapisywany jest tylko język i, jeśli wyrazisz zgodę, anonimowe ciasteczko analityki Vercel.'
      )}</p>

      <h3>{T('Finalidad','Purpose','Σκοπός','Cel')}</h3>
      <p>{T(
        'Las preferencias guardadas sirven exclusivamente para que la web funcione (idioma elegido). La analítica anónima, si la aceptas, sirve para conocer cuántas personas visitan el sitio y qué páginas leen, sin identificarte.',
        'Saved preferences only let the site work properly (chosen language). Anonymous analytics, if you accept, lets us know how many people visit and which pages they read, without identifying you.',
        'Οι προτιμήσεις χρησιμεύουν για τη λειτουργία (γλώσσα). Η ανώνυμη ανάλυση —αν συναινέσετε— μετρά επισκέψεις χωρίς ταυτοποίηση.',
        'Preferencje służą działaniu strony (język). Anonimowa analityka — za zgodą — mierzy liczbę odwiedzin bez identyfikacji.'
      )}</p>

      <h3>{T('Tus derechos','Your rights','Τα δικαιώματά σας','Twoje prawa')}</h3>
      <p>{T(
        'Puedes borrar las cookies y los datos guardados desde tu navegador en cualquier momento. Si tienes dudas o quieres ejercer tus derechos RGPD (acceso, rectificación, supresión, oposición), escribe a mateo@mateoroncagliolo.com.',
        'You can delete cookies and stored data from your browser at any time. For questions or to exercise your GDPR rights (access, correction, deletion, objection), write to mateo@mateoroncagliolo.com.',
        'Μπορείτε ανά πάσα στιγμή να διαγράψετε δεδομένα. Για δικαιώματα GDPR γράψτε στο mateo@mateoroncagliolo.com.',
        'Możesz w każdej chwili usunąć dane z przeglądarki. Prawa RODO: mateo@mateoroncagliolo.com.'
      )}</p>

      <h3>{T('Cuánto tiempo se conservan','How long data is kept','Διάρκεια','Okres przechowywania')}</h3>
      <p>{T(
        'Las preferencias de idioma y de país permanecen en tu navegador hasta que las borres tú. La cookie de analítica, si la aceptas, caduca según los plazos de Vercel. No conservamos nada en ningún servidor propio.',
        'Language and country preferences stay in your browser until you delete them. The analytics cookie, if you accept it, expires according to Vercel’s terms. We keep nothing on any server of our own.',
        'Οι προτιμήσεις παραμένουν στον browser σας μέχρι να τις διαγράψετε. Δεν διατηρούμε τίποτα σε δικό μας διακομιστή.',
        'Preferencje pozostają w przeglądarce do czasu ich usunięcia. Nie przechowujemy niczego na własnym serwerze.'
      )}</p>

      <h3>{T('Cesiones de datos','Data transfers','Διαβίβαση','Przekazywanie')}</h3>
      <p>{T(
        'No cedemos tus datos a terceros. No usamos Google Analytics, Meta Pixel ni servicios similares. El alojamiento y la analítica anónima corren a cargo de Vercel Inc., empresa estadounidense, por lo que el tratamiento puede implicar una transferencia internacional de datos amparada en las garantías previstas por el RGPD.',
        'We don’t share your data with third parties. We don’t use Google Analytics, Meta Pixel or similar services. Hosting and anonymous analytics are provided by Vercel Inc., a US company, so processing may involve an international data transfer covered by the safeguards provided for in the GDPR.',
        'Δεν διαβιβάζουμε δεδομένα σε τρίτους. Φιλοξενία: Vercel Inc. (ΗΠΑ), με τις εγγυήσεις του GDPR.',
        'Nie udostępniamy danych. Hosting: Vercel Inc. (USA), z zabezpieczeniami przewidzianymi w RODO.'
      )}</p>

      <h3>{T('Reclamaciones','Complaints','Καταγγελίες','Skargi')}</h3>
      <p>{T(
        'Si consideras que no hemos atendido correctamente tus derechos, puedes presentar una reclamación ante la Agencia Española de Protección de Datos (www.aepd.es).',
        'If you believe your rights have not been properly handled, you may lodge a complaint with the Spanish Data Protection Agency (www.aepd.es).',
        'Μπορείτε να υποβάλετε καταγγελία στην ισπανική αρχή προστασίας δεδομένων (www.aepd.es).',
        'Możesz złożyć skargę do hiszpańskiego organu ochrony danych (www.aepd.es).'
      )}</p>
    </LegalWrap>
  );
}

function CookiesPage() {
  const T = useT();
  const reset = () => {
    try { localStorage.removeItem('sr-cookies'); } catch (e) {}
    window.location.reload();
  };
  return (
    <LegalWrap titleEs="Política de cookies." titleEn="Cookie policy." titleEl="Πολιτική cookies." titlePl="Polityka cookies.">
      <p>{T(
        'Este sitio utiliza un número muy reducido de cookies. Son las siguientes:',
        'This site uses a very small number of cookies, as follows:',
        'Ο ιστότοπος χρησιμοποιεί ελάχιστα cookies:',
        'Strona używa minimalnej liczby ciasteczek:'
      )}</p>

      <h3>{T('Técnicas (siempre activas)','Strictly necessary (always on)','Τεχνικά','Niezbędne')}</h3>
      <ul>
        <li><code>sr-lang</code> · {T('guarda tu idioma preferido','stores your preferred language','αποθηκεύει τη γλώσσα','zapisuje język')}</li>
        <li><code>sr-cookies</code> · {T('guarda si has aceptado o rechazado las cookies analíticas','stores whether you accepted or rejected analytics cookies','αποθηκεύει τη συγκατάθεση','zapisuje zgodę')}</li>
        <li><code>sr-country</code> · {T('solo si cambias tu país a mano en un enlace de compra, para recordarlo','only if you manually change your country on a purchase link, to remember it','μόνο αν αλλάξετε χώρα χειροκίνητα','tylko jeśli ręcznie zmienisz kraj')}</li>
      </ul>

      <h3>{T('Analíticas (opcionales)','Analytics (optional)','Ανάλυσης','Analityczne')}</h3>
      <ul>
        <li><strong>Vercel Web Analytics</strong> · {T(
          'Anónimas, sin identificación personal. Cuentan visitas y páginas vistas. Solo se activan si las aceptas en el banner.',
          'Anonymous, no personal identifiers. Count visits and pages. Loaded only if you accept on the banner.',
          'Ανώνυμες. Φορτώνονται μόνο με συγκατάθεση.',
          'Anonimowe. Tylko za zgodą.'
        )}</li>
      </ul>

      <h3>{T('Cambiar tu decisión','Change your mind','Αλλαγή','Zmień zdanie')}</h3>
      <p>
        <button onClick={reset} className="btn btn-solid" style={{ display: 'inline-block', marginTop: 12 }}>
          {T('Revisar mi consentimiento','Review my consent','Επανεξέταση','Zmień zgodę')} →
        </button>
      </p>
    </LegalWrap>
  );
}

function NotFoundPage() {
  const { go } = useRoute();
  const T = useT();
  return (
    <section className="section page-hero notfound-page" data-screen-label="404">
      <div className="container">
        <div className="rule-h reveal-soft in"><span className="num">404</span> {T('No encontrado','Not found','Δεν βρέθηκε','Nie znaleziono')}</div>
        <h1 className="display-xl reveal-soft in" style={{ maxWidth: '20ch', marginBottom: 32 }}>
          {T('Esta página no existe.','This page does not exist.','Η σελίδα δεν υπάρχει.','Strona nie istnieje.')}
        </h1>
        <p className="lead reveal-soft in" style={{ fontStyle: 'normal', maxWidth: '50ch', marginBottom: 48 }}>
          {T(
            'Puede que el enlace esté mal, o que la página haya cambiado. Vuelve al inicio para seguir descubriendo la obra del autor.',
            'The link may be broken, or the page may have moved. Go back to the home page to continue exploring the author’s work.',
            'Επιστρέψτε στην αρχική.',
            'Wróć do strony głównej.'
          )}
        </p>
        <a href="/" onClick={(e) => { e.preventDefault(); go('/'); }} className="btn btn-solid">
          {T('Volver al inicio','Back to home','Αρχική','Strona główna')} →
        </a>
      </div>
    </section>
  );
}

Object.assign(window, { AvisoLegalPage, PrivacidadPage, CookiesPage, NotFoundPage });
