/* ==========================================================================
   BLOG — archive grid, category chips, single post, search results.
   Loaded on: is_home, post archives, is_single, is_search.
   ========================================================================== */

.gvb-blog { padding: 34px 28px 64px; }

/* --- category filter chips ------------------------------------------------ */
.gvb-blog__filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 30px;
}
.gvb-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 14px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--white);
  color: var(--text-m);
  font-size: var(--fs-xs);
  font-weight: 600;
  letter-spacing: .02em;
  text-decoration: none;
  transition: border-color .15s, color .15s, background .15s;
}
.gvb-chip:hover { border-color: var(--teal); color: var(--teal); }
.gvb-chip.is-active { background: var(--teal); border-color: var(--teal); color: #fff; }
.gvb-chip__count { font-weight: 400; opacity: .65; font-size: var(--fs-xs); }
/* chip inside the post hero band (light mint background) */
.gvb-chip--onteal {
  background: transparent;
  border-color: var(--teal);
  color: var(--teal);
}
.gvb-chip--onteal:hover { background: var(--teal); color: #fff; }

/* --- card grid ------------------------------------------------------------ */
.gvb-post-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
}
@media (max-width: 1023px) { .gvb-post-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 639px)  { .gvb-post-grid { grid-template-columns: 1fr; gap: 18px; } }

.gvb-post-card {
  display: flex;
  flex-direction: column;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--r);
  overflow: hidden;
  transition: box-shadow .18s, transform .18s;
}
.gvb-post-card:hover { box-shadow: var(--sh-m); transform: translateY(-2px); }

.gvb-post-card__media {
  display: block;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--mint-bg);
}
.gvb-post-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.gvb-post-card__media-fallback {
  display: block;
  width: 100%;
  height: 100%;
  background: var(--hero-gradient);
  opacity: .85;
}
.gvb-post-card--product .gvb-post-card__media img { object-fit: contain; padding: 14px; background: #fff; }

.gvb-post-card__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 18px 20px 20px;
}
.gvb-post-card__meta {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: var(--fs-xs);
  color: var(--text-m);
  margin-bottom: 8px;
}
.gvb-post-card__title {
  font-family: var(--font-head);
  font-size: 1.06rem;
  line-height: 1.35;
  margin: 0 0 8px;
}
.gvb-post-card__title a { color: var(--text); text-decoration: none; }
.gvb-post-card__title a:hover { color: var(--teal); }
.gvb-post-card__excerpt {
  font-size: var(--fs-xs);
  color: var(--text-m);
  line-height: 1.55;
  margin: 0 0 14px;
}
.gvb-post-card__price { font-weight: 700; color: var(--teal-d); margin: 0 0 14px; }
.gvb-post-card__more {
  margin-top: auto;
  font-size: var(--fs-xs);
  font-weight: 700;
  letter-spacing: .03em;
  color: var(--teal);
  text-decoration: none;
}
.gvb-post-card__more:hover { color: var(--teal-d); }

.gvb-blog__empty { text-align: center; padding: 40px 0 20px; color: var(--text-m); }

