
  :root{
    --bg:#f4f6f8; --card:#fff; --ink:#14181f; --muted:#667085;
    --line:#e6e9ee; --brand:#12a150; --brand-d:#0c7c3d;
    --brand-soft:#e7f7ee; --gold:#b8860b; --shadow:0 1px 2px rgba(16,24,40,.06),0 1px 3px rgba(16,24,40,.04);
  }
  *{margin:0;padding:0;box-sizing:border-box}
  body{background:var(--bg);color:var(--ink);
       font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
       line-height:1.5;-webkit-font-smoothing:antialiased}
  a{color:inherit}
  .wrap{max-width:64rem;margin:0 auto;padding:0 1rem}

  /* ---- HERO ---- */
  /* Misma cabecera que la portada en TODAS las páginas de dentro (categorías,
     guías, marcas y fichas): antes era blanca con el logo pequeño y al entrar
     en una categoría parecía otra web. */
  header.hero{background:linear-gradient(135deg,#0b7238 0%,#12a150 55%,#16b85c 100%);
              color:#fff;padding:1.5rem 1rem 1.4rem;text-align:center}
  .logo{font-size:2.3rem;font-weight:800;letter-spacing:-.045em;line-height:1;
        text-shadow:0 2px 10px rgba(0,0,0,.16)}
  header.hero .logo,header.hero .logo a{color:#fff;text-decoration:none}
  .logo span{color:#bdf0d2}
  .tag{color:#d8f6e6;margin-top:.4rem;font-size:1.02rem;font-weight:600;
       line-height:1.3;max-width:44rem;margin-left:auto;margin-right:auto}
  /* el sello de dietistas sale de la cabecera, como en la portada: sigue en el
     pie, en la caja de autor y en /sobre/ */
  header.hero .firma{display:none}
  /* cabecera de categoría: con buscador, selector de categoría y Gramo */
  header.hero.con-busca{position:relative;overflow:hidden;padding:1.4rem 1rem 1.5rem}
  header.hero.con-busca .in{max-width:46rem;margin:0 auto;position:relative;z-index:2}
  header.hero.con-busca .tag{margin-bottom:1rem}
  header.hero .gramo{position:absolute;right:-10px;bottom:-14px;height:150px;z-index:1;
    opacity:.92;pointer-events:none;filter:drop-shadow(0 6px 14px rgba(0,0,0,.18))}
  a.btn-home{flex:0 0 auto;display:flex;align-items:center;justify-content:center;
    width:3rem;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.35);
    border-radius:999px;text-decoration:none;font-size:1.15rem;line-height:1;
    transition:background .14s}
  a.btn-home:hover{background:#fff}
  .firma{display:inline-flex;align-items:center;gap:.5rem;margin-top:1rem;
         background:var(--brand-soft);color:var(--brand-d);border:1px solid #cde9d8;
         padding:.35rem .9rem;border-radius:999px;font-size:.85rem;font-weight:600}
  .firma b{font-weight:700}
  /* aviso de ofertas por Telegram */
  .canal{display:block;width:fit-content;margin:1rem auto 0;text-decoration:none;
         background:#229ED9;color:#fff;padding:.6rem 1.3rem;border-radius:999px;
         font-size:.9rem;font-weight:600;box-shadow:0 2px 10px rgba(34,158,217,.28);
         transition:transform .12s ease,box-shadow .12s ease}
  .canal:hover{transform:translateY(-1px);box-shadow:0 5px 16px rgba(34,158,217,.36)}
  .canal b{font-weight:800}
  .hero-cta{display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap;margin-top:1rem}
  .hero-cta .canal{margin:0}
  .btn-guias{display:inline-flex;align-items:center;text-decoration:none;
             background:var(--brand);color:#fff;border:none;
             padding:.6rem 1.3rem;border-radius:999px;font-size:.9rem;font-weight:800;
             box-shadow:0 2px 10px rgba(18,161,80,.32);
             transition:transform .12s ease,box-shadow .12s ease,background .12s}
  .btn-guias:hover{transform:translateY(-1px);background:var(--brand-d);
                   box-shadow:0 5px 16px rgba(18,161,80,.42)}
  /* separado de «detrás hay un equipo»: pegados parecían la misma caja */
  .canal-cta{max-width:64rem;margin:2.8rem auto 2.5rem;padding:1.6rem 1rem;text-align:center;
             background:var(--brand-soft);border:1px solid #cde9d8;border-radius:14px}
  .canal-cta h3{font-size:1.1rem;margin-bottom:.35rem}
  .canal-cta p{color:var(--muted);font-size:.9rem;max-width:34rem;margin:0 auto}
  /* Tarjetas: el catálogo es el argumento más fuerte de la web y en una línea
     de texto gris pasaba desapercibido. */
  .stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;
         max-width:44rem;margin:1.6rem auto 0;padding:0 .3rem}
  .stats>div{background:var(--card);border:1px solid var(--line);border-radius:14px;
         padding:.85rem .5rem;text-align:center;box-shadow:var(--shadow)}
  .stats b{display:block;color:var(--brand-d);font-size:1.5rem;font-weight:800;
           line-height:1.1;letter-spacing:-.02em;margin-bottom:.25rem}
  .stats span{display:block;color:var(--muted);font-size:.76rem;line-height:1.25}
  /* la fecha y las tiendas son texto, no cifras: no deben gritar como los números */
  .stats>div.dato-txt b{font-size:.98rem;color:var(--ink);font-weight:700}
  @media(max-width:640px){
    .stats{grid-template-columns:1fr 1fr;gap:.6rem}
    .stats b{font-size:1.35rem}
  }

  .aviso{max-width:64rem;margin:1.1rem auto 0;padding:0 1rem;color:var(--muted);
         font-size:.82rem;text-align:center}

  /* ---- SECCIONES ---- */
  main{padding:1rem 0 3rem}
  h2.cat{display:flex;align-items:center;gap:.55rem;margin:2rem 0 .9rem;
         font-size:1.3rem;font-weight:800;letter-spacing:-.01em}
  h2.cat .em{font-size:1.4rem}
  h2.cat small{font-weight:600;color:var(--muted);font-size:.8rem;margin-left:auto}

  /* ---- TARJETAS ---- */
  .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(15.5rem,1fr));gap:.8rem}
  .card{background:var(--card);border:1px solid var(--line);border-radius:14px;
        box-shadow:var(--shadow);padding:.9rem;display:flex;flex-direction:column;
        position:relative;transition:.15s}
  .card:hover{box-shadow:0 4px 12px rgba(16,24,40,.10);transform:translateY(-2px)}
  .card.best{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand),var(--shadow)}
  .badge-best{position:absolute;top:.7rem;left:.7rem;background:var(--brand);color:#fff;
              font-size:.7rem;font-weight:700;padding:.15rem .5rem;border-radius:999px;
              letter-spacing:.02em;z-index:2}
  /* Selector de orden. Los tres distintivos y el marco del ganador viajan en
     el HTML y se encienden por CSS según el orden elegido: el JS solo mueve
     las tarjetas de sitio, nunca decide quién gana. */
  .card .bb{display:none}
  .grid[data-orden="precio"] .card .bb.b-precio,
  .grid[data-orden="activo"] .card .bb.b-activo,
  .grid[data-orden="comp"]   .card .bb.b-comp{display:inline-block}
  .grid[data-orden="precio"] .card[data-w-precio],
  .grid[data-orden="activo"] .card[data-w-activo],
  .grid[data-orden="comp"]   .card[data-w-comp]{
       border-color:var(--brand);box-shadow:0 0 0 1px var(--brand),var(--shadow)}
  .ordenar{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;
           background:#fff;border:1px solid var(--line);border-radius:14px;
           padding:.7rem .9rem;margin-bottom:1rem;box-shadow:var(--shadow)}
  .ordenar label{font-size:.85rem;font-weight:700;color:var(--muted)}
  .ordenar select{border:1px solid var(--line);border-radius:10px;padding:.5rem .6rem;
                  font:inherit;font-size:.88rem;font-weight:600;background:#fff;
                  color:var(--ink);max-width:100%}
  .ordenar select:focus{outline:2px solid var(--brand);outline-offset:-1px}
  .ordenar .pista{flex:1 1 100%;font-size:.82rem;color:var(--muted);line-height:1.45}
  .ordenar .pista b{color:var(--ink)}
  @media(max-width:620px){
    .ordenar{flex-direction:column;align-items:stretch;gap:.45rem}
    .ordenar select{width:100%}
  }
  .thumb{height:8.5rem;display:flex;align-items:center;justify-content:center;
         background:#fafbfc;border-radius:10px;margin-bottom:.7rem;overflow:hidden}
  .thumb img{max-height:100%;max-width:100%;object-fit:contain;mix-blend-mode:multiply}
  .thumb .ph{font-size:2.6rem;opacity:.5}
  .nombre{font-size:.9rem;font-weight:600;line-height:1.35;min-height:2.4rem;
          display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .precios{display:flex;align-items:baseline;gap:.5rem;margin:.6rem 0 .1rem;flex-wrap:wrap}
  .precio{font-size:1.35rem;font-weight:800;letter-spacing:-.02em}
  .ppk{background:var(--brand-soft);color:var(--brand-d);font-weight:700;
       font-size:.82rem;padding:.12rem .5rem;border-radius:7px}
  .ppk.na{background:#f1f3f6;color:var(--muted);font-weight:600}
  .envio{font-size:.76rem;color:var(--muted);margin-top:.15rem}
  /* ---- ÍNDICE DE COMPOSICIÓN (€ por gramo de principio activo) ---- */
  .activo{margin-top:.45rem;font-size:.8rem;line-height:1.35;color:var(--brand-d);
          border-top:1px dashed var(--line);padding-top:.45rem}
  .activo b{display:block;font-weight:800;font-size:.88rem}
  .activo span{color:var(--muted);font-size:.76rem}
  .activo.na span{color:#9aa3ae;font-style:italic}
  .cta{margin-top:.75rem;display:block;text-align:center;background:var(--brand);color:#fff;
       font-weight:700;font-size:.9rem;padding:.6rem;border-radius:10px;text-decoration:none;
       transition:.15s}
  .cta:hover{background:var(--brand-d)}

  /* ---- FIRMA BLOQUE ---- */
  .autor{background:#fff;border:1px solid var(--line);border-radius:14px;
         box-shadow:var(--shadow);padding:1.3rem 1.4rem;margin:2.5rem 0 0;
         display:flex;gap:1rem;align-items:flex-start}
  .autor .ava{flex:0 0 auto;width:3rem;height:3rem;border-radius:50%;
              background:var(--brand-soft);display:flex;align-items:center;justify-content:center;
              font-size:1.5rem}
  .autor h3{font-size:1rem;margin-bottom:.25rem}
  .autor p{color:var(--muted);font-size:.88rem}
  .autor a{color:var(--brand-d);font-weight:600;text-decoration:none}

  footer{text-align:center;color:var(--muted);font-size:.82rem;padding:2.5rem 1rem;
         border-top:1px solid var(--line);margin-top:2rem}
  footer a{color:var(--brand-d);text-decoration:none;font-weight:600}

  .card .nombre a.nlink{color:inherit;text-decoration:underline;
       text-decoration-color:#c9d2dc;text-decoration-thickness:1px;text-underline-offset:3px}
  .card .nombre a.nlink:hover{color:var(--brand-d);text-decoration-color:var(--brand)}
  .card .nombre a.nlink .fl{color:var(--brand-d);font-weight:900;margin-left:.25rem;
       text-decoration:none;display:inline-block}
  .card .thumb a{display:block}
  /* Aviso de cómo funciona cada tarjeta: se explica una vez por página */
  .pista{max-width:64rem;margin:.2rem auto 1rem;padding:0 1rem;color:var(--muted);
         font-size:.88rem;text-align:center}
  .intro-cat .pista{text-align:left;padding:0;max-width:52rem;margin:.9rem 0 0}
  .pista b{color:var(--ink)}
  .pista .v{color:var(--brand-d);font-weight:700}
  /* ---- TIRA DE LOGOS DE TIENDAS ---- */
  .tira-tiendas{max-width:64rem;margin:2rem auto 0;padding:1.4rem 1rem 0;text-align:center;
                border-top:1px solid var(--line)}
  .tira-tiendas>p{color:var(--muted);font-size:.8rem;text-transform:uppercase;
                  letter-spacing:.05em;font-weight:700;margin-bottom:1rem}
  .tira-tiendas .logos{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;
                       gap:1.6rem 2.4rem}
  .tira-tiendas .logos img{height:26px;width:auto;max-width:120px;object-fit:contain;
                           opacity:.72;filter:grayscale(1);transition:opacity .15s,filter .15s}
  .tira-tiendas .logos img:hover{opacity:1;filter:none}
  .tira-tiendas .sinlogo{font-weight:800;color:var(--muted);font-size:1.05rem;letter-spacing:-.01em}
  .tira-tiendas .marcas{color:var(--muted);font-size:.86rem;margin-top:1rem}
  .tira-tiendas .marcas b{color:var(--brand-d)}
  @media(max-width:560px){.tira-tiendas .logos{gap:1.2rem 1.6rem}
                          .tira-tiendas .logos img{height:22px;max-width:96px}}


  /* ================= PORTADA (rediseño 06-08-2026) =================
     Antes la home metía las 5.229 tarjetas de producto en el HTML: 7,3 MB y
     25.478 px de alto. Ahora la portada es una puerta de entrada —buscador,
     categorías, bajadas del día— y los productos viven en su categoría. */
  .portada{position:relative;overflow:hidden;color:#fff;text-align:center;
    background:linear-gradient(135deg,#0b7238 0%,#12a150 55%,#16b85c 100%);
    padding:1.5rem 1rem 1.4rem}
  .portada .in{max-width:46rem;margin:0 auto;position:relative;z-index:2}
  /* El nombre manda: es la marca y es lo que se recuerda. El claim va debajo,
     en pequeño, haciendo de subtítulo. */
  .portada .logo{font-size:2.9rem;font-weight:800;letter-spacing:-.045em;
                 margin:0 0 .15rem;color:#fff;line-height:1;
                 text-shadow:0 2px 10px rgba(0,0,0,.16)}
  .portada .logo span{color:#bdf0d2}
  .portada h1{font-size:1.05rem;font-weight:600;line-height:1.25;letter-spacing:0;
              margin:0 0 1rem;color:#d8f6e6}
  .portada h1 em{font-style:normal;color:#fff;font-weight:800}
  .portada .gramo{position:absolute;right:-14px;bottom:-16px;height:190px;z-index:1;
                  opacity:.92;pointer-events:none;filter:drop-shadow(0 6px 14px rgba(0,0,0,.18))}
  /* buscador + filtro de categoría, juntos y arriba: el filtro estaba tan abajo
     que no se veía al entrar */
  .hero-busca{display:flex;gap:.5rem;max-width:44rem;margin:0 auto;align-items:stretch}
  .busca{position:relative;flex:1 1 auto;min-width:0}
  /* la lupa va de fondo del propio input: como emoji en un span posicionado
     dejaba un doble dibujado sobre el desplegable en el móvil */
  .busca input{width:100%;padding:.95rem 1.1rem .95rem 3rem;font-size:1.02rem;
    border:2px solid transparent;border-radius:999px;background:#fff;color:var(--ink);
    box-shadow:0 8px 26px rgba(0,0,0,.18);transition:box-shadow .15s,border-color .15s;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2.2' stroke-linecap='round'><circle cx='11' cy='11' r='7'/><path d='M20 20l-4.2-4.2'/></svg>");
    background-repeat:no-repeat;background-position:left 1.15rem center}
  .busca input:focus{outline:none;border-color:#0a5f30;box-shadow:0 8px 30px rgba(0,0,0,.26)}
  /* Desplegable de categorías hecho por nosotros. El <select> del sistema no
     admite iconos, en el móvil abre la rueda nativa y se ve distinto en cada
     aparato. Dentro van enlaces de verdad: sin JS también se navega. */
  .cat-menu{flex:0 0 auto;position:relative}
  .cat-boton{font:inherit;font-size:.95rem;font-weight:700;color:var(--ink);background:#fff;
    border:2px solid transparent;border-radius:999px;padding:.62rem 1rem .62rem 1.2rem;
    min-width:15rem;max-width:20rem;height:100%;cursor:pointer;display:flex;align-items:center;
    justify-content:space-between;gap:.6rem;box-shadow:0 8px 26px rgba(0,0,0,.18);
    transition:border-color .14s}
  .cat-boton:focus-visible{outline:none;border-color:#0a5f30}
  .cat-boton .et{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .cat-boton .fl{color:var(--brand-d);font-size:.8rem;transition:transform .16s}
  .cat-boton[aria-expanded="true"] .fl{transform:rotate(180deg)}
  /* fijo y colocado con JS: el hero recorta lo que se sale (overflow:hidden por
     Gramo), así que dentro del flujo el panel se cortaría */
  .cat-panel{position:fixed;z-index:60;background:#fff;border:1px solid var(--line);
    border-radius:14px;box-shadow:0 18px 44px rgba(16,24,40,.24);padding:.35rem;
    max-height:min(62vh,27rem);overflow-y:auto;min-width:17rem;text-align:left}
  .cat-panel[hidden]{display:none}
  a.cat-op{display:flex;align-items:center;gap:.6rem;padding:.5rem .6rem;border-radius:10px;
    text-decoration:none;color:var(--ink);font-size:.92rem;font-weight:600;line-height:1.2}
  a.cat-op:hover,a.cat-op:focus-visible{background:var(--brand-soft);outline:none}
  a.cat-op.activa{background:var(--brand-soft);color:var(--brand-d)}
  a.cat-op .ic{font-size:1.1rem;width:1.5rem;text-align:center;flex:0 0 auto}
  a.cat-op .tx{flex:1;min-width:0}
  a.cat-op .n{color:var(--muted);font-size:.78rem;font-weight:700;flex:0 0 auto}
  a.cat-op.vacia{opacity:.35}
  /* las guías, también arriba: botón con la carita de Gramo y el título a secas */
  .chips-guias{display:flex;justify-content:center;align-items:center;gap:.5rem;
    flex-wrap:wrap;max-width:68rem;margin:1.1rem auto 0;position:relative;z-index:2}
  /* Segunda fila: los accesos a las dos secciones. Van aparte de los chips de
     «Últimas guías» porque son navegación, no contenido, y mezclarlos obligaba
     a recortar la fila a dos guías para que cupiera todo (27-08-2026). */
  .chips-secciones{display:flex;justify-content:center;align-items:center;gap:.6rem;
    flex-wrap:wrap;max-width:68rem;margin:.65rem auto 0;position:relative;z-index:2}
  /* Cada sección con su color, y los dos fuera del verde: en translúcido blanco
     se confundían con los chips blancos de «Últimas guías» de la fila de arriba
     y con el propio degradado del hero (David pidió otro color, 27-08-2026).
     Ámbar para producto y coral para deporte — cálidos los dos, que es lo que
     más contrasta sobre el verde, y distintos entre sí para que se vea de un
     vistazo que son dos sitios diferentes. Texto oscuro para que el contraste
     aguante: sobre estos tonos el blanco no llega. */
  /* Rectangulares con las esquinas redondeadas (no píldora): así no se
     confunden con los chips redondos de «Últimas guías» de la fila de arriba,
     que es contenido, mientras que esto es navegación. Y en tonos OSCUROS: el
     ámbar y el coral que se probaron antes no gustaron y además metían dos
     colores nuevos en una paleta que es verde. Verde profundo para producto y
     azul verdoso para deporte — los dos de la familia, distintos entre sí y con
     contraste de sobra sobre el degradado del hero (27-08-2026). */
  a.btn-seccion{display:inline-flex;align-items:center;gap:.55rem;
    border-radius:10px;padding:.55rem 1.15rem;text-decoration:none;color:#fff;
    font-size:.95rem;font-weight:800;letter-spacing:.01em;
    border:1.5px solid rgba(255,255,255,.32);
    box-shadow:0 2px 8px rgba(0,0,0,.22);
    transition:transform .14s,box-shadow .14s,filter .14s,border-color .14s}
  a.btn-seccion:hover{transform:translateY(-2px);background:#1178ad;
    border-color:rgba(255,255,255,.7);box-shadow:0 5px 14px rgba(0,0,0,.28)}
  a.btn-seccion .bs-em{font-size:1.05rem;line-height:1}
  a.btn-seccion .bs-n{font-size:.78rem;font-weight:800;border-radius:6px;
    padding:.08rem .45rem;line-height:1.5;background:rgba(255,255,255,.2)}
  /* Las dos del mismo azul y un punto más claro que el #0a4a58 de la primera
     prueba (David, 27-08-2026). Al ser el mismo color, lo que las distingue es
     el icono y la etiqueta, no el fondo — que para dos accesos hermanos es más
     tranquilo que dos colores compitiendo. Blanco sobre este azul da 6,82:1. */
  /* Ojo al orden: esta regla va DESPUÉS de :hover y tiene la misma
     especificidad, así que sin el :hover propio de abajo pisaría el color al
     pasar el ratón. */
  a.bs-producto,a.bs-deporte,a.bs-nutricion{background:#0e6379}
  a.bs-producto:hover,a.bs-deporte:hover,a.bs-nutricion:hover{background:#1178ad}
  @media(max-width:560px){
    .chips-secciones{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;
      padding:0 1rem;scrollbar-width:none}
    .chips-secciones::-webkit-scrollbar{display:none}
    a.btn-seccion{flex:0 0 auto}
  }
  .chips-guias .et{font-size:.95rem;font-weight:800;color:#fff;letter-spacing:.01em;
    text-shadow:0 1px 2px rgba(0,0,0,.18);margin-right:.15rem}
  a.chip-guia{display:inline-flex;align-items:center;gap:.45rem;background:#fff;
    border:1px solid #fff;border-radius:999px;padding:.28rem .85rem .28rem .28rem;
    color:var(--brand-d);text-decoration:none;font-size:.9rem;font-weight:700;line-height:1.25;
    box-shadow:0 2px 6px rgba(0,0,0,.16);
    transition:background .14s,transform .14s,box-shadow .14s}
  a.chip-guia:hover{background:#eaf7ef;transform:translateY(-2px);
    box-shadow:0 4px 10px rgba(0,0,0,.22)}
  a.chip-guia img{width:30px;height:30px;border-radius:50%;object-fit:cover;
    object-position:center top;background:#eaf7ef;flex:0 0 auto}
  a.chip-guia.todas{padding:.42rem .9rem;font-weight:800;background:transparent;
    border:2px solid #fff;color:#fff;box-shadow:none}
  a.chip-guia.todas:hover{background:#fff;color:var(--brand-d)}

  /* las cifras, legibles de verdad: son la prueba de que esto está vivo */
  .cifras{display:flex;justify-content:center;gap:.5rem;flex-wrap:wrap;
    margin:0 0 1rem}
  .cifras .c{background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.28);
    border-radius:.8rem;padding:.5rem .95rem;min-width:7.5rem;
    backdrop-filter:blur(2px)}
  .cifras b{display:block;color:#fff;font-size:1.35rem;font-weight:800;line-height:1.1;
    letter-spacing:-.02em}
  .cifras i{display:block;font-style:normal;color:#d8f6e6;font-size:.76rem;font-weight:600;
    text-transform:uppercase;letter-spacing:.05em;margin-top:.15rem}

  /* resultados de búsqueda: filas compactas, sin foto, para que vuelen */
  .resultados{max-width:52rem;margin:1.6rem auto 0;padding:0 1rem}
  .resultados .cab{font-size:.9rem;color:var(--muted);margin-bottom:.7rem;
    display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap}
  .resultados .filtro-res{margin-bottom:0}
  .resultados a.fila{display:flex;align-items:center;gap:.8rem;padding:.7rem .9rem;
    background:#fff;border:1px solid var(--line);border-radius:.7rem;margin-bottom:.45rem;
    text-decoration:none;color:var(--ink)}
  .resultados a.fila:hover{border-color:var(--brand);background:var(--brand-soft)}
  .resultados .foto{flex:0 0 auto;width:44px;height:44px;object-fit:contain;background:#fff;
    border:1px solid var(--line);border-radius:.45rem}
  .resultados .nom{flex:1;min-width:0;font-size:.95rem;line-height:1.3}
  .resultados .mk{display:block;color:var(--muted);font-size:.8rem;margin-top:.1rem}
  .resultados .pr{font-weight:800;white-space:nowrap}
  .resultados .un{color:var(--brand-d);font-weight:700;font-size:.82rem;
    background:var(--brand-soft);border-radius:999px;padding:.1rem .5rem;white-space:nowrap}
  .resultados .vacio{text-align:center;color:var(--muted);padding:2rem 1rem}

  /* rejilla de categorías: la navegación de verdad del comparador */
  .bloque{padding:2.6rem 1rem}
  .bloque.gris{background:#f4f7f9;border-top:1px solid var(--line);
               border-bottom:1px solid var(--line)}
  .bloque .in{max-width:64rem;margin:0 auto}
  .bloque h2{font-size:1.5rem;letter-spacing:-.02em;margin-bottom:.35rem}
  .bloque .lead{color:var(--muted);margin-bottom:1.4rem;font-size:.97rem}
  .cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:.8rem}
  a.cat-card{display:flex;align-items:center;gap:.8rem;background:#fff;
    border:1px solid var(--line);border-radius:.85rem;padding:.85rem .95rem;
    text-decoration:none;color:var(--ink);transition:transform .12s,border-color .12s,box-shadow .12s}
  a.cat-card:hover{transform:translateY(-2px);border-color:var(--brand);box-shadow:var(--shadow)}
  a.cat-card .em{font-size:1.7rem;line-height:1;flex:0 0 auto}
  a.cat-card .foto{flex:0 0 auto;width:52px;height:52px;object-fit:contain;background:#fff;
    border-radius:.5rem;border:1px solid var(--line)}
  a.cat-card .t{font-weight:700;font-size:.95rem;line-height:1.25}
  a.cat-card .n{display:block;color:var(--muted);font-weight:500;font-size:.8rem;margin-top:.15rem}
  a.cat-card .n em{font-style:normal;color:var(--brand-d);font-weight:700}

  /* bajadas del día: el motivo para volver mañana */
  .cab-bloque{display:flex;align-items:flex-end;justify-content:space-between;
    gap:1rem;flex-wrap:wrap}
  /* align-items:flex-start es necesario: al envolverse en el móvil, el select
     se estiraba (stretch) más allá del ancho de la caja y sacaba scroll lateral */
  .filtro{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;
    font-size:.8rem;color:var(--muted);font-weight:600;margin-bottom:.9rem;max-width:100%}
  .filtro select{font:inherit;font-size:.9rem;font-weight:600;color:var(--ink);
    background:#fff;border:1px solid var(--line);border-radius:.6rem;
    padding:.45rem .7rem;min-width:13rem;max-width:100%;cursor:pointer}
  .filtro select:focus{outline:2px solid var(--brand);outline-offset:1px}
  .sin-bajadas{color:var(--muted);margin:.6rem 0 0}
  button.mas{display:block;margin:1rem auto 0;background:#fff;color:var(--brand-d);
    border:1px solid var(--brand);border-radius:999px;padding:.55rem 1.4rem;
    font:inherit;font-weight:700;font-size:.9rem;cursor:pointer}
  button.mas:hover{background:var(--brand);color:#fff}
  button.mas[hidden]{display:none}   /* display:block gana al atributo hidden */
  .baja-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:.8rem}
  a.baja{display:flex;gap:.7rem;align-items:flex-start;background:#fff;
    border:1px solid var(--line);border-radius:.85rem;
    padding:.9rem;text-decoration:none;color:var(--ink);position:relative;
    transition:transform .12s,border-color .12s}
  a.baja.oculta{display:none}
  a.baja:hover{transform:translateY(-2px);border-color:var(--brand)}
  /* la foto del producto: una lista de nombres no dice qué estás mirando */
  a.baja .foto{flex:0 0 auto;width:60px;height:60px;object-fit:contain;background:#fff;
    border-radius:.5rem;border:1px solid var(--line)}
  a.baja .foto.em{display:flex;align-items:center;justify-content:center;font-size:1.6rem}
  a.baja .d{min-width:0;flex:1}
  a.baja .pct{position:absolute;top:.7rem;right:.7rem;background:#e8f8ee;color:var(--brand-d);
    font-weight:800;font-size:.78rem;border-radius:999px;padding:.15rem .5rem}
  a.baja .nom{font-weight:600;font-size:.9rem;line-height:1.3;margin-bottom:.5rem;
    padding-right:3.4rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
    overflow:hidden}
  a.baja .antes{color:var(--muted);text-decoration:line-through;font-size:.85rem;margin-right:.4rem}
  a.baja .ahora{font-weight:800;font-size:1.1rem}
  a.baja .tienda{display:block;color:var(--muted);font-size:.78rem;margin-top:.3rem}

  @media(max-width:640px){
    .portada{padding:1.3rem .9rem 1.2rem}
    .portada h1{font-size:.95rem;margin-bottom:.85rem}
    .portada .logo{font-size:2.05rem}
    /* Gramo fuera en el móvil: se comía las cifras, y ahí el espacio de arriba
       es justo lo que no sobra. El verde ya da la cara. */
    .portada .gramo{display:none}
    /* buscador y filtro en dos líneas: uno al lado del otro no caben. Con
       flex-wrap (y no column) el botón de inicio se queda al lado del campo
       en vez de comerse una línea él solo. */
    .hero-busca{flex-wrap:wrap}
    .busca{flex:1 1 60%}
    .cat-menu{flex:1 1 100%}
    .cat-boton{width:100%;max-width:100%;min-width:0;padding:.7rem 1.1rem}
    a.btn-home{width:2.8rem}
    /* Gramo más pequeño en el móvil: a 150 px se metía debajo del buscador */
    header.hero .gramo{height:112px;right:-8px;bottom:-10px}
    .cifras{gap:.4rem;margin:0 0 .8rem}
    .chips-guias{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;
      margin-left:-.9rem;margin-right:-.9rem;padding:.15rem .9rem .3rem;
      scrollbar-width:none}
    .chips-guias::-webkit-scrollbar{display:none}
    a.chip-guia{flex:0 0 auto}
    .chips-guias .et{flex:0 0 auto}
    .cifras .c{padding:.4rem .7rem;min-width:6.4rem;flex:1 1 auto}
    .cifras b{font-size:1.1rem}
    .cifras i{font-size:.68rem}
    .busca input{font-size:1rem;padding:.85rem 1rem .85rem 2.8rem}
    .bloque{padding:2rem .9rem}
    .bloque h2{font-size:1.3rem}
    .cat-grid{grid-template-columns:repeat(auto-fill,minmax(10.5rem,1fr));gap:.6rem}
    a.cat-card{padding:.75rem .8rem;gap:.6rem}
    a.cat-card .em{font-size:1.45rem}
    a.cat-card .foto{width:44px;height:44px}
    a.cat-card .t{font-size:.88rem}
  }

  /* ---- PÁGINAS DE CATEGORÍA ---- */
  .comparar{max-width:64rem;margin:2rem auto 0;padding:1.4rem 1rem;border-top:1px solid var(--line)}
  .comparar h2{font-size:1.15rem;margin-bottom:.7rem;letter-spacing:-.01em}
  .comparar p{color:#3a4452;font-size:.98rem;line-height:1.7;max-width:52rem}
  .comparar .faq{margin-top:1.3rem;display:grid;gap:.9rem;max-width:52rem}
  .comparar .faq h3{font-size:1rem;color:var(--ink);margin-bottom:.25rem}
  .comparar .faq p{font-size:.95rem;margin:0}
  .comparar .remate{margin-top:1.2rem;font-size:.95rem}
  .comparar .remate a{color:var(--brand-d);font-weight:700;text-decoration:none}
  .intro-cat{max-width:64rem;margin:1.1rem auto 0;padding:0 1rem}
  /* los párrafos iban pegados unos a otros y se leía como un bloque */
  .intro-cat p{color:#3a4452;font-size:.98rem;line-height:1.7;max-width:52rem;
               margin-bottom:.85rem}
  .intro-cat p:last-child{margin-bottom:0}
  .intro-cat .dato a.mejor{color:var(--brand-d);text-decoration:none;
                           border-bottom:1px solid #9ad4b4}
  .intro-cat .dato a.mejor:hover{border-bottom-color:var(--brand-d)}
  /* la caja del más rentable y la pista pedían aire: iban pegadas entre sí y
     a la parrilla de productos */
  .intro-cat .dato{margin:1.1rem 0}
  .intro-cat .pista{margin:1rem 0 0}
  /* botón de la guía de la categoría: era un enlace de texto suelto */
  /* sin max-width: la parrilla de productos llega al borde del contenedor y el
     banner se quedaba corto por la derecha */
  a.cta-guia{display:flex;align-items:center;gap:.9rem;margin:1.4rem 0 .4rem;
    background:#fff;border:1px solid #cde9d8;border-left:4px solid var(--brand);
    border-radius:14px;padding:.7rem .9rem;text-decoration:none;color:var(--ink);
    box-shadow:var(--shadow);transition:transform .14s,box-shadow .14s,border-color .14s}
  a.cta-guia:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(16,24,40,.12);
    border-color:var(--brand)}
  a.cta-guia img{width:58px;height:58px;object-fit:cover;object-position:center top;
    border-radius:50%;background:var(--brand-soft);flex:0 0 auto}
  a.cta-guia .em{width:58px;height:58px;display:flex;align-items:center;justify-content:center;
    border-radius:50%;background:var(--brand-soft);font-size:1.6rem;flex:0 0 auto}
  a.cta-guia .txt{flex:1;min-width:0}
  a.cta-guia .et{display:block;color:var(--brand-d);font-size:.74rem;font-weight:800;
    text-transform:uppercase;letter-spacing:.04em}
  a.cta-guia .ti{display:block;font-weight:700;font-size:1rem;line-height:1.3;margin-top:.1rem}
  a.cta-guia .ir{flex:0 0 auto;background:var(--brand);color:#fff;font-weight:800;font-size:.85rem;
    padding:.45rem .9rem;border-radius:999px;white-space:nowrap}
  a.cta-guia:hover .ir{background:var(--brand-d)}
  .intro-cat .dato{margin-top:.7rem;background:var(--brand-soft);border:1px solid #cde9d8;
                   border-radius:12px;padding:.7rem 1rem;font-size:.9rem;color:var(--brand-d);
                   display:inline-block}
  .intro-cat .dato b{font-weight:800}
  .intro-cat .criterio{margin-top:1rem;background:#fff;border:1px solid var(--line);
                       border-radius:14px;padding:1rem 1.15rem;box-shadow:var(--shadow);
                       max-width:52rem}
  .intro-cat .tipos{margin-top:.9rem;display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}
  .intro-cat .tipos .et{font-size:.85rem;color:var(--muted);font-weight:600;margin-right:.15rem}
  .intro-cat .tipos a{display:inline-flex;align-items:center;gap:.35rem;background:#fff;
                      border:1px solid var(--line);border-radius:999px;padding:.32rem .7rem;
                      font-size:.85rem;font-weight:600;color:var(--ink);text-decoration:none}
  .intro-cat .tipos a:hover{border-color:var(--brand);color:var(--brand-d)}
  .intro-cat .tipos a span{font-size:.75rem;color:var(--muted);font-weight:500}
  .intro-cat .volver-cat{font-size:.9rem;margin-bottom:.5rem}
  .intro-cat .volver-cat a{color:var(--brand-d);font-weight:600}
  .intro-cat .cuanto{margin-top:1rem;background:#fff;border:1px solid var(--line);
                     border-radius:14px;padding:1rem 1.15rem;box-shadow:var(--shadow);
                     max-width:52rem}
  .intro-cat .cuanto h2{font-size:1.05rem;margin-bottom:.45rem;letter-spacing:-.01em}
  .intro-cat .cuanto p{font-size:.95rem;line-height:1.65;color:#3a4452}
  .intro-cat .criterio h2{font-size:1rem;margin-bottom:.45rem}
  .intro-cat .criterio p{font-size:.92rem}
  .intro-cat .criterio .criterio-nota{margin-top:.55rem;color:var(--muted);font-size:.84rem}
  .h2link{color:inherit;text-decoration:none}
  .h2link:hover{color:var(--brand-d)}
  header.hero .h2link:hover{color:#bdf0d2}
  .otras{max-width:64rem;margin:2rem auto 0;padding:1.4rem 1rem;border-top:1px solid var(--line)}
  .otras h3{font-size:1rem;margin-bottom:.8rem}
  .otras .lista{display:flex;flex-wrap:wrap;gap:.5rem}
  .otras a{background:#fff;border:1px solid var(--line);border-radius:999px;
           padding:.4rem .85rem;font-size:.85rem;text-decoration:none;color:var(--ink);
           box-shadow:var(--shadow)}
  .otras a:hover{border-color:var(--brand);color:var(--brand-d)}

  /* ---- GUÍAS (artículos) ---- */
  .guia{max-width:44rem;margin:1.4rem auto 0;padding:0 1.1rem}
  .guia h2{font-size:1.3rem;margin:1.8rem 0 .5rem;letter-spacing:-.01em}
  .guia p{margin:.7rem 0;color:#2b333d;line-height:1.75;font-size:1.02rem}
  .guia ul{margin:.6rem 0 .6rem 1.3rem}
  .guia li{margin:.35rem 0;color:#2b333d;line-height:1.65}
  .guia table{width:100%;border-collapse:collapse;margin:1rem 0;font-size:.95rem}
  .guia th,.guia td{border:1px solid var(--line);padding:.55rem .7rem;text-align:left}
  .guia th{background:var(--brand-soft);color:var(--brand-d)}
  /* Páginas por deporte: mismo cuerpo que una guía, pero con parrillas de
     producto intercaladas entre bloque y bloque (27-08-2026). */
  .guia.dep .dep-bloque{margin:3rem 0 2.2rem;padding-top:.9rem;
                        border-top:2px solid var(--brand-soft)}
  .guia.dep .dep-bloque:first-of-type{border-top:0}
  .guia.dep .dep-bloque h2{display:flex;align-items:center;gap:.55rem}
  .guia.dep .dep-em{font-size:1.5rem;line-height:1}
  /* La parrilla se sale del ancho del texto: el cuerpo se lee mejor a 44rem,
     pero tres tarjetas ahí dentro solo caben dos y queda un hueco tonto. */
  /* El mismo aire arriba y abajo: la parrilla tenía 4rem por encima y 2rem por
     debajo y se notaba descentrada dentro de su bloque (lo vio David). */
  .guia.dep .dep-tarjetas{display:grid;gap:.9rem;margin:3rem auto;
                          grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));
                          width:min(60rem,92vw);
                          position:relative;left:50%;transform:translateX(-50%)}
  @media(max-width:700px){
    .guia.dep .dep-tarjetas{grid-template-columns:1fr;width:100%;left:0;transform:none}
  }
  .guia.dep .dep-vertodo{margin:0;text-align:right}
  .guia.dep .dep-vertodo a{color:var(--brand-d);font-weight:700;text-decoration:none}
  .guia.dep .dep-vertodo a:hover{text-decoration:underline}
  .grupo-guias{margin:0 0 2.4rem}
  .grupo-guias + .grupo-guias{padding-top:1.6rem;border-top:2px solid var(--line)}
  .grupo-guias h2{display:flex;align-items:center;gap:.55rem;font-size:1.35rem;
                  margin:0 0 .25rem;letter-spacing:-.01em}
  /* También dentro de .intro-seccion: en /nutricion/ y /deporte/ el panel no
     va dentro de un .grupo-guias, así que el contador se quedaba sin píldora y
     salía como un número suelto detrás del título («Guías de nutrición 3»),
     que parece una errata. Y ahí el fondo tiene que ser blanco, porque el panel
     ya es verde suave y la píldora se perdía encima. */
  .grupo-guias h2 .cuenta,
  .intro-seccion h2 .cuenta{font-size:.85rem;font-weight:800;color:var(--brand-d);
                          background:var(--brand-soft);border-radius:999px;
                          padding:.1rem .55rem;line-height:1.5}
  .intro-seccion h2 .cuenta{background:#fff}
  /* Presentación de cada familia de guías. Antes era un renglón gris pequeño
     debajo del título y David dijo que «se ve poco»: parecía el pie de una foto
     y no explicaba para qué sirven esas guías (06-09-2026). Ahora es un panel
     con fondo, filo verde y texto del color normal, para que se lea como lo que
     es —la presentación de la sección— y no como una nota al margen. */
  .intro-seccion{background:var(--brand-soft);border-left:4px solid var(--brand);
    border-radius:0 10px 10px 0;padding:.95rem 1.15rem;margin:0 0 1.35rem}
  .intro-seccion h2{margin:0 0 .35rem;border:0;padding:0}
  .intro-seccion p{margin:0;color:var(--ink);font-size:1.02rem;line-height:1.55;
    max-width:52rem}
  .intro-seccion p .remate{color:var(--muted)}
  .intro-seccion p a{color:var(--brand-d);font-weight:700;text-decoration:none}
  .intro-seccion p a:hover{text-decoration:underline}
  /* Pie de /deporte/ y /nutricion/: las otras familias de guías. Mismo filo
     que separa los grupos en /guias/, para que se lea como «hasta aquí esta
     sección» y no como más contenido de la que se estaba leyendo. */
  .otras-secciones{margin:2.6rem 0 0;padding-top:1.6rem;border-top:2px solid var(--line)}
  .otras-secciones .os-tit{font-size:1.1rem;color:var(--muted);font-weight:700;
                           margin:0 0 .9rem;border:0;padding:0;letter-spacing:-.01em}
  .grupo-guias .grupo-sub{margin:0 0 1.1rem;color:var(--muted);font-size:.97rem}
  .grupo-guias .grupo-sub a{color:var(--brand-d);font-weight:700;text-decoration:none}
  .grupo-guias .grupo-sub a:hover{text-decoration:underline}
  .dep-guias{margin:1.4rem 0}
  .dep-guias h2{font-size:1.15rem;color:var(--ink);margin:0 0 .7rem}
  .dep-guias .mini-guias a{background:#fff;border:1px solid var(--line);border-radius:999px;
                           padding:.5rem .9rem;text-decoration:none;color:var(--ink);
                           font-weight:600;font-size:.92rem}
  .dep-guias .mini-guias a:hover{border-color:var(--brand);color:var(--brand-d)}
  .guia .box{background:var(--brand-soft);border:1px solid #cde9d8;border-radius:14px;
             padding:1rem 1.2rem;margin:1.4rem 0}
  .guia .box p{margin:.4rem 0}
  .guia .box a{color:var(--brand-d);font-weight:700;text-decoration:none}
  /* tarjeta de oferta real dentro de la guía */
  .oferta-guia{max-width:44rem;margin:1.6rem auto;background:#fff;border:2px solid var(--brand);
    border-radius:16px;padding:1rem 1.1rem;box-shadow:0 6px 18px rgba(12,124,61,.12)}
  .oferta-guia .og-tag{font-weight:800;color:var(--brand-d);font-size:.9rem;margin-bottom:.7rem}
  .oferta-guia .og-row{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap}
  .oferta-guia .og-img{width:64px;height:64px;object-fit:contain;flex:0 0 auto}
  .oferta-guia .og-info{flex:1 1 10rem;min-width:0}
  .oferta-guia .og-nombre{font-weight:700;color:var(--ink);line-height:1.25;font-size:.98rem}
  .oferta-guia .og-meta{color:#777;font-size:.82rem;margin-top:.1rem}
  .oferta-guia .og-precios{margin-top:.35rem;display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap}
  .oferta-guia .og-precio{font-weight:800;color:var(--ink);font-size:1.15rem}
  .oferta-guia .og-ppk{color:var(--brand-d);font-weight:700;font-size:.85rem;
    background:var(--brand-soft);padding:.1rem .45rem;border-radius:999px}
  .oferta-guia .og-cta{flex:0 0 auto;background:var(--brand);color:#fff;font-weight:800;
    text-decoration:none;padding:.7rem 1.2rem;border-radius:999px;white-space:nowrap;
    transition:background .16s ease}
  .oferta-guia .og-cta:hover{background:var(--brand-d)}
  .oferta-guia .og-nota{color:#999;font-size:.75rem;margin-top:.6rem}
  @media(max-width:480px){.oferta-guia .og-cta{flex:1 1 100%;text-align:center;margin-top:.3rem}}
  .guia sup.ref{line-height:0}
  .guia sup.ref a{color:var(--brand-d);font-weight:700;font-size:.72em;
                  text-decoration:none;padding:0 1px}
  .referencias{max-width:44rem;margin:1.8rem auto 0;padding:1.2rem 1.1rem 0;
               border-top:1px solid var(--line)}
  .referencias h2{font-size:1.1rem;margin-bottom:.6rem}
  .referencias ol{margin:0 0 0 1.2rem;padding:0}
  .referencias li{font-size:.82rem;color:var(--muted);line-height:1.55;margin:.5rem 0}
  .referencias li a{color:var(--brand-d);font-weight:600;text-decoration:none;white-space:nowrap}
  .referencias li:target{background:var(--brand-soft);border-radius:6px;padding:.2rem .4rem}
  .guia-meta .autor{background:#eef7f1}
  .guia-head{max-width:44rem;margin:1.2rem auto 0;padding:0 1.1rem}
  .guia-head h1{font-size:1.9rem;line-height:1.2;letter-spacing:-.02em;margin-bottom:.6rem}
  .guia-meta{color:var(--muted);font-size:.9rem;display:flex;align-items:center;gap:.5rem;
             flex-wrap:wrap}
  .guia-meta .autor{background:var(--brand-soft);color:var(--brand-d);border:1px solid #cde9d8;
                    padding:.2rem .7rem;border-radius:999px;font-weight:700}
  .guia-firma{max-width:44rem;margin:1.6rem auto 0;padding:1.1rem;border-top:1px solid var(--line);
              display:flex;gap:.9rem;align-items:center;color:var(--muted);font-size:.9rem}
  .guia-firma .ava{flex:0 0 auto;width:2.6rem;height:2.6rem;border-radius:50%;
                   background:var(--brand-soft);display:flex;align-items:center;
                   justify-content:center;font-size:1.3rem}
  .guia-firma b{color:var(--ink)}
  /* índice de guías */
  .guias-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));
              gap:1rem;margin-top:1.2rem}
  .guia-card{background:var(--card);border:1px solid var(--line);border-radius:14px;
             padding:1.1rem;box-shadow:var(--shadow);text-decoration:none;color:inherit;
             display:block;transition:border-color .12s}
  .guia-card:hover{border-color:var(--brand)}
  .guia-card{padding:0;overflow:hidden}
  .guia-card .cab{background:linear-gradient(135deg,#0c7c3d,#12a150);height:96px;
                  position:relative;overflow:hidden;display:flex;align-items:center;
                  justify-content:center}
  .guia-card .cab .em{font-size:3.2rem;line-height:1;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}
  .guia-card .cab.foto{justify-content:flex-end;align-items:flex-end}
  .guia-card .cab.foto img{height:118px;margin-right:8px}
  .guia-card .cont{padding:1rem 1.1rem}
  .guia-card h3{font-size:1.05rem;margin-bottom:.35rem;color:var(--ink)}
  .guia-card p{color:var(--muted);font-size:.88rem;line-height:1.5}
  .nav-guias{margin-left:.5rem}
  .guias-buscador{margin:0 0 1.2rem;display:flex;gap:.6rem;flex-wrap:wrap}
  .guias-buscador input{flex:1 1 16rem;padding:.8rem 1rem;border:2px solid var(--line);
                        border-radius:12px;font-size:1rem;background:#fff;outline:none;
                        transition:border-color .14s}
  .guias-buscador input:focus{border-color:var(--brand)}
  .guias-temas{flex:0 0 auto;padding:.8rem 2.4rem .8rem 1rem;border:2px solid var(--line);
               border-radius:12px;font:inherit;font-size:1rem;font-weight:700;color:var(--brand-d);
               background:#fff;cursor:pointer;outline:none;appearance:none;-webkit-appearance:none;
               background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path d='M2 4l4 4 4-4' fill='none' stroke='%230c7c3d' stroke-width='2'/></svg>");
               background-repeat:no-repeat;background-position:right 1rem center}
  .guias-temas:focus{border-color:var(--brand)}
  @media(max-width:560px){.guias-temas{flex:1 1 100%;width:100%}}
  .guias-sinres{display:none;text-align:center;color:var(--muted);padding:1.5rem 1rem}

  /* cabecera verde de cada guía (con Gramo) */
  .guia-hero{background:linear-gradient(135deg,#0c7c3d,#12a150);color:#fff;
             position:relative;overflow:hidden}
  .guia-hero .inner{max-width:44rem;margin:0 auto;padding:1.3rem 1.1rem 1.5rem;
                    position:relative;z-index:2}
  .guia-hero .badge{display:inline-block;background:rgba(255,255,255,.22);
                    border:1px solid rgba(255,255,255,.45);padding:.22rem .7rem;
                    border-radius:999px;font-size:.78rem;font-weight:700;margin-bottom:.7rem}
  .guia-hero h1{font-size:1.95rem;line-height:1.2;letter-spacing:-.02em;max-width:76%}
  .guia-hero .fecha{margin-top:.6rem;font-size:.85rem;opacity:.92}
  .guia-hero .gramo{position:absolute;right:-6px;bottom:-24px;height:190px;z-index:1}
  /* Tramo tableta (iPad y ventanas medianas): Gramo entero y opaco, con hueco
     propio a la derecha. Antes caía en el bloque de móvil y se quedaba al 45%
     de opacidad medio fuera de pantalla: sobre el verde no se veía (19-ago-2026). */
  @media(max-width:900px){
    .guia-hero h1{max-width:68%;font-size:1.7rem}
    .guia-hero .gramo{height:160px;right:0;opacity:1}
  }
  @media(max-width:640px){
    .guia-hero h1{max-width:64%;font-size:1.45rem}
    .guia-hero .gramo{height:130px;right:-6px;opacity:1}
  }
  /* Móvil de verdad: no cabe al lado del título, vuelve a ser fondo decorativo */
  @media(max-width:430px){
    .guia-hero h1{max-width:100%;font-size:1.5rem}
    .guia-hero .gramo{height:135px;right:-26px;opacity:.45}
  }

  /* banner de guías en la home */
  .destacado{max-width:64rem;margin:1.1rem auto 0;padding:0 1rem}
  .destacado .caja{background:linear-gradient(135deg,#0c7c3d,#12a150);color:#fff;
                   border-radius:16px;padding:1.2rem 1.3rem;display:flex;gap:1rem;
                   align-items:center;position:relative;overflow:hidden}
  .destacado .txt{flex:1 1 auto;z-index:2}
  .destacado .et{font-size:.78rem;font-weight:800;letter-spacing:.06em;opacity:.9;
                 text-transform:uppercase}
  .destacado h3{font-size:1.2rem;margin:.2rem 0 .5rem;line-height:1.25}
  .destacado .acc{display:flex;gap:.9rem;align-items:center;flex-wrap:wrap}
  .destacado a.leer{display:inline-block;background:#fff;color:var(--brand-d);
                    font-weight:800;text-decoration:none;padding:.45rem 1rem;border-radius:999px;
                    font-size:.9rem}
  .destacado a.todas{color:#fff;font-weight:700;text-decoration:none;font-size:.85rem;
                     border-bottom:1px solid rgba(255,255,255,.6)}
  .destacado .gramo{height:120px;z-index:2}
  .destacado .et{margin-bottom:.6rem}
  /* guías de la portada: carrusel horizontal, que son 12 y en rejilla solo
     cabían 4. Las flechas mueven una pantalla; el dedo también arrastra. */
  .guias-carrusel{display:flex;gap:.9rem;overflow-x:auto;scroll-behavior:smooth;
    scroll-snap-type:x proximity;padding:.3rem 0;scrollbar-width:none}
  .guias-carrusel::-webkit-scrollbar{display:none}
  /* flex-wrap desde que hay DOS botones de sección aquí (producto y deporte):
     con las dos flechas más los dos botones la fila medía 395 px en una ventana
     de 390 y hacía que la portada entera se pudiera arrastrar de lado en móvil
     (27-08-2026). */
  .acc-guias{display:flex;align-items:center;gap:.45rem;margin-bottom:.9rem;
             flex-wrap:wrap;justify-content:flex-end}
  button.flecha{width:2.2rem;height:2.2rem;border-radius:50%;background:#fff;
    border:1px solid var(--line);color:var(--brand-d);font-size:1.35rem;line-height:1;
    cursor:pointer;display:flex;align-items:center;justify-content:center;
    transition:background .14s,border-color .14s,opacity .14s;padding:0 0 .15rem}
  button.flecha:hover:not(:disabled){background:var(--brand);color:#fff;border-color:var(--brand)}
  button.flecha:disabled{opacity:.35;cursor:default}
  a.btn-todas{background:var(--brand);color:#fff;font-weight:700;font-size:.88rem;
    text-decoration:none;padding:.55rem 1.1rem;border-radius:999px;white-space:nowrap;
    transition:background .14s,transform .14s}
  a.btn-todas:hover{background:var(--brand-d);transform:translateY(-1px)}
  .guias-carrusel a.guia-card{flex:0 0 15rem;scroll-snap-align:start}
  a.guia-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);
    border-radius:.9rem;overflow:hidden;text-decoration:none;color:var(--ink);
    transition:transform .14s,border-color .14s,box-shadow .14s}
  a.guia-card:hover{transform:translateY(-3px);border-color:var(--brand);box-shadow:var(--shadow)}
  a.guia-card .im{display:flex;align-items:center;justify-content:center;height:150px;
    background:var(--brand-soft);overflow:hidden}
  a.guia-card .im img{height:140px;object-fit:contain;transition:transform .18s}
  a.guia-card:hover .im img{transform:scale(1.05)}
  a.guia-card .im .ico{font-size:2.6rem;line-height:1;font-style:normal}
  a.guia-card .t{font-weight:700;font-size:.95rem;line-height:1.3;padding:.8rem .9rem .3rem}
  a.guia-card .ir{color:var(--brand-d);font-weight:700;font-size:.82rem;padding:0 .9rem .9rem;
    margin-top:auto}
  a.mas-link{color:var(--brand-d);font-weight:700;text-decoration:none;font-size:.9rem;
    white-space:nowrap;margin-bottom:.9rem}
  a.mas-link:hover{text-decoration:underline}
  .mini-guias{display:flex;gap:.6rem;flex-wrap:wrap}
  .mini{background:#fff;border-radius:12px;padding:.9rem 1rem;text-decoration:none;
        min-width:0;flex:1 1 13rem;max-width:20rem;display:flex;flex-direction:column;
        align-items:center;text-align:center;gap:.4rem;box-shadow:var(--shadow);
        transition:transform .16s ease,box-shadow .16s ease,background .16s ease}
  .mini span{color:var(--ink);font-weight:800;font-size:1rem;line-height:1.3;
             transition:color .16s ease}
  .mini .ico{font-size:1.7rem;line-height:1;transition:transform .16s ease}
  .mini:hover .ico{transform:scale(1.12)}
  .mini .ico-img{height:74px;object-fit:contain;transition:transform .16s ease}
  .mini:hover .ico-img{transform:scale(1.06)}
  .mini:hover{transform:translateY(-3px);box-shadow:0 6px 16px rgba(0,0,0,.16);
              background:var(--brand-soft)}
  .mini:hover span{color:var(--brand-d)}
  .mini.vermas{justify-content:center;align-items:center;background:#fff;
               flex:1 1 13rem;max-width:20rem;padding:.9rem 1.4rem}
  .mini.vermas b{color:var(--brand-d);font-size:1rem;font-weight:800}
  .mini.vermas:hover b{color:var(--brand-d)}

  /* flecha «volver» dentro de los artículos */
  .volver-wrap{max-width:44rem;margin:1rem auto 0;padding:0 1.1rem;display:flex;
               gap:.55rem;flex-wrap:wrap}
  .volver{display:inline-flex;align-items:center;gap:.45rem;color:var(--brand-d);
          font-weight:700;text-decoration:none;font-size:.9rem;background:var(--brand-soft);
          border:1px solid #cde9d8;padding:.45rem .95rem;border-radius:999px;
          transition:transform .14s ease,background .14s ease}
  .volver:hover{background:#d8f0e2}
  .volver.guias:hover{transform:translateX(-3px)}
  .volver.inicio{background:var(--brand);color:#fff;border-color:var(--brand)}
  .volver.inicio:hover{background:var(--brand-d);transform:translateY(-2px)}
  .guia-nav{margin-left:auto;position:relative}
  .guia-nav-btn{display:inline-flex;align-items:center;gap:.5rem;background:#fff;
          border:1px solid #cde9d8;border-radius:999px;padding:.5rem .95rem;cursor:pointer;
          font-family:inherit;font-size:.9rem;font-weight:700;color:var(--brand-d);
          box-shadow:var(--shadow);transition:border-color .14s,box-shadow .14s}
  .guia-nav-btn:hover{border-color:var(--brand);box-shadow:0 3px 10px rgba(16,24,40,.1)}
  .guia-nav .gnav-ico{font-size:1.05rem;line-height:1}
  .guia-nav .gnav-car{color:var(--muted);font-size:.75rem;transition:transform .18s}
  .guia-nav.abierto .gnav-car{transform:rotate(180deg)}
  .guia-nav-pop{position:absolute;z-index:60;top:calc(100% + .4rem);right:0;width:24rem;max-width:92vw;
          max-height:62vh;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:14px;
          box-shadow:0 14px 34px rgba(16,24,40,.2);padding:.35rem}
  .gnav-search{position:sticky;top:-.35rem;background:#fff;padding:.15rem .1rem .4rem;margin:-.35rem -.1rem .15rem;
          border-bottom:1px solid var(--line);z-index:1}
  .gnav-search input{width:100%;box-sizing:border-box;font:inherit;font-size:.9rem;padding:.55rem .8rem;
          border:2px solid var(--line);border-radius:10px;outline:none;background:#fff;color:var(--ink)}
  .gnav-search input:focus{border-color:var(--brand)}
  .gnav-none{color:var(--muted);font-size:.88rem;text-align:center;padding:.8rem .5rem}
  .gnav-item{display:flex;align-items:center;gap:.6rem;padding:.5rem .55rem;border-radius:10px;
          text-decoration:none;color:var(--ink);font-size:.9rem;line-height:1.25}
  .gnav-item:hover{background:var(--brand-soft)}
  .gnav-emoji{flex:0 0 auto;width:1.7rem;height:1.7rem;display:grid;place-items:center;
          background:var(--brand-soft);border-radius:9px;font-size:1rem}
  .gnav-t{flex:1;min-width:0}
  .gnav-item.activa{background:var(--brand-soft)}
  .gnav-item.activa .gnav-emoji{background:var(--brand);}
  .gnav-item.activa .gnav-t{font-weight:800;color:var(--brand-d)}
  .gnav-check{flex:0 0 auto;color:var(--brand-d);font-weight:900}
  @media(max-width:640px){.destacado .gramo{display:none}
          .guia-nav{margin-left:0;width:100%}
          .guia-nav-btn{width:100%;justify-content:center}
          .guia-nav-pop{left:0;right:0;width:auto}}

  /* ---- FILTROS ---- */
  .filtros{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.96);
           backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid var(--line);
           padding:.7rem 0}
  .filtros .row{max-width:64rem;margin:0 auto;padding:0 1rem;display:flex;
                flex-direction:column;gap:.55rem}
  .fgrupo{display:flex;gap:.6rem;align-items:flex-end;flex-wrap:wrap;width:100%}
  .campo{display:flex;flex-direction:column;gap:.2rem;min-width:0;flex:1 1 0}
  .campo label{font-size:.72rem;font-weight:700;color:var(--muted);
               text-transform:uppercase;letter-spacing:.04em;padding-left:.15rem}
  .buscador{position:relative;width:100%}
  .buscador input{width:100%;border:1px solid var(--line);border-radius:10px;
                  padding:.55rem .8rem .55rem 2.1rem;font-size:.92rem;background:#fff;
                  font-family:inherit;color:var(--ink)}
  .buscador input:focus{outline:2px solid var(--brand);outline-offset:-1px;border-color:transparent}
  .buscador::before{content:"🔍";position:absolute;left:.65rem;top:50%;
                    transform:translateY(-50%);font-size:.9rem;opacity:.6;pointer-events:none}
  .filtros select{border:1px solid var(--line);border-radius:10px;padding:.55rem .6rem;
                  font-size:.88rem;background:#fff;font-family:inherit;color:var(--ink);
                  font-weight:600;cursor:pointer;width:100%;min-width:0;
                  text-overflow:ellipsis}
  .filtros select:focus{outline:2px solid var(--brand);outline-offset:-1px}
  /* selector de marca por inicial (acordeón) */
  .campo-marca{position:relative}
  .campo-marca #f-marca{display:none}
  .mk-widget{position:relative}
  .mk-btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.4rem;
          border:1px solid var(--line);border-radius:10px;padding:.55rem .6rem;background:#fff;
          font-family:inherit;font-size:.88rem;font-weight:600;color:var(--ink);cursor:pointer;
          text-align:left}
  .mk-btn:hover{border-color:var(--brand)}
  .mk-widget.elegida .mk-btn{border-color:var(--brand);color:var(--brand-d);font-weight:700}
  .mk-lbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .mk-car{color:var(--muted);flex:0 0 auto}
  .mk-pop{position:absolute;z-index:60;top:calc(100% + .3rem);left:0;right:0;
          background:#fff;border:1px solid var(--line);border-radius:12px;
          box-shadow:0 10px 28px rgba(16,24,40,.18);padding:.35rem;overflow:hidden}
  .mk-todas{width:100%;text-align:left;padding:.55rem .7rem;border:none;background:none;
            font-family:inherit;font-size:.88rem;font-weight:700;color:var(--brand-d);
            cursor:pointer;border-radius:8px}
  .mk-todas:hover{background:var(--brand-soft)}
  .mk-cols{display:flex;gap:.25rem;border-top:1px solid var(--line);margin-top:.25rem;
           padding-top:.25rem}
  .mk-letras{flex:0 0 auto;display:flex;flex-direction:column;max-height:52vh;overflow:auto;
             border-right:1px solid var(--line);padding-right:.25rem}
  .mk-ini{width:2rem;text-align:center;padding:.32rem 0;border:none;background:none;
          font-family:inherit;font-size:.9rem;font-weight:800;color:var(--ink);cursor:pointer;
          border-radius:7px;line-height:1.1}
  .mk-ini:hover{background:#f4f6f8}
  .mk-ini.activa{background:var(--brand);color:#fff}
  .mk-marcas{flex:1;min-width:0;max-height:52vh;overflow:auto}
  .mk-set{display:flex;flex-direction:column}
  .mk-set[hidden]{display:none}
  .mk-op{text-align:left;padding:.48rem .7rem;border:none;background:none;font-family:inherit;
         font-size:.86rem;color:var(--ink);cursor:pointer;border-radius:8px;
         white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mk-op:hover{background:var(--brand-soft);color:var(--brand-d)}
  .limpiar{border:1px solid var(--line);background:#fff;border-radius:10px;
           padding:.55rem .8rem;font-size:.82rem;font-weight:700;color:var(--muted);
           cursor:pointer;font-family:inherit;display:none;white-space:nowrap}
  .limpiar:hover{border-color:var(--brand);color:var(--brand-d)}
  body.filtrando .limpiar{display:block}
  .contador{width:100%;color:var(--muted);font-size:.82rem}
  .contador b{color:var(--ink)}

  .meta{color:var(--muted);font-size:.78rem;margin-top:.15rem;
        white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .card{scroll-margin-top:8rem}
  .card.oculta{display:none}
  .sec{margin-top:2.2rem}   /* aire entre el texto de arriba y la parrilla */
  .sec.oculta{display:none}
  /* por defecto solo se ven las primeras tarjetas de cada categoría */
  .sec .card.extra{display:none}
  .sec.abierta .card.extra:not(.oculta),
  body.filtrando .sec .card.extra:not(.oculta){display:flex}
  .vermas{display:block;margin:.9rem auto 0;background:#fff;border:1px solid var(--line);
          border-radius:999px;padding:.5rem 1.1rem;font-size:.87rem;font-weight:700;
          color:var(--brand-d);cursor:pointer;font-family:inherit;transition:.15s}
  .vermas:hover{border-color:var(--brand);background:var(--brand-soft)}
  .sec.abierta .vermas,body.filtrando .vermas{display:none}
  .sinres{text-align:center;color:var(--muted);padding:3rem 1rem;display:none}
  body.sinresultados .sinres{display:block}

  @media (max-width:520px){
    .grid{grid-template-columns:repeat(auto-fill,minmax(10.5rem,1fr));gap:.6rem}
    .thumb{height:7rem}.precio{font-size:1.15rem}
    .fgrupo{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
    .campo{min-width:0}
    .filtros select{width:100%;max-width:none;font-size:.82rem;padding:.5rem .4rem}
    .limpiar{grid-column:1/-1;width:100%}
  }


  /* ---- LA OFERTA DEL DÍA (25-ago-2026) ----
     Arriba del todo, antes de las categorías: es lo primero que ve quien entra
     y el motivo para volver mañana. Tres zonas —foto · qué es · cuánto vale—
     y baja de altura a propósito, para no empujar el buscador de categorías
     fuera de la primera pantalla. */
  .od{padding-top:1.2rem;padding-bottom:0}
  .od-caja{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:1.1rem;
    align-items:center;background:#fff;border:1px solid var(--brand);
    border-radius:1rem;padding:1rem 1.2rem;box-shadow:var(--shadow)}
  .od-foto{flex:0 0 auto;display:block}
  .od-foto img{width:82px;height:82px;object-fit:contain;background:#fff;
    border:1px solid var(--line);border-radius:.6rem}
  .od-foto .em{display:flex;width:82px;height:82px;align-items:center;
    justify-content:center;font-size:2rem;background:var(--brand-soft);border-radius:.6rem}
  .od-rotulo{display:inline-block;font-size:.72rem;font-weight:800;letter-spacing:.06em;
    text-transform:uppercase;color:var(--brand-d);margin-bottom:.2rem}
  .od-nombre{font-size:1.1rem;line-height:1.3;margin:0 0 .25rem}
  .od-nombre a{color:inherit;text-decoration:none}
  .od-nombre a:hover{color:var(--brand-d)}
  .od-ctx{color:var(--muted);font-size:.85rem;margin:0}
  .od-compra{text-align:center;min-width:11rem}
  .od-precios{display:flex;align-items:baseline;justify-content:center;gap:.4rem;
    flex-wrap:wrap;margin-bottom:.1rem}
  .od-pct{background:var(--brand);color:#fff;font-weight:800;font-size:.78rem;
    border-radius:999px;padding:.1rem .5rem}
  .od-pct.od-sigue{background:var(--brand-soft);color:var(--brand-d);font-weight:700}
  .od-antes{color:var(--muted);text-decoration:line-through;font-size:.85rem}
  .od-ahora{font-weight:800;font-size:1.45rem;color:var(--ink)}
  .od-metrica{display:block;color:var(--brand-d);font-weight:700;font-size:.85rem;
    margin-bottom:.5rem}
  .od-compra .cta{display:block}
  .od-pie{display:block;color:var(--muted);font-size:.72rem;margin-top:.4rem}
  @media(max-width:720px){
    /* Igual que en el móvil de FOG: la foto al lado del nombre y la compra
       debajo a lo ancho; apilado del todo ocupaba media pantalla. */
    .od-caja{grid-template-columns:auto minmax(0,1fr);gap:.5rem .9rem;padding:.9rem;
      align-items:start}
    .od-foto img,.od-foto .em{width:66px;height:66px}
    /* A dos líneas: los nombres de suplemento son larguísimos («Bisglicinato de
       Magnesio 300 Cápsulas Vegetales») y a tres dejaban un hueco bajo la foto. */
    .od-nombre{font-size:1rem;display:-webkit-box;-webkit-line-clamp:2;
      -webkit-box-orient:vertical;overflow:hidden}
    .od-compra{grid-column:1/-1;text-align:left;min-width:0;
      display:flex;align-items:center;justify-content:space-between;
      flex-wrap:wrap;gap:.5rem;margin-top:.3rem}
    .od-precios{margin-bottom:0}
    .od-metrica{margin-bottom:0}
    .od-compra .cta{flex:1 1 100%;text-align:center}
    .od-pie{flex:1 1 100%;margin-top:0}
  }

  .resto{max-width:64rem;margin:2rem auto 0;padding:0 1rem}
  .resto h2{font-size:1.15rem;margin:0 0 .35rem}
  .resto p{color:var(--muted);margin:0 0 .8rem;line-height:1.5}
  .ver-resto{font:inherit;font-weight:600;cursor:pointer;color:var(--brand-d);
             background:var(--brand-soft);border:1px solid #cde9d8;
             border-radius:10px;padding:.55rem .9rem}
  .ver-resto:hover{background:#dcf1e5}
  .resto-tabla{margin-top:1rem;overflow-x:auto}
  .tabla-resto{width:100%;border-collapse:collapse;font-size:.9rem;
               background:var(--card);border:1px solid var(--line);border-radius:12px}
  .tabla-resto th{text-align:left;font-size:.78rem;text-transform:uppercase;
                  letter-spacing:.03em;color:var(--muted);padding:.6rem .75rem;
                  border-bottom:1px solid var(--line)}
  .tabla-resto td{padding:.6rem .75rem;border-bottom:1px solid var(--line);
                  vertical-align:top}
  .tabla-resto tr:last-child td{border-bottom:none}
  .tabla-resto a{color:var(--ink);text-decoration:underline;
                 text-decoration-color:var(--line)}
  .tabla-resto a:hover{color:var(--brand-d)}
  .tabla-resto .m{display:block;color:var(--muted);font-size:.82rem;margin-top:.1rem}
  .tabla-resto .num{white-space:nowrap;text-align:right}
  /* En móvil la tabla se convierte en fichas de una línea. Con cuatro columnas
     el nombre se comía la pantalla y el € por gramo —que es a lo que se viene—
     quedaba fuera, había que arrastrar la tabla de lado para verlo. */
  @media(max-width:640px){
    .tabla-resto,.tabla-resto tbody,.tabla-resto tr,.tabla-resto td{display:block;width:100%}
    .tabla-resto thead{display:none}
    .tabla-resto tr{padding:.65rem .75rem;border-bottom:1px solid var(--line)}
    .tabla-resto td{padding:0;border:none;text-align:left}
    .tabla-resto td:not(:first-child){display:inline-block;width:auto;
      margin:.35rem .9rem 0 0;font-size:.88rem}
    .tabla-resto td.num::after{content:" " attr(data-et);color:var(--muted);
      font-size:.82em;font-weight:400}
  }

  /* «El más barato ahora mismo es X» lleva a su ficha: que se vea que es un
     enlace y no más texto en negrita, que era justo la queja. */
  .ctx a.recom{display:inline-block;color:var(--brand-d);text-decoration:none;
               background:var(--brand-soft);border:1px solid #cde9d8;border-radius:999px;
               padding:.15rem .6rem;margin-top:.2rem;font-weight:600}
  .ctx a.recom:hover{background:#fff;border-color:var(--brand)}
  .fp{max-width:60rem;margin:0 auto;padding:0 1rem}
  /* los botones de arriba, alineados al margen de la tarjeta del producto:
     el ancho general de .volver-wrap es 44rem y aquí el contenido va a 60rem,
     así que quedaban descolgados hacia el centro (lo vio David, 07-08-2026).
     El contenido va DOBLEMENTE acolchado (.wrap 1rem + .fp 1rem) y los botones
     cuelgan directos del body: 62rem + 2rem de padding da el mismo borde que
     la tarjeta a cualquier ancho, móvil incluido (medido, no a ojo). */
  .volver-wrap{max-width:62rem;padding:0 2rem}
  .fp-cab{display:flex;gap:1.4rem;flex-wrap:wrap;align-items:flex-start;
          background:var(--card);border:1px solid var(--line);border-radius:1rem;
          padding:1.2rem;box-shadow:var(--shadow);margin-bottom:1.2rem}
  .fp-cab img{width:150px;height:150px;object-fit:contain;background:#fff;border-radius:.6rem}
  .fp-cab .info{flex:1;min-width:240px}
  .fp-cab h2{font-size:1.3rem;margin:0 0 .3rem}
  .fp-cab .meta{color:var(--muted);font-size:.9rem;margin-bottom:.7rem}
  .fp-cab .destacado{font-size:1.05rem}
  .fp-cab .destacado b{font-size:1.7rem;color:var(--brand-d);white-space:nowrap}
  .cab-envio{margin-top:.5rem;font-size:.88rem;line-height:1.4;color:#9a3412;
             background:#fff7ed;border:1px solid #fed7aa;border-radius:.6rem;
             padding:.45rem .7rem;display:inline-block}
  .fp-cab .destacado .cab-envio b{font-size:.88rem;color:#9a3412;white-space:normal}
  .tabla-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .tabla-of{width:100%;min-width:30rem;border-collapse:collapse;background:var(--card);
            border:1px solid var(--line);border-radius:.8rem;overflow:hidden;font-size:.95rem}
  .tabla-of th{background:#f8fafc;text-align:left;padding:.6rem .8rem;font-size:.78rem;
               text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
  .tabla-of td{padding:.7rem .8rem;border-top:1px solid var(--line);vertical-align:middle}
  .tabla-of tr.mejor td{background:var(--brand-soft)}
  .tabla-of .p{font-weight:800;font-size:1.05rem}
  .tabla-of .ir{display:inline-block;background:var(--brand);color:#fff;font-weight:700;
                padding:.4rem .8rem;border-radius:.5rem;text-decoration:none;white-space:nowrap}
  .tabla-of .ir:hover{background:var(--brand-d)}
  .ahorro{color:var(--brand-d);font-weight:700}
  .tabla-of .env{white-space:nowrap;font-weight:600}
  .tabla-of .env .mas{display:block;font-weight:400;font-size:.76rem;color:var(--muted)}
  .tabla-of .env .na{color:var(--muted);font-weight:400}
  .tabla-of .env.gana{color:var(--brand-d)}
  .tabla-of tr.gana-envio td:first-child::after{content:" 🚚"}
  .envios{margin:.7rem 0 0;font-size:.86rem;color:var(--muted)}
  .envios summary{cursor:pointer;color:var(--brand-d);font-weight:600}
  .envios ul{margin:.5rem 0 .4rem 1.1rem;padding:0}
  .envios li{margin:.15rem 0}
  .gr{background:var(--card);border:1px solid var(--line);border-radius:.8rem;
      padding:1rem;margin:.8rem 0}
  .gr svg{width:100%;height:auto;display:block}
  .leyenda{display:flex;gap:1rem;flex-wrap:wrap;margin-top:.5rem;font-size:.85rem;color:var(--muted)}
  .leyenda .leg{display:inline-flex;align-items:center;gap:.35rem}
  .leyenda i{width:.8rem;height:.8rem;border-radius:.2rem;display:inline-block}
  .fp h2{font-size:1.15rem;margin:1.6rem 0 .5rem}
  .ctx,.hist{background:var(--card);border:1px solid var(--line);border-radius:.8rem;
             padding:1rem 1.2rem;margin:.8rem 0}
  .ctx h2,.hist h2{margin-top:0}
  .fp-links{display:flex;gap:.6rem;flex-wrap:wrap;margin:1.2rem 0}
  .fp-links a{padding:.45rem .9rem;border:1px solid var(--line);border-radius:2rem;
              background:var(--card);text-decoration:none;color:var(--brand-d);font-weight:600;font-size:.9rem}
  .fp-links a:hover{border-color:var(--brand);background:var(--brand-soft)}
  .avisame{background:var(--brand-soft);border:1px solid #bfe6cf;border-radius:.8rem;
           padding:1.1rem 1.2rem;margin:1.2rem 0}
  .avisame h2{margin:0 0 .3rem;font-size:1.1rem;color:var(--brand-d)}
  .avisame p{color:#3d5c4a;font-size:.92rem;margin:0 0 .8rem}
  .avisame form{display:flex;gap:.5rem;flex-wrap:wrap}
  .avisame input{flex:1;min-width:12rem;padding:.6rem .8rem;border:1px solid #bfe6cf;
                 border-radius:.5rem;font-size:1rem;background:#fff;font-family:inherit}
  .avisame input.precio{flex:0 0 7.5rem;min-width:6rem}
  .avisame button{background:var(--brand);color:#fff;border:0;border-radius:.5rem;
                  padding:.6rem 1.2rem;font-weight:700;font-size:1rem;cursor:pointer;
                  font-family:inherit}
  .avisame button:hover{background:var(--brand-d)}
  .avisame button[disabled]{opacity:.6;cursor:default}
  .avisame .lbl{align-self:center;color:#3d5c4a;font-size:.92rem;font-weight:600}
  .avisame .legal{font-size:.78rem;color:#5d7a69;margin:.6rem 0 0}
  .avisame .resp{margin:.7rem 0 0;font-weight:700;color:var(--brand-d)}
  .avisame .resp.mal{color:#c0392b}
  /* El «ya te hemos escrito» no es un mensajito: es la única instrucción que
     va a leer. Si no queda claro que hay que ir al correo, el alta se pierde. */
  .avisame .hecho{margin:.7rem 0 0;padding:.9rem 1rem;background:#fff;
    border:1px solid #bfe6cf;border-radius:.6rem;color:#28402f;font-size:.95rem}
  .avisame .hecho strong{color:var(--brand-d)}
  .avisame .hecho p{margin:0 0 .5rem;color:#28402f;font-size:.95rem}
  .avisame .hecho p:last-child{margin:0}
  .avisame .hecho .spam{font-size:.85rem;color:#5d7a69}
  /* En el móvil el correo se lleva una línea entera y el resto va debajo:
     si no, «si baja de» queda colgando al lado del campo. */
  @media(max-width:520px){.avisame input:not(.precio){flex:1 0 100%}}
  /* En el móvil una tabla de 5 columnas obliga a desplazar para ver el botón,
     que es justo lo que la gente viene a pulsar. Cada tienda pasa a ser una
     tarjeta con su etiqueta delante y el botón entero. */
  @media(max-width:640px){
    .tabla-of{min-width:0;border:0;background:none}
    .tabla-of thead{display:none}
    .tabla-of tr{display:block;background:var(--card);border:1px solid var(--line);
                 border-radius:.8rem;margin-bottom:.7rem;padding:.3rem .2rem}
    .tabla-of tr.mejor{border-color:var(--brand);box-shadow:var(--shadow)}
    .tabla-of td{display:flex;justify-content:space-between;align-items:center;
                 gap:1rem;border:0;padding:.4rem .8rem}
    .tabla-of td[data-l]::before{content:attr(data-l);color:var(--muted);
                 font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}
    .tabla-of td.dif:empty{display:none}
    .tabla-of td.dif{justify-content:flex-end}
    .tabla-of td.env .tot{text-align:right}
    .tabla-of td.cta-td{padding-top:.2rem}
    .tabla-of .ir{display:block;width:100%;text-align:center}
  }
