sin-titulo

Pasted Oct 13, 2026, 5:15 PM1 file769 lines

Scan to open on your phone

Point a camera at the QR code - it opens this exact paste, no app needed.

https://codepastes.com/zzgsx60kzawj98rm
sin-titulo
<!DOCTYPE html>
<html lang="es">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>KeeperNews - Últimas Noticias de Guantes de Arquero</title>
  <style>
    :root {
      --bg-color: #0f172a;
      --card-bg: #1e293b;
      --text-color: #f8fafc;
      --accent-color: #22c55e;
      --accent-hover: #16a34a;
      --text-muted: #94a3b8;
      --border-color: #334155;
    }

    * {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
      font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    }

    body {
      background-color: var(--bg-color);
      color: var(--text-color);
      padding: 20px;
    }

    header {
      text-align: center;
      margin-bottom: 30px;
    }

    header h1 {
      font-size: 2.5rem;
      color: var(--accent-color);
      margin-bottom: 10px;
    }

    header p {
      color: var(--text-muted);
    }

    .controls {
      max-width: 1200px;
      margin: 0 auto 30px auto;
      display: flex;
      flex-direction: column;
      gap: 15px;
    }

    .search-bar {
      width: 100%;
      padding: 12px 20px;
      border-radius: 8px;
      border: 1px solid var(--border-color);
      background-color: var(--card-bg);
      color: white;
      font-size: 1rem;
    }

    .filters {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      justify-content: center;
    }

    .filter-btn {
      background-color: var(--card-bg);
      color: var(--text-color);
      border: 1px solid var(--border-color);
      padding: 8px 16px;
      border-radius: 20px;
      cursor: pointer;
      transition: all 0.2s ease;
    }

    .filter-btn:hover, .filter-btn.active {
      background-color: var(--accent-color);
      color: #000;
      border-color: var(--accent-color);
      font-weight: bold;
    }

    .news-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
      gap: 25px;
      max-width: 1200px;
      margin: 0 auto;
    }

    .news-card {
      background-color: var(--card-bg);
      border-radius: 12px;
      overflow: hidden;
      border: 1px solid var(--border-color);
      display: flex;
      flex-direction: column;
      transition: transform 0.2s ease, box-shadow 0.2s ease;
    }

    .news-card:hover {
      transform: translateY(-5px);
      box-shadow: 0 10px 20px rgba(0,0,0,0.5);
    }

    .news-image {
      width: 100%;
      height: 240px;
      object-fit: cover;
      background-color: #000;
    }

    .news-content {
      padding: 20px;
      display: flex;
      flex-direction: column;
      flex-grow: 1;
    }

    .brand-badge {
      align-self: flex-start;
      background-color: rgba(34, 197, 94, 0.2);
      color: var(--accent-color);
      font-size: 0.8rem;
      font-weight: bold;
      padding: 4px 10px;
      border-radius: 12px;
      margin-bottom: 10px;
      text-transform: uppercase;
    }

    .news-title {
      font-size: 1.3rem;
      margin-bottom: 10px;
    }

    .news-date {
      font-size: 0.8rem;
      color: var(--text-muted);
      margin-bottom: 12px;
    }

    .news-description {
      font-size: 0.95rem;
      color: #cbd5e1;
      line-height: 1.5;
      margin-bottom: 20px;
      flex-grow: 1;
    }

    .specs {
      background-color: rgba(0,0,0,0.2);
      padding: 10px;
      border-radius: 6px;
      font-size: 0.85rem;
      margin-bottom: 15px;
    }

    .specs span {
      display: block;
      color: var(--text-muted);
    }

    .read-more {
      display: inline-block;
      text-align: center;
      background-color: var(--accent-color);
      color: #0f172a;
      text-decoration: none;
      padding: 10px;
      border-radius: 6px;
      font-weight: bold;
      transition: background-color 0.2s;
    }

    .read-more:hover {
      background-color: var(--accent-hover);
    }

    .no-results {
      text-align: center;
      grid-column: 1 / -1;
      color: var(--text-muted);
      padding: 40px;
    }
  </style>
