// Milfers · Capa legal — banner de cookies + modal con pestañas (Aviso / Privacidad / Cookies)
// Emails protegidos anti-bot: se ensamblan en runtime desde data-u / data-d / data-t.
function LegalLayer() {
  React.useEffect(() => {
    const COOKIE_KEY = 'milfers_cookie_consent_v1';

    /* ---- Email anti-bots: arma la dirección sólo en runtime ---- */
    document.querySelectorAll('a.e-mail').forEach((a) => {
      const u = a.dataset.u, d = a.dataset.d, t = a.dataset.t;
      if (!u || !d || !t) return;
      const addr = u + '\u0040' + d + '.' + t;
      a.setAttribute('href', 'mailto:' + addr);
      if (a.dataset.show === 'addr') a.textContent = addr;
    });

    /* ---- Banner de cookies ---- */
    const cookieBanner = document.getElementById('cookieBanner');
    function showCookieBanner() {
      if (!cookieBanner) return;
      cookieBanner.hidden = false;
      requestAnimationFrame(() => requestAnimationFrame(() => cookieBanner.classList.add('is-visible')));
    }
    function hideCookieBanner() {
      if (!cookieBanner) return;
      cookieBanner.classList.remove('is-visible');
      setTimeout(() => { cookieBanner.hidden = true; }, 260);
    }
    function setConsent(value) {
      try { localStorage.setItem(COOKIE_KEY, value); } catch (e) {}
      if (window.dataLayer) window.dataLayer.push({ event: 'cookie_consent', consent: value });
      hideCookieBanner();
    }
    try { if (!localStorage.getItem(COOKIE_KEY)) showCookieBanner(); }
    catch (e) { showCookieBanner(); }

    /* ---- Modal legal ---- */
    const legalModal = document.getElementById('legalModal');
    const LEGAL_META = {
      aviso:      { eye: 'Aviso legal', ttl: 'Aviso legal y condiciones de uso.' },
      privacidad: { eye: 'Privacidad',  ttl: 'Política de privacidad.' },
      cookies:    { eye: 'Cookies',     ttl: 'Política de cookies.' }
    };
    function openLegal(tab) {
      if (!legalModal) return;
      tab = tab || 'aviso';
      legalModal.querySelectorAll('.legal-tab').forEach((b) => b.classList.toggle('is-active', b.dataset.legalTab === tab));
      legalModal.querySelectorAll('.legal-pane').forEach((p) => p.classList.toggle('is-active', p.dataset.legalPane === tab));
      const meta = LEGAL_META[tab] || LEGAL_META.aviso;
      legalModal.querySelector('[data-legal-eyebrow]').textContent = meta.eye;
      legalModal.querySelector('[data-legal-title]').textContent = meta.ttl;
      legalModal.querySelector('.legal-body').scrollTop = 0;
      legalModal.hidden = false;
      document.body.classList.add('no-scroll');
      setTimeout(() => legalModal.classList.add('is-open'), 0);
    }
    function closeLegal() {
      legalModal.classList.remove('is-open');
      document.body.classList.remove('no-scroll');
      setTimeout(() => { legalModal.hidden = true; }, 220);
    }

    function onClick(e) {
      if (e.target.closest('[data-cookie-accept]')) { setConsent('all'); return; }
      if (e.target.closest('[data-cookie-decline]')) { setConsent('necessary'); return; }
      const op = e.target.closest('[data-legal-open]');
      if (op) { e.preventDefault(); openLegal(op.getAttribute('data-legal-open')); return; }
      if (e.target.closest('[data-legal-close]')) { closeLegal(); return; }
      const tb = e.target.closest('[data-legal-tab]');
      if (tb) { openLegal(tb.getAttribute('data-legal-tab')); return; }
    }
    function onKey(e) {
      if (e.key === 'Escape' && legalModal && !legalModal.hidden) closeLegal();
    }
    document.addEventListener('click', onClick);
    document.addEventListener('keydown', onKey);
    return () => {
      document.removeEventListener('click', onClick);
      document.removeEventListener('keydown', onKey);
    };
  }, []);

  return (
    <React.Fragment>
      {/* ▸ COOKIE BANNER */}
      <div className="cookie-banner" id="cookieBanner" role="dialog" aria-labelledby="cookieTitle" hidden>
        <div className="cookie-inner">
          <div className="cookie-copy">
            <strong id="cookieTitle">{window.t('cookie.title')}</strong>
            <p>{window.t('cookie.body')} <a data-legal-open="cookies">{window.t('cookie.link')}</a>.</p>
          </div>
          <div className="cookie-actions">
            <button type="button" className="cookie-btn ghost" data-cookie-decline>{window.t('cookie.decline')}</button>
            <button type="button" className="cookie-btn primary" data-cookie-accept>{window.t('cookie.accept')}</button>
          </div>
        </div>
      </div>

      {/* ▸ LEGAL MODAL */}
      <div className="legal-modal" id="legalModal" role="dialog" aria-modal="true" aria-labelledby="legalModalTitle" hidden>
        <div className="legal-modal-backdrop" data-legal-close></div>
        <div className="legal-shell" role="document">
          <header className="legal-head">
            <div>
              <div className="eyebrow" data-legal-eyebrow>Aviso legal</div>
              <h3 id="legalModalTitle" data-legal-title>Aviso legal y condiciones de uso.</h3>
            </div>
            <button type="button" className="legal-close" data-legal-close aria-label="Cerrar">
              <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M6 6 L18 18 M18 6 L6 18" fill="none" stroke="currentColor" strokeWidth="1.8" strokeLinecap="round"></path></svg>
            </button>
          </header>

          <div className="legal-tabs" role="tablist">
            <button type="button" className="legal-tab is-active" data-legal-tab="aviso">Aviso legal</button>
            <button type="button" className="legal-tab" data-legal-tab="privacidad">Privacidad</button>
            <button type="button" className="legal-tab" data-legal-tab="cookies">Cookies</button>
          </div>

          <div className="legal-body">
            {/* AVISO LEGAL */}
            <section className="legal-pane is-active" data-legal-pane="aviso">
              <h4>1 · Información general</h4>
              <p>En cumplimiento de la Ley 34/2002, de 11 de julio (LSSI-CE), se informa de los datos del titular del sitio web <em>milfersburgers.com</em>:</p>
              <ul className="legal-list">
                <li><strong>Razón social:</strong> Milfers Burgers, S.L.</li>
                <li><strong>NIF:</strong> B72913171</li>
                <li><strong>Domicilio social:</strong> Av. Pintor Tarrasó, 62, 46823 Navarrés, Valencia (España)</li>
                <li><strong>Teléfono:</strong> <a href="tel:+34633131549">+34 633 131 549</a></li>
                <li><strong>Email:</strong> <a className="e-mail" data-u="info" data-d="milfersburgers" data-t="com" data-show="addr" href="#">Escríbenos por email</a></li>
              </ul>

              <h4>2 · Objeto y aceptación</h4>
              <p>El presente aviso regula el acceso y uso del sitio web. La navegación implica la aceptación de estas condiciones. Milfers Burgers, S.L. se reserva la facultad de modificar la presentación, configuración, contenidos y servicios del sitio en cualquier momento y sin aviso previo.</p>

              <h4>3 · Uso por parte del usuario</h4>
              <p>El acceso es libre y gratuito (salvo el coste de conexión del usuario). El usuario se compromete a un uso lícito de los contenidos, sin vulnerar derechos de terceros, la moral o el orden público.</p>

              <h4>4 · Exclusión de garantías y responsabilidad</h4>
              <p>Milfers Burgers, S.L. hará todo lo posible por el buen funcionamiento del sitio, pero no garantiza disponibilidad continuada ni ausencia de errores. No se hace responsable de daños derivados del acceso, navegación o uso.</p>

              <h4>5 · Enlaces a terceros</h4>
              <p>Los enlaces a sitios externos se ofrecen para facilitar el acceso a información de interés. Milfers Burgers, S.L. no controla ni asume responsabilidad sobre sus contenidos.</p>

              <h4>6 · Propiedad intelectual</h4>
              <p>Milfers Burgers, S.L. es titular de todos los derechos de propiedad intelectual e industrial del sitio (textos, imágenes, software, marcas, logotipos, combinaciones de colores, estructura y diseño). Queda prohibida la reproducción total o parcial con fines comerciales sin autorización expresa.</p>

              <h4>7 · Legislación aplicable y jurisdicción</h4>
              <p>La relación entre el usuario y Milfers Burgers, S.L. se rige por la legislación española. Cualquier controversia se someterá a los juzgados y tribunales que correspondan conforme a derecho.</p>
            </section>

            {/* PRIVACIDAD */}
            <section className="legal-pane" data-legal-pane="privacidad">
              <h4>Responsable del tratamiento</h4>
              <p>Milfers Burgers, S.L. (NIF B72913171), con domicilio en Av. Pintor Tarrasó, 62, 46823 Navarrés, Valencia. Email de contacto: <a className="e-mail" data-u="info" data-d="milfersburgers" data-t="com" data-show="addr" href="#">escríbenos por email</a>.</p>

              <h4>Datos que tratamos</h4>
              <ul className="legal-list">
                <li>Datos de reserva (nombre, teléfono, email, fecha y hora).</li>
                <li>Datos de navegación (cookies analíticas y publicitarias) — solo si el usuario los acepta.</li>
                <li>Consultas enviadas a nuestro email o WhatsApp.</li>
              </ul>

              <h4>Finalidades</h4>
              <p>Gestionar reservas, atender consultas, medir el rendimiento del sitio y mejorar la experiencia del usuario.</p>

              <h4>Base legal</h4>
              <p>Consentimiento del usuario (cookies y comunicaciones comerciales) y ejecución de la relación contractual (reservas).</p>

              <h4>Conservación</h4>
              <p>Los datos se conservan mientras dure la relación o durante los plazos legalmente exigibles. Las cookies, hasta el plazo indicado en la política de cookies.</p>

              <h4>Tus derechos</h4>
              <p>Puedes ejercer tus derechos de acceso, rectificación, supresión, oposición, limitación y portabilidad escribiendo a <a className="e-mail" data-u="info" data-d="milfersburgers" data-t="com" data-show="addr" href="#">nuestro email</a>. También puedes reclamar ante la Agencia Española de Protección de Datos (<em>aepd.es</em>).</p>
            </section>

            {/* COOKIES */}
            <section className="legal-pane" data-legal-pane="cookies">
              <h4>¿Qué son?</h4>
              <p>Pequeños archivos que el sitio guarda en tu dispositivo para recordar preferencias y entender cómo se usa la web.</p>

              <h4>¿Cuáles usamos?</h4>
              <ul className="legal-list">
                <li><strong>Necesarias —</strong> hacen funcionar la web (preferencia de cookies, sesión).</li>
                <li><strong>Reservas —</strong> widget de reservas (procesa la disponibilidad y confirma la mesa).</li>
                <li><strong>Google —</strong> Analytics (medir tráfico y comportamiento de forma agregada).</li>
                <li><strong>Meta —</strong> píxel de Facebook/Instagram (medir campañas y públicos similares).</li>
              </ul>

              <h4>Tu control</h4>
              <p>Puedes aceptar todas, rechazar las opcionales, o cambiar tu elección en cualquier momento desde el botón «Cookies» del pie de página. También puedes bloquearlas desde tu navegador.</p>
            </section>
          </div>

          <footer className="legal-foot">
            <span>Milfers Burgers, S.L. · B72913171</span>
            <span className="hint">Última actualización · Junio 2026</span>
          </footer>
        </div>
      </div>
    </React.Fragment>
  );
}

window.LegalLayer = LegalLayer;
