const { Button, IconButton } = window.HotelManglaresLodgeCaldera_e07d8c;

/* Breakpoint hook — el sitio usa estilos inline, así que exponemos banderas
   de viewport para decidir layout (menú móvil, motor de reservas vertical). */
function useBP() {
  const get = () => {
    const w = typeof window !== "undefined" ? window.innerWidth : 1280;
    return { mobile: w <= 640, tablet: w > 640 && w <= 980, desktop: w > 980, navCollapsed: w <= 900 };
  };
  const [bp, setBp] = React.useState(get());
  React.useEffect(() => {
    const on = () => setBp(get());
    window.addEventListener("resize", on);
    return () => window.removeEventListener("resize", on);
  }, []);
  return bp;
}
window.useBP = useBP;

const NAV = [
  { id: "home", label: "Inicio" },
  { id: "rooms", label: "Habitaciones" },
  { id: "experiences", label: "Experiencias" },
  { id: "gastronomia", label: "Gastronomía" },
  { id: "about", label: "Nosotros" },
  { id: "contact", label: "Contacto" },
];

const WHATSAPP = "50689062992";
const PHONE = "50663343148";
// Las reservas se gestionan con el booking engine de Soverack.
// TODO: reemplazar por la URL del motor de reservas de Soverack cuando esté lista.
const RESERVA_URL = "https://wa.me/50689062992";
window.RESERVA_URL = RESERVA_URL;

function SiteHeader({ current, onNavigate, transparent }) {
  const [scrolled, setScrolled] = React.useState(false);
  const [open, setOpen] = React.useState(false);
  const bp = useBP();
  const collapsed = bp.navCollapsed;
  // El header es sticky (ocupa flujo), así que nunca llega a "sobreponerse" al
  // hero: mantenerlo sólido garantiza legibilidad del menú en todas las páginas.
  const solid = true;
  const go = (id) => { onNavigate(id); setOpen(false); };
  React.useEffect(() => { if (!collapsed && open) setOpen(false); }, [collapsed, open]);

  return (
    <header style={{
      position: "sticky", top: 0, zIndex: 50,
      background: solid ? "rgba(253,251,246,0.92)" : "transparent",
      backdropFilter: solid ? "blur(10px)" : "none",
      borderBottom: solid ? "1px solid var(--border-soft)" : "1px solid transparent",
      transition: "background var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out)",
    }}>
      <div className="container" style={{ maxWidth: "var(--container-max)", margin: "0 auto", padding: "14px 32px", display: "flex", alignItems: "center", justifyContent: "space-between", gap: "24px" }}>
        <a onClick={() => go("home")} style={{ display: "flex", alignItems: "center", cursor: "pointer", textDecoration: "none" }}>
          <img src="../../assets/logo-manglares.png" alt="Hotel & Restaurante Manglares" style={{ height: "46px", width: "auto", display: "block" }} />
        </a>

        {!collapsed && (
          <nav style={{ display: "flex", alignItems: "center", gap: "28px" }}>
            {NAV.map((n) => (
              <a key={n.id} onClick={() => go(n.id)} style={{
                fontFamily: "var(--font-sans)", fontSize: "14px", fontWeight: 600, cursor: "pointer",
                color: current === n.id ? "var(--gold-600)" : solid ? "var(--ink-700)" : "var(--cream-100)",
                borderBottom: current === n.id ? "2px solid var(--gold-500)" : "2px solid transparent", paddingBottom: "2px",
              }}>{n.label}</a>
            ))}
            <Button size="sm" variant="primary" href={RESERVA_URL}>Reservar</Button>
          </nav>
        )}

        {collapsed && (
          <button className="nav-toggle" aria-label="Menú" aria-expanded={open} onClick={() => setOpen((o) => !o)}>
            <span style={{ background: solid ? "var(--ink-900)" : "var(--cream-100)" }} />
            <span style={{ background: solid ? "var(--ink-900)" : "var(--cream-100)" }} />
            <span style={{ background: solid ? "var(--ink-900)" : "var(--cream-100)" }} />
          </button>
        )}
      </div>

      {collapsed && open && (
        <div className="mobile-menu" style={{ background: "var(--surface-app)", borderTop: "1px solid var(--border-soft)", boxShadow: "var(--shadow-md)" }}>
          <div style={{ maxWidth: "var(--container-max)", margin: "0 auto", padding: "10px 20px 20px", display: "flex", flexDirection: "column", gap: "6px" }}>
            {NAV.map((n) => (
              <a key={n.id} onClick={() => go(n.id)} style={{
                fontFamily: "var(--font-sans)", fontSize: "16px", fontWeight: 600, cursor: "pointer",
                color: current === n.id ? "var(--gold-600)" : "var(--ink-700)",
                borderBottom: "1px solid var(--border-soft)", padding: "12px 2px",
              }}>{n.label}</a>
            ))}
            <Button variant="primary" href={RESERVA_URL} style={{ marginTop: "12px", width: "100%" }}>Reservar</Button>
          </div>
        </div>
      )}
    </header>
  );
}

