/* ============================================================================
   CAMPAMENTOS v3 — listado /{lang}/campamentos/verano (FASE 1 rediseño 2026)
   Port del mockup layoscamp-redesign/pages/campamentos.{html,css} sobre el
   markup REAL de la view lista_de_campamentos_por_categoria.

   Ley de convivencia v3:
   - Tokens SCOPEADOS a .catalogo-hero-2026 / .catalogo-page-2026 (nunca :root).
   - CERO !important. Gana por orden de carga (library campamentos-2026,
     weight 410 > redesign-2026 400 > listado-verano-hotfix 220) + rutas de
     selector iguales o superiores a las del hotfix (0-4-x) para batir los
     pisotones legacy de style.css/homepage-responsive documentados allí.
   - camp-filter.css y campamentos-mobile.css NO se tocan (WIP drift server).
   ============================================================================ */

/* ============================================================================
   §1 · TOKENS v3 (scopeados — misma paleta que redesign-2026.css §1)
   ============================================================================ */
.catalogo-hero-2026,
.catalogo-page-2026 {
  --crema:        #FDF8EE;
  --crema-2:      #F8EFDC;
  --arena:        #F0E0C3;
  --terracota:    #D2603A;
  --agua:         #2A9D8F;
  --bosque:       #31562D;
  --bosque-2:     #026936;
  --bosque-deep:  #22401F;
  --sol:          #FBBB0E;
  --sol-glow:     rgba(251,187,14,.35);
  --ink:          #272725;
  --blanco:       #FFFFFF;

  --font-display: "Fraunces", Georgia, serif;
  --font-body:    "Outfit", "Helvetica Neue", Arial, sans-serif;

  --lh-tight:   .96;
  --ls-display: -.02em;

  --radius-xs: 8px; --radius-sm: 14px; --radius-md: 22px; --radius-full: 999px;

  --sombra-suave: 0 22px 54px -18px rgba(49,86,45,.26), 0 8px 20px -8px rgba(39,39,37,.14);
  --sombra-pop:   0 38px 84px -26px rgba(49,86,45,.42), 0 14px 32px -12px rgba(39,39,37,.2);

  --ease-zoom: cubic-bezier(.22,1,.36,1);

  --nav-h-scroll: 66px;

  font-family: var(--font-body);
}

/* ============================================================================
   §2 · HERO compacto (sustituye a E-page-hero--green en el twig del término)
   ============================================================================ */
.catalogo-hero-2026 {
  background:
    radial-gradient(60% 130% at 92% -10%, rgba(42,157,143,.12) 0%, rgba(42,157,143,0) 60%),
    radial-gradient(45% 110% at -5% 110%, rgba(251,187,14,.14) 0%, rgba(251,187,14,0) 55%),
    var(--crema-2);
  border-bottom: 1px solid rgba(49,86,45,.08);
  padding: clamp(40px, 6vw, 64px) 24px clamp(36px, 5vw, 56px);
}
.catalogo-hero-2026__inner { max-width: 1200px; margin: 0 auto; }
.catalogo-hero-2026__eyebrow {
  font-size: clamp(.72rem, 1vw, .82rem); font-weight: 700;
  letter-spacing: .22em; text-transform: uppercase;
  color: var(--terracota);
  margin: 0 0 14px;
}
.catalogo-hero-2026__title {
  font-family: var(--font-display);
  font-size: clamp(2.3rem, 4.6vw, 3.4rem);
  font-weight: 600; line-height: var(--lh-tight); letter-spacing: var(--ls-display);
  color: var(--bosque-deep);
  margin: 0 0 16px; text-wrap: balance;
}
.catalogo-hero-2026__sub {
  font-size: clamp(1rem, 1.5vw, 1.15rem); line-height: 1.55;
  color: rgba(39,39,37,.78); max-width: 54ch; margin: 0;
}

/* ============================================================================
   §3 · Lienzo de página (la sección E-page-body lleva el modificador)
   ============================================================================ */
.E-page-body.catalogo-page-2026 { background: var(--crema); }

/* ============================================================================
   §4 · BARRA DE FILTROS (sticky) — tabs bef-links + chips ubicación + edad
   ============================================================================ */
.catalogo-page-2026 .catalogo-filters-2026 {
  position: sticky; top: calc(var(--nav-h-scroll) - 1px); z-index: 60;
  display: flex; align-items: center; gap: 14px 22px; flex-wrap: wrap;
  background: rgba(253,248,238,.92);
  backdrop-filter: blur(16px) saturate(1.3);
  -webkit-backdrop-filter: blur(16px) saturate(1.3);
  border-bottom: 1px solid rgba(49,86,45,.1);
  border-radius: var(--radius-sm);
  padding: 12px 16px;
  margin-bottom: clamp(24px, 3vw, 36px);
}