</head>
<body>

  <header>
    <h1>🧤 KeeperNews Central</h1>
    <p>Últimos lanzamientos y novedades sobre guantes de arquero profesionales</p>
  </header>

  <div class="controls">
    <input type="text" id="searchInput" class="search-bar" placeholder="Buscar modelo, látex, tecnología o marca...">
    <div class="filters" id="brandFilters">
      <button class="filter-btn active" data-brand="all">Todas las marcas</button>
      <button class="filter-btn" data-brand="RG">RG</button>
      <button class="filter-btn" data-brand="Rinat">Rinat</button>
      <button class="filter-btn" data-brand="T1tan">T1tan</button>
      <button class="filter-btn" data-brand="Elite">Elite Sport</button>
      <button class="filter-btn" data-brand="Puma">Puma</button>
      <button class="filter-btn" data-brand="Nike">Nike</button>
      <button class="filter-btn" data-brand="Uhlsport">Uhlsport</button>
      <button class="filter-btn" data-brand="The One Glove">The One Glove</button>
      <button class="filter-btn" data-brand="Reusch">Reusch</button>
    </div>
  </div>

  <main class="news-grid" id="newsGrid"></main>

  <script>
    const newsData = [
      {
        id: 1,
        brand: "RG",
        title: "Nuevo RG Valah 2026: Palma AlphaGrip y Ligereza Total",
        date: "12 de Octubre, 2026",
        image: "https://images.unsplash.com/photo-1511886929837-354d827aae26?auto=format&fit=crop&w=800&q=80",
        description: "RG presenta la actualización de su modelo insignia Valah. Diseñado con una estructura ultra ligera, cuerpo de textil transpirable y palma de látex alemán AlphaGrip de 4mm para un agarre máximo en canchas secas o húmedas.",
        latex: "German AlphaGrip 4mm",
        cut: "Híbrido Roll/Flat",
        url: "#"
      },
      {
        id: 2,
        brand: "Rinat",
        title: "Rinat Asimetrik Pro Future: Rediseño Ergonómico",
        date: "08 de Octubre, 2026",
        image: "https://images.unsplash.com/photo-1577223625816-7546f13df25d?auto=format&fit=crop&w=800&q=80",
        description: "Rinat lanza la nueva edición Asimetrik PRO con látex German AXG-Future. Ofrece un ajuste Hyper-Cut y palmas extendidas para aumentar la superficie de contacto con la pelota.",
        latex: "German AXG-Future",
        cut: "Hyper-Cut (Especial)",
        url: "#"
      },
      {
        id: 3,
        brand: "T1tan",
        title: "Lanzamiento Colección Beast 4.0 Electric Yellow",
        date: "01 de Octubre, 2026",
        image: "https://images.unsplash.com/photo-1508098682722-e99c43a406b2?auto=format&fit=crop&w=800&q=80",
        description: "La marca alemana T1tan actualiza la serie Beast con su látex Octo Grip de 4mm. Incluye zona de despeje reforzada y muñequera de una sola vuelta ultraconfortable.",
        latex: "Octo Grip 4mm",
        cut: "Negativo Puro",
        url: "#"
      },
      {
        id: 4,
        brand: "Uhlsport",
        title: "Serie Uhlsport Fangmaschine ZNE con Ultragrip",
        date: "28 de Septiembre, 2026",
        image: "https://images.unsplash.com/photo-1518091043644-c1d4457512c6?auto=format&fit=crop&w=800&q=80",
        description: "Uhlsport reinventa un clásico. La serie ZNE introduce partículas de alto agarre sobre su látex Supergrip+ y el nuevo sistema Asymmetric Long Entry para un calce perfecto.",
        latex: "Ultragrip ZNE / Supergrip+",
        cut: "HN (Half Negative)",
        url: "#"
      },
      {
        id: 5,
        brand: "Reusch",
        title: "Reusch Attrakt Freegel Gold Evolution Spines",
        date: "20 de Septiembre, 2026",
        image: "https://images.unsplash.com/photo-1521412644187-c49fa049e84d?auto=format&fit=crop&w=800&q=80",
        description: "Reusch integra protección extraíble de varillas Finger Support junto a la silicona Freegel en el dorso, ofreciendo la combinación idónea entre flexibilidad y seguridad.",
        latex: "Grip Gold Latex",
        cut: "Evolution Negative Cut",
        url: "#"
      },
      {
        id: 6,
        brand: "Puma",
        title: "Puma Future Ultimate NC: Edición Solar",
        date: "15 de Septiembre, 2026",
        image: "https://images.unsplash.com/photo-1606107557195-0e29a4b5b4aa?auto=format&fit=crop&w=800&q=80",
        description: "Utilizados por porteros de élite mundial, los nuevos Puma Future prescinden del cierre tradicional gracias a su tejido 3D Knit e incorporan látex Elite Dual Grip de 4mm.",
        latex: "4mm Elite Dual Grip",
        cut: "Corte Negativo (NC)",
        url: "#"
      },
      {
        id: 7,
        brand: "Nike",
        title: "Nike Vapor Grip 3 Pro Edition - Colección Primavera",
        date: "10 de Septiembre, 2026",
        image: "https://images.unsplash.com/photo-1543351611-c82399575a20?auto=format&fit=crop&w=800&q=80",
        description: "Nike renueva la gama de colores de sus legendarios VG3. Mantienen la tecnología envolvente patentada en el dedo pulgar e índice junto con la espuma Contact Plus.",
        latex: "ACC Contact Plus",
        cut: "Grip3 (Patentado)",
        url: "#"
      },
      {
        id: 8,
        brand: "The One Glove",
        title: "OG1 Apex Pro: La Nueva Revelación Británica",
        date: "05 de Septiembre, 2026",
        image: "https://images.unsplash.com/photo-1579952363873-27f3bade9f55?auto=format&fit=crop&w=800&q=80",
        description: "The One Glove lanza su gama Apex Pro enfocada en máxima durabilidad y agarre en césped sintético gracias a su látex Pro Grade Contact de 4mm y su dorso de Neopreno Airlite.",
        latex: "Pro Grade Contact 4mm",
        cut: "Vortex Cut",
        url: "#"
      },
      {
        id: 9,
        brand: "Elite",
        title: "Elite Sport Neo Black: Palma de Cuarzo y Resistencia",
        date: "01 de Septiembre, 2026",
        image: "https://images.unsplash.com/photo-1517649763962-0c623266ddc0?auto=format&fit=crop&w=800&q=80",
        description: "La marca especializada Elite Sport renueva la serie Neo con su palma B2B Ultra Contact Latex y zonas antidesgaste, pensadas para resistir partidos de alta exigencia.",
        latex: "Ultra Contact Latex 4mm",
        cut: "Speed Cut / Negativo",
        url: "#"
      }
    ];

    const newsGrid = document.getElementById('newsGrid');
    const searchInput = document.getElementById('searchInput');
    const brandFilters = document.getElementById('brandFilters');

    let selectedBrand = 'all';
    let searchQuery = '';

    function renderNews() {
      newsGrid.innerHTML = '';

      const filteredNews = newsData.filter(item => {
        const matchesBrand = selectedBrand === 'all' || item.brand === selectedBrand;
        const matchesSearch = item.title.toLowerCase().includes(searchQuery) ||
                              item.description.toLowerCase().includes(searchQuery) ||
                              item.brand.toLowerCase().includes(searchQuery) ||
                              item.latex.toLowerCase().includes(searchQuery);
        return matchesBrand && matchesSearch;
      });

      if (filteredNews.length === 0) {
        newsGrid.innerHTML = '<div class="no-results">No se encontraron noticias ni lanzamientos con los criterios seleccionados.</div>';
        return;
      }

      filteredNews.forEach(item => {
        const card = document.createElement('article');
        card.className = 'news-card';
        card.innerHTML = `
          <img class="news-image" src="${item.image}" alt="${item.title}" loading="lazy">
          <div class="news-content">
            <span class="brand-badge">${item.brand}</span>
            <h2 class="news-title">${item.title}</h2>
            <div class="news-date">📅 ${item.date}</div>
            <p class="news-description">${item.description}</p>
            <div class="specs">
              <span><strong>Palma / Látex:</strong> ${item.latex}</span>
              <span><strong>Corte:</strong> ${item.cut}</span>
            </div>
            <a href="${item.url}" class="read-more">Ver detalles del guante</a>
          </div>
        `;
        newsGrid.appendChild(card);
      });
    }

    // Event listeners
    searchInput.addEventListener('input', (e) => {
      searchQuery = e.target.value.toLowerCase();
      renderNews();
    });

    brandFilters.addEventListener('click', (e) => {
      if (e.target.classList.contains('filter-btn')) {
        document.querySelectorAll('.filter-btn').forEach(btn => btn.classList.remove('active'));
        e.target.classList.add('active');
        selectedBrand = e.target.getAttribute('data-brand');
        renderNews();
      }
    });

    // Render inicial
    renderNews();
  </script>
