/* Keiko Eyewear — section components (2/2): Kids, Gallery, Wholesale, Briventi, Contact, Footer. */ const KDS2 = window.KeikoEyewearDesignSystem_efeae4; const { Button: KBtn, Badge: KBadge } = KDS2; const { WaCTA: KWaCTA, Arrow: KArrow, Img: KImg } = window.KeikoSections1; const LK = window.KEIKO_LINKS; const MM = window.KEIKO_MEDIA; const kimg2 = window.kimg; const KIDS = { yellow: '#f1d457', blue: '#2BA8E0', red: '#E0463C', green: '#4CA64C' }; function IgGlyph({ s = 18 }) { return ; } function LinkGlyph({ s = 18 }) { return ; } /* ========================================================= KEIKO KIDS — light, playful-but-refined ========================================================= */ function Kids({ t }) { const k = t.kids; const dots = [KIDS.yellow, KIDS.blue, KIDS.red, KIDS.green]; return (
Keiko Kids {k.eyebrow}

{k.title} {k.accent}

{k.p1}

{k.features.map((f, i) => (
{f.t}
{f.d}
))}
{k.cert && (
EUIPO — European Union Intellectual Property Office
{k.cert}
{k.certNote &&
{k.certNote}
}
)}
}>{k.instagram}
); } /* ========================================================= GALLERY — editorial grid + lightbox ========================================================= */ function Gallery({ t, onOpen }) { const g = t.gallery; const LINES = window.KEIKO_LINES; const order = ['dama', 'caballero', 'sol', 'kids']; const f = g.filters || { all: 'All', dama: 'Dama', caballero: 'Caballero', sol: 'Sol', kids: 'Kids' }; const [active, setActive] = React.useState('dama'); const tiles = LINES[active].map((id) => ({ id, cat: active })); const chips = order.map((c) => [c, f[c]]); return ( ); } /* ========================================================= VIDEO GALLERY — autoplay muted loop, click for sound ========================================================= */ const KEIKO_VIDEOS = ['assets/video/keiko-5.webm', 'assets/video/keiko-kv2.webm']; function VideoTile({ src }) { const ref = React.useRef(null); const [muted, setMuted] = React.useState(true); // play/pause on viewport visibility to save resources React.useEffect(() => { const v = ref.current; if (!v || !('IntersectionObserver' in window)) return; const io = new IntersectionObserver(([e]) => { if (e.isIntersecting) { v.play && v.play().catch(() => {}); } else { v.pause && v.pause(); } }, { threshold: 0.4 }); io.observe(v); return () => io.disconnect(); }, []); const toggleSound = () => { const v = ref.current; if (!v) return; const next = !muted; setMuted(next); v.muted = next; if (!next) v.play && v.play().catch(() => {}); }; return (
); } function VideoGallery({ t }) { const v = (t.gallery && t.gallery.video) || { eyebrow: 'Video', title: 'Keiko', accent: 'video' }; return (
{v.eyebrow}

{v.title} {v.accent}

{KEIKO_VIDEOS.map((src) => )}
); } /* ========================================================= RETAIL — ¿Dónde comprar? (final customers) ========================================================= */ function Retail({ t }) { const r = t.retail; const L = window.KEIKO_LINES; const bubbles = [L.dama[0], L.caballero[0], L.sol[0], L.kids[0], L.dama[3]]; return (
{r.eyebrow}

{r.title} {r.accent}

{r.body}

{bubbles.map((id, i) => (
))}
}>{r.cta}
); } /* ========================================================= WHOLESALE — full-bleed image band, teal overlay ========================================================= */ function Wholesale({ t }) { const w = t.wholesale; return (
{w.eyebrow}

{w.title} {w.accent}

{w.body}

    {w.points.map((p, i) => (
  • {p}
  • ))}
); } /* ========================================================= BRIVENTI ========================================================= */ function Briventi({ t }) { const b = t.briventi; return (
{b.eyebrow}

{b.title} {b.accent}

{b.location}

{b.body}

); } /* ========================================================= CONTACT ========================================================= */ function Contact({ t }) { const c = t.contact; return (
{c.eyebrow}

{c.title} {c.accent}

{c.body}

}>{c.instagram}
); } /* ========================================================= FOOTER ========================================================= */ function Footer({ t, lang, setLang }) { const links = [['about', '#about'], ['collections', '#collections'], ['kids', '#kids'], ['gallery', '#gallery'], ['wholesale', '#wholesale'], ['briventi', '#briventi'], ['contact', '#contact']]; const langs = [['es', 'Español'], ['en', 'English'], ['zh', '中文'], ['ar', 'العربية']]; return ( ); } window.KeikoSections2 = { Kids, Gallery, VideoGallery, Retail, Wholesale, Briventi, Contact, Footer };