/* Tabs de categoría (exposed bef-links). Ruta de selector calcada del legacy
   style.css:16630 (.view-filters div.form-select li a) para ganar por orden. */
.catalogo-page-2026 .catalogo-filters-2026 .view-filters { margin: 0; }
.catalogo-page-2026 .catalogo-filters-2026 .view-filters form { margin: 0; }
.catalogo-page-2026 .view-filters div.form-select {
  display: inline-flex; gap: 4px; padding: 4px;
  background: var(--blanco); border: 0; border-radius: var(--radius-full);
  box-shadow: inset 0 0 0 1px rgba(49,86,45,.16);
  width: auto; height: auto;
  background-image: none;
}
.catalogo-page-2026 .view-filters div.form-select ul {
  display: inline-flex; gap: 4px; margin: 0; padding: 0; list-style: none;
}
.catalogo-page-2026 .view-filters div.form-select li { margin: 0; padding: 0; max-width: none; }
.catalogo-page-2026 .view-filters div.form-select li a {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 9px 22px; border: 0; border-radius: var(--radius-full);
  font-family: var(--font-body);
  font-size: .86rem; font-weight: 600; letter-spacing: 0; text-transform: none;
  color: rgba(39,39,37,.62); background: transparent;
  text-decoration: none;
  transition: background-color .25s ease, color .25s ease;
}
.catalogo-page-2026 .view-filters div.form-select li a:hover {
  color: var(--bosque); background: transparent;
}
.catalogo-page-2026 .view-filters div.form-select li a.bef-link-active {
  background: var(--bosque); color: var(--crema);
}

/* Chips de ubicación (attachment_before, clases nuevas del twig attachment-3
   — E-location-filter queda atrás para esquivar los !important de
   campamentos-mobile.css). */
.catalogo-page-2026 .catalogo-loc-2026 {
  display: flex; align-items: center; gap: 10px; min-width: 0; flex: 1;
}
.catalogo-page-2026 .catalogo-loc-2026__label {
  font-size: .68rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
  color: rgba(39,39,37,.55); flex-shrink: 0; margin: 0;
}
.catalogo-page-2026 .catalogo-loc-2026__tags {
  display: flex; gap: 6px; overflow-x: auto; max-width: 100%;
  scrollbar-width: none; padding: 2px;
}
.catalogo-page-2026 .catalogo-loc-2026__tags::-webkit-scrollbar { display: none; }
.catalogo-page-2026 .catalogo-loc-2026__tag {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 15px; border-radius: var(--radius-full);
  background: var(--blanco); box-shadow: inset 0 0 0 1px rgba(49,86,45,.18);
  font-size: .82rem; font-weight: 600; color: var(--bosque-deep);
  white-space: nowrap; flex-shrink: 0; text-decoration: none;
  transition: box-shadow .2s ease, background-color .2s ease, color .2s ease;
}
.catalogo-page-2026 .catalogo-loc-2026__tag:hover { box-shadow: inset 0 0 0 1.5px var(--bosque); }
.catalogo-page-2026 .catalogo-loc-2026__tag.is-active {
  background: var(--bosque); color: var(--crema);
  box-shadow: inset 0 0 0 1.5px var(--bosque);
}

/* Puente de edad (E-age-banner re-skineado como chip dentro de la barra;
   la view no tiene exposed filter de edad — el buscador vive en /campamentos). */
.catalogo-page-2026 .catalogo-filters-2026 .E-age-banner {
  margin: 0; padding: 0; background: none; border: 0; flex-shrink: 0;
}
.catalogo-page-2026 .catalogo-filters-2026 .E-age-banner__inner {
  display: flex; align-items: center; gap: 8px; padding: 0; margin: 0;
  background: none; border: 0; box-shadow: none;
}
.catalogo-page-2026 .catalogo-filters-2026 .E-age-banner__inner > .material-icons,
.catalogo-page-2026 .catalogo-filters-2026 .E-age-banner__text { display: none; }
.catalogo-page-2026 .catalogo-filters-2026 .E-age-banner__btn {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 15px; border-radius: var(--radius-full);
  background: var(--crema-2); box-shadow: inset 0 0 0 1px rgba(49,86,45,.18);
  font-size: .82rem; font-weight: 700; color: var(--bosque-deep);
  white-space: nowrap; text-decoration: none;
  transition: box-shadow .2s ease;
}
.catalogo-page-2026 .catalogo-filters-2026 .E-age-banner__btn:hover {
  box-shadow: inset 0 0 0 1.5px var(--bosque);
}
.catalogo-page-2026 .catalogo-filters-2026 .E-age-banner__btn .material-icons { font-size: 1rem; color: var(--terracota); }