</body>
</html><!DOCTYPE html>
<html lang="es">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>KeeperNews - Últimas Noticias de Guantes de Arquero</title>
  <style>
    :root {
      --bg-color: #0f172a;
      --card-bg: #1e293b;
      --text-color: #f8fafc;
      --accent-color: #22c55e;
      --accent-hover: #16a34a;
      --text-muted: #94a3b8;
      --border-color: #334155;
    }

    * {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
      font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    }

    body {
      background-color: var(--bg-color);
      color: var(--text-color);
      padding: 20px;
    }

    header {
      text-align: center;
      margin-bottom: 30px;
    }

    header h1 {
      font-size: 2.5rem;
      color: var(--accent-color);
      margin-bottom: 10px;
    }

    header p {
      color: var(--text-muted);
    }

    .controls {
      max-width: 1200px;
      margin: 0 auto 30px auto;
      display: flex;
      flex-direction: column;
      gap: 15px;
    }

    .search-bar {
      width: 100%;
      padding: 12px 20px;
      border-radius: 8px;
      border: 1px solid var(--border-color);
      background-color: var(--card-bg);
      color: white;
      font-size: 1rem;
    }

    .filters {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      justify-content: center;
    }

    .filter-btn {
      background-color: var(--card-bg);
      color: var(--text-color);
      border: 1px solid var(--border-color);
      padding: 8px 16px;
      border-radius: 20px;
      cursor: pointer;
      transition: all 0.2s ease;
    }

    .filter-btn:hover, .filter-btn.active {
      background-color: var(--accent-color);
      color: #000;
      border-color: var(--accent-color);
      font-weight: bold;
    }

    .news-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
      gap: 25px;
      max-width: 1200px;
      margin: 0 auto;
    }

    .news-card {
      background-color: var(--card-bg);
      border-radius: 12px;
      overflow: hidden;
      border: 1px solid var(--border-color);
      display: flex;
      flex-direction: column;
      transition: transform 0.2s ease, box-shadow 0.2s ease;
    }

    .news-card:hover {
      transform: translateY(-5px);
      box-shadow: 0 10px 20px rgba(0,0,0,0.5);
    }

    .news-image {
      width: 100%;
      height: 240px;
      object-fit: cover;
      background-color: #000;
    }

    .news-content {
      padding: 20px;
      display: flex;
      flex-direction: column;
      flex-grow: 1;
    }

    .brand-badge {
      align-self: flex-start;
      background-color: rgba(34, 197, 94, 0.2);
      color: var(--accent-color);
      font-size: 0.8rem;
      font-weight: bold;
      padding: 4px 10px;
      border-radius: 12px;
      margin-bottom: 10px;
      text-transform: uppercase;
    }

    .news-title {
      font-size: 1.3rem;
      margin-bottom: 10px;
    }

    .news-date {
      font-size: 0.8rem;
      color: var(--text-muted);
      margin-bottom: 12px;
    }

    .news-description {
      font-size: 0.95rem;
      color: #cbd5e1;
      line-height: 1.5;
      margin-bottom: 20px;
      flex-grow: 1;
    }

    .specs {
      background-color: rgba(0,0,0,0.2);
      padding: 10px;
      border-radius: 6px;
      font-size: 0.85rem;
      margin-bottom: 15px;
    }

    .specs span {
      display: block;
      color: var(--text-muted);
    }

    .read-more {
      display: inline-block;
      text-align: center;
      background-color: var(--accent-color);
      color: #0f172a;
      text-decoration: none;
      padding: 10px;
      border-radius: 6px;
      font-weight: bold;
      transition: background-color 0.2s;
    }

    .read-more:hover {
      background-color: var(--accent-hover);
    }

    .no-results {
      text-align: center;
      grid-column: 1 / -1;
      color: var(--text-muted);
      padding: 40px;
    }
  </style>
