/* Sections — Header, Hero, Menu (cast + food), Oasis, Visit, Footer.
   All accept `lang` and run text through window.t(key, lang). */

const { useState: useStateS, useEffect: useEffectS } = React;

const T = (key, lang) => window.t ? window.t(key, lang) : key;

/* =========================================================
   HEADER + language toggle + nav drawer
   ========================================================= */
const Header = ({ onOpenNav, lang, onToggleLang }) => (
  <header className="site-header">
    <a href="#top" className="lockup" aria-label="Mystic Mocha — home">
      <MiniCup wisps={[
        { d: "M 0 0 C -6 -16,  8 -32, 0 -52", x: -10, xf: -4,  dur: 4.4, delay: 0,   op: .55 },
        { d: "M 0 0 C  5 -14, -6 -30, 4 -50", x:  4,  xf:  8,  dur: 5.2, delay: 1.1, op: .45 },
        { d: "M 0 0 C -3 -14,  6 -28,-2 -48", x: 14,  xf:  10, dur: 4.8, delay: 2.3, op: .38 },
      ]}/>
      <span className="wordmark">Mystic Mocha</span>
    </a>
    <button className="menu-btn" onClick={onOpenNav} aria-label={T("header.menu", lang)}>
      <span className="label">{T("header.menu", lang)}</span>
      <span className="bars" aria-hidden="true">
        <span></span><span></span>
      </span>
    </button>
    <LangToggle lang={lang} onToggle={onToggleLang} />
  </header>
);

/* No longer needed — the toggle is now anchored inside the header. */
const LangHanger = () => null;

const LangToggle = ({ lang, onToggle }) => (
  <button
    className="lang-toggle"
    onClick={onToggle}
    aria-label={lang === "en" ? "cambiar a español" : "switch to english"}
    aria-pressed={lang === "es"}
    title={lang === "en" ? "cambiar a español" : "switch to english"}
  >
    <span className={`lang-slot${lang === "en" ? " is-on" : ""}`}>english</span>
    <span className="lang-dot" aria-hidden="true">
      <span className="lang-pip"></span>
    </span>
    <span className={`lang-slot${lang === "es" ? " is-on" : ""}`}>español</span>
  </button>
);

const NavDrawer = ({ open, onClose, lang }) => {
  useEffectS(() => {
    if (!open) return;
    const onKey = (e) => { if (e.key === "Escape") onClose(); };
    window.addEventListener("keydown", onKey);
    return () => window.removeEventListener("keydown", onKey);
  }, [open, onClose]);

  const go = (id) => (e) => {
    e.preventDefault();
    onClose();
    setTimeout(() => {
      const el = document.getElementById(id);
      if (el) el.scrollIntoView({ behavior: "smooth", block: "start" });
    }, 260);
  };

  return (
    <>
      <div className={`nav-overlay${open ? " open" : ""}`} onClick={onClose} aria-hidden={!open}/>
      <aside className={`nav-drawer${open ? " open" : ""}`} aria-hidden={!open}>
        <button className="x" onClick={onClose} aria-label={T("header.menu.close", lang)}>{T("header.menu.close", lang)}</button>
        <nav>
          <a href="#cast"  onClick={go("cast")}>{T("drawer.cast", lang)}</a>
          <a href="#food"  onClick={go("food")}>{T("drawer.food", lang)}</a>
          <a href="#oasis" onClick={go("oasis")}>{T("drawer.oasis", lang)}</a>
          <a href="#visit" onClick={go("visit")}>{T("drawer.visit", lang)}</a>
          <a href="https://instagram.com/mysticmochacafe" target="_blank" rel="noreferrer">@mysticmochacafe</a>
        </nav>
        <div className="drawer-foot">
          <span>2105 Mission Avenue · San Diego, CA 92116</span>
          <span>{T("drawer.hours", lang)}</span>
          <a href="tel:+16196880858" style={{ textDecoration:"underline", textDecorationThickness:"1px", textUnderlineOffset:"3px" }}>
            (619) 688-0858
          </a>
        </div>
      </aside>
    </>
  );
};

/* =========================================================
   HERO — centered ball, atmospheric backdrop, framed
   ========================================================= */

/* Compute open/closed status against San Diego (Pacific) time.
   Hours: daily 7am – 3pm (07:00–15:00). */