/* ============================================================================
   §5 · TARJETAS — mismas rutas de selector que listado-verano-hotfix.css
   (0-4/5-x) para heredar sus victorias sobre style.css y ganar por orden.
   ============================================================================ */
.view-lista-de-campamentos-por-categoria .attachment.attachment-after .item-list > ul.E-camp-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  list-style: none;
  margin: 0; padding: 0;
}

.view-lista-de-campamentos-por-categoria .attachment.attachment-after ul.E-camp-grid > li.E-camp-card {
  width: auto; max-width: none; margin: 0; padding: 0;
  display: flex; flex-direction: column;
  background: var(--blanco, #FFFFFF);
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 10px 34px -16px rgba(49,86,45,.22);
  transition: transform .4s cubic-bezier(.22,1,.36,1), box-shadow .4s ease;
}
.view-lista-de-campamentos-por-categoria .attachment.attachment-after ul.E-camp-grid > li.E-camp-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 38px 84px -26px rgba(49,86,45,.42), 0 14px 32px -12px rgba(39,39,37,.2);
}

/* Imagen 16:10 (div con background-image en el markup real) */
.catalogo-page-2026 .E-camp-card .E-camp-card__image {
  position: relative;
  aspect-ratio: 16 / 10;
  height: auto; min-height: 0;
  background-size: cover; background-position: center;
  border-radius: 0;
}

/* Badge de estado sobre la imagen (waitlist → terracota) */
.catalogo-page-2026 .E-camp-card .E-camp-card__badge {
  position: absolute; top: 12px; left: 12px;
  padding: 6px 12px; border-radius: var(--radius-full);
  font-size: .72rem; font-weight: 700; letter-spacing: .02em;
  color: var(--crema); background: rgba(34,64,31,.85);
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}
.catalogo-page-2026 .E-camp-card .E-camp-card__badge--waitlist { background: var(--terracota); }

/* Precio "desde" (overlay existente, se conserva — dato comercial backend) */
.catalogo-page-2026 .E-camp-card .E-camp-card__price {
  position: absolute; right: 12px; bottom: 12px; left: auto; top: auto;
  display: inline-flex; align-items: baseline; gap: 5px;
  padding: 6px 12px; border-radius: var(--radius-full);
  background: rgba(253,248,238,.94); color: var(--bosque-deep);
  font-size: .78rem; font-weight: 600;
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}
.catalogo-page-2026 .E-camp-card .E-camp-card__price-label { font-size: .72rem; color: rgba(39,39,37,.65); }
.catalogo-page-2026 .E-camp-card .E-camp-card__price-value { font-weight: 800; }

/* Cuerpo */
.catalogo-page-2026 .E-camp-card .E-camp-card__body {
  display: flex; flex-direction: column; flex: 1;
  padding: 20px;
}
.catalogo-page-2026 .E-camp-card .E-camp-card__title { margin: 0 0 8px; }
.catalogo-page-2026 .E-camp-card .E-camp-card__title a {
  font-family: var(--font-body);
  font-size: 1.08rem; font-weight: 700; color: var(--bosque-deep);
  text-decoration: none;
}
.catalogo-page-2026 .E-camp-card .E-camp-card__title a:hover { color: var(--bosque-2); }
.catalogo-page-2026 .E-camp-card .E-camp-card__desc {
  font-size: .87rem; line-height: 1.5; color: rgba(39,39,37,.72);
  margin: 0 0 14px;
}

/* Meta: chips edad + lugar (nuevos, alimentados por preprocess) */
.catalogo-page-2026 .E-camp-card .E-camp-card__meta {
  display: flex; flex-wrap: wrap; gap: 7px; margin: 0 0 14px;
}
.catalogo-page-2026 .E-camp-card .E-camp-card__age,
.catalogo-page-2026 .E-camp-card .E-camp-card__place {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 5px 11px; border-radius: var(--radius-full);
  font-size: .74rem; font-weight: 700;
}
.catalogo-page-2026 .E-camp-card .E-camp-card__age { background: var(--crema-2); color: var(--bosque-deep); }
.catalogo-page-2026 .E-camp-card .E-camp-card__age .material-icons-round { font-size: .95rem; color: var(--terracota); }
.catalogo-page-2026 .E-camp-card .E-camp-card__place { background: rgba(42,157,143,.12); color: var(--bosque-deep); }
.catalogo-page-2026 .E-camp-card .E-camp-card__place .material-icons-round { font-size: .95rem; color: var(--agua); }