function SiteFooter({ onNavigate }) {
  const col = { display: "flex", flexDirection: "column", gap: "10px" };
  const link = { fontFamily: "var(--font-sans)", fontSize: "14px", color: "rgba(251,247,239,0.72)", cursor: "pointer", textDecoration: "none" };
  const h = { fontFamily: "var(--font-sans)", fontSize: "12px", letterSpacing: "0.16em", textTransform: "uppercase", fontWeight: 700, color: "var(--gold-400)", marginBottom: "4px" };
  return (
    <footer style={{ background: "var(--green-800)", color: "var(--cream-100)" }}>
      <div className="container footer-grid" style={{ maxWidth: "var(--container-max)", margin: "0 auto", padding: "64px 32px 40px", display: "grid", gridTemplateColumns: "1.4fr 1fr 1fr 1fr", gap: "40px" }}>
        <div className="footer-brand" style={col}>
          <span style={{ fontFamily: "var(--font-display)", fontSize: "30px", fontWeight: 500 }}>Manglares <span style={{ fontStyle: "italic" }}>Lodge</span></span>
          <p style={{ fontFamily: "var(--font-sans)", fontSize: "14px", lineHeight: 1.6, color: "rgba(251,247,239,0.72)", maxWidth: "300px", margin: 0 }}>Descansa, disfruta y vive una experiencia única entre naturaleza, gastronomía y hospitalidad.</p>
        </div>
        <div style={col}><span style={h}>Explorar</span>{NAV.slice(1).map((n) => <a key={n.id} style={link} onClick={() => onNavigate(n.id)}>{n.label}</a>)}</div>
        <div style={col}><span style={h}>Contacto</span>
          <span style={{ ...link, cursor: "default" }}>Caldera, Puntarenas</span>
          <a style={link} href={"tel:+" + PHONE}>+506 6334 3148</a>
          <a style={link} href={"https://wa.me/" + WHATSAPP} target="_blank" rel="noopener">WhatsApp +506 8906 2992</a>
          <a style={link} href="mailto:info@manglares.com">info@manglares.com</a>
        </div>
        <div style={col}><span style={h}>Síguenos</span><a style={link} href="https://www.facebook.com/HotelManglares" target="_blank" rel="noopener">Facebook</a><a style={link} href="https://www.instagram.com/HotelManglares" target="_blank" rel="noopener">Instagram</a></div>
      </div>
      <div style={{ borderTop: "1px solid rgba(251,247,239,0.14)", padding: "18px 32px", textAlign: "center", fontFamily: "var(--font-sans)", fontSize: "12px", color: "rgba(251,247,239,0.5)" }}>© 2026 Hotel Manglares Lodge · Caldera, Esparza, Puntarenas, Costa Rica</div>
    </footer>
  );
}

/* Botón flotante de WhatsApp — patrón estándar en sitios de hotelería. */
function WhatsAppFab() {
  return (
    <a href={"https://wa.me/" + WHATSAPP} target="_blank" rel="noopener" aria-label="Escríbenos por WhatsApp"
      style={{ position: "fixed", right: "20px", bottom: "20px", zIndex: 60, width: "56px", height: "56px", borderRadius: "var(--radius-pill)", background: "#25D366", boxShadow: "var(--shadow-lg)", display: "flex", alignItems: "center", justifyContent: "center" }}>
      <svg width="30" height="30" viewBox="0 0 24 24" fill="#fff" aria-hidden="true"><path d="M17.5 14.4c-.3-.15-1.77-.87-2.04-.97-.27-.1-.47-.15-.67.15-.2.3-.77.96-.94 1.16-.17.2-.35.22-.65.07-.3-.15-1.26-.46-2.4-1.48-.89-.79-1.49-1.77-1.66-2.07-.17-.3-.02-.46.13-.61.13-.13.3-.35.45-.52.15-.17.2-.3.3-.5.1-.2.05-.37-.02-.52-.08-.15-.67-1.61-.92-2.21-.24-.58-.49-.5-.67-.51h-.57c-.2 0-.52.07-.8.37-.27.3-1.04 1.02-1.04 2.48s1.07 2.88 1.22 3.08c.15.2 2.1 3.2 5.08 4.49.71.3 1.26.49 1.7.63.71.23 1.36.19 1.87.12.57-.09 1.77-.72 2.02-1.42.25-.7.25-1.29.17-1.42-.07-.13-.27-.2-.57-.35zM12.05 21.5h-.01a9.4 9.4 0 0 1-4.8-1.32l-.34-.2-3.57.94.95-3.48-.22-.36a9.42 9.42 0 0 1-1.44-5.02c0-5.2 4.24-9.44 9.46-9.44 2.53 0 4.9.99 6.69 2.78a9.38 9.38 0 0 1 2.77 6.68c0 5.2-4.24 9.44-9.45 9.44zM20.4 3.6A11.36 11.36 0 0 0 12.05.13C5.8.13.72 5.2.72 11.44c0 2 .53 3.96 1.53 5.68L.63 23.13l6.15-1.6a11.34 11.34 0 0 0 5.27 1.31h.01c6.24 0 11.32-5.07 11.32-11.31 0-3.02-1.18-5.86-3.32-8z"/></svg>
    </a>
  );
}

Object.assign(window, { SiteHeader, SiteFooter, WhatsAppFab, NAV });