function getCafeStatus(lang) {
  const now = new Date();
  // Get the current hour in America/Los_Angeles regardless of visitor timezone.
  const laStr = now.toLocaleString("en-US", { timeZone: "America/Los_Angeles", hour: "numeric", hour12: false });
  const laHour = parseInt(laStr, 10);
  const isOpen = laHour >= 7 && laHour < 15;
  return T(isOpen ? "hero.status.open" : "hero.status.closed", lang);
}

const HeroStatus = ({ lang }) => {
  const [status, setStatus] = useStateS(() => getCafeStatus(lang));

  useEffectS(() => {
    setStatus(getCafeStatus(lang));
    // Re-check every 60 seconds so a tab left open stays accurate.
    const id = setInterval(() => setStatus(getCafeStatus(lang)), 60000);
    return () => clearInterval(id);
  }, [lang]);

  const laStr = new Date().toLocaleString("en-US", { timeZone: "America/Los_Angeles", hour: "numeric", hour12: false });
  const laHour = parseInt(laStr, 10);
  const isOpen = laHour >= 7 && laHour < 15;

  return (
    <p className="hero-status rise-in rise-d2" style={{
      fontSize: "clamp(13px, 1.1vw, 15px)",
      letterSpacing: ".06em",
      color: isOpen ? "var(--oasis-leaf)" : "var(--ink-mute)",
      marginBottom: "clamp(10px, 1.2vw, 16px)",
      fontFamily: "var(--serif)",
      fontStyle: "italic",
    }}>
      <span style={{
        display: "inline-block",
        width: 7,
        height: 7,
        borderRadius: "50%",
        background: isOpen ? "var(--oasis-leaf)" : "var(--ink-mute)",
        marginRight: 7,
        verticalAlign: "middle",
        opacity: .85,
      }} aria-hidden="true"/>
      {status}
    </p>
  );
};

const Hero = ({ revealed, onToggleBall, lang }) => (
  <section className="hero" id="top">
    <HeroBackdrop revealed={revealed} />
    <div className="container hero-inner">
      <div className="hero-eyebrow rise-in rise-d1">
        <span className="dotline"/>
        <span>{T("hero.eyebrow", lang)}</span>
        <span className="dotline"/>
      </div>

      <h1 className="hero-headline display rise-in rise-d2">
        {T("hero.headline", lang)}
      </h1>
      <HeroStatus lang={lang} />
      <p className="hero-sub rise-in rise-d2">
        {T("hero.sub", lang)}
      </p>

      <div className="hero-ball-wrap rise-in rise-d3">
        <BallFrame revealed={revealed} />
        <div className="hero-ball-inner">
          <CrystalBall revealed={revealed} onToggle={onToggleBall} lang={lang} />
        </div>
      </div>

      <Pointer lang={lang} />
    </div>
  </section>
);

const HeroBackdrop = ({ revealed }) => {
  const stars = React.useMemo(() => {
    const arr = [];
    for (let i = 0; i < 36; i++) {
      arr.push({
        x: Math.round(Math.random() * 1000) / 10,
        y: Math.round(Math.random() * 1000) / 10,
        r: Math.random() < .25 ? 1.6 : Math.random() < .55 ? 1.1 : .7,
        dur: 5 + Math.random() * 9,
        delay: Math.random() * 6,
        twDur: 3 + Math.random() * 4,
      });
    }
    return arr;
  }, []);

  return (
    <div className="hero-backdrop" aria-hidden="true">
      <div className="hero-halo" />
      <div className="hero-mist hero-mist-1" />
      <div className="hero-mist hero-mist-2" />
      <div className="hero-mist hero-mist-3" />
      <svg className="hero-stars" viewBox="0 0 100 100" preserveAspectRatio="none">
        {stars.map((s, i) => (
          <circle key={i}
            cx={s.x} cy={s.y} r={s.r * .12}
            style={{
              fill: "var(--star-color, rgba(184,146,84,.7))",
              animation: `starTwinkle ${s.twDur}s ease-in-out ${s.delay}s infinite`,
              transformOrigin: `${s.x}px ${s.y}px`,
              transition: "fill 1.4s ease",
            }}
          />
        ))}
      </svg>
    </div>
  );
};