/* ============================================================================
   §6 · FECHAS (variations renderizadas) — una fila por quincena con icono
   ============================================================================ */
.catalogo-page-2026 .E-camp-card .E-camp-card__dates {
  display: block; margin: 0 0 16px;
}
/* El icono único legacy del wrapper sobra: cada fila lleva el suyo */
.catalogo-page-2026 .E-camp-card .E-camp-card__dates > .material-icons { display: none; }
.catalogo-page-2026 .E-camp-card .E-camp-card__dates .product-variation--camp-date {
  display: flex; align-items: center; gap: 8px;
  font-size: .82rem; font-weight: 500; color: var(--bosque-deep);
  padding: 3px 0;
}
.catalogo-page-2026 .E-camp-card .E-camp-card__dates .product-variation--camp-date::before {
  content: "calendar_today";
  font-family: "Material Icons Round";
  font-weight: normal; font-style: normal;
  font-size: 1rem; line-height: 1; letter-spacing: normal;
  text-transform: none; white-space: nowrap; word-wrap: normal; direction: ltr;
  -webkit-font-feature-settings: 'liga'; font-feature-settings: 'liga';
  -webkit-font-smoothing: antialiased;
  color: var(--agua);
  flex-shrink: 0;
}
/* Quincena en lista de espera (clase pintada por el template de variación) */
.catalogo-page-2026 .E-camp-card .E-camp-card__dates .product-variation--camp-date.is-waitlist { color: var(--terracota); }
.catalogo-page-2026 .E-camp-card .E-camp-card__dates .product-variation--camp-date.is-waitlist::before { color: var(--terracota); }
/* El badge inline legacy por fecha (lógica de campos ocultos, nunca dispara)
   cede el sitio al color de fila + badge de tarjeta. */
.catalogo-page-2026 .E-camp-card .E-camp-card__dates .product-variation__badge { display: none; }

/* ============================================================================
   §7 · CTA de tarjeta (texto + flecha, ya no botón bloque)
   ============================================================================ */
.catalogo-page-2026 .E-camp-card .E-camp-card__cta {
  margin-top: auto;
  display: inline-flex; align-items: center; gap: 7px;
  width: auto; padding: 0; border: 0; border-radius: 0;
  background: none;
  font-family: var(--font-body);
  font-size: .88rem; font-weight: 700; color: var(--bosque);
  text-decoration: none; text-transform: none; letter-spacing: 0;
  transition: gap .3s var(--ease-zoom), color .2s ease;
}
.catalogo-page-2026 .E-camp-card .E-camp-card__cta:hover {
  gap: 11px; color: var(--bosque-2); background: none;
}
.catalogo-page-2026 .E-camp-card .E-camp-card__cta .material-icons,
.catalogo-page-2026 .E-camp-card .E-camp-card__cta .material-icons-round { font-size: 1.05rem; }

/* ============================================================================
   §8 · ESTADO VACÍO + PAGER
   ============================================================================ */
.catalogo-page-2026 .view-empty {
  text-align: center;
  padding: 72px 24px;
  background: var(--blanco); border: 1px dashed rgba(49,86,45,.3);
  border-radius: var(--radius-md);
  color: rgba(39,39,37,.7);
}
.catalogo-page-2026 .pager__items { display: flex; gap: 6px; justify-content: center; padding: 24px 0 0; }
.catalogo-page-2026 .pager__item a {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 38px; padding: 8px 12px; border-radius: var(--radius-full);
  background: var(--blanco); box-shadow: inset 0 0 0 1px rgba(49,86,45,.18);
  color: var(--bosque-deep); font-size: .85rem; font-weight: 600; text-decoration: none;
}
.catalogo-page-2026 .pager__item.is-active a,
.catalogo-page-2026 .pager__item a:hover { background: var(--bosque); color: var(--crema); }

/* ============================================================================
   §9 · CTA FINAL "¿Dudas? Te ayudamos a elegir"
   ============================================================================ */