</head>
<body>

  <header>
    <h1>🧤 KeeperNews Central</h1>
    <p>Últimos lanzamientos y novedades sobre guantes de arquero profesionales</p>
  </header>

  <div class="controls">
    <input type="text" id="searchInput" class="search-bar" placeholder="Buscar modelo, látex, tecnología o marca...">
    <div class="filters" id="brandFilters">
      <button class="filter-btn active" data-brand="all">Todas las marcas</button>
      <button class="filter-btn" data-brand="RG">RG</button>
      <button class="filter-btn" data-brand="Rinat">Rinat</button>
      <button class="filter-btn" data-brand="T1tan">T1tan</button>
      <button class="filter-btn" data-brand="Elite">Elite Sport</button>
      <button class="filter-btn" data-brand="Puma">Puma</button>
      <button class="filter-btn" data-brand="Nike">Nike</button>
      <button class="filter-btn" data-brand="Uhlsport">Uhlsport</button>
      <button class="filter-btn" data-brand="The One Glove">The One Glove</button>
      <button class="filter-btn" data-brand="Reusch">Reusch</button>
    </div>
  </div>

  <main class="news-grid" id="newsGrid"></main>

  <script>
    const newsData = [
      {
        id: 1,
        brand: "RG",
        title: "Nuevo RG Valah 2026: Palma AlphaGrip y Ligereza Total",
        date: "12 de Octubre, 2026",
        image: "https://images.unsplash.com/photo-1511886929837-354d827aae26?auto=format&fit=crop&w=800&q=80",
        description: "RG presenta la actualización de su modelo insignia Valah. Diseñado con una estructura ultra ligera, cuerpo de textil transpirable y palma de látex alemán AlphaGrip de 4mm para un agarre máximo en canchas secas o húmedas.",
        latex: "German AlphaGrip 4mm",
        cut: "Híbrido Roll/Flat",
        url: "#"
      },
      {
        id: 2,
        brand: "Rinat",
        title: "Rinat Asimetrik Pro Future: Rediseño Ergonómico",
        date: "08 de Octubre, 2026",
        image: "https://images.unsplash.com/photo-1577223625816-7546f13df25d?auto=format&fit=crop&w=800&q=80",
        description: "Rinat lanza la nueva edición Asimetrik PRO con látex German AXG-Future. Ofrece un ajuste Hyper-Cut y palmas extendidas para aumentar la superficie de contacto con la pelota.",
        latex: "German AXG-Future",
        cut: "Hyper-Cut (Especial)",
        url: "#"
      },
      {
        id: 3,
        brand: "T1tan",
        title: "Lanzamiento Colección Beast 4.0 Electric Yellow",
        date: "01 de Octubre, 2026",
        image: "https://images.unsplash.com/photo-1508098682722-e99c43a406b2?auto=format&fit=crop&w=800&q=80",
        description: "La marca alemana T1tan actualiza la serie Beast con su látex Octo Grip de 4mm. Incluye zona de despeje reforzada y muñequera de una sola vuelta ultraconfortable.",
        latex: "Octo Grip 4mm",
        cut: "Negativo Puro",
        url: "#"
      },
      {
        id: 4,
        brand: "Uhlsport",
        title: "Serie Uhlsport Fangmaschine ZNE con Ultragrip",
        date: "28 de Septiembre, 2026",
        image: "https://images.unsplash.com/photo-1518091043644-c1d4457512c6?auto=format&fit=crop&w=800&q=80",
        description: "Uhlsport reinventa un clásico. La serie ZNE introduce partículas de alto agarre sobre su látex Supergrip+ y el nuevo sistema Asymmetric Long Entry para un calce perfecto.",
        latex: "Ultragrip ZNE / Supergrip+",
        cut: "HN (Half Negative)",
        url: "#"
      },
      {
        id: 5,
        brand: "Reusch",
        title: "Reusch Attrakt Freegel Gold Evolution Spines",
        date: "20 de Septiembre, 2026",
        image: "https://images.unsplash.com/photo-1521412644187-c49fa049e84d?auto=format&fit=crop&w=800&q=80",
        description: "Reusch integra protección extraíble de varillas Finger Support junto a la silicona Freegel en el dorso, ofreciendo la combinación idónea entre flexibilidad y seguridad.",
        latex: "Grip Gold Latex",
        cut: "Evolution Negative Cut",
        url: "#"
      },
      {
        id: 6,
        brand: "Puma",
        title: "Puma Future Ultimate NC: Edición Solar",
        date: "15 de Septiembre, 2026",
        image: "https://images.unsplash.com/photo-1606107557195-0e29a4b5b4aa?auto=format&fit=crop&w=800&q=80",
        description: "Utilizados por porteros de élite mundial, los nuevos Puma Future prescinden del cierre tradicional gracias a su tejido 3D Knit e incorporan látex Elite Dual Grip de 4mm.",
        latex: "4mm Elite Dual Grip",
        cut: "Corte Negativo (NC)",
        url: "#"
      },
      {
        id: 7,
        brand: "Nike",
        title: "Nike Vapor Grip 3 Pro Edition - Colección Primavera",
        date: "10 de Septiembre, 2026",
        image: "https://images.unsplash.com/photo-1543351611-c82399575a20?auto=format&fit=crop&w=800&q=80",
        description: "Nike renueva la gama de colores de sus legendarios VG3. Mantienen la tecnología envolvente patentada en el dedo pulgar e índice junto con la espuma Contact Plus.",
        latex: "ACC Contact Plus",
        cut: "Grip3 (Patentado)",
        url: "#"
      },
      {
        id: 8,
        brand: "The One Glove",
        title: "OG1 Apex Pro: La Nueva Revelación Británica",
        date: "05 de Septiembre, 2026",
        image: "https://images.unsplash.com/photo-1579952363873-27f3bade9f55?auto=format&fit=crop&w=800&q=80",
        description: "The One Glove lanza su gama Apex Pro enfocada en máxima durabilidad y agarre en césped sintético gracias a su látex Pro Grade Contact de 4mm y su dorso de Neopreno Airlite.",
        latex: "Pro Grade Contact 4mm",
        cut: "Vortex Cut",
        url: "#"
      },
      {
        id: 9,
        brand: "Elite",
        title: "Elite Sport Neo Black: Palma de Cuarzo y Resistencia",
        date: "01 de Septiembre, 2026",
        image: "https://images.unsplash.com/photo-1517649763962-0c623266ddc0?auto=format&fit=crop&w=800&q=80",
        description: "La marca especializada Elite Sport renueva la serie Neo con su palma B2B Ultra Contact Latex y zonas antidesgaste, pensadas para resistir partidos de alta exigencia.",
        latex: "Ultra Contact Latex 4mm",
        cut: "Speed Cut / Negativo",
        url: "#"
      }
    ];

    const newsGrid = document.getElementById('newsGrid');
    const searchInput = document.getElementById('searchInput');
    const brandFilters = document.getElementById('brandFilters');

    let selectedBrand = 'all';
    let searchQuery = '';

    function renderNews() {
      newsGrid.innerHTML = '';

      const filteredNews = newsData.filter(item => {
        const matchesBrand = selectedBrand === 'all' || item.brand === selectedBrand;
        const matchesSearch = item.title.toLowerCase().includes(searchQuery) ||
                              item.description.toLowerCase().includes(searchQuery) ||
                              item.brand.toLowerCase().includes(searchQuery) ||
                              item.latex.toLowerCase().includes(searchQuery);
        return matchesBrand && matchesSearch;
      });

      if (filteredNews.length === 0) {
        newsGrid.innerHTML = '<div class="no-results">No se encontraron noticias ni lanzamientos con los criterios seleccionados.</div>';
        return;
      }

      filteredNews.forEach(item => {
        const card = document.createElement('article');
        card.className = 'news-card';
        card.innerHTML = `
          <img class="news-image" src="${item.image}" alt="${item.title}" loading="lazy">
          <div class="news-content">
            <span class="brand-badge">${item.brand}</span>
            <h2 class="news-title">${item.title}</h2>
            <div class="news-date">📅 ${item.date}</div>
            <p class="news-description">${item.description}</p>
            <div class="specs">
              <span><strong>Palma / Látex:</strong> ${item.latex}</span>
              <span><strong>Corte:</strong> ${item.cut}</span>
            </div>
            <a href="${item.url}" class="read-more">Ver detalles del guante</a>
          </div>
        `;
        newsGrid.appendChild(card);
      });
    }

    // Event listeners
    searchInput.addEventListener('input', (e) => {
      searchQuery = e.target.value.toLowerCase();
      renderNews();
    });

    brandFilters.addEventListener('click', (e) => {
      if (e.target.classList.contains('filter-btn')) {
        document.querySelectorAll('.filter-btn').forEach(btn => btn.classList.remove('active'));
        e.target.classList.add('active');
        selectedBrand = e.target.getAttribute('data-brand');
        renderNews();
      }
    });

    // Render inicial
    renderNews();
  </script>
</body>
</html>

25,384 chars · codepastes.com