/* --- pagination (shared look with shop) ----------------------------------- */
.gvb-blog .navigation.pagination { margin-top: 40px; }
.gvb-blog .nav-links {
  display: flex;
  justify-content: center;
  gap: 6px;
}
.gvb-blog .page-numbers {
  min-width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  color: var(--text);
  font-size: 14.5px;
  text-decoration: none;
}
.gvb-blog .page-numbers.current { background: var(--teal); border-color: var(--teal); color: #fff; }
.gvb-blog .page-numbers:hover:not(.current) { border-color: var(--teal); color: var(--teal); }

/* --- single post ----------------------------------------------------------- */
.gvb-page-hero--post h1 { max-width: 860px; margin-inline: auto; }
.gvb-post-hero__meta {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
  font-size: var(--fs-xs);
  color: var(--text-m);
}

.gvb-post-single {
  max-width: 820px;
  padding: 40px 28px 56px;
}
.gvb-post-single__cover {
  margin: 0 0 30px;
  border-radius: var(--r);
  overflow: hidden;
}
.gvb-post-single__cover img { width: 100%; height: auto; display: block; }
.gvb-post-single .entry-content {
  font-size: var(--fs-b);
  line-height: 1.75;
  color: var(--text);
}
.gvb-post-single .entry-content p { margin: 0 0 1.2em; }
.gvb-post-single .entry-content img {
  max-width: 100%;
  height: auto;
  border-radius: var(--r);
}
.gvb-post-single .entry-content a { color: var(--teal-d); }

/* prev / next */
.gvb-post-single .post-navigation {
  margin-top: 44px;
  border-top: 1px solid var(--border);
  padding-top: 22px;
}
.gvb-post-single .nav-links {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
.gvb-post-single .nav-next { text-align: right; }
.gvb-post-single .post-navigation a { text-decoration: none; }
.gvb-postnav__label {
  display: block;
  font-size: var(--fs-xs);
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--teal);
  margin-bottom: 4px;
}
.gvb-postnav__title {
  font-size: var(--fs-s);
  color: var(--text);
  line-height: 1.4;
}
.gvb-post-single .post-navigation a:hover .gvb-postnav__title { color: var(--teal); }
@media (max-width: 639px) {
  .gvb-post-single .nav-links { grid-template-columns: 1fr; }
  .gvb-post-single .nav-next { text-align: left; }
}

/* related strip */
.gvb-post-related { padding: 0 28px 64px; }
.gvb-post-related > h2 {
  font-family: var(--font-head);
  font-size: 1.35rem;
  margin: 0 0 22px;
  padding-top: 34px;
  border-top: 1px solid var(--border);
}

/* --------------------------------------------------------------------------
   OLA 3 · 3.11.4 — Imagen de reserva de marca en tarjetas sin destacada
   (DIS-09). Hoy no hay ninguna entrada sin imagen destacada: esto es una red
   de seguridad para que, si alguna se publica sin ella, la tarjeta muestre la
   marca sobre el degradado y no un rectángulo liso.
   -------------------------------------------------------------------------- */
.gvb-post-card__media-fallback { position: relative; }
.gvb-post-card__media-fallback::after {
  content: "";
  position: absolute;
  inset: 0;
  background: url('../img/logo-hero-256.webp') no-repeat center / 116px auto;
  /* el logotipo es teal sobre transparente: sobre el degradado del hero se
     pinta en blanco para que se lea */
  filter: brightness(0) invert(1);
  opacity: .9;
}

/* --------------------------------------------------------------------------
   OLA 3 · 3.12 — Bloque «Archivo» nativo con vista previa del PDF (QA-08)
   Sustituye al visor de Google Docs de `embed-pdf-viewer`. El bloque de
   WordPress pinta un <object> con el PDF y, debajo, el nombre y el botón de
   descarga: se sirve desde nuestro propio dominio, sin terceros.
   -------------------------------------------------------------------------- */
.gvb-post-single .entry-content .wp-block-file {
  margin: 1.6em 0;
  padding: 18px;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--r-l);
  box-shadow: var(--sh-xs);
}
.gvb-post-single .entry-content .wp-block-file__embed {
  display: block;
  width: 100%;
  border: 1px solid var(--border);
  border-radius: var(--r);
  background: var(--mint-bg);
  margin-bottom: 14px;
}
.gvb-post-single .entry-content .wp-block-file > a:not(.wp-block-file__button) {
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 15.5px;
  color: var(--text);
  text-decoration: none;
  margin-right: 14px;
}
.gvb-post-single .entry-content .wp-block-file > a:not(.wp-block-file__button):hover { color: var(--teal); }
.gvb-post-single .entry-content .wp-block-file__button {
  display: inline-block;
  background: var(--teal-d);
  color: #fff;
  border-radius: var(--r-pill);
  padding: 9px 22px;
  font-family: var(--font-head);
  font-size: var(--fs-xs);
  font-weight: 700;
  letter-spacing: .04em;
  text-decoration: none;
  transition: background .15s;
}
.gvb-post-single .entry-content .wp-block-file__button:hover { background: var(--teal-dd); color: #fff; }

/* En móvil 800 px de alto se comen la pantalla; el bloque escribe la altura
   en el atributo `style`, así que hace falta `!important` para bajarla. */
@media (max-width: 600px) {
  .gvb-post-single .entry-content .wp-block-file__embed { height: 62vh !important; }
  .gvb-post-single .entry-content .wp-block-file > a:not(.wp-block-file__button) { display: block; margin: 0 0 10px; }
}