.catalogo-page-2026 .catalogo-final-cta-2026 {
  position: relative; overflow: hidden; isolation: isolate;
  margin-top: clamp(40px, 6vw, 72px);
  padding: clamp(64px, 9vw, 120px) 24px;
  border-radius: var(--radius-md);
  text-align: center; color: var(--crema);
  background: url("../images/redesign-2026/naturaleza.jpg") center / cover no-repeat, var(--bosque-deep);
}
.catalogo-page-2026 .catalogo-final-cta-2026__scrim {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(180deg, rgba(34,64,31,.82) 0%, rgba(34,64,31,.68) 55%, rgba(34,64,31,.88) 100%);
}
.catalogo-page-2026 .catalogo-final-cta-2026__inner { position: relative; z-index: 2; max-width: 720px; margin: 0 auto; }
.catalogo-page-2026 .catalogo-final-cta-2026__inner h2 {
  font-family: var(--font-display);
  font-size: clamp(2.1rem, 4.6vw, 2.9rem); font-weight: 600;
  line-height: var(--lh-tight); letter-spacing: var(--ls-display);
  color: var(--crema);
  margin: 0 0 16px; text-wrap: balance;
}
.catalogo-page-2026 .catalogo-final-cta-2026__inner h2 em { font-style: italic; color: var(--sol); }
.catalogo-page-2026 .catalogo-final-cta-2026__inner p { color: rgba(253,248,238,.9); margin: 0 0 30px; }
.catalogo-page-2026 .catalogo-final-cta-2026__btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 16px 30px; border-radius: var(--radius-full);
  background: var(--sol); color: var(--bosque-deep);
  font-family: var(--font-body); font-size: 1.02rem; font-weight: 600; line-height: 1;
  text-decoration: none;
  box-shadow: 0 10px 30px -10px var(--sol-glow), 0 2px 8px rgba(39,39,37,.12);
  transition: transform .35s cubic-bezier(.34,1.56,.64,1), box-shadow .35s ease;
}
.catalogo-page-2026 .catalogo-final-cta-2026__btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 40px -12px var(--sol-glow), 0 4px 12px rgba(39,39,37,.16);
}
.catalogo-page-2026 .catalogo-final-cta-2026__btn .material-icons-round { font-size: 1.2rem; }

/* ============================================================================
   §10 · RESPONSIVE + MOTION
   ============================================================================ */
