/* global React */

const IgIcon = () => (
  <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.8" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">
    <rect x="2" y="2" width="20" height="20" rx="5" ry="5"/>
    <circle cx="12" cy="12" r="4.5"/>
    <circle cx="17.5" cy="6.5" r="0.5" fill="currentColor" stroke="none"/>
  </svg>
);

const FbIcon = () => (
  <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true">
    <path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"/>
  </svg>
);

const WaIcon = () => (
  <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true">
    <path d="M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 0 1-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 0 1-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 0 1 2.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0 0 12.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 0 0 5.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 0 0-3.48-8.413z"/>
  </svg>
);

function Footer() {
  const { t, lang } = window.useT();
  const copy = lang === "es"
    ? "© 2026 Victoria Skincare Curaçao · Realizado por"
    : "© 2026 Victoria Skincare Curaçao · Made by";
  const rights = lang === "es"
    ? "· Todos los derechos reservados"
    : "· All rights reserved";

  return (
    <footer className="vsc-footer" data-screen-label="Footer">
      <div className="vsc-wrap">
        <div className="vsc-footer-inner">
          <div className="vsc-footer-brand">
            <img src="assets/logo-bw.webp" alt="Victoria Skincare Curaçao" />
            <p>{t("footer.about")}</p>
            <div className="vsc-footer-socials">
              <a href="https://www.instagram.com/victoriaskincarecuracao" target="_blank" rel="noopener noreferrer" aria-label="Instagram">
                <IgIcon />
              </a>
              <a href="https://www.facebook.com/victoriaskincarecuracao" target="_blank" rel="noopener noreferrer" aria-label="Facebook">
                <FbIcon />
              </a>
              <a href="https://wa.me/59995279021" target="_blank" rel="noopener noreferrer" aria-label="WhatsApp">
                <WaIcon />
              </a>
            </div>
          </div>

          <div className="vsc-footer-col">
            <h4>{t("footer.col.treatments")}</h4>
            <ul>
              <li><a href="massages.html">{t("nav.services.massages")}</a></li>
              <li><a href="facials.html">{t("nav.services.facials")}</a></li>
              <li><a href="waxing.html">{t("nav.services.waxing")}</a></li>
              <li><a href="index.html#paquetes">{t("pkg.eyebrow")}</a></li>
            </ul>
          </div>

          <div className="vsc-footer-col">
            <h4>{t("footer.col.about")}</h4>
            <ul>
              <li><a href="about.html">{t("nav.about")}</a></li>
              <li><a href="index.html#opiniones">{t("test.eyebrow")}</a></li>
              <li><a href="contact.html">{t("nav.contact")}</a></li>
            </ul>
          </div>

          <div className="vsc-footer-col">
            <h4>{t("footer.col.visit")}</h4>
            <ul>
              <li><strong style={{color: 'var(--vsc-ivory)'}}>{t("cta.address.line1")}</strong></li>
              <li>{t("cta.address.line2")}</li>
              <li>+5999 527 9021</li>
              <li>+5999 677 0326</li>
              <li>hola@vicskincare.com</li>
              <li style={{marginTop:8}}>{t("cta.hours")}</li>
            </ul>
          </div>
        </div>
        <div className="vsc-footer-bar">
          <span>
            {copy}{" "}
            <a href="https://chaching.agency" target="_blank" rel="noopener noreferrer" style={{color:'var(--vsc-leaf)', fontWeight:600}}>
              ChaChing Agency
            </a>{" "}
            {rights}
          </span>
          <span>
            <a href="#">{t("footer.privacy")}</a> &nbsp;·&nbsp;
            <a href="#">{t("footer.terms")}</a>
          </span>
        </div>
      </div>
    </footer>
  );
}

function MobileCTA() {
  const { t } = window.useT();
  const [visible, setVisible] = React.useState(false);
  const [bookVisible, setBookVisible] = React.useState(false);
  const timerRef = React.useRef(null);

  // Hide when a real Book CTA is visible in the viewport
  React.useEffect(() => {
    const targets = document.querySelectorAll(
      '.vsc-hero-cta, .vsc-page-hero .actions, .vsc-cta'
    );
    if (!targets.length) return;
    const visibleSet = new Set();
    const observer = new IntersectionObserver((entries) => {
      entries.forEach(e => {
        if (e.isIntersecting) visibleSet.add(e.target);
        else visibleSet.delete(e.target);
      });
      setBookVisible(visibleSet.size > 0);
    }, { threshold: 0.15 });
    targets.forEach(el => observer.observe(el));
    return () => observer.disconnect();
  }, []);

  // Show after scroll > 120px, auto-hide after 10 s
  React.useEffect(() => {
    function onScroll() {
      if (window.scrollY > 120) {
        setVisible(true);
        clearTimeout(timerRef.current);
        timerRef.current = setTimeout(() => setVisible(false), 10000);
      }
    }
    window.addEventListener('scroll', onScroll, { passive: true });
    return () => {
      window.removeEventListener('scroll', onScroll);
      clearTimeout(timerRef.current);
    };
  }, []);

  const show = visible && !bookVisible;

  return (
    <div className={"vsc-mobile-cta" + (show ? " is-visible" : "")} data-screen-label="Mobile CTA">
      <span className="text">{t("common.tagline_mobile")}</span>
      <BookBtn>{t("common.book_short")}</BookBtn>
    </div>
  );
}

window.Footer = Footer;
window.MobileCTA = MobileCTA;