const BallFrame = ({ revealed }) => (
  <svg className="ball-frame" viewBox="0 0 600 600" aria-hidden="true">
    <defs>
      <linearGradient id="ringGrad" x1="0" y1="0" x2="0" y2="1">
        <stop offset="0%"   style={{stopColor:"var(--ring-1, rgba(184,146,84,.7))"}} />
        <stop offset="50%"  style={{stopColor:"var(--ring-2, rgba(184,146,84,.3))"}} />
        <stop offset="100%" style={{stopColor:"var(--ring-3, rgba(184,146,84,.55))"}} />
      </linearGradient>
    </defs>
    <g className="ring-slow">
      <circle cx="300" cy="300" r="280"
        fill="none" stroke="url(#ringGrad)" strokeWidth=".75" opacity=".7"/>
      {[0, 90, 180, 270].map((deg) => (
        <g key={deg} transform={`rotate(${deg} 300 300)`}>
          <line x1="300" y1="14" x2="300" y2="28"
            strokeWidth="1"
            style={{stroke:"var(--ring-tick, rgba(184,146,84,.7))"}}
          />
        </g>
      ))}
      {Array.from({length: 12}).map((_, i) => (
        <g key={i} transform={`rotate(${i * 30} 300 300)`}>
          <circle cx="300" cy="18" r=".9"
            style={{fill:"var(--ring-tick, rgba(184,146,84,.6))"}}
          />
        </g>
      ))}
    </g>
    <g className="ring-fast">
      <circle cx="300" cy="300" r="252"
        fill="none" stroke="url(#ringGrad)" strokeWidth=".5" opacity=".5"
        strokeDasharray="1 6"/>
    </g>
    <g style={{color:"var(--ring-tick, rgba(184,146,84,.85))"}}>
      <text x="300" y="6" textAnchor="middle"
        fontFamily="Italiana, serif" fontSize="14"
        fill="currentColor" opacity=".9">✦</text>
    </g>
  </svg>
);

const Pointer = ({ lang }) => (
  <div className="pointer rise-in rise-d4" aria-hidden="true">
    <div className="stem"></div>
    <div className="ornament">✦</div>
    <div className="label">{T("hero.pointer", lang)}</div>
  </div>
);

/* =========================================================
   THE CAST + OTHER DRINKS + FOOD
   ========================================================= */
const Asterism = () => (
  <svg viewBox="0 0 24 24" width="22" height="22" aria-hidden="true">
    <path d="M12 3 L13.2 10.8 L21 12 L13.2 13.2 L12 21 L10.8 13.2 L3 12 L10.8 10.8 Z"
      fill="currentColor" opacity=".85" />
    <circle cx="12" cy="12" r=".9" fill="currentColor" />
  </svg>
);

const CastTile = ({ d, i, lang }) => {
  const [open, setOpen] = useStateS(false);
  const kind = d.kind && typeof d.kind === "object" ? (d.kind[lang] || d.kind.en) : d.kind;
  const note = d.note && typeof d.note === "object" ? (d.note[lang] || d.note.en) : d.note;
  return (
    <button
      className={`cast-tile${open ? " is-open" : ""}`}
      onClick={() => setOpen(o => !o)}
      onMouseLeave={() => setOpen(false)}
      aria-expanded={open}
      aria-label={`${d.name}, ${kind}`}
    >
      <div>
        <div className="num">№ {String(i + 1).padStart(2, "0")}</div>
        <div className="name">{d.name}</div>
        <div className="kind">{kind}</div>
      </div>
      <div className="ornament"><Asterism /></div>
      <div className="note">{note}</div>
    </button>
  );
};

const OrnamentTile = ({ children }) => (
  <div className="cast-tile" style={{
    cursor: "default", display:"flex", alignItems:"center", justifyContent:"center",
    color: "var(--gold)", flexDirection:"column", gap: 14,
  }} aria-hidden="true">
    <div style={{ width: 36, height: 1, background:"currentColor", opacity:.5 }} />
    <div style={{ fontFamily:"var(--display)", fontStyle:"italic", color:"var(--ink-mute)", fontSize: 14 }}>
      {children}
    </div>
    <div style={{ width: 36, height: 1, background:"var(--gold)", opacity:.5 }} />
  </div>
);