@media (max-width: 1200px) {
  .view-lista-de-campamentos-por-categoria .attachment.attachment-after .item-list > ul.E-camp-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 991px) {
  .view-lista-de-campamentos-por-categoria .attachment.attachment-after .item-list > ul.E-camp-grid {
    grid-template-columns: repeat(2, 1fr); gap: 20px;
  }
  .catalogo-page-2026 .catalogo-filters-2026 { position: static; }
  .catalogo-page-2026 .catalogo-loc-2026 { flex-basis: 100%; }
}
@media (max-width: 640px) {
  .view-lista-de-campamentos-por-categoria .attachment.attachment-after .item-list > ul.E-camp-grid {
    grid-template-columns: 1fr; gap: 16px;
  }
  .catalogo-page-2026 .catalogo-filters-2026 { gap: 10px; padding: 10px 12px; }
  .catalogo-page-2026 .view-filters { width: 100%; }
  .catalogo-page-2026 .view-filters div.form-select { display: flex; width: 100%; }
  .catalogo-page-2026 .view-filters div.form-select ul { display: flex; width: 100%; }
  .catalogo-page-2026 .view-filters div.form-select li { flex: 1; }
  .catalogo-page-2026 .view-filters div.form-select li a { width: 100%; padding: 10px 12px; }
  /* Chips de ubicación: en móvil se ven TODAS (wrap, sin scroll oculto) */
  .catalogo-page-2026 .catalogo-loc-2026 { flex-wrap: wrap; gap: 8px; }
  .catalogo-page-2026 .catalogo-loc-2026__label { flex-basis: 100%; }
  .catalogo-page-2026 .catalogo-loc-2026__tags {
    flex-wrap: wrap; overflow: visible; max-width: none;
  }
  .catalogo-page-2026 .catalogo-filters-2026 .E-age-banner { flex-basis: 100%; }
  .catalogo-page-2026 .catalogo-filters-2026 .E-age-banner__btn { width: 100%; justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
  .view-lista-de-campamentos-por-categoria .attachment.attachment-after ul.E-camp-grid > li.E-camp-card,
  .catalogo-page-2026 .E-camp-card .E-camp-card__cta,
  .catalogo-page-2026 .catalogo-final-cta-2026__btn {
    transition: none;
  }
  .view-lista-de-campamentos-por-categoria .attachment.attachment-after ul.E-camp-grid > li.E-camp-card:hover,
  .catalogo-page-2026 .catalogo-final-cta-2026__btn:hover {
    transform: none;
  }
}

/* ============================================================================
   §11 · AJUSTES POST-QA (2026-07-21, primera pasada en dev)
   ============================================================================ */

/* El label "Categorías" del exposed form no existe en el diseño: oculto
   accesible (el aria-label del nav y el propio contenido bastan). */
.catalogo-page-2026 .catalogo-filters-2026 .view-filters label {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.catalogo-page-2026 .catalogo-filters-2026 .form--inline {
  display: flex; align-items: center; margin: 0;
}
.catalogo-page-2026 .catalogo-filters-2026 .form--inline .form-item { margin: 0; float: none; }

/* El submit fantasma del form BEF ocupa 25px + 40px margin + 24px padding
   (medido): el widget de categoría son ENLACES, el botón no hace nada. */
/* !important + variante #edit-actions: extras clava
   `.form-actions, #edit-actions { display:flex !important }` y el ID (1,0,0)
   vence a cualquier lista de clases — se empata con ID y gana por scope. */
.catalogo-page-2026 .catalogo-filters-2026 .view-filters .form-actions,
.catalogo-page-2026 .catalogo-filters-2026 .view-filters #edit-actions { display: none !important; }
/* style.css clava padding-bottom: 64px al attachment-before (hueco tras
   los chips de ubicación). */
.catalogo-page-2026 .catalogo-filters-2026 .attachment.attachment-before { padding-bottom: 0; }

/* Pager (markup Bootstrap5: ul.pagination + .page-item/.page-link — fuera el
   azul --bs-primary). */
.catalogo-page-2026 nav.pager ul.pagination {
  display: flex; gap: 6px; justify-content: center;
  padding: 24px 0 0; margin: 0;
}
.catalogo-page-2026 nav.pager .page-item .page-link {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 38px; padding: 8px 14px;
  border: 0; border-radius: var(--radius-full);
  background: var(--blanco); box-shadow: inset 0 0 0 1px rgba(49,86,45,.18);
  color: var(--bosque-deep); font-size: .85rem; font-weight: 600; text-decoration: none;
}
.catalogo-page-2026 nav.pager .page-item.active .page-link,
.catalogo-page-2026 nav.pager .page-item .page-link:hover {
  background: var(--bosque); color: var(--crema); box-shadow: none;
}

/* ============================================================================
   §12 · RE-AFIRMACIÓN ANTI-fase5 (CTA de tarjeta) — mismo patrón que el
   override §22 de redesign-2026.css: fase5-audit-fixes.css impone con
   !important el CTA-botón dorado degradado del diseño anterior; el rediseño
   2026 lo quiere como enlace texto+flecha. !important solo donde el legacy
   ya lo usa, scope solo el listado (el /campamentos legacy conserva el suyo).
   ============================================================================ */
.catalogo-page-2026 .E-camp-card .E-camp-card__cta,
.catalogo-page-2026 .E-camp-card .E-camp-card__cta:hover,
.catalogo-page-2026 .E-camp-card .E-camp-card__cta:focus-visible {
  background: none !important;
  box-shadow: none !important;
  filter: none;
  border: 0;
  padding: 0;
  width: auto;
}
.catalogo-page-2026 .E-camp-card .E-camp-card__cta { color: var(--bosque) !important; }
.catalogo-page-2026 .E-camp-card .E-camp-card__cta:hover,
.catalogo-page-2026 .E-camp-card .E-camp-card__cta:focus-visible { color: var(--bosque-2) !important; }

/* ============================================================================
   v3fix B1 (2026-07-22) — filtro cliente (stepper edad + chips quincena)
   + finder "Te ayudamos a elegir" (banda + modal 3 preguntas).
   ============================================================================ */
.cat2026-hidden { display: none !important; }

.cat2026-filterbar {
  display: flex; align-items: center; gap: 12px 20px; flex-wrap: wrap;
  padding: 12px 0 4px;
}
.cat2026-filterbar__group { display: flex; align-items: center; gap: 10px; }
.cat2026-filterbar__label {
  font-size: .68rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
  color: rgba(39,39,37,.55); flex-shrink: 0;
}
.cat2026-stepper {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 4px; border-radius: var(--radius-full);
  background: var(--blanco);
  box-shadow: inset 0 0 0 1px rgba(49,86,45,.16);
}
.cat2026-stepper__btn {
  width: 34px; height: 34px; flex-shrink: 0;
  display: grid; place-items: center;
  border: 0; border-radius: var(--radius-full);
  background: var(--bosque); color: var(--crema);
  font-size: 1.1rem; font-weight: 700; line-height: 1; cursor: pointer;
  transition: background-color .2s ease, transform .25s cubic-bezier(.34,1.56,.64,1);
}
.cat2026-stepper__btn:hover { background: var(--bosque-2); transform: scale(1.06); }
.cat2026-stepper__btn--lg { width: 52px; height: 52px; font-size: 1.4rem; }
.cat2026-stepper__value {
  min-width: 40px; text-align: center;
  font-family: var(--font-display, Georgia, serif); font-weight: 700; font-size: 1.05rem;
  color: rgba(39,39,37,.45);
}
.cat2026-stepper__value.is-set { color: var(--bosque-deep); }

.cat2026-chips { display: flex; gap: 6px; overflow-x: auto; max-width: 100%; scrollbar-width: none; padding: 2px; }
.cat2026-chips::-webkit-scrollbar { display: none; }
.cat2026-chip {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 15px; border: 0; border-radius: var(--radius-full);
  background: var(--blanco); box-shadow: inset 0 0 0 1px rgba(49,86,45,.18);
  font-family: inherit; font-size: .82rem; font-weight: 600; color: var(--bosque-deep);
  white-space: nowrap; flex-shrink: 0; cursor: pointer;
  transition: box-shadow .2s ease, background-color .2s ease, color .2s ease;
}
.cat2026-chip:hover { box-shadow: inset 0 0 0 1.5px var(--bosque); }
.cat2026-chip[aria-pressed="true"] { background: var(--bosque); color: var(--crema); box-shadow: inset 0 0 0 1.5px var(--bosque); }

.cat2026-filterbar__meta {
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
  margin: 0; font-size: .82rem; color: rgba(39,39,37,.6);
}
.cat2026-reset {
  border: 0; background: none; cursor: pointer;
  font-size: .82rem; font-weight: 700; color: var(--terracota);
  text-decoration: underline; text-underline-offset: 3px; padding: 4px;
}
.cat2026-reset:hover { color: var(--bosque-deep); }
.cat2026-finder-link {
  display: inline-flex; align-items: center; gap: 6px;
  border: 0; background: none; cursor: pointer;
  font-size: .85rem; font-weight: 700; color: var(--bosque);
  padding: 6px 4px;
  transition: color .2s ease;
}
.cat2026-finder-link:hover { color: var(--bosque-2); }
.cat2026-finder-link .material-icons-round { font-size: 1.15rem; color: var(--terracota); }

/* ============ FINDER — banda ============ */
.finder2026 { margin: var(--space-lg, 48px) 0 0; }
.finder2026__inner {
  display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap;
  background:
    radial-gradient(80% 160% at 100% 0%, rgba(251,187,14,.16) 0%, rgba(251,187,14,0) 55%),
    var(--bosque-deep);
  color: var(--crema);
  border-radius: var(--radius-lg, 30px);
  padding: clamp(26px, 4vw, 44px) clamp(24px, 4vw, 48px);
  box-shadow: 0 22px 54px -18px rgba(49,86,45,.26), 0 8px 20px -8px rgba(39,39,37,.14);
}
.finder2026__text { display: flex; align-items: center; gap: 18px; }
.finder2026__icon {
  width: 56px; height: 56px; flex-shrink: 0;
  display: grid; place-items: center;
  border-radius: 14px;
  background: rgba(251,187,14,.16); color: var(--sol);
  font-size: 1.8rem;
}
.finder2026__text h2 {
  margin: 0;
  font-family: var(--font-display, Georgia, serif); font-size: clamp(1.35rem, 2.6vw, 1.9rem);
  font-weight: 600; letter-spacing: -.02em;
}
.finder2026__text p { margin: 4px 0 0; color: rgba(253,248,238,.82); font-size: .96rem; }
.finder2026__btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 16px 30px; border: 0; border-radius: var(--radius-full);
  background: var(--sol); color: var(--bosque-deep);
  font-family: inherit; font-weight: 700; font-size: 1.02rem; line-height: 1; cursor: pointer;
  box-shadow: 0 10px 30px -10px var(--sol-glow), 0 2px 8px rgba(39,39,37,.12);
  transition: transform .35s cubic-bezier(.34,1.56,.64,1), box-shadow .3s ease;
}
.finder2026__btn:hover { transform: translateY(-2px); box-shadow: 0 16px 40px -12px var(--sol-glow), 0 4px 12px rgba(39,39,37,.16); }

/* ============ FINDER — modal ============ */
.finder2026-sr {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.finder2026-backdrop {
  position: fixed; inset: 0; z-index: 1200;
  background: rgba(34,64,31,.5);
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  opacity: 0; transition: opacity .35s ease;
}
.finder2026-backdrop.is-open { opacity: 1; }
.finder2026-modal {
  position: fixed; z-index: 1201;
  left: 50%; top: 50%;
  width: min(480px, calc(100vw - 40px));
  max-height: calc(100svh - 48px); overflow-y: auto;
  transform: translate(-50%, -46%) scale(.96);
  opacity: 0;
  background: var(--crema);
  border-radius: var(--radius-md);
  box-shadow: 0 38px 84px -26px rgba(49,86,45,.42), 0 14px 32px -12px rgba(39,39,37,.2);
  padding: 40px 32px 28px;
  text-align: center;
  transition: transform .4s cubic-bezier(.34,1.56,.64,1), opacity .3s ease;
}
.finder2026-modal.is-open { transform: translate(-50%, -50%) scale(1); opacity: 1; }
.finder2026-modal__close {
  position: absolute; top: 14px; right: 14px;
  width: 40px; height: 40px; display: grid; place-items: center;
  border: 0; border-radius: var(--radius-full);
  background: var(--arena, #F0E0C3); color: var(--ink, #272725); cursor: pointer;
  transition: background .2s ease, transform .25s cubic-bezier(.34,1.56,.64,1);
}
.finder2026-modal__close:hover { background: var(--arena-2, #E6D2AC); transform: rotate(90deg); }
.finder2026-modal__progress { display: flex; justify-content: center; gap: 8px; margin-bottom: 26px; }
.finder2026-dot { width: 34px; height: 4px; border-radius: 4px; background: rgba(49,86,45,.18); transition: background .3s ease; }
.finder2026-dot.is-active { background: var(--bosque); }
.finder2026-step { display: none; }
.finder2026-step.is-active { display: block; animation: finder2026step .35s cubic-bezier(.22,1,.36,1); }
@keyframes finder2026step { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
.finder2026-modal__question {
  margin: 0 0 26px;
  font-family: var(--font-display, Georgia, serif); font-size: clamp(1.4rem, 3vw, 1.75rem);
  font-weight: 600; letter-spacing: -.02em; color: var(--bosque-deep);
}
.finder2026-modal__question em { font-style: italic; color: var(--terracota); }
.finder2026-age { display: flex; align-items: center; justify-content: center; gap: 22px; margin-bottom: 8px; }
.finder2026-age__value {
  min-width: 84px;
  font-family: var(--font-display, Georgia, serif); font-weight: 700; font-size: 3.4rem; line-height: 1;
  color: var(--bosque-deep);
}
.finder2026-options { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.finder2026-option {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 16px 12px;
  background: var(--blanco);
  border: 1.5px solid rgba(49,86,45,.18);
  border-radius: 14px;
  font-family: inherit; font-size: .95rem; font-weight: 600; color: var(--bosque-deep); cursor: pointer;
  transition: border-color .2s ease, background-color .2s ease, transform .25s cubic-bezier(.22,1,.36,1), box-shadow .2s ease;
}
.finder2026-option .material-icons-round { font-size: 1.2rem; color: var(--terracota); }
.finder2026-option:hover { border-color: var(--bosque); transform: translateY(-2px); }
.finder2026-option.is-selected { background: var(--bosque); color: var(--crema); border-color: var(--bosque); }
.finder2026-option.is-selected .material-icons-round { color: var(--sol); }
.finder2026-option--wide { grid-column: 1 / -1; }
.finder2026-modal__nav {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  margin-top: 28px; padding-top: 20px;
  border-top: 1px solid rgba(49,86,45,.12);
}
.finder2026-modal__back {
  display: inline-flex; align-items: center; gap: 6px;
  border: 0; background: none; cursor: pointer;
  font-size: .9rem; font-weight: 600; color: rgba(39,39,37,.6);
  padding: 10px 8px;
  transition: color .2s ease;
}
.finder2026-modal__back:hover { color: var(--bosque-deep); }
.finder2026-modal__next {
  display: inline-flex; align-items: center; gap: 8px;
  margin-left: auto;
  padding: 13px 24px; border: 0; border-radius: var(--radius-full);
  background: var(--bosque); color: var(--crema);
  font-family: inherit; font-weight: 600; font-size: .95rem; line-height: 1; cursor: pointer;
  transition: transform .35s cubic-bezier(.34,1.56,.64,1), background-color .2s ease, box-shadow .3s ease;
}
.finder2026-modal__next:hover { background: var(--bosque-2); transform: translateY(-2px); box-shadow: 0 22px 54px -18px rgba(49,86,45,.26); }

@media (max-width: 640px) {
  .cat2026-filterbar__group { flex-basis: 100%; }
  .cat2026-filterbar__meta { flex-basis: 100%; justify-content: space-between; }
  .finder2026__inner { justify-content: center; text-align: center; }
  .finder2026__text { flex-direction: column; text-align: center; }
  .finder2026-modal { padding: 34px 20px 22px; }
}

@media (prefers-reduced-motion: reduce) {
  .finder2026-modal, .finder2026-backdrop, .finder2026-step.is-active,
  .cat2026-stepper__btn, .finder2026__btn, .finder2026-option {
    transition: none !important; animation: none !important;
  }
}