const MenuSection = ({ lang }) => {
  const cast = window.CAST || [];
  return (
    <section className="section-menu" id="cast">
      <div className="container">
        <header className="section-head">
          <div className="eyebrow tracked-sm" style={{color:"var(--gold)"}}>{T("menu.eyebrow", lang)}</div>
          <h2 className="h-section title">{T("menu.title", lang)}</h2>
          <p className="lede">{T("menu.lede", lang)}</p>
        </header>

        <div className="cast-grid">
          {cast.map((d, i) => <CastTile key={d.name} d={d} i={i} lang={lang} />)}
          <OrnamentTile>{T("menu.ornament.1", lang)}</OrnamentTile>
          <OrnamentTile>{T("menu.ornament.2", lang)}</OrnamentTile>
        </div>

        <div className="other-drinks">
          <div className="head">
            {T("other.head", lang)}
            <span className="sub">{T("other.sub", lang)}</span>
          </div>
          <ul>
            {(window.OTHER_DRINKS || []).map((d, i) => {
              const label = typeof d === "object" ? (d[lang] || d.en) : d;
              return (
                <li key={i}>
                  <span className="it">{label}</span>
                  <span className="px">{T("price", lang)}</span>
                </li>
              );
            })}
          </ul>
        </div>

        <FoodMenu lang={lang} />

        <p className="placeholder-note">{T("placeholder.note", lang)}</p>
      </div>
    </section>
  );
};

const FoodMenu = ({ lang }) => {
  const food = window.FOOD || { breakfast: [], notes: [] };
  const tx = (val) => typeof val === "object" ? (val[lang] || val.en) : val;
  return (
    <div className="food" id="food">
      <div className="food-grid">
        <div className="head">
          {T("food.head.line1", lang)}<br/>{T("food.head.line2", lang)}
          <span className="sub">{T("food.head.sub", lang)}</span>
        </div>
        <div className="food-col">
          <h4>{T("food.col.kitchen", lang)}</h4>
          <ul>
            {food.breakfast.map((it, i) => (
              <li key={i}>
                <div className="it-wrap">
                  <span className="it">{tx(it.it)}</span>
                  {it.desc && <span className="desc">{tx(it.desc)}</span>}
                </div>
                <span className="px">{T("price", lang)}</span>
              </li>
            ))}
          </ul>
        </div>
        <div className="food-col">
          <h4>{T("food.col.notes", lang)}</h4>
          <ul>
            {food.notes.map((it, i) => (
              <li key={i}>
                <div className="it-wrap">
                  <span className="it">{tx(it.it)}</span>
                  {it.desc && <span className="desc">{tx(it.desc)}</span>}
                </div>
              </li>
            ))}
          </ul>
        </div>
      </div>
    </div>
  );
};

/* =========================================================
   OASIS
   ========================================================= */
const Hummingbird = () => (
  <svg viewBox="0 0 200 200" style={{width:"100%", height:"auto", maxWidth:280, color:"var(--gold-soft)"}} aria-hidden="true">
    <g fill="none" stroke="currentColor" strokeWidth="1.2" strokeLinecap="round" strokeLinejoin="round">
      <path d="M 80 100 Q 100 86 130 92 Q 142 95 146 102 Q 142 110 130 110 Q 110 110 96 108" />
      <circle cx="138" cy="95" r="6" />
      <circle cx="140" cy="94" r=".8" fill="currentColor" />
      <path d="M 144 96 L 168 98" />
      <path d="M 110 96 Q 84 70 60 78 Q 86 84 100 100" />
      <path d="M 112 102 Q 86 124 60 116 Q 86 110 102 104" />
      <path d="M 86 104 L 60 108" />
      <path d="M 170 40 L 170 80" stroke="currentColor" strokeDasharray="1 4" />
      <circle cx="170" cy="84" r="3" />
    </g>
  </svg>
);

const OasisSection = ({ lang }) => (
  <section className="section-oasis" id="oasis">
    <div className="container">
      <div className="oasis-grid">
        <div>
          <div className="oasis-eyebrow">{T("oasis.eyebrow", lang)}</div>
          <h2 className="oasis-quote">
            {T("oasis.quote.l1.a", lang)}<em>{T("oasis.quote.l1.em", lang)}</em><br/>
            {T("oasis.quote.l2.a", lang)}<em>{T("oasis.quote.l2.em", lang)}</em><br/>
            {T("oasis.quote.l3.a", lang)}<em>{T("oasis.quote.l3.em", lang)}</em>
          </h2>
          <div style={{marginTop: 36, opacity:.85}}>
            <Hummingbird />
          </div>
        </div>
        <div>
          <p className="oasis-body">
            {T("oasis.body1", lang)}<em>{T("oasis.body1.em", lang)}</em>
          </p>
          <p className="oasis-body">
            {T("oasis.body2", lang)}
          </p>
          <p className="oasis-body">
            {T("oasis.body3.a", lang)}<em>{T("oasis.body3.em", lang)}</em>{T("oasis.body3.b", lang)}
          </p>
          <div className="oasis-stats">
            <div className="stat">
              <div className="n">20</div>
              <div className="l">{T("oasis.stat1.l", lang)}</div>
            </div>
            <div className="stat">
              <div className="n">7–3</div>
              <div className="l">{T("oasis.stat2.l", lang)}</div>
            </div>
            <div className="stat">
              <div className="n">∞</div>
              <div className="l">{T("oasis.stat3.l", lang)}</div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </section>
);

/* =========================================================
   VISIT
   ========================================================= */
const MapIllustration = () => (
  <svg viewBox="0 0 400 500" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
    <defs>
      <linearGradient id="mapBg" x1="0" y1="0" x2="0" y2="1">
        <stop offset="0%"   style={{stopColor:"var(--map-bg-1, #EFE3C8)"}} />
        <stop offset="100%" style={{stopColor:"var(--map-bg-2, #E5D8B8)"}} />
      </linearGradient>
      <pattern id="paper-noise" width="3" height="3" patternUnits="userSpaceOnUse">
        <rect width="3" height="3" fill="transparent"/>
        <circle cx="1" cy="1" r=".3" fill="rgba(120,90,40,.18)"/>
      </pattern>
    </defs>
    <rect width="400" height="500" fill="url(#mapBg)"/>
    <rect width="400" height="500" fill="url(#paper-noise)"/>

    <g stroke="var(--map-line, #B89254)" strokeOpacity=".45" fill="none" strokeWidth="1">
      <path d="M -20 120 L 420 120" />
      <path d="M -20 200 L 420 200" />
      <path d="M -20 290 L 420 290" />
      <path d="M -20 380 L 420 380" />
      <path d="M 80 -20 L 80 520" />
      <path d="M 180 -20 L 180 520" />
      <path d="M 280 -20 L 280 520" />
      <path d="M 360 -20 L 360 520" />
    </g>

    <g style={{fill:"var(--map-park, #2B4133)"}} opacity=".18">
      <path d="M 286 124 L 358 124 L 358 196 L 286 196 Z" />
      <path d="M 84 384 L 176 384 L 176 460 L 84 460 Z" />
    </g>

    <path d="M -20 290 L 420 290"
      strokeWidth="2.5" opacity=".75"
      style={{stroke:"var(--map-mission, #B85A38)"}} />
    <text x="20" y="282"
      fontFamily="Cormorant Garamond" fontStyle="italic" fontSize="13"
      style={{fill:"var(--map-mission-label, #8E3F22)"}}>Mission Ave.</text>

    <g strokeOpacity=".55" strokeWidth="1" style={{stroke:"var(--map-mission, #B85A38)"}}>
      <path d="M 80 285 L 80 295" />
      <path d="M 180 285 L 180 295" />
      <path d="M 280 285 L 280 295" />
      <path d="M 360 285 L 360 295" />
    </g>

    <g transform="translate(202,290)">
      <circle r="22" style={{fill:"var(--map-pin-halo, rgba(184,90,56,.18))"}} />
      <circle r="14" style={{fill:"var(--map-pin-mid, rgba(184,90,56,.30))"}} />
      <circle r="7"  style={{fill:"var(--map-mission, #B85A38)"}} />
      <path d="M 0 -12 L 1.2 -1.2 L 12 0 L 1.2 1.2 L 0 12 L -1.2 1.2 L -12 0 L -1.2 -1.2 Z"
        style={{fill:"var(--paper, #F2E9D6)"}} />
    </g>
    <g transform="translate(202,290)">
      <line x1="0" y1="-22" x2="0" y2="-56" strokeWidth="1" strokeDasharray="2 3"
        style={{stroke:"var(--map-mission, #B85A38)"}} />
      <text x="0" y="-66" textAnchor="middle"
        fontFamily="Italiana" fontSize="14" style={{fill:"var(--ink, #1C140E)"}}>Mystic Mocha</text>
      <text x="0" y="-50" textAnchor="middle"
        fontFamily="Cormorant Garamond" fontStyle="italic" fontSize="11" style={{fill:"var(--ink-mute, #79634F)"}}>2105</text>
    </g>

    <g transform="translate(355,55)">
      <circle r="14" fill="none" strokeOpacity=".55" strokeWidth=".7"
        style={{stroke:"var(--map-line, #B89254)"}}/>
      <path d="M 0 -10 L 3 0 L 0 10 L -3 0 Z" opacity=".7"
        style={{fill:"var(--map-line, #B89254)"}}/>
      <text x="0" y="-18" textAnchor="middle" fontFamily="Italiana" fontSize="10" style={{fill:"var(--ink-mute, #79634F)"}}>N</text>
    </g>
  </svg>
);

const VisitSection = ({ lang }) => (
  <section className="section-visit" id="visit">
    <div className="container">
      <div className="visit-grid">
        <div className="visit-card">
          <div className="tracked-sm" style={{color:"var(--gold)", marginBottom:14}}>{T("visit.eyebrow", lang)}</div>
          <h2 className="h-section">{T("visit.title.l1", lang)}<br/>{T("visit.title.l2", lang)}</h2>
          <p className="lede">{T("visit.lede", lang)}</p>

          <div className="visit-meta">
            <div className="block">
              <div className="lbl">{T("visit.lbl.find", lang)}</div>
              <div className="val">
                2105 Mission Avenue<br/>
                <span style={{fontFamily:"var(--serif)", fontStyle:"italic", fontSize: 17, color:"var(--ink-soft)"}}>
                  San Diego, CA 92116
                </span>
              </div>
            </div>
            <div className="block">
              <div className="lbl">{T("visit.lbl.call", lang)}</div>
              <div className="val">
                <a href="tel:+16196880858">(619) 688-0858</a>
              </div>
              <div className="sub">{T("visit.call.sub", lang)}</div>
            </div>
            <div className="block" style={{gridColumn:"1 / -1"}}>
              <div className="lbl">{T("visit.lbl.hours", lang)}</div>
              <div className="visit-hours">
                <div className="row"><span className="d">{T("visit.row.daily", lang)}</span><span className="t">7am – 3pm</span></div>
                <div className="row"><span className="d">{T("visit.row.breakfast", lang)}</span><span className="t">7am – 1pm</span></div>
                <div className="row"><span className="d">{T("visit.row.beer", lang)}</span><span className="t">{T("visit.row.beer.t", lang)}</span></div>
                <div className="row"><span className="d">{T("visit.row.tamales", lang)}</span><span className="t">{T("visit.row.tamales.t", lang)}</span></div>
              </div>
            </div>
            <div className="block" style={{gridColumn:"1 / -1"}}>
              <div className="lbl">{T("visit.lbl.follow", lang)}</div>
              <div className="val">
                <a href="https://instagram.com/mysticmochacafe" target="_blank" rel="noreferrer">
                  @mysticmochacafe
                </a>
              </div>
            </div>
          </div>
        </div>

        <div>
          <div className="map-frame">
            <MapIllustration />
            <div className="pin-label">
              <span><em>{T("visit.illustration", lang)}</em></span>
              <span className="here">{T("visit.here", lang)}</span>
            </div>
          </div>
        </div>
      </div>
    </div>
  </section>
);

/* =========================================================
   FOOTER
   ========================================================= */
const Footer = ({ lang }) => (
  <footer className="site-footer">
    <div className="container">
      <div>
        <div className="wordmark">Mystic Mocha</div>
        <p className="tag">
          {T("footer.tag.l1", lang)}<br/>
          {T("footer.tag.l2", lang)}
        </p>
      </div>
      <div>
        <h5>{T("footer.h5.visit", lang)}</h5>
        <ul>
          <li><a href="#cast">{T("footer.nav.cast", lang)}</a></li>
          <li><a href="#food">{T("footer.nav.food", lang)}</a></li>
          <li><a href="#oasis">{T("footer.nav.oasis", lang)}</a></li>
          <li><a href="#visit">{T("footer.nav.hours", lang)}</a></li>
        </ul>
      </div>
      <div>
        <h5>{T("footer.h5.elsewhere", lang)}</h5>
        <ul>
          <li><a href="https://instagram.com/mysticmochacafe" target="_blank" rel="noreferrer">@mysticmochacafe</a></li>
          <li><a href="tel:+16196880858">(619) 688-0858</a></li>
          <li><a href="https://maps.google.com/?q=2105+Mission+Ave+San+Diego+CA+92116" target="_blank" rel="noreferrer">2105 Mission Ave.</a></li>
        </ul>
      </div>
    </div>
    <div className="bienvenidos">bienvenidos.</div>
    <div className="container smallprint">
      <span>{T("footer.copyright", lang)}</span>
      <span><em>{T("footer.note", lang)}</em></span>
    </div>
  </footer>
);

Object.assign(window, {
  Header, LangHanger, NavDrawer, Hero, MenuSection, OasisSection, VisitSection, Footer,
});
