/* ============================================================
   Provivienda — CSS del proyecto (child theme)
   Archivo único, cacheable (enqueado con filemtime → versión).
   Fuente de verdad en repo: theme/generatepress-child/assets/css/provivienda.css
   Desplegar a: wp-content/themes/generatepress-child/assets/css/provivienda.css
   ------------------------------------------------------------
   Reglas globales / de componentes estables van AQUÍ.
   El "CSS adicional" del Customizer / Elementor solo para tweaks puntuales.
   ============================================================ */

/* Guard de scroll horizontal: los full-bleed usan width:100vw (incluye el ancho del
   scrollbar) → provocan un scroll horizontal mínimo en mobile. `clip` en el ROOT lo evita
   SIN crear scroll-container (a diferencia de overflow:hidden, y sin tocar <body> que en
   Safari móvil puede romper el position:sticky de la barra de tabs). */
html { overflow-x: clip; }


/* ============================================================
   Carrusel de Zonas (JetEngine Listing 12076)
   Nombre + conteo en blanco superpuestos sobre la imagen.
   ============================================================ */

/* Tarjeta: relativa, redondeada, recorta */
.elementor-12076 .elementor-element-0552fee {
  position: relative !important;
  border-radius: 20px;
  overflow: hidden;
  padding: 0 !important;
  gap: 0 !important;
  height: 100%;
}

/* Imagen llena el ancho con proporción fija (cover) */
.elementor-12076 .elementor-element-f102276 { width: 100%; }
.elementor-12076 .jet-listing-dynamic-image,
.elementor-12076 .jet-listing-dynamic-image__link { display: block; line-height: 0; }
.elementor-12076 .jet-listing-dynamic-image__img {
  width: 100%;
  aspect-ratio: 4 / 3;        /* ← controla el alto de la tarjeta */
  object-fit: cover;
  object-position: center;
  display: block;
}

/* Degradado inferior (legibilidad) */
.elementor-12076 .elementor-element-0552fee::after {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 58%;
  background: linear-gradient(to top, rgba(0,0,0,.72), rgba(0,0,0,0));
  pointer-events: none;
  z-index: 1;
}

/* Nombre de la zona — sobre la imagen, abajo-izquierda */
.elementor-12076 .elementor-element-72191e4 {
  position: absolute;
  left: 24px; right: 24px; bottom: 46px;
  z-index: 2; margin: 0; padding: 0;
  pointer-events: none;
}
.elementor-12076 .elementor-element-72191e4 .jet-listing-dynamic-field__content {
  color: #fff;
  font-family: "Inter", sans-serif;
  font-weight: 700;
  font-size: 28px;
  line-height: 1.2;
  margin: 0;
  text-shadow: 0 1px 8px rgba(0,0,0,.35);
}

/* "X proyectos" — debajo del título */
.elementor-12076 .elementor-element-8ac96c7 {
  position: absolute;
  left: 24px; right: 24px; bottom: 18px;
  z-index: 2; margin: 0; padding: 0;
  pointer-events: none;
}
.elementor-12076 .elementor-element-8ac96c7 .jet-listing-dynamic-field__content {
  color: rgba(255,255,255,.92);
  font-family: "Inter", sans-serif;
  font-weight: 400;
  font-size: 16px;
}

/* "Ver zona" oculto — toda la tarjeta enlaza por la imagen */
.elementor-12076 .elementor-element-b5901b0 { display: none; }

@media (max-width: 767px) {
  .elementor-12076 .elementor-element-72191e4 { bottom: 40px; }
  .elementor-12076 .elementor-element-72191e4 .jet-listing-dynamic-field__content { font-size: 22px; }
}


/* ============================================================
   Marquee infinito — "¿Por qué elegir Provivienda?"
   Scroll horizontal automático y CONTINUO (CSS puro, sin plugin/JS).
   Estructura requerida en Elementor:
     .pv-marquee            ← contenedor que RECORTA (overflow hidden)
       └ .pv-marquee__track ← contenedor interno que SE ANIMA
           └ tarjetas ×8    ← DUPLICA el set (4 → 8) para el bucle sin saltos
   ============================================================ */

.pv-marquee {
  display: block !important;
  overflow: hidden;
  width: 100%;
  /* desvanecido suave en los bordes (opcional: borra estas 2 líneas si no lo quieres) */
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
          mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}

.pv-marquee__track {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: stretch;          /* tarjetas a igual altura */
  width: max-content !important;
  gap: 0 !important;             /* el espaciado lo da el margin-right de cada tarjeta */
  animation: pv-marquee-scroll 40s linear infinite;   /* ← velocidad: menos seg = más rápido */
  will-change: transform;
}

/* cada tarjeta: ancho fijo + su propio margen derecho (clave para el bucle exacto) */
.pv-marquee__track > .e-con {
  flex: 0 0 auto !important;
  width: 320px;                  /* ← ancho de tarjeta */
  margin-right: 24px;            /* ← separación entre tarjetas */
}

/* pausa al pasar el cursor */
.pv-marquee:hover .pv-marquee__track { animation-play-state: paused; }

/* el bucle: -50% = exactamente 1 set (por eso se duplica a 8) */
@keyframes pv-marquee-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* móvil */
@media (max-width: 767px) {
  .pv-marquee__track > .e-con { width: 78vw; margin-right: 16px; }
}

/* accesibilidad: respeta "reducir movimiento" del sistema */
@media (prefers-reduced-motion: reduce) {
  .pv-marquee__track { animation: none; }
  .pv-marquee { -webkit-mask-image: none; mask-image: none; }
}


/* ============================================================
   Buscador del Home (JetSmartFilters) — estilo Figma
   Tarjeta blanca con 4 campos (Zona · Tipo · Precio · Metraje) + botón rojo.
   REQUIERE: clase  pv-search  en el contenedor de la tarjeta (7a5de24).
   Apunta a clases estables de JSF (no a IDs de Elementor) → reutilizable.
   ============================================================ */

/* ---- Tarjeta ---- */
.pv-search {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap;
  align-items: flex-end;                 /* botón alineado con la base de los campos */
  gap: 24px;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 12px 34px rgba(0,0,0,.12);
  padding: 24px 28px;
}

/* los widgets de filtros crecen por igual; el botón no */
.pv-search > .elementor-widget-jet-smart-filters-select,
.pv-search > .elementor-widget-jet-smart-filters-range { flex: 1 1 0; min-width: 0; }
.pv-search > .elementor-widget-jet-smart-filters-apply-button { flex: 0 0 auto; }
.pv-search .elementor-widget-container { width: 100%; }

/* cada grupo = fila de 2 campos */
.pv-search .jet-filters-group { display: flex; gap: 24px; align-items: flex-end; }

/* cada campo = columna (etiqueta arriba, control abajo) */
.pv-search .jet-smart-filters-select,
.pv-search .jet-smart-filters-range {
  flex: 1 1 0; min-width: 0; margin: 0;
  display: flex; flex-direction: column; gap: 8px;
}

/* ---- Etiquetas ---- */
.pv-search .jet-filter-label {
  margin: 0;
  font-family: "Inter", sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.2;
  color: #1A1A1A;
}

/* ---- Selects (Zona / Tipo) como dropdown del Figma ---- */
.pv-search .jet-select { position: relative; }
.pv-search .jet-select__control {
  width: 100%;
  height: 48px;
  padding: 0 42px 0 16px;                /* sitio para el chevron a la derecha */
  border: 1px solid #D9D9D9;
  border-radius: 8px;
  background-color: #fff;
  font-family: "Inter", sans-serif;
  font-size: 16px;
  color: #1A1A1A;
  -webkit-appearance: none; -moz-appearance: none; appearance: none;
  cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231A1A1A' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
}
/* placeholder en gris cuando aún no se elige nada (opción vacía seleccionada) */
.pv-search .jet-select__control:has(option[value=""]:checked) { color: #B3B3B3; }
.pv-search .jet-select__control:focus {
  outline: none; border-color: #D92E2E;
  box-shadow: 0 0 0 3px rgba(217,46,46,.12);
}

/* ---- Ranges (Precio / Metraje) — misma caja/altura que los selects ---- */
.pv-search .jet-range {
  height: 48px;
  border: 1px solid #D9D9D9;
  border-radius: 8px;
  background: #fff;
  padding: 0 16px;
  display: flex; flex-direction: column; justify-content: center; gap: 4px;
}
.pv-search .jet-range__slider { border: 0; margin: 0; padding: 0; height: 18px; }
.pv-search .jet-range__slider__track       { background: #E6E6E6 !important; }
.pv-search .jet-range__slider__track__range { background: #D92E2E !important; }   /* relleno en rojo de marca */
.pv-search .jet-range__slider__input::-webkit-slider-thumb {
  background: #fff; border: 2px solid #D92E2E; box-shadow: 0 1px 3px rgba(0,0,0,.2);
}
.pv-search .jet-range__slider__input::-moz-range-thumb {
  background: #fff; border: 2px solid #D92E2E;
}
.pv-search .jet-range__values {
  font-family: "Inter", sans-serif; font-size: 13px; font-weight: 500; color: #1A1A1A; line-height: 1;
}

/* ---- Botón "Buscar mi hogar" ---- */
.pv-search .apply-filters__button {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  height: 48px; padding: 0 24px;
  background: #D92E2E; color: #fff;
  font-family: "Inter", sans-serif; font-weight: 600; font-size: 16px;
  border: none; border-radius: 8px; cursor: pointer; white-space: nowrap;
  transition: background .2s ease;
}
.pv-search .apply-filters__button:hover { background: #B81F1F; }
.pv-search .apply-filters__button::before {            /* icono de lupa (como el Figma) */
  content: ""; width: 18px; height: 18px; flex: 0 0 auto;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='M21 21l-4.35-4.35'/%3E%3C/svg%3E") no-repeat center / contain;
}

/* ---- Responsive ---- */
/* Tablet (≤1024): tarjeta en columna; cada grupo sigue siendo fila de 2 → rejilla 2×2 + botón ancho */
@media (max-width: 1024px) {
  .pv-search { flex-direction: column !important; align-items: stretch; gap: 16px; padding: 20px 22px; }
  .pv-search .jet-filters-group { gap: 16px; }
  .pv-search .apply-filters__button { width: 100%; height: 50px; }
}
/* Teléfono (≤680): todo a 1 columna, tap targets grandes; 16px = evita el zoom de iOS al enfocar */
@media (max-width: 680px) {
  .pv-search { padding: 16px; gap: 14px; border-radius: 14px; }
  .pv-search .jet-filters-group { display: grid!important; grid-template-columns: 1fr 1fr!important; gap: 8px; align-items: end; }
  .pv-search .jet-select__control,
  .pv-search .jet-range { height: 52px; font-size: 16px; }
  .pv-search .jet-filter-label { font-size: 15px; }
  .pv-search .apply-filters__button { height: 54px; font-size: 17px; }
}


/* ============================================================
   PÁGINA DE PROYECTOS (archive, page 845)
   Hero + barra de filtros sticky (AJAX multi-zona) + secciones por zona.
   Clases: pv-arch-hero · pv-archfilter · pv-zona/pv-zona-title/pv-zona-grid
   Tarjeta: listing 12067 con clases pv-card-*
   ============================================================ */

/* ---- Hero ---- */
.pv-arch-hero {
  position: relative;
  min-height: 360px;
  padding: 90px 24px;
  display: flex; flex-direction: column; justify-content: center; align-items: center;
  text-align: center;
  background-size: cover; background-position: center;
}
.pv-arch-hero::after { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.35); z-index: 0; }
.pv-arch-hero > * { position: relative; z-index: 1; }
.pv-arch-hero-title .elementor-heading-title {
  color: #fff; font-family: "Inter", sans-serif; font-weight: 700; font-size: 48px; line-height: 1.15; margin: 0;
}
.pv-arch-hero-sub .elementor-heading-title {
  color: rgba(255,255,255,.92); font-family: "Inter", sans-serif; font-weight: 400; font-size: 20px; margin: 12px 0 0;
}

/* ---- Barra de filtros STICKY ---- */
.pv-archfilter {
  position: sticky;
  top: var(--pv-header-h, 0px);        /* si el header es sticky, ajusta --pv-header-h a su alto */
  z-index: 30;
  background: #fff;
  box-shadow: 0 6px 20px rgba(0,0,0,.08);
  padding: 16px 24px;
}
.pv-archfilter .jet-filters-group {
  display: flex; flex-wrap: wrap; gap: 14px; align-items: flex-end;
  max-width: 1200px; margin: 0 auto;
}
.pv-archfilter .jet-smart-filters-select { flex: 1 1 160px; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.pv-archfilter .jet-filter-label { font-family: "Inter", sans-serif; font-weight: 600; font-size: 14px; color: #1A1A1A; margin: 0; }
.pv-archfilter .jet-select { position: relative; }
.pv-archfilter .jet-select__control {
  width: 100%; height: 46px; padding: 0 38px 0 14px;
  border: 1px solid #D9D9D9; border-radius: 8px; background-color: #fff;
  font-family: "Inter", sans-serif; font-size: 15px; color: #1A1A1A;
  -webkit-appearance: none; -moz-appearance: none; appearance: none; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231A1A1A' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 12px center;
}
.pv-archfilter .jet-select__control:has(option[value=""]:checked) { color: #B3B3B3; }
.pv-archfilter .jet-select__control:focus { outline: none; border-color: #D92E2E; box-shadow: 0 0 0 3px rgba(217,46,46,.12); }

/* ---- Secciones por zona ---- */
.pv-zona { max-width: 1240px; margin: 0 auto; padding: 48px 24px 0; }
.pv-zona-title .elementor-heading-title {
  font-family: "Inter", sans-serif; font-weight: 700; font-size: 30px; color: #1A1A1A; margin: 0 0 12px;
}
.pv-zona-grid .jet-listing-grid__items { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 28px; }

/* ---- Tarjeta de proyecto (listing 12067) — estructura del Figma ----
   OJO: en un listing los CONTENEDORES no reciben _css_classes (solo `e-con`);
   sí lo reciben los WIDGETS. Por eso la tarjeta/cuerpo/specs/finanzas se
   apuntan por :has() según el widget que contienen. */

/* Alturas iguales: la celda del grid se estira y la tarjeta la llena */
.pv-zona-grid .jet-listing-grid__item { width: auto !important; max-width: none !important; align-self: stretch; display: flex; }
.pv-zona-grid .jet-listing-grid__item > .elementor { width: 100%; display: flex; flex-direction: column; }

/* Tarjeta = contenedor que contiene la imagen (imagen a sangre, sin padding) */
:is(.elementor-12067, .elementor-12546) .e-con:has(> .pv-card-img) {
  position: relative; flex: 1; width: 100%;
  background: #fff; border-radius: 16px; overflow: hidden;
  box-shadow: 0 6px 20px rgba(0,0,0,.08);
  display: flex; flex-direction: column;
  padding: 0 !important; gap: 0 !important;
}

/* Imagen — cubre todo el ancho superior, sin bordes */
:is(.elementor-12067, .elementor-12546) .pv-card-img { margin: 0 !important; width: 100%; }
:is(.elementor-12067, .elementor-12546) .pv-card-img,
:is(.elementor-12067, .elementor-12546) .pv-card-img .elementor-widget-container,
:is(.elementor-12067, .elementor-12546) .pv-card-img a,
:is(.elementor-12067, .elementor-12546) .pv-card-img img { display: block; width: 100%; line-height: 0; }
:is(.elementor-12067, .elementor-12546) .pv-card-img img { aspect-ratio: 16 / 10; object-fit: cover; }

/* Tag sobre la imagen (ESTADO del proyecto) — punto de estado en vez de pin */
:is(.elementor-12067, .elementor-12546) .pv-card-tag {
  position: absolute; top: 14px; right: 14px; z-index: 3; margin: 0 !important;
  background: rgba(20,20,20,.6); border-radius: 999px; padding: 6px 13px 6px 25px;
  -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px);
}
:is(.elementor-12067, .elementor-12546) .pv-card-tag::before {
  content: ""; position: absolute; left: 12px; top: 50%; transform: translateY(-50%);
  width: 7px; height: 7px; border-radius: 50%; background: #4ED17E;   /* punto de estado */
}
:is(.elementor-12067, .elementor-12546) .pv-card-tag .jet-listing-dynamic-terms,
:is(.elementor-12067, .elementor-12546) .pv-card-tag .jet-listing-dynamic-field__content,
:is(.elementor-12067, .elementor-12546) .pv-card-tag a,
:is(.elementor-12067, .elementor-12546) .pv-card-tag span {
  color: #fff; font-family: "Inter", sans-serif; font-weight: 600; font-size: 11px;
  text-transform: uppercase; letter-spacing: .03em; text-decoration: none; line-height: 1;
}

/* Cuerpo = contenedor que contiene el título (compacto) */
:is(.elementor-12067, .elementor-12546) .e-con:has(> .pv-card-title) {
  flex: 1; display: flex; flex-direction: column; gap: 10px; padding: 16px 18px 18px;
}
/* Nombre del proyecto — MAYÚSCULAS, semibold (como el Figma) */
:is(.elementor-12067, .elementor-12546) .pv-card-title h3,
:is(.elementor-12067, .elementor-12546) .pv-card-title .jet-listing-dynamic-field__content {
  font-family: "Inter", sans-serif; font-weight: 600; font-size: 18px; color: #1A1A1A; margin: 0;
  line-height: 1.25; text-transform: uppercase; letter-spacing: .02em;
}

/* Fila de specs = área (izq) · hab · baños (der) — ocupa el 100% del ancho */
:is(.elementor-12067, .elementor-12546) .e-con:has(> .pv-card-area),
:is(.elementor-12067, .elementor-12546) .e-con:has(> .pv-card-hab),
:is(.elementor-12067, .elementor-12546) .e-con:has(> .pv-card-banos) {
  display: flex !important; flex-direction: row !important; align-items: center; flex-wrap: nowrap; width: 100%; gap: 0;
  padding: 0 !important;
}
:is(.elementor-12067, .elementor-12546) .pv-card-area, :is(.elementor-12067, .elementor-12546) .pv-card-hab, :is(.elementor-12067, .elementor-12546) .pv-card-banos { width: auto; }
:is(.elementor-12067, .elementor-12546) .pv-card-area .jet-listing-dynamic-field__content,
:is(.elementor-12067, .elementor-12546) .pv-card-hab .jet-listing-dynamic-field__content,
:is(.elementor-12067, .elementor-12546) .pv-card-banos .jet-listing-dynamic-field__content {
  display: flex; align-items: center; gap: 6px; white-space: nowrap;
  font-family: "Inter", sans-serif; font-size: 13.5px; color: #4A4A4A;
}
:is(.elementor-12067, .elementor-12546) .pv-card-hab { margin-left: auto; padding-left: 14px; border-left: 1px solid #E2E2E2; }
:is(.elementor-12067, .elementor-12546) .pv-card-banos { margin-left: 14px; padding-left: 14px; border-left: 1px solid #E2E2E2; }
:is(.elementor-12067, .elementor-12546) .pv-card-hab .jet-listing-dynamic-field__content::before {
  content: ""; width: 18px; height: 18px; flex: 0 0 auto;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%234A4A4A' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 4v16'/%3E%3Cpath d='M2 8h18a2 2 0 0 1 2 2v10'/%3E%3Cpath d='M2 17h20'/%3E%3Cpath d='M6 8v9'/%3E%3C/svg%3E") no-repeat center / contain;
}
:is(.elementor-12067, .elementor-12546) .pv-card-banos .jet-listing-dynamic-field__content::before {
  content: ""; width: 17px; height: 17px; flex: 0 0 auto;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17' viewBox='0 0 24 24' fill='none' stroke='%234A4A4A' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6 6.5 3.5a1.5 1.5 0 0 0-1-.5C4.683 3 4 3.683 4 4.5V17a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5'/%3E%3Cline x1='10' y1='5' x2='8' y2='7'/%3E%3Cline x1='2' y1='12' x2='22' y2='12'/%3E%3Cline x1='7' y1='19' x2='7' y2='21'/%3E%3Cline x1='17' y1='19' x2='17' y2='21'/%3E%3C/svg%3E") no-repeat center / contain;
}

/* Precio */
:is(.elementor-12067, .elementor-12546) .pv-card-precio .jet-listing-dynamic-field__content {
  font-family: "Inter", sans-serif; font-weight: 700; font-size: 19px; color: #1A1A1A;
}

/* Fila de finanzas = letra + ingreso lado a lado (50/50), pegada al precio */
:is(.elementor-12067, .elementor-12546) .e-con:has(> .pv-card-letra),
:is(.elementor-12067, .elementor-12546) .e-con:has(> .pv-card-ingreso) {
  display: flex !important; flex-direction: row !important; flex-wrap: nowrap; width: 100%; gap: 14px;
  padding: 0 !important; margin-top: -4px;
}
:is(.elementor-12067, .elementor-12546) .pv-card-letra, :is(.elementor-12067, .elementor-12546) .pv-card-ingreso { flex: 1 1 0; min-width: 0; }
:is(.elementor-12067, .elementor-12546) .pv-card-letra .jet-listing-dynamic-field__content,
:is(.elementor-12067, .elementor-12546) .pv-card-ingreso .jet-listing-dynamic-field__content {
  font-family: "Inter", sans-serif; font-size: 12px; color: #8A8A8A; line-height: 1.35;
}

/* Botón full-width, centrado, pegado al fondo */
:is(.elementor-12067, .elementor-12546) .pv-card-btn { margin-top: auto; width: 100%; }
/* wrappers a block 100% — PERO NO el <a> (eso lo dejaba sin centrar) */
:is(.elementor-12067, .elementor-12546) .pv-card-btn .jet-listing,
:is(.elementor-12067, .elementor-12546) .pv-card-btn .jet-listing-dynamic-link { display: block !important; width: 100%; }
:is(.elementor-12067, .elementor-12546) .pv-card-btn a {
  display: flex !important; align-items: center !important; justify-content: center !important; width: 100%;
  background: #D92E2E; color: #fff; font-family: "Inter", sans-serif; font-weight: 600; font-size: 15px;
  height: 48px; border-radius: 8px; text-decoration: none; transition: background .2s ease;
}
:is(.elementor-12067, .elementor-12546) .pv-card-btn a:hover { background: #B81F1F; }

/* Interacción hover en la tarjeta (lift + zoom de imagen) */
:is(.elementor-12067, .elementor-12546) .e-con:has(> .pv-card-img) { transition: transform .25s ease, box-shadow .25s ease; }
:is(.elementor-12067, .elementor-12546) .e-con:has(> .pv-card-img):hover { transform: translateY(-5px); box-shadow: 0 16px 38px rgba(0,0,0,.15); }
:is(.elementor-12067, .elementor-12546) .pv-card-img img { transition: transform .45s ease; }
:is(.elementor-12067, .elementor-12546) .e-con:has(> .pv-card-img):hover .pv-card-img img { transform: scale(1.05); }

/* ---- Responsive ---- */
@media (max-width: 1024px) {
  .pv-archfilter .jet-smart-filters-select { flex: 1 1 calc(50% - 7px); }
  .pv-zona-grid .jet-listing-grid__items { grid-template-columns: repeat(2, 1fr); gap: 20px; }
}
@media (max-width: 768px) {
  .pv-arch-hero { min-height: 260px; padding: 60px 18px; }
  .pv-arch-hero-title .elementor-heading-title { font-size: 32px; }
  .pv-arch-hero-sub .elementor-heading-title { font-size: 16px; }
  .pv-zona { padding: 36px 18px 0; }
  .pv-zona-title .elementor-heading-title { font-size: 24px; margin-bottom: 18px; }
}
@media (max-width: 600px) {
  .pv-archfilter { padding: 12px 16px; }
  .pv-archfilter .jet-filters-group { gap: 12px; }
  .pv-archfilter .jet-smart-filters-select { flex: 1 1 100%; }
  .pv-archfilter .jet-select__control { height: 50px; font-size: 16px; }   /* 16px = sin zoom iOS */
  .pv-zona-grid .jet-listing-grid__items { grid-template-columns: 1fr; gap: 18px; }
	
	/* Nombre del proyecto — MAYÚSCULAS, semibold (como el Figma) */
:is(.elementor-12067, .elementor-12546) .pv-card-title h3,
:is(.elementor-12067, .elementor-12546) .pv-card-title .jet-listing-dynamic-field__content {
  font-weight: 600; font-size: 18px; 
}/* Precio del proyecto — MAYÚSCULAS, semibold (como el Figma) */
	.pv-card-precio .jet-listing-dynamic-field__content { font-size: 16px!important;}
}


/* ============================================================
   Barra de filtros — página de Proyectos (sticky bajo el header)
   Clase  pv-filterbar  en el CONTENEDOR DE LOS SELECTS (el interno,
   72be3f4). El contenedor general (9767cc1) va SIN fondo (transparente).
   ============================================================ */
.pv-filterbar {
  position: sticky; top: 65px; z-index: 50;            /* bajo el header sticky (~65px) */
  background: #fff;
  box-shadow: 0 4px 16px rgba(0,0,0,.06);
  width: 100vw; margin-left: calc(50% - 50vw);         /* full-bleed: ocupa el 100% del ancho de pantalla */
  padding: 12px 24px !important;
}
.pv-filterbar .jet-filters-group {
  display: flex; flex-wrap: wrap; gap: 12px; align-items: center;
margin: 0 auto;                   /* filtros centrados dentro de la barra */
}
.pv-filterbar .jet-smart-filters-select { flex: 1 1 150px; min-width: 0; }
.pv-filterbar .jet-filter-label { display: none; }     /* el placeholder de cada select ya describe el filtro */
.pv-filterbar .jet-select { position: relative; }
.pv-filterbar .jet-select__control {
  width: 100%; height: 44px; padding: 0 36px 0 14px;
  border: 1px solid #E0E0E0; border-radius: 8px; background-color: #fff;
  font-family: "Inter", sans-serif; font-size: 14px; color: #1A1A1A;
  -webkit-appearance: none; -moz-appearance: none; appearance: none; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231A1A1A' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 12px center;
}
.pv-filterbar .jet-select__control:has(option[value=""]:checked) { color: #9A9A9A; }
.pv-filterbar .jet-select__control:hover { border-color: #C5C5C5; }
.pv-filterbar .jet-select__control:focus { outline: none; border-color: #D92E2E; box-shadow: 0 0 0 3px rgba(217,46,46,.1); }

@media (max-width: 1024px) {
  .pv-filterbar .jet-smart-filters-select { flex: 1 1 calc(33.333% - 8px); }
}
@media (max-width: 680px) {
  .pv-filterbar { top: 60px; padding: 10px 16px !important; }
  .pv-filterbar .jet-filters-group { gap: 10px; }
  .pv-filterbar .jet-smart-filters-select { flex: 1 1 calc(50% - 5px); }
  .pv-filterbar .jet-select__control { height: 46px; font-size: 16px; }   /* 16px = sin zoom iOS */
}


/* ============================================================
   Botón "Limpiar filtros" (clase pv-clear) — visible SOLO con filtros activos.
   El JS añade  body.pv-filtros-activos  cuando hay algún filtro puesto.
   ============================================================ */
/* Contenedor de la barra en COLUMNA → el botón va DEBAJO de los selects, no
   al lado (evita que su aparición encoja los 6 selects a 4 columnas). gap:0
   para que el blanco del botón pegue con el de la barra (sin franja). */
.e-con:has(> .pv-filterbar) { flex-direction: column !important; gap: 0 !important; }

.pv-clear { display: none !important; }
body.pv-filtros-activos .pv-clear {
  display: block !important;
  width: 100vw; margin-left: calc(50% - 50vw);   /* full-bleed, igual que la barra */
  background: #fff;                               /* mismo blanco que los filtros → no flota */
  padding: 0 24px 12px;
  text-align: right;
}
.pv-clear .elementor-button {
  display: inline-flex !important; align-items: center; gap: 6px; width: auto;
  background: transparent !important; box-shadow: none !important; border: 0 !important;
  color: #D92E2E !important; fill: #D92E2E !important;
  font-family: "Inter", sans-serif; font-weight: 600; font-size: 13px;
  padding: 6px 2px !important; min-height: 0;
}
.pv-clear .elementor-button:hover { color: #B81F1F !important; text-decoration: underline; }
.pv-clear .elementor-button-icon { margin: 0 !important; }
@media (max-width: 680px) {
  body.pv-filtros-activos .pv-clear { padding: 4px 16px 2px; }
}

/* ============================================================
   PÁGINA DE ZONA (/ubicacion/<slug>/) — listings 12546 (tarjeta
   de modelo) y 12547 (vista de proyecto). La tarjeta de modelo
   reutiliza el CSS de .pv-card-* (compartido arriba vía :is con
   .elementor-12546). Aquí van los ajustes propios de modelo + layout.
   ============================================================ */

/* Alturas iguales en la fila de modelos (igual que .pv-zona-grid) */
.pv-pv-modelos .jet-listing-grid__item { align-self: stretch; display: flex; }
.pv-pv-modelos .jet-listing-grid__item > .elementor { width: 100%; display: flex; flex-direction: column; }

/* El tag del modelo es un pill de UBICACIÓN (📍 + zona), no estado:
   sin el punto verde, padding simétrico, y estilo del texto (el contenido
   viene de un text-editor con shortcode, no de un dynamic-field). */
.elementor-12546 .pv-card-tag { padding: 6px 13px; }
.elementor-12546 .pv-card-tag::before { display: none; }
.elementor-12546 .pv-card-tag,
.elementor-12546 .pv-card-tag p {
  margin: 0; color: #fff; font-family: "Inter", sans-serif; font-weight: 600;
  font-size: 11px; text-transform: uppercase; letter-spacing: .03em; line-height: 1;
}
.elementor-12546 .pv-card-tag img.emoji { width: 12px; height: 12px; vertical-align: -2px; margin-right: 3px; }

/* Vista de proyecto: separación entre proyectos + título de cada proyecto */
.pv-zona-proyectos .jet-listing-grid__item { margin-bottom: 8px; }
.pv-pv-title h1, .pv-pv-title h2, .pv-pv-title h3,
.pv-pv-title .jet-listing-dynamic-field__content {
  font-family: "Inter", sans-serif; font-weight: 700; font-size: 26px; color: #1A1A1A;
  margin: 0 0 22px; line-height: 1.2;
}

/* ============================================================
   BARRA DE TABS de proyecto (sticky, desktop + móvil)
   .pv-tabs-bar (contenedor sticky) > .pv-tabs (grid) > items (botón-pill).
   El JS (provivienda.js → pvZonaTabs) muestra un proyecto a la vez y marca
   .is-active en el tab del proyecto consultado.
   ============================================================ */
/* El contenedor de la barra de tabs (su clase custom no emite en este render,
   así que lo apuntamos por :has(> .pv-tabs)). Sticky debajo del header (~62px). */
.pv-zona-archive .e-con:has(> .pv-tabs) {
  position: -webkit-sticky; position: sticky;
  top: var(--pv-header-h, 105px); z-index: 30;
  margin: 0; padding: 0 3%;                           /* alineado con los proyectos (padding lateral 3%) */
  background: transparent;
  transition: background .2s ease, box-shadow .2s ease;
}
/* SOLO cuando se pega al top (la clase la pone provivienda.js → pvStickyTabs):
   fondo blanco + sombra sutil, igual que la barra de filtros de la 845. La sombra
   vive en este contenedor EXTERIOR, así que el scroll de los items no la recorta. */
.pv-zona-archive .e-con.pv-tabs-stuck:has(> .pv-tabs) {
  background: #fff; box-shadow: 0 6px 20px rgba(0,0,0,.08);
}
/* anula el grid de JetEngine → una fila horizontal con scroll. overflow-x:auto
   CONTIENE el scroll (sin esto, en móvil con body overflow-x:hidden los tabs se
   cortan sin poder alcanzarlos = el "ancho infinito"). */
.pv-tabs .jet-listing-grid__items {
  display: flex !important; grid-template-columns: none !important;
  flex-wrap: nowrap; gap: 10px; margin: 0 !important; padding: 14px 0;
  overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch;
  scrollbar-width: thin; scroll-snap-type: x proximity; 
}
.pv-tabs .jet-listing-grid__items::-webkit-scrollbar { height: 5px; }
.pv-tabs .jet-listing-grid__items::-webkit-scrollbar-thumb { background: rgba(0,0,0,.18); border-radius: 999px; }
/* cada item = pill-botón */
.pv-tabs .jet-listing-grid__item {
  flex: 0 0 auto; width: auto !important; max-width: none !important; min-height: 0;
  scroll-snap-align: start; cursor: pointer; -webkit-user-select: none; user-select: none;
  background: #F1ECE4; border-radius: 999px; padding: 12px 22px;
  transition: background .18s ease, color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.pv-tabs .jet-listing-grid__item > .elementor { width: auto; }
.pv-tabs .jet-listing-grid__item .e-con {
  display: flex !important; flex-direction: row; align-items: center; gap: 7px;
  padding: 0 !important; flex-wrap: nowrap;
}
.pv-tab-name, .pv-tab-count { margin: 0 !important; }
.pv-tab-name .jet-listing-dynamic-field__content {
  font-family: "Inter", sans-serif; font-weight: 600; font-size: 16px; color: #2A2A2A;
  white-space: nowrap; line-height: 1;
}
.pv-tab-count .jet-listing-dynamic-field__content {
  font-family: "Inter", sans-serif; font-weight: 500; font-size: 12px; color: #9A9A9A;
  white-space: nowrap; line-height: 1;
}
.pv-tabs .jet-listing-grid__item:hover { background: #E7E0D5; }
/* ACTIVO — que se entienda que es el proyecto consultado */
.pv-tabs .jet-listing-grid__item.is-active {
  background: #D92E2E; box-shadow: 0 6px 16px rgba(217,46,46,.32); transform: translateY(-1px);
}
.pv-tabs .jet-listing-grid__item.is-active .pv-tab-name .jet-listing-dynamic-field__content { color: #fff; }
.pv-tabs .jet-listing-grid__item.is-active .pv-tab-count .jet-listing-dynamic-field__content { color: rgba(255,255,255,.82); }

@media (max-width: 767px) {
  .pv-zona-archive .e-con:has(> .pv-tabs) { margin: 0; padding: 0 3%; }
  .pv-tabs .jet-listing-grid__items { gap: 8px; padding: 11px 0; }
  .pv-tabs .jet-listing-grid__item { padding: 12px 20px; }
  .pv-tab-name .jet-listing-dynamic-field__content { font-size: 13px; }
  .pv-tab-count .jet-listing-dynamic-field__content { font-size: 11.5px; }
	.pv-zona-archive .e-con:has(> .pv-tabs) {
  position: -webkit-sticky; position: sticky;
  top: var(--pv-header-h, 63px); }
}
/* ============================================================
  Oculta titulo de grid de proyectos en el tab de la zona
   ============================================================ */
.elementor-element.elementor-element-pvtit1.pv-pv-title.elementor-widget.elementor-widget-jet-listing-dynamic-field {
	display: none;
}

/* ============================================================
   HERO de la zona — FULL-BLEED, 2 columnas (texto izq + galería der).
   Marco NATIVO en Elementor: container pvzhero1 → pvheroL (texto) / pvheroR
   (galería). La galería la arma [pv_hero_galeria] (.pv-hero-gal) y la desliza
   provivienda.js (pvHeroGallery). El texto de la izq son widgets nativos
   editables; estas reglas solo dan layout + estilo de marca.
   ============================================================ */
/* El #content de GeneratePress es flex y encoge el wrapper de la plantilla a su
   contenido (boxed ~1616px, alineado a la izq). Lo forzamos a ocupar TODO el
   área de contenido → el contenido queda centrado en el viewport y el hero
   puede ir a ancho completo sin offset de scrollbar. */
.pv-zona-archive { flex: 1 1 100%; width: 100%; max-width: 100%; }
/* full-bleed: el ANCHO lo da el wrapper (.pv-zona-archive, arriba). El layout del
   hero — columnas, anchos, paddings, min-height (70vh), flex-direction, gap, fondo
   blanco de la izq — vive ahora en los SETTINGS de Elementor (todo editable desde
   el editor). Aquí solo queda lo estructural que Elementor no expone. */
.elementor-element-pvheror { position: relative; }   /* ancla la galería absoluta */
/* los wrappers del widget de galería no deben aportar alto (si no, la imagen los infla) */
.elementor-element-pvheror .elementor-widget-shortcode,
.elementor-element-pvherogal,
.elementor-element-pvherogal > .elementor-widget-container,
.elementor-element-pvherogal .elementor-shortcode { position: static; }

/* Los textos del hero (back-link, breadcrumb, subtítulo) son widgets text-editor:
   su TAMAÑO / familia / peso / color / espaciado se EDITAN en Elementor (Style +
   Advanced del widget). Aquí solo el estilo de los <a> (los links toman el color
   del widget vía inherit) y el realce del término — que el text-editor no expone. */
.elementor-element-pvherol .pv-hero-back, .elementor-element-pvmherol .pv-hero-back { display: inline-block; text-decoration: none; color: inherit; font: inherit; }
.elementor-element-pvherol .pv-hero-crumb a, .elementor-element-pvmherol .pv-hero-crumb a { text-decoration: none; color: inherit; font: inherit; }
.elementor-element-pvherol .pv-hero-back:hover, .elementor-element-pvherol .pv-hero-crumb a:hover,
.elementor-element-pvmherol .pv-hero-back:hover, .elementor-element-pvmherol .pv-hero-crumb a:hover { color: #D92E2E; }
.elementor-element-pvherol .pv-hero-crumb b, .elementor-element-pvmherol .pv-hero-crumb b { color: #1A1A1A; font-weight: 500; }
/* título del hero: ahora es un <h1> dentro de un text-editor (para campo dinámico
   por zona zona_hero_titulo) → hereda la tipografía del widget, no la del tema. */
.elementor-element-pvheroh1 h1 { font: inherit; letter-spacing: inherit; color: inherit; margin: 0; }

/* ---------- galería: ABSOLUTA, llena la columna sin inflar su alto ---------- */
.pv-hero-gal { position: absolute; top: 0; right: 0; bottom: 0; left: 0; width: 100%; height: 100%; overflow: hidden; background: #0e0e0e; }
.pv-hero-gal-track { display: flex; width: 100%; height: 100%; transition: transform .55s cubic-bezier(.5,.12,.13,1); will-change: transform; }
.pv-hero-gal-slide { flex: 0 0 100%; width: 100%; height: 100%; }
.pv-hero-gal-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* flechas — MÁS VISIBLES (círculo blanco con sombra + chevron oscuro) */
.pv-hero-gal-arrow {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 54px; height: 54px; border-radius: 50%; border: 0; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,.30) !important; color: #FFF!important;
  font-size: 22px; line-height: 1; box-shadow: 0 6px 22px rgba(0,0,0,.30);
  -webkit-appearance: none; appearance: none; padding: 0; z-index: 4;
  transition: background .2s, transform .2s, box-shadow .2s; border-style: solid; border-width: 1px; border-color:rgba(255, 255, 255, 0.13);
  
}
/* Pin de mapa sobre list proyects */

img.map-pin.alignnone.wp-image-12599.size-full {
    margin-right: 4px;
    margin-top: 0px;
    margin-bottom: -2px;
}

.pv-hero-gal-arrow:hover { background: #fff !important; transform: translateY(-50%) scale(1.09); box-shadow: 0 9px 28px rgba(0,0,0,.38); color: #1A1A1A!important; }
.pv-hero-gal-prev { left: 22px; }
.pv-hero-gal-next { right: 22px; }
/* dots */
.pv-hero-gal-dots { position: absolute; left: 0; right: 0; bottom: 24px; display: flex; gap: 9px; justify-content: center; z-index: 4; }
.pv-hero-gal-dot { width: 9px; height: 9px; padding: 0; border: 0; border-radius: 50%; cursor: pointer; background: rgba(255,255,255,.55) !important; -webkit-appearance: none; appearance: none; transition: background .25s, width .25s; }
.pv-hero-gal-dot.is-active { background: #D92E2E !important; width: 28px; border-radius: 6px; }
.pv-hero-gal.is-single .pv-hero-gal-arrow, .pv-hero-gal.is-single .pv-hero-gal-dots { display: none; }

@media (max-width: 880px) {
  .elementor-element-pvzhero1 { min-height: 0; flex-direction: column !important; }
  .elementor-element-pvherol, .elementor-element-pvheror { flex: 1 1 100%; max-width: 100%; }
  .elementor-element-pvheror { order: 1; min-height: 46vh; }
  .elementor-element-pvherol { order: 2; padding: 32px clamp(18px, 6vw, 30px) 42px !important; }
  .pv-hero-gal-arrow { width: 44px; height: 44px; font-size: 18px; }
  .pv-hero-gal-prev { left: 12px; } .pv-hero-gal-next { right: 12px; }
}

/* ============================================================
   BANDAS DE CONTENIDO de la vista de proyecto (shortcodes
   [pv_narrativa] / [pv_amenidades] / [pv_ubicacion] / [pv_form]).
   ============================================================ */
.pv-band-wrap { width: 100%; }
.pv-band { padding: 56px 0; }
.pv-band .pv-narr-eyebrow, .pv-band .pv-amen-eyebrow, .pv-band .pv-form-eyebrow {
  font-family: "Inter", sans-serif; font-size: 13px; font-weight: 600; letter-spacing: .12em;
  text-transform: uppercase; color: #D92E2E; margin: 0 0 10px;
}

/* Narrativa (centrada, formato del diseño) */
.pv-narrativa { max-width: 780px; margin: 0 auto; text-align: center; }
.pv-narr-title { font-family: "Inter", sans-serif; font-weight: 700; font-size: 34px; line-height: 1.2; color: #1A1A1A; margin: 0 0 22px; letter-spacing: -.5px; }
.pv-narr-title span { color: #D92E2E; }
.pv-narr-text p { font-family: "Inter", sans-serif; font-size: 16px; line-height: 1.75; color: #5A5A5A; margin: 0 0 16px; }
.pv-narr-btn { display: inline-flex; align-items: center; margin-top: 24px; background: #D92E2E; color: #fff; font-family: "Inter", sans-serif; font-weight: 600; font-size: 15px; padding: 14px 30px; border-radius: 8px; text-decoration: none; transition: background .2s; }
.pv-narr-btn:hover { background: #B81F1F; }

/* Áreas sociales (título centrado + tiles, formato del diseño) */
.pv-amenidades { text-align: center; }
.pv-amen-title { font-family: "Inter", sans-serif; font-weight: 400; font-size: 34px; color: #1A1A1A; margin: 0 0 30px; letter-spacing: -.5px; text-align: center; }
.pv-amen-title span { font-weight: 700; }
.pv-amen-carousel { position: relative; }
.pv-amen-carousel.pv-no-scroll .pv-amen-nav { display: none; }
.pv-amen-track { display: flex; gap: 18px; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; padding-bottom: 4px; }
.pv-amen-track::-webkit-scrollbar { display: none; }
.pv-amen-slide { flex: 0 0 calc(33.333% - 12px); scroll-snap-align: start; margin: 0; position: relative; border-radius: 16px; overflow: hidden; }
.pv-amen-slide img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.pv-amen-slide figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 20px 18px; color: #fff; font-family: "Inter", sans-serif; font-weight: 700; font-size: 14px; text-transform: uppercase; letter-spacing: .04em; text-align: center; background: linear-gradient(to top, rgba(0,0,0,.78), rgba(0,0,0,0)); }
.pv-amen-nav { position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; border-radius: 50%; border: 0 !important; background: #fff !important; box-shadow: 0 4px 14px rgba(0,0,0,.18); color: #1A1A1A !important; font-size: 24px; line-height: 1; cursor: pointer; z-index: 2; display: flex; align-items: center; justify-content: center; -webkit-appearance: none; appearance: none; }
.pv-amen-prev { left: -10px; } .pv-amen-next { right: -10px; }
.pv-amen-nav:hover { background: #f5f5f5; }
.pv-amen-chips { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; margin: 24px 0 0; padding: 0; }
.pv-amen-chips li { font-family: "Inter", sans-serif; font-size: 14px; color: #4A4A4A; background: #F1ECE4; border-radius: 999px; padding: 8px 16px; }

/* ============================================================
   HÍBRIDO narrativa/áreas — contenedores Elementor editables en 12547.
   La estructura (centrado/ancho/padding) va por ID; la tipografía de
   título/descripción/botón se edita en los settings de cada widget.
   ============================================================ */
.pv-hl { color: #D92E2E; }                                  /* realce del título (convención *...*) */
.elementor-element-pvnarr { max-width: 780px; margin: 0 auto; padding: 56px 0; text-align: center; }
.elementor-element-pvamen { padding: 56px 0; text-align: center; }
/* el ancla "Agendar mi visita" → sala de ventas no debe quedar bajo header+tabs sticky */
#pv-sala-ventas { scroll-margin-top: 140px; }
@media (max-width: 767px) {
  .elementor-element-pvnarr, .elementor-element-pvamen { padding: 44px 0; }
}

/* Ubicación (texto + tabs + lista numerada IZQ, mapa DER) */
.pv-ubi-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0 0 26px; flex-wrap: wrap; }
.pv-ubi-title { font-family: "Inter", sans-serif; font-weight: 400; font-size: 32px; color: #1A1A1A; margin: 0; letter-spacing: -.5px; }
.pv-ubi-title span { font-weight: 700; }
.pv-ubi-gmaps { font-family: "Inter", sans-serif; font-weight: 600; font-size: 14px; color: #1A1A1A; text-decoration: none; border: 1px solid #D9D9D9; border-radius: 8px; padding: 11px 20px; transition: border-color .2s, color .2s; white-space: nowrap; }
.pv-ubi-gmaps:hover { border-color: #D92E2E; color: #D92E2E; }
.pv-ubi-grid { display: grid; grid-template-columns: 1fr 1.08fr; gap: 40px; align-items: start; }
.pv-ubi-texto { font-family: "Inter", sans-serif; font-size: 16px; line-height: 1.7; color: #5A5A5A; margin: 0 0 24px; }
.pv-ubi-map img { width: 100%; height: auto; border-radius: 16px; display: block; }
.pv-ubi-embed iframe { width: 100%; aspect-ratio: 4 / 3; border: 0; border-radius: 16px; display: block; }
.pv-poi-tabs { display: flex; flex-wrap: wrap; gap: 4px; margin: 0 0 8px; border-bottom: 1px solid #ECECEC; }
.pv-poi-tab { -webkit-appearance: none; appearance: none; border: 0 !important; background: transparent !important; box-shadow: none !important; font-family: "Inter", sans-serif; font-weight: 600; font-size: 14px; color: #8A8A8A !important; padding: 8px 4px; margin-right: 12px; cursor: pointer; border-bottom: 2px solid transparent !important; margin-bottom: -1px; border-radius: 0 !important; }
.pv-poi-tab.is-active { color: #D92E2E !important; border-bottom-color: #D92E2E !important; }
.pv-poi-list { counter-reset: poi; list-style: none; margin: 0; padding: 0; display: none; }
.pv-poi-list.is-active { display: block; }
.pv-poi-list li { counter-increment: poi; display: flex; align-items: center; gap: 12px; padding: 15px 2px; border-bottom: 1px solid #ECECEC; font-family: "Inter", sans-serif; }
.pv-poi-list li::before { content: counter(poi) "."; font-weight: 600; color: #1A1A1A; font-size: 15px; min-width: 16px; }
.pv-poi-list li span { flex: 1; color: #4A4A4A; font-size: 15px; }
.pv-poi-list li i { color: #D92E2E; font-style: normal; font-size: 16px; }

/* Sala de ventas (cabecera + horarios + form-card sobre imagen lifestyle) */
.pv-form { display: block; background: none; box-shadow: none; border-radius: 0; }
.pv-sv-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin: 0 0 24px; flex-wrap: wrap; }
.pv-sv-title { font-family: "Inter", sans-serif; font-weight: 700; font-size: 22px; color: #1A1A1A; margin: 0; display: flex; align-items: center; gap: 8px; }
.pv-sv-ico { display: inline-flex; align-items: center; color: #D92E2E; }
.pv-sv-ico svg { display: block; width: 22px; height: 22px; }
.pv-sv-horarios { display: flex; gap: 44px; }
.pv-sv-horarios > div { font-family: "Inter", sans-serif; font-size: 14px; color: #4A4A4A; }
.pv-sv-horarios span { display: block; text-transform: uppercase; letter-spacing: .06em; font-weight: 600; color: #B0B0B0; font-size: 11px; margin-bottom: 3px; }
/* contacto de sala (dirección/teléfono/mapa) — campos reales sala_* */
.pv-sv-meta { display: flex; flex-direction: column; gap: 12px; align-items: flex-end; text-align: right; }
.pv-sv-contacto { display: flex; flex-direction: column; gap: 4px; align-items: flex-end; font-family: "Inter", sans-serif; font-size: 13px; color: #5A5A5A; }
.pv-sv-contacto a { color: #5A5A5A; text-decoration: none; }
.pv-sv-mapa { color: #D92E2E !important; font-weight: 600; }
.pv-sv-mapa:hover, .pv-sv-tel:hover { text-decoration: underline; }
.pv-poi-dist { color: #9A9A9A; font-weight: 400; }
.pv-sv-body { position: relative; background-size: cover; background-position: center; border-radius: 20px; overflow: hidden; padding: 48px; display: flex; align-items: center; min-height: 560px; }
.pv-sv-card { background: #fff; border-radius: 16px; box-shadow: 0 18px 50px rgba(0,0,0,.2); padding: 36px; max-width: 640px; width: 100%; }
.pv-sv-card-title { font-family: "Inter", sans-serif; font-weight: 700; font-size: 22px; color: #1A1A1A; margin: 0 0 22px; }
.pv-sv-card .gform_fields { display: grid !important; grid-template-columns: repeat(12, 1fr); gap: 14px 18px; margin: 0; padding: 0; list-style: none; }
.pv-sv-card .gform_fields > li.gfield { grid-column: span 12; margin: 0; padding: 0; }
/* media fila (2 columnas) — markup legacy, por ID de campo */
.pv-sv-card #field_1_12, .pv-sv-card #field_1_13, .pv-sv-card #field_1_17, .pv-sv-card #field_1_40,
.pv-sv-card #field_1_4, .pv-sv-card #field_1_11, .pv-sv-card #field_1_26, .pv-sv-card #field_1_27 { grid-column: span 6; }
/* fila completa: intro, Modelo, Mensaje, Consentimiento (+ cualquier width-full / textarea / consent) */
.pv-sv-card #field_1_33, .pv-sv-card #field_1_39, .pv-sv-card #field_1_6, .pv-sv-card #field_1_38,
.pv-sv-card .gfield--width-full, .pv-sv-card li.gfield:has(.ginput_container_textarea), .pv-sv-card li.gfield:has(.ginput_container_consent) { grid-column: span 12; }
/* ocultar campos GF ocultos + HTML vacíos (no deben ocupar celda del grid) */
.pv-sv-card .gfield_visibility_hidden, .pv-sv-card li.gfield_html:empty, .pv-sv-card #field_1_35 { display: none !important; }
.pv-sv-card .gfield_html { font-family: "Inter", sans-serif; font-size: 13px; color: #8A8A8A; line-height: 1.5; }
.pv-sv-card .gfield_label { font-family: "Inter", sans-serif; font-size: 13px; font-weight: 600; color: #4A4A4A; margin-bottom: 4px; }
.pv-sv-card input[type="text"], .pv-sv-card input[type="email"], .pv-sv-card input[type="tel"], .pv-sv-card input[type="number"], .pv-sv-card select, .pv-sv-card textarea { width: 100%; border: 1px solid #E2E2E2; border-radius: 8px; padding: 10px 12px; font-family: "Inter", sans-serif; font-size: 14px; box-sizing: border-box; }
.pv-sv-card .gform_footer { margin-top: 8px; }
.pv-sv-card .gform_footer input[type="submit"], .pv-sv-card .gform_footer button { background: #D92E2E !important; color: #fff !important; border: 0 !important; border-radius: 8px; padding: 13px 28px; font-family: "Inter", sans-serif; font-weight: 600; font-size: 15px; cursor: pointer; width: 100%; }

@media (max-width: 880px) {
  .pv-band { padding: 44px 0; }
  .pv-narr-title, .pv-amen-title, .pv-ubi-title { font-size: 25px; }
  .pv-amen-slide { flex-basis: calc(82% - 12px); }
  .pv-amen-nav { display: none; }
  .pv-ubi-grid { grid-template-columns: 1fr; gap: 24px; }
  .pv-sv-body { padding: 16px; min-height: 0; }
  .pv-sv-card { padding: 24px 20px; }
  .pv-sv-card .gform_fields { grid-template-columns: 1fr; }
  .pv-sv-card .gform_fields > li.gfield { grid-column: 1 / -1 !important; }
  .pv-sv-horarios { gap: 24px; }
  .pv-ubi-head { gap: 12px; }
}

/* ============================================================
   SINGLE DE MODELO (/modelos/<slug>/)
   ============================================================ */
.pv-modelo-single { width: 100%; }
/* HERO: 2 columnas full-bleed (info izq + carrusel der). El carrusel reusa .pv-hero-gal (global). */
.pv-mod-hero { display: grid; grid-template-columns: 42% 58%; width: 100vw; margin-left: calc(50% - 50vw); min-height: 72vh; background: #fff; }
.pv-mod-hero-info { padding: 56px 5% 56px 6%; display: flex; flex-direction: column; justify-content: center; }
.pv-mod-bc { font-family: "Inter", sans-serif; font-size: 13px; color: #9A9A9A; margin: 0 0 30px; display: flex; flex-direction: column; gap: 6px; }
.pv-mod-volver { color: #1A1A1A; text-decoration: none; font-weight: 600; width: max-content; }
.pv-mod-volver:hover { color: #D92E2E; }
.pv-mod-crumbs strong { color: #1A1A1A; }
.pv-mod-crumbs a { color: inherit; text-decoration: none; }
.pv-mod-crumbs a:hover { color: #D92E2E; }
.pv-mod-nombre { font-family: "Inter", sans-serif; font-weight: 700; font-size: 54px; line-height: 1.05; color: #1A1A1A; text-transform: uppercase; margin: 0 0 10px; letter-spacing: -1px; }
.pv-mod-precio { font-family: "Inter", sans-serif; font-size: 18px; color: #5A5A5A; margin: 0 0 28px; }
.pv-mod-datos { list-style: none; margin: 0 0 32px; padding: 0; display: flex; flex-direction: column; gap: 13px; }
.pv-mod-datos li { display: flex; align-items: center; gap: 11px; font-family: "Inter", sans-serif; font-size: 15px; color: #4A4A4A; }
.pv-mod-datos .pv-mod-ic { color: #D92E2E; flex-shrink: 0; }
.pv-mod-cta { display: flex; gap: 14px; flex-wrap: wrap; }
.pv-mod-btn { display: inline-flex; align-items: center; justify-content: center; font-family: "Inter", sans-serif; font-weight: 600; font-size: 15px; padding: 14px 30px; border-radius: 8px; text-decoration: none; line-height: 1; transition: background .2s, color .2s, border-color .2s; }
.pv-mod-btn-primary { background: #D92E2E; color: #fff; }
.pv-mod-btn-primary:hover { background: #b91f1f; color: #fff; }
.pv-mod-btn-ghost { background: #fff; color: #1A1A1A; border: 1px solid #D9D9D9!important; }
.pv-mod-btn-ghost:hover { border-color: #D92E2E; color: #D92E2E!important; }
.pv-mod-hero-media { position: relative; min-height: 72vh; }
/* PLANO DEL MODELO */
.pv-mod-plano { padding: 64px 0; }
.pv-mod-plano-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: 56px; align-items: center; }
.pv-mod-plano-img img { width: 100%; height: auto; border-radius: 16px; display: block; }
.pv-mod-plano-ph { aspect-ratio: 4 / 3; background: #F4F4F4; border-radius: 16px; display: flex; align-items: center; justify-content: center; color: #9A9A9A; font-family: "Inter", sans-serif; }
.pv-mod-plano-im { width: 100%; height: auto; border-radius: 16px; display: block; }
/* pestañas Planta baja / Planta alta (modelos de 2 niveles) */
.pv-mod-plano-tabbar { display: flex; gap: 8px; margin: 0 0 16px; }
.pv-mod-plano-tab { -webkit-appearance: none; appearance: none; border: 1px solid #D92E2E !important; background: #fff !important; color: #D92E2E !important; font-family: "Inter", sans-serif; font-weight: 600; font-size: 14px; padding: 9px 18px; border-radius: 8px; cursor: pointer; transition: background .2s, border-color .2s, color .2s; }
.pv-mod-plano-tab.is-active { background: #D92E2E; border-color: #D92E2E; color: #fff; }
.pv-mod-plano-panes .pv-mod-plano-im { display: none; }
.pv-mod-plano-panes .pv-mod-plano-im.is-active { display: block; }
/* Variantes/tipos (A/C/D): el selector vive en la ficha (der) y controla también el plano (izq). */
.pv-mod-var-tabbar { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; }
.pv-mod-var-tab { -webkit-appearance: none; appearance: none; border: 1px solid #D92E2E !important; background: #fff !important; color: #D92E2E !important; font-family: "Inter", sans-serif; font-weight: 600; font-size: 14px; padding: 9px 18px; border-radius: 8px; cursor: pointer; transition: background .2s, border-color .2s, color .2s; }
.pv-mod-var-tab.is-active { background: #D92E2E; border-color: #D92E2E; color: #fff; }
/* Fix :focus/:active — el tema (GeneratePress) pone fondo oscuro al hacer clic en <button>,
   lo que dejaba el tab activo "negro con rojo" y el botón 360 con estilo raro. Forzamos el estilo. */
.pv-mod-btn:focus, .pv-mod-btn:active { outline: none; box-shadow: none; }
.pv-mod-btn-ghost, .pv-mod-btn-ghost:focus, .pv-mod-btn-ghost:active { background: #fff !important; color: #1A1A1A !important; }
.pv-mod-btn-ghost:hover { background: #fff !important; border-color: #D92E2E !important; color: #D92E2E !important; }
.pv-mod-btn-primary:focus, .pv-mod-btn-primary:active { background: #D92E2E !important; color: #fff !important; }
.pv-mod-plano-tab:focus, .pv-mod-plano-tab:active { background: #fff !important; color: #D92E2E !important; border-color: #D92E2E !important; outline: none; }
.pv-mod-plano-tab.is-active, .pv-mod-plano-tab.is-active:hover, .pv-mod-plano-tab.is-active:focus, .pv-mod-plano-tab.is-active:active { background: #D92E2E !important; border-color: #D92E2E !important; color: #fff !important; }
.pv-mod-var-tab:focus, .pv-mod-var-tab:active { background: #fff !important; color: #D92E2E !important; border-color: #D92E2E !important; outline: none; }
.pv-mod-var-tab.is-active, .pv-mod-var-tab.is-active:hover, .pv-mod-var-tab.is-active:focus, .pv-mod-var-tab.is-active:active { background: #D92E2E !important; border-color: #D92E2E !important; color: #fff !important; }
.pv-mod-var .pv-mod-ficha { display: none; }
.pv-mod-var .pv-mod-ficha.is-active { display: flex; }
.pv-mod-var-planos .pv-mod-plano-im { display: none; }
.pv-mod-var-planos .pv-mod-plano-im.is-active { display: block; }
/* el carrusel del hero del modelo: RELATIVO con altura (Elementor hace el widget
   position:relative con altura 0, así que el .pv-hero-gal absolute colapsaba). */
.elementor-element-pvmheror { position: relative; }
.elementor-element-pvmheror .pv-hero-gal { position: relative; height: 72vh; width: 100%; }
/* Modal del recorrido 360 (Matterport) */
.pv-360-modal { position: fixed; inset: 0; z-index: 99999; background: rgba(0,0,0,.82); display: flex; align-items: center; justify-content: center; padding: 3vh 3vw; }
.pv-360-box { position: relative; width: min(1100px, 96vw); height: min(680px, 88vh); background: #000; border-radius: 12px; overflow: hidden; box-shadow: 0 30px 80px rgba(0,0,0,.5); }
.pv-360-box iframe { width: 100%; height: 100%; border: 0; display: block; }
.pv-360-close { position: absolute; top: 10px; right: 12px; z-index: 2; width: 40px; height: 40px; border: 0; border-radius: 50%; background: rgba(255,255,255,.92); color: #1A1A1A; font-size: 26px; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background .2s; }
.pv-360-close:hover { background: #fff; }
.pv-mod-plano-title { font-family: "Inter", sans-serif; font-weight: 400; font-size: 34px; color: #1A1A1A; margin: 0 0 26px; letter-spacing: -.5px; }
.pv-mod-plano-title span { font-weight: 700; }
.pv-mod-ficha { list-style: none; margin: 0 0 30px; padding: 0; display: flex; flex-direction: column; gap: 15px; }
.pv-mod-ficha li { display: flex; align-items: center; gap: 12px; font-family: "Inter", sans-serif; font-size: 16px; color: #4A4A4A; }
.pv-mod-ficha .pv-mod-ic { color: #1A1A1A; }
/* ÁREAS SOCIALES en el modelo (el heading reusa .pv-amen-title) */
.pv-mod-areas { text-align: center; padding-top: 8px; }
.pv-mod-areas .pv-amen-title { margin-bottom: 32px; }
@media (max-width: 880px) {
  /* hero: apilar; galería arriba */
  .elementor-element-pvmhero { flex-direction: column !important; min-height: 0 !important; }
  .elementor-element-pvmherol, .elementor-element-pvmheror { width: 100% !important; }
  .elementor-element-pvmheror { min-height: 56vh !important; order: -1; }
  .elementor-element-pvmheror .pv-hero-gal { height: 56vh; }
  .pv-mod-nombre { font-size: 36px; }
  /* plano: apilar */
  .elementor-element-pvmplano { flex-direction: column !important; }
  .elementor-element-pvmplanoimg, .elementor-element-pvmplanoinfo { width: 100% !important; }
  .pv-mod-plano-title { font-size: 26px; }
  /* padding lateral más chico en móvil para las bandas */
  .elementor-element-pvmplano, .elementor-element-pvmareas, .elementor-element-pvmubic, .elementor-element-pvmsala { padding-left: 20px !important; padding-right: 20px !important; }
}

/* Centrar los tabs en desktop (en móvil mantienen scroll horizontal desde el inicio) */
@media (min-width: 768px) {
  .pv-tabs .jet-listing-grid__items { justify-content: center; }
}

/* ============================================================
 * PÁGINA DE CONTACTO (page 2911)
 * ============================================================ */
.pv-co-eyebrow{display:inline-block;font:600 13px/1 Inter,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#D92E2E;margin:0 0 14px}
.pv-co-h2{font:700 clamp(26px,3.4vw,38px)/1.15 Inter,sans-serif;color:#1A1A1A;margin:0 0 10px}
.pv-co-h3{font:600 17px/1.3 Inter,sans-serif;color:#1A1A1A;margin:0 0 12px;display:flex;align-items:center;gap:8px}
.pv-co-lead{font:400 16px/1.6 Inter,sans-serif;color:#6b6660;margin:0}
.pv-ci{flex:none;color:inherit}
.pv-co-hero,.pv-co-form,.pv-co-salas,.pv-co-rrhh{width:100vw;margin-left:calc(50% - 50vw);box-sizing:border-box}
/* HERO */
.pv-co-hero{background:#FBF7F4;padding:72px 24px 64px;text-align:center}
.pv-co-hero__in{max-width:760px;margin:0 auto}
.pv-co-title{font:700 clamp(32px,5vw,52px)/1.1 Inter,sans-serif;color:#1A1A1A;margin:0 0 16px}
.pv-co-title span{color:#D92E2E}
.pv-co-sub{font:400 clamp(16px,2vw,19px)/1.6 Inter,sans-serif;color:#6b6660;margin:0 auto 28px;max-width:600px}
.pv-co-chips{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
a.pv-co-chip{display:inline-flex;align-items:center;gap:8px;padding:12px 22px;border-radius:999px;font:600 15px/1 Inter,sans-serif;text-decoration:none;border:1.5px solid #D92E2E;color:#D92E2E;transition:.18s}
a.pv-co-chip:hover{background:#D92E2E;color:#fff}
a.pv-co-chip--solid{background:#D92E2E;color:#fff}
a.pv-co-chip--solid:hover{background:#b81f1f;border-color:#b81f1f}
/* card + btn base */
.pv-co-card{background:#fff;border:1px solid #efe9e3;border-radius:16px;box-shadow:0 4px 24px rgba(40,20,10,.05)}
.pv-co-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 22px;border-radius:10px;background:#D92E2E;color:#fff;font:600 15px/1 Inter,sans-serif;text-decoration:none;transition:.18s}
.pv-co-btn:hover{background:#b81f1f;color:#fff}
.pv-co-btn--lg{padding:15px 30px;font-size:16px}
/* FORM + OFICINAS */
.pv-co-form{background:#fff;padding:64px 24px}
.pv-co-formgrid{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1.5fr 1fr;gap:32px;align-items:start}
.pv-co-formcard{padding:34px 36px}
.pv-co-formcard .pv-co-h2{font-size:28px}
.pv-co-aside{display:flex;flex-direction:column;gap:20px}
.pv-co-office{padding:26px 28px}
.pv-co-office-line{font:400 16px/1.55 Inter,sans-serif;color:#3b3733;margin:0 0 12px}
.pv-co-office-hr{font:400 14px/1.4 Inter,sans-serif;color:#6b6660;display:flex;align-items:center;gap:8px;margin:0 0 18px}
.pv-co-map{border-radius:16px;overflow:hidden;height:240px;border:1px solid #efe9e3}
.pv-co-map iframe{display:block;width:100%;height:100%}
.pv-co-formcard .gform_wrapper{margin:0}
.pv-co-formcard .gform_wrapper .gfield_label{font:500 14px/1.3 Inter,sans-serif!important;color:#3b3733!important}
.pv-co-formcard .gform_wrapper input:not([type=submit]):not([type=checkbox]):not([type=radio]),.pv-co-formcard .gform_wrapper select,.pv-co-formcard .gform_wrapper textarea{border:1px solid #ddd5cd!important;border-radius:10px!important;padding:11px 14px!important;font:400 15px/1.3 Inter,sans-serif!important;background:#fff!important}
.pv-co-formcard .gform_wrapper input:focus,.pv-co-formcard .gform_wrapper select:focus,.pv-co-formcard .gform_wrapper textarea:focus{border-color:#D92E2E!important;outline:none!important;box-shadow:0 0 0 3px rgba(217,46,46,.12)!important}
.pv-co-formcard .gform_footer input[type=submit]{background:#D92E2E!important;border:none!important;border-radius:10px!important;color:#fff!important;font:600 16px/1 Inter,sans-serif!important;padding:14px 30px!important;cursor:pointer;transition:.18s;width:auto!important}
.pv-co-formcard .gform_footer input[type=submit]:hover{background:#b81f1f!important}
/* SALAS */
.pv-co-salas{background:#F7F4F0;padding:64px 24px 72px}
.pv-co-salas__head{text-align:center;max-width:640px;margin:0 auto 36px}
.pv-co-tabs{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:0 auto 34px;max-width:1100px}
/* !important: ganarle a los estilos de botón por defecto de Elementor */
.pv-co-tabs .pv-co-tab{display:inline-flex!important;align-items:center;padding:11px 22px!important;border-radius:999px!important;border:1.5px solid #e4ddd5!important;background:#fff!important;color:#5b554f!important;font:600 15px/1 Inter,sans-serif!important;letter-spacing:normal!important;text-transform:none!important;box-shadow:none!important;cursor:pointer;transition:.18s;width:auto!important}
.pv-co-tabs .pv-co-tab:hover{border-color:#D92E2E!important;color:#D92E2E!important;background:#fff!important}
.pv-co-tabs .pv-co-tab.is-active{background:#D92E2E!important;border-color:#D92E2E!important;color:#fff!important}
.pv-co-tabs .pv-co-tab:focus{outline:none!important}
.pv-co-pane{display:none}
.pv-co-pane.is-active{display:block;animation:pvCoFade .25s ease}
@keyframes pvCoFade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.pv-co-grid{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:22px}
.pv-sala{padding:24px 26px 26px;display:flex;flex-direction:column;border-top:3px solid #D92E2E;transition:.18s}
.pv-sala:hover{box-shadow:0 10px 30px rgba(40,20,10,.10);transform:translateY(-2px)}
.pv-sala__hd{display:flex;align-items:center;justify-content:center;min-height:54px;margin:0 0 16px;padding:0 0 16px;border-bottom:1px solid #f0eae4}
.pv-sala__logo{max-height:46px;max-width:180px;width:auto!important;height:auto!important;object-fit:contain;display:block}
.pv-sala__name{font:700 19px/1.25 Inter,sans-serif;color:#1A1A1A;margin:0;text-align:center}
.pv-sala__tel{display:inline-flex;align-items:center;gap:8px;font:600 16px/1 Inter,sans-serif;color:#D92E2E;text-decoration:none;margin:0 0 10px;width:fit-content}
.pv-sala__tel:hover{text-decoration:underline}
.pv-sala__hr{display:flex;align-items:flex-start;gap:8px;font:400 13.5px/1.45 Inter,sans-serif;color:#6b6660;margin:0 0 18px}
.pv-sala__hr .pv-ci{margin-top:1px}
.pv-sala__ejec{border-top:1px solid #f0eae4;padding-top:16px;margin-top:auto}
.pv-sala__ejec-t{display:block;font:600 12px/1 Inter,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#a39a90;margin:0 0 12px}
.pv-ejec{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 0}
.pv-ejec+.pv-ejec{border-top:1px solid #f6f1ec}
.pv-ejec__n{font:500 15px/1.3 Inter,sans-serif;color:#2a2722}
.pv-ejec__links{display:flex;align-items:center;gap:6px;flex:none}
.pv-ejec__a{display:inline-flex;align-items:center;gap:5px;font:500 13px/1 Inter,sans-serif;color:#6b6660;text-decoration:none;padding:5px 8px;border-radius:8px}
.pv-ejec__a:hover{background:#f3eee9;color:#1A1A1A}
.pv-ejec__ic{display:inline-flex;width:32px;height:32px;align-items:center;justify-content:center;border-radius:8px;color:#6b6660;border:1px solid #ece5de;text-decoration:none;transition:.16s}
.pv-ejec__ic:hover{border-color:#D92E2E;color:#D92E2E}
.pv-ejec__wa:hover{border-color:#25D366;color:#25D366}
/* RRHH */
.pv-co-rrhh{background:#D92E2E;padding:56px 24px;text-align:center}
.pv-co-rrhh__t{font:700 clamp(24px,3vw,32px)/1.2 Inter,sans-serif;color:#fff;margin:0 0 10px}
.pv-co-rrhh__s{font:400 17px/1.5 Inter,sans-serif;color:#ffe3e3;margin:0 0 24px}
.pv-co-rrhh .pv-co-btn{background:#fff;color:#D92E2E}
.pv-co-rrhh .pv-co-btn:hover{background:#1A1A1A;color:#fff}
@media (max-width:860px){.pv-co-formgrid{grid-template-columns:1fr}.pv-co-formcard{padding:26px 22px}}
@media (max-width:640px){.pv-co-tabs{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;padding-bottom:6px}.pv-co-tab{flex:none}.pv-co-grid{grid-template-columns:1fr}}

/* ============================================================
 * CONTACTO NATIVO (page 2911, Elementor) — estilo de WIDGETS
 * (los containers se estilan por settings de Elementor; aquí los widgets,
 *  que SÍ emiten su clase, apuntando a su estructura interna nativa)
 * ============================================================ */
.pv-co-eyebrow .elementor-heading-title{font:600 13px/1 Inter,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#D92E2E}
.pv-co-title .elementor-heading-title{font:700 clamp(32px,5vw,52px)/1.1 Inter,sans-serif;color:#1A1A1A}
.pv-co-title .elementor-heading-title span{color:#D92E2E}
.pv-co-sub .elementor-widget-container,.pv-co-sub p{font:400 clamp(16px,2vw,19px)/1.6 Inter,sans-serif;color:#6b6660;text-align:center;margin:0 auto;max-width:600px}
.pv-co-h2 .elementor-heading-title{font:700 clamp(26px,3.4vw,34px)/1.15 Inter,sans-serif;color:#1A1A1A}
.pv-co-h3 .elementor-heading-title{font:600 17px/1.3 Inter,sans-serif;color:#1A1A1A}
.pv-co-lead p,.pv-co-lead .elementor-widget-container{font:400 16px/1.6 Inter,sans-serif;color:#6b6660;margin:0}
.pv-co-chip .elementor-button{display:inline-flex;align-items:center;gap:8px;padding:12px 22px;border-radius:999px;font:600 15px/1 Inter,sans-serif;border:1.5px solid #D92E2E;color:#D92E2E;background:transparent;transition:.18s}
.pv-co-chip .elementor-button:hover{background:#D92E2E;color:#fff;border-color:#D92E2E}
.pv-co-chip--solid .elementor-button{background:#D92E2E;color:#fff}
.pv-co-chip--solid .elementor-button:hover{background:#b81f1f}
.pv-co-btn .elementor-button{display:inline-flex;align-items:center;gap:8px;padding:12px 22px;border-radius:10px;background:#D92E2E;color:#fff;font:600 15px/1 Inter,sans-serif;border:none;transition:.18s}
.pv-co-btn .elementor-button:hover{background:#b81f1f}
.pv-co-btn--lg .elementor-button{padding:15px 30px;font-size:16px}
.pv-co-office-line p{font:400 16px/1.55 Inter,sans-serif;color:#3b3733;margin:0}
.pv-co-office-hr p{font:400 14px/1.4 Inter,sans-serif;color:#6b6660;margin:0}
.pv-co-map iframe{border-radius:16px;display:block}
.pv-sala__logo img{max-height:46px;max-width:180px;width:auto;object-fit:contain;margin:0 auto;display:block}
.pv-sala__name .elementor-heading-title{font:700 19px/1.25 Inter,sans-serif;color:#1A1A1A;text-align:center}
.pv-sala__tel .elementor-button{display:inline-flex;align-items:center;gap:8px;padding:0;background:transparent;color:#D92E2E;font:600 16px/1 Inter,sans-serif;border:none}
.pv-sala__tel .elementor-button:hover{text-decoration:underline;background:transparent}
.pv-sala__hr p{font:400 13.5px/1.45 Inter,sans-serif;color:#6b6660;margin:0}
.pv-sala__ejec-t .elementor-heading-title{font:600 12px/1 Inter,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#a39a90}
.pv-ejec__n .elementor-heading-title{font:500 15px/1.3 Inter,sans-serif;color:#2a2722}
.pv-ejec__links .elementor-icon-list-items{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0}
.pv-ejec__links .elementor-icon-list-item{margin:0!important;padding:0!important;border:none!important}
.pv-ejec__links .elementor-icon-list-item .elementor-icon-list-icon{display:none}
.pv-ejec__links .elementor-icon-list-item a{display:inline-flex;align-items:center;gap:4px;font:500 12.5px/1 Inter,sans-serif;color:#6b6660;padding:5px 9px;border:1px solid #ece5de;border-radius:8px;transition:.16s}
.pv-ejec__links .elementor-icon-list-item a:hover{border-color:#D92E2E;color:#D92E2E}
.pv-ejec__links .elementor-icon-list-text{display:inline;padding:0;border:0;background:none;font:inherit;color:inherit}
/* Nested Tabs → pills de zona */
.pv-co-tabsw .e-n-tabs-heading{justify-content:center;gap:10px;flex-wrap:wrap;border:none!important;margin-bottom:28px}
.pv-co-tabsw .e-n-tab-title{padding:11px 22px!important;border-radius:999px!important;border:1.5px solid #e4ddd5!important;background:#fff!important;color:#5b554f!important;font:600 15px/1 Inter,sans-serif!important;box-shadow:none!important}
.pv-co-tabsw .e-n-tab-title:hover{border-color:#D92E2E!important;color:#D92E2E!important}
.pv-co-tabsw .e-n-tab-title[aria-selected=true]{background:#D92E2E!important;border-color:#D92E2E!important;color:#fff!important}
.pv-co-tabsw .e-n-tabs-content>.e-con{padding:0!important}

/* ============================================================
   BLOG — Listado "Nuestro Blog" (page 3531) + plantilla Single de post
   Contenedores por #id (Elementor renderiza _element_id); widgets por clase.
   Tokens de marca: rojo #D92E2E / hover #B81F1F · texto #1A1A1A/#3b3733/#6b6660 · bordes #e4ddd5 · Inter.
   ============================================================ */

/* ---- HERO ---- */
#pv-blog-hero{ position:relative; }
.pv-blog-hero-title .elementor-heading-title{
  color:#fff; font-family:"Inter",sans-serif; font-weight:700; font-size:48px; line-height:1.12; margin:0;
  text-shadow:0 2px 18px rgba(0,0,0,.25);
}
.pv-blog-hero-sub .elementor-heading-title{
  color:rgba(255,255,255,.92); font-family:"Inter",sans-serif; font-weight:400; font-size:19px; line-height:1.4; margin:14px auto 0; max-width:640px;
}

/* ---- BÚSQUEDA (pill superpuesta al hero) ---- */
#pv-blog-searchwrap{ max-width:900px; margin:-56px auto 0; padding:0 24px; position:relative; z-index:5; }
.pv-blog-search .elementor-search-form{
  background:#fff; border-radius:16px; box-shadow:0 14px 40px rgba(30,16,8,.16); padding:8px;
}
/* la fila real (input + botón) es __container, no el <form> */
.pv-blog-search .elementor-search-form__container{
  display:flex; align-items:center; gap:10px; min-height:auto; background:transparent; border:0;
}
.pv-blog-search .elementor-search-form__input{
  flex:1 1 auto; min-width:0; font-family:"Inter",sans-serif; font-size:16px; color:#1A1A1A; background:transparent; padding:10px 14px;
}
.pv-blog-search .elementor-search-form__input::placeholder{ color:#a39a90; }
.pv-blog-search .elementor-search-form__submit{
  flex:0 0 auto; display:inline-flex; align-items:center; gap:8px;
  background:#D92E2E; color:#fff; border:none; border-radius:10px;
  font-family:"Inter",sans-serif; font-weight:600; font-size:15px; padding:12px 22px; cursor:pointer; transition:background .2s ease;
}
.pv-blog-search .elementor-search-form__submit:hover{ background:#B81F1F; }
.pv-blog-search .elementor-search-form__submit::before{
  content:""; width:17px; height:17px; flex:0 0 auto;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='M21 21l-4.35-4.35'/%3E%3C/svg%3E") no-repeat center/contain;
}

/* ---- GRID + tarjetas (widget Posts, skin Classic) ---- */
#pv-blog-grid{ max-width:1200px; margin:0 auto; padding:56px 24px 72px; }
.pv-blog-cards .elementor-post{
  background:#fff; border-radius:16px; overflow:hidden;
  box-shadow:0 6px 20px rgba(0,0,0,.08); display:flex; flex-direction:column;
  transition:transform .25s ease, box-shadow .25s ease;
}
.pv-blog-cards .elementor-post:hover{ transform:translateY(-5px); box-shadow:0 16px 38px rgba(0,0,0,.15); }
.pv-blog-cards .elementor-post__thumbnail{ padding-bottom:0!important; height:auto; }
.pv-blog-cards .elementor-post__thumbnail__link{ display:block; }
.pv-blog-cards .elementor-post__thumbnail img{
  width:100%; aspect-ratio:16/10; object-fit:cover; display:block; transition:transform .45s ease;
}
.pv-blog-cards .elementor-post:hover .elementor-post__thumbnail img{ transform:scale(1.05); }
.pv-blog-cards .elementor-post__text{ padding:20px 20px 22px; display:flex; flex-direction:column; flex:1; }
.pv-blog-cards .elementor-post__title{ margin:0 0 10px; }
.pv-blog-cards .elementor-post__title a{
  font-family:"Inter",sans-serif; font-weight:700; font-size:18px; line-height:1.3; color:#1A1A1A; text-decoration:none;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.pv-blog-cards .elementor-post__title a:hover{ color:#D92E2E; }
.pv-blog-cards .elementor-post__excerpt{ margin:0 0 18px; }
.pv-blog-cards .elementor-post__excerpt p{
  font-family:"Inter",sans-serif; font-size:14px; line-height:1.55; color:#6b6660; margin:0;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
}
.pv-blog-cards .elementor-post__read-more{
  margin-top:auto; display:flex; align-items:center; justify-content:center; gap:8px;
  border:1px solid #e4ddd5; border-radius:10px; padding:11px 16px;
  font-family:"Inter",sans-serif; font-weight:600; font-size:14px; color:#3b3733; text-decoration:none; transition:.18s;
}
.pv-blog-cards .elementor-post__read-more:hover{ border-color:#D92E2E; color:#D92E2E; background:#fdf3f3; }
.pv-blog-cards .elementor-post__read-more::before{
  content:""; width:17px; height:17px; flex:0 0 auto;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17' viewBox='0 0 24 24' fill='none' stroke='%233b3733' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7Z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") no-repeat center/contain;
}
.pv-blog-cards .elementor-post__read-more:hover::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17' viewBox='0 0 24 24' fill='none' stroke='%23D92E2E' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7Z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E");
}

/* Paginación */
#pv-blog-grid .elementor-pagination{ margin-top:44px; text-align:center; }
#pv-blog-grid .page-numbers{
  display:inline-flex; align-items:center; justify-content:center; min-width:42px; height:42px; padding:0 12px; margin:0 4px;
  border:1px solid #e4ddd5; border-radius:10px; font-family:"Inter",sans-serif; font-weight:600; font-size:15px; color:#3b3733; text-decoration:none; transition:.18s;
}
#pv-blog-grid .page-numbers.current{ background:#D92E2E; border-color:#D92E2E; color:#fff; }
#pv-blog-grid .page-numbers:hover:not(.current){ border-color:#D92E2E; color:#D92E2E; }

/* ============================================================
   SINGLE de post (plantilla Elementor Theme Builder)
   ============================================================ */
#pv-single-head{ max-width:820px; margin:0 auto; padding:56px 24px 26px; text-align:center; }
.pv-sg-eyebrow .elementor-heading-title{
  font-family:"Inter",sans-serif; font-weight:700; font-size:13px; letter-spacing:.12em; text-transform:uppercase; color:#D92E2E; margin:0 0 14px;
}
.pv-sg-title .elementor-heading-title{
  font-family:"Inter",sans-serif; font-weight:700; font-size:40px; line-height:1.15; color:#1A1A1A; margin:0;
}
.pv-sg-meta{ margin-top:16px; }
.pv-sg-meta .elementor-post-info{ justify-content:center; }
.pv-sg-meta .elementor-post-info__item{ font-family:"Inter",sans-serif; font-size:14px; color:#a39a90; }

#pv-single-featimg{ max-width:980px; margin:8px auto 0; padding:0 24px; }
.pv-sg-featimg img{ width:100%; border-radius:16px; display:block; }
#pv-single-featimg:not(:has(img)){ display:none; }   /* posts sin imagen destacada → sin banner vacío */

#pv-single-body{ max-width:760px; margin:0 auto; padding:36px 24px 20px; }
.pv-sg-content{ font-family:"Inter",sans-serif; }
.pv-sg-content, .pv-sg-content p, .pv-sg-content li{ font-size:17px; line-height:1.75; color:#3b3733; }
.pv-sg-content p{ margin:0 0 22px; }
.pv-sg-content h2{ font-family:"Inter",sans-serif; font-weight:700; font-size:27px; line-height:1.25; color:#1A1A1A; margin:38px 0 14px; }
.pv-sg-content h3{ font-family:"Inter",sans-serif; font-weight:700; font-size:21px; color:#1A1A1A; margin:30px 0 12px; }
.pv-sg-content a{ color:#D92E2E; text-decoration:underline; }
.pv-sg-content a:hover{ color:#B81F1F; }
.pv-sg-content ul, .pv-sg-content ol{ margin:0 0 22px; padding-left:22px; }
.pv-sg-content li{ margin:0 0 8px; }
.pv-sg-content img{ max-width:100%; height:auto; border-radius:12px; margin:10px 0; }
.pv-sg-content blockquote{ border-left:4px solid #D92E2E; margin:26px 0; padding:6px 0 6px 20px; color:#5b554f; font-style:italic; }
/* Posts exportados de Basecamp: párrafos vienen como <div> sueltos y wrapper <article> — dales ritmo de párrafo */
.pv-sg-content article{ margin:0; }
.pv-sg-content div:not([class]){ margin:0 0 22px; }
.pv-sg-content div:not([class]):last-child{ margin-bottom:0; }

#pv-single-related{ max-width:1200px; margin:0 auto; padding:40px 24px 8px; }
.pv-sg-related-t .elementor-heading-title{ font-family:"Inter",sans-serif; font-weight:700; font-size:26px; color:#1A1A1A; margin:0 0 24px; }

#pv-single-cta .pv-sg-cta-t .elementor-heading-title{ font-family:"Inter",sans-serif; font-weight:700; font-size:30px; color:#fff; margin:0 0 22px; text-align:center; }
.pv-sg-cta-btn .elementor-button{
  background:#fff; color:#D92E2E; font-family:"Inter",sans-serif; font-weight:700; font-size:16px;
  border-radius:10px; padding:14px 32px; transition:.18s;
}
.pv-sg-cta-btn .elementor-button:hover{ background:#1A1A1A; color:#fff; }

/* ---- Formulario de lead del blog (GF #4) ---- */
#pv-single-leadform{ max-width:820px; margin:38px auto 0; padding:36px 32px; background:#faf7f3; border:1px solid #f0eae4; border-radius:18px; }
.pv-sg-lead-t .elementor-heading-title{ font:700 26px/1.2 "Inter",sans-serif; color:#1A1A1A; margin:0 0 8px; text-align:center; }
.pv-sg-lead-sub{ text-align:center; margin:0 0 24px; }
.pv-sg-lead-sub p{ font:400 16px/1.5 "Inter",sans-serif; color:#6b6660; margin:0; }
#pv-single-leadform .gform_wrapper{ margin:0; }
#pv-single-leadform .gform_fields{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px 18px; margin:0; padding:0; list-style:none; }
#pv-single-leadform .gform_fields > li.gfield, #pv-single-leadform .gform_fields > .gfield{ grid-column:span 2; margin:0; padding:0; }
#pv-single-leadform .gfield.gfield--width-half{ grid-column:span 1; }
#pv-single-leadform .gfield_visibility_hidden, #pv-single-leadform li.gfield_html:empty{ display:none!important; }
#pv-single-leadform .gfield_label{ font:600 13.5px/1.2 "Inter",sans-serif; color:#3b3733; margin-bottom:6px; }
#pv-single-leadform input[type=text], #pv-single-leadform input[type=email], #pv-single-leadform input[type=tel], #pv-single-leadform input[type=number], #pv-single-leadform select, #pv-single-leadform textarea{
  width:100%; border:1px solid #e4ddd5; border-radius:10px; padding:11px 13px; font:400 15px/1.4 "Inter",sans-serif; color:#1A1A1A; background:#fff; box-sizing:border-box;
}
#pv-single-leadform input:focus, #pv-single-leadform select:focus, #pv-single-leadform textarea:focus{ outline:none; border-color:#D92E2E; box-shadow:0 0 0 3px rgba(217,46,46,.12); }
#pv-single-leadform .gfield_html{ font:400 13px/1.5 "Inter",sans-serif; color:#8A8A8A; }
#pv-single-leadform .gfield_consent_label, #pv-single-leadform .gfield--type-consent label{ font-weight:400; color:#6b6660; }
#pv-single-leadform .gform_footer{ grid-column:span 2; margin-top:12px; }
#pv-single-leadform .gform_footer input[type=submit], #pv-single-leadform .gform_footer button{
  background:#D92E2E!important; color:#fff!important; border:0!important; border-radius:10px!important; padding:14px 34px!important; font:600 16px/1 "Inter",sans-serif!important; cursor:pointer; transition:background .2s ease;
}
#pv-single-leadform .gform_footer input[type=submit]:hover{ background:#B81F1F!important; }
#pv-single-leadform .gform_confirmation_message{ font:400 16px/1.6 "Inter",sans-serif; color:#3b3733; text-align:center; padding:16px; }
#pv-single-leadform .gform_required_legend{ font-size:12px; color:#a39a90; }
@media (max-width:640px){
  #pv-single-leadform{ padding:26px 20px; }
  #pv-single-leadform .gform_fields{ grid-template-columns:1fr; }
  #pv-single-leadform .gform_fields > li.gfield, #pv-single-leadform .gform_footer{ grid-column:1/-1; }
}

/* ---- Compartir + navegación + comentarios del single ---- */
#pv-single-share{ max-width:760px; margin:10px auto 0; padding:20px 24px; border-top:1px solid #f0eae4; border-bottom:1px solid #f0eae4; }
#pv-single-share > .e-con-inner{ display:flex; flex-direction:row; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.pv-sg-share-t .elementor-heading-title{ font:700 16px/1.3 "Inter",sans-serif; color:#1A1A1A; margin:0; }
.pv-sg-share .elementor-share-btn{ transition:transform .15s ease; }
.pv-sg-share .elementor-share-btn:hover{ transform:translateY(-2px); }

#pv-single-nav{ max-width:760px; margin:0 auto; padding:22px 24px; }
.pv-sg-nav .elementor-post-navigation{ font-family:"Inter",sans-serif; }
.pv-sg-nav .post-navigation__prev--title, .pv-sg-nav .post-navigation__next--title{ font-weight:600; color:#1A1A1A; }
.pv-sg-nav a:hover .post-navigation__prev--title, .pv-sg-nav a:hover .post-navigation__next--title{ color:#D92E2E; }
.pv-sg-nav .post-navigation__prev--label, .pv-sg-nav .post-navigation__next--label{ text-transform:uppercase; letter-spacing:.06em; color:#a39a90; font-weight:600; }

#pv-single-comments{ max-width:760px; margin:0 auto; padding:26px 24px 46px; }
#pv-single-comments .comments-title, #pv-single-comments .comment-reply-title{ font:700 22px/1.25 "Inter",sans-serif; color:#1A1A1A; margin:0 0 18px; }
#pv-single-comments .comment-list{ list-style:none; margin:0 0 30px; padding:0; }
#pv-single-comments .comment-body{ border:1px solid #f0eae4; border-radius:12px; padding:16px 18px; margin:0 0 14px; }
#pv-single-comments .comment-author .fn{ font:600 15px/1 "Inter",sans-serif; color:#1A1A1A; }
#pv-single-comments .comment-meta a{ font-size:12.5px; color:#a39a90; text-decoration:none; }
#pv-single-comments .comment-content{ font:400 15px/1.6 "Inter",sans-serif; color:#3b3733; margin-top:8px; }
#pv-single-comments .comment-respond{ background:#faf7f3; border:1px solid #f0eae4; border-radius:16px; padding:24px; }
#pv-single-comments .comment-form label{ font:600 13.5px/1 "Inter",sans-serif; color:#3b3733; display:block; margin:0 0 6px; }
#pv-single-comments .comment-form input[type=text], #pv-single-comments .comment-form input[type=email], #pv-single-comments .comment-form input[type=url], #pv-single-comments .comment-form textarea{
  width:100%; border:1px solid #e4ddd5; border-radius:10px; padding:12px 14px; font:400 15px/1.5 "Inter",sans-serif; color:#1A1A1A; background:#fff; margin:0 0 16px;
}
#pv-single-comments .comment-form input:focus, #pv-single-comments .comment-form textarea:focus{ outline:none; border-color:#D92E2E; box-shadow:0 0 0 3px rgba(217,46,46,.12); }
#pv-single-comments .form-submit .submit{
  background:#D92E2E; color:#fff; border:none; border-radius:10px; padding:13px 30px; font:600 15px/1 "Inter",sans-serif; cursor:pointer; transition:background .2s ease;
}
#pv-single-comments .form-submit .submit:hover{ background:#B81F1F; }
#pv-single-comments .comment-form-cookies-consent{ display:flex; align-items:flex-start; gap:8px; }
#pv-single-comments .comment-form-cookies-consent input{ width:auto; margin:3px 0 0; }
#pv-single-comments .comment-form-cookies-consent label{ margin:0; font-weight:400; color:#6b6660; }
#pv-single-comments .comment-notes, #pv-single-comments .logged-in-as{ font-size:13px; color:#6b6660; }
.pv-chp{ display:none!important; }
@media (max-width:640px){
  #pv-single-share > .e-con-inner{ flex-direction:column; align-items:flex-start; gap:12px; }
}

/* ============================================================
   RESULTADOS DE BÚSQUEDA (plantilla Archive → Search Results)
   Reutiliza .pv-blog-cards para las tarjetas y .pv-blog-search para el buscador.
   ============================================================ */
#pv-search-head{ background:#faf7f3; border-bottom:1px solid #f0eae4; padding:54px 24px 40px; text-align:center; }
.pv-search-eyebrow .elementor-heading-title{ font:700 13px/1 "Inter",sans-serif; letter-spacing:.12em; text-transform:uppercase; color:#D92E2E; margin:0 0 12px; }
.pv-search-title .elementor-heading-title{ font:700 34px/1.15 "Inter",sans-serif; color:#1A1A1A; margin:0; }
#pv-search-head #pv-search-refine{ max-width:720px; margin:26px auto 0; }
#pv-search-grid{ max-width:1200px; margin:0 auto; padding:48px 24px 72px; }
#pv-search-grid .elementor-posts-nothing-found{
  text-align:center; font:400 18px/1.6 "Inter",sans-serif; color:#6b6660;
  background:#fff; border:1px solid #f0eae4; border-radius:14px; padding:44px 24px; max-width:640px; margin:0 auto;
}
#pv-search-grid .elementor-pagination{ margin-top:44px; text-align:center; }
#pv-search-grid .page-numbers{
  display:inline-flex; align-items:center; justify-content:center; min-width:42px; height:42px; padding:0 12px; margin:0 4px;
  border:1px solid #e4ddd5; border-radius:10px; font:600 15px/1 "Inter",sans-serif; color:#3b3733; text-decoration:none; transition:.18s;
}
#pv-search-grid .page-numbers.current{ background:#D92E2E; border-color:#D92E2E; color:#fff; }
#pv-search-grid .page-numbers:hover:not(.current){ border-color:#D92E2E; color:#D92E2E; }
@media (max-width:640px){
  .pv-search-title .elementor-heading-title{ font-size:26px; }
  #pv-search-grid{ padding:36px 18px 56px; }
}

/* ---- Responsive blog ---- */
@media (max-width:1024px){
  .pv-blog-hero-title .elementor-heading-title{ font-size:38px; }
  .pv-sg-title .elementor-heading-title{ font-size:32px; }
}
@media (max-width:640px){
  #pv-blog-searchwrap{ margin-top:-40px; }
  .pv-blog-search .elementor-search-form{ padding:10px; }
  .pv-blog-search .elementor-search-form__container{ flex-direction:column; align-items:stretch; gap:10px; }
  .pv-blog-search .elementor-search-form__submit{ width:100%; justify-content:center; }
  .pv-blog-hero-title .elementor-heading-title{ font-size:32px; }
  #pv-blog-grid{ padding:40px 18px 56px; }
  .pv-sg-content, .pv-sg-content p, .pv-sg-content li{ font-size:16px; }
}

/* ============================================================
   SERVICIO AL CLIENTE (postventa, page 3722) — V2
   Contenedores de sección por #id; tarjetas por settings; widgets por clase.
   ============================================================ */
.pv-sc-hero-title .elementor-heading-title{ color:#fff; font:700 48px/1.12 "Inter",sans-serif; margin:0; text-shadow:0 2px 18px rgba(0,0,0,.25); }
.pv-sc-hero-sub .elementor-heading-title{ color:rgba(255,255,255,.94); font:400 19px/1.45 "Inter",sans-serif; margin:14px auto 0; max-width:680px; }
.pv-sc-sectitle .elementor-heading-title{ font:700 32px/1.2 "Inter",sans-serif; color:#1A1A1A; margin:0 0 0px; }
.pv-sc-secsub .elementor-heading-title{ font:400 16.5px/1.5 "Inter",sans-serif; color:#8a8279; margin:0 auto 12px; max-width:600px; }

/* Tarjetas de contacto */
#pv-sc-contact{ margin-bottom:8px; }
#pv-sc-contact .pv-sc-sectitle .elementor-heading-title{ margin-bottom:12px; }
#pv-sc-contact-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; align-items:stretch; }
.pv-sc-cicon .elementor-icon{ width:70px; height:70px; border-radius:50%; background:#fdf1f1; color:#D92E2E; display:inline-flex; align-items:center; justify-content:center; font-size:27px; margin-bottom:4px; transition:transform .2s ease; }
.pv-sc-cicon .elementor-icon svg{ width:30px; height:30px; fill:#D92E2E; }
.pv-sc-cicon--wa .elementor-icon{ background:#eafaf0; color:#1FA855; }
.pv-sc-cicon--wa .elementor-icon svg{ fill:#1FA855; }
.pv-sc-ctitle .elementor-heading-title{ font:700 19px/1.3 "Inter",sans-serif; color:#1A1A1A; margin:2px 0 0; }
.pv-sc-chelp{ margin:0; }
.pv-sc-chelp p{ font:400 14.5px/1.5 "Inter",sans-serif; color:#7a736b; margin:0; }
.pv-sc-cbtn{ margin-top:auto; padding-top:6px; }
.pv-sc-cbtn .elementor-button{ background:#D92E2E; color:#fff; border-radius:10px; padding:12px 26px; font:600 15px/1 "Inter",sans-serif; transition:background .2s ease; }
.pv-sc-cbtn .elementor-button:hover{ background:#B81F1F; }
/* hover de tarjeta (contenedor con el ícono) */
#pv-sc-contact-grid > .e-con{ transition:transform .22s ease, box-shadow .22s ease; }
#pv-sc-contact-grid > .e-con:hover{ transform:translateY(-5px); box-shadow:0 18px 40px rgba(40,20,10,.12)!important; }
#pv-sc-contact-grid > .e-con:hover .pv-sc-cicon .elementor-icon{ transform:scale(1.06); }

/* Garantías — ícono POR ÍTEM en badge tenue */
#pv-sc-gar-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:26px; align-items:stretch; }
.pv-sc-gar-badge .elementor-heading-title{ display:inline-block; background:#D92E2E; color:#fff; border-radius:999px; padding:8px 22px; font:700 14px/1 "Inter",sans-serif; letter-spacing:.09em; margin:0 auto 24px; }
.pv-sc-gar-list .elementor-icon-list-items{ display:grid; grid-template-columns:1fr 1fr; gap:16px 24px; margin:0; padding:0; }
.pv-sc-gar-list .elementor-icon-list-item{ margin:0!important; padding:0!important; align-items:center; gap:11px; }
.pv-sc-gar-list .elementor-icon-list-icon{ width:34px; height:34px; flex:0 0 34px; border-radius:9px; background:#faf3ef; color:#D92E2E; display:inline-flex; align-items:center; justify-content:center; margin:0; padding:0; }
.pv-sc-gar-list .elementor-icon-list-icon i{ font-size:14px; }
.pv-sc-gar-list .elementor-icon-list-text{ font:500 15px/1.3 "Inter",sans-serif; color:#3b3733; }

/* FAQ'S — tarjetas blancas sobre gris */
#pv-sc-faq-inner{ max-width:1120px; margin:0 auto; }
.pv-sc-faq-title .elementor-heading-title{ font:700 32px/1.2 "Inter",sans-serif; color:#1A1A1A; margin:0 0 8px; }
#pv-sc-faq .pv-sc-secsub .elementor-heading-title{ margin-bottom:38px; }
#pv-sc-faq-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:28px; align-items:stretch; }
.pv-sc-faq-ic .elementor-icon{ color:#D92E2E; font-size:30px; margin-bottom:12px; }
.pv-sc-faq-ic .elementor-icon svg{ width:32px; height:32px; fill:#D92E2E; }
.pv-sc-faq-h .elementor-heading-title{ font:700 22px/1.25 "Inter",sans-serif; color:#1A1A1A; margin:0 0 12px; }
.pv-sc-faq-desc{ margin:0 0 22px; }
.pv-sc-faq-desc p{ font:400 15.5px/1.6 "Inter",sans-serif; color:#5b554f; margin:0; }
.pv-sc-faq-btn{ margin-top:auto; }
.pv-sc-faq-btn .elementor-button{ display:inline-flex; align-items:center; gap:9px; background:#D92E2E; color:#fff; border-radius:10px; padding:13px 28px; font:600 15px/1 "Inter",sans-serif; transition:background .2s ease; }
.pv-sc-faq-btn .elementor-button:hover{ background:#B81F1F; }
.pv-sc-faq-btn .elementor-button::before{ content:""; width:16px; height:16px; flex:0 0 auto; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='7 10 12 15 17 10'/%3E%3Cline x1='12' y1='15' x2='12' y2='3'/%3E%3C/svg%3E") no-repeat center/contain; }

/* Responsive */
@media (max-width:1024px){
  #pv-sc-contact-grid{ grid-template-columns:1fr; max-width:420px; margin:0 auto; }
  .pv-sc-hero-title .elementor-heading-title{ font-size:38px; }
}
@media (max-width:768px){
  #pv-sc-gar-grid, #pv-sc-faq-grid{ grid-template-columns:1fr; gap:22px; }
  .pv-sc-sectitle .elementor-heading-title, .pv-sc-faq-title .elementor-heading-title{ font-size:26px; }
  .pv-sc-hero-title .elementor-heading-title{ font-size:32px; }
}
@media (max-width:520px){
  .pv-sc-gar-list .elementor-icon-list-items{ grid-template-columns:1fr; }
}

/* ============================================================
   PÁGINAS-ARTÍCULO convertidas de WPBakery (guías, beneficios, etc.)
   ============================================================ */
.pv-art-title .elementor-heading-title{ font:700 36px/1.2 "Inter",sans-serif; color:#1A1A1A; margin:0 auto; max-width:820px; }
#pv-art-body{ max-width:820px; margin:0 auto; }
.pv-art-content{ font-family:"Inter",sans-serif; }
.pv-art-content, .pv-art-content p, .pv-art-content li{ font-size:17px; line-height:1.75; color:#3b3733; }
.pv-art-content p{ margin:0 0 20px; }
.pv-art-content h1, .pv-art-content h2{ font:700 26px/1.25 "Inter",sans-serif; color:#1A1A1A; margin:34px 0 14px; }
.pv-art-content h3{ font:700 20px/1.3 "Inter",sans-serif; color:#1A1A1A; margin:26px 0 12px; }
.pv-art-content h4{ font:700 17px/1.3 "Inter",sans-serif; color:#1A1A1A; margin:22px 0 10px; }
.pv-art-content a{ color:#D92E2E; text-decoration:underline; }
.pv-art-content a:hover{ color:#B81F1F; }
.pv-art-content ul, .pv-art-content ol{ margin:0 0 20px; padding-left:22px; }
.pv-art-content li{ margin:0 0 8px; }
.pv-art-content img{ max-width:100%; height:auto; border-radius:12px; }
.pv-art-content blockquote{ border-left:4px solid #D92E2E; margin:24px 0; padding:6px 0 6px 20px; color:#5b554f; font-style:italic; }
.pv-art-content table{ width:100%; border-collapse:collapse; margin:0 0 22px; }
.pv-art-content td, .pv-art-content th{ border:1px solid #ece5de; padding:10px 12px; text-align:left; }
@media (max-width:640px){
  .pv-art-title .elementor-heading-title{ font-size:28px; }
  .pv-art-content, .pv-art-content p, .pv-art-content li{ font-size:16px; }
}

/* ============================================================
   THANK-YOU (páginas Gracias)
   ============================================================ */
#pv-ty{ text-align:center; }
.pv-ty-ic .elementor-icon{ color:#25A85B; font-size:62px; margin-bottom:16px; }
.pv-ty-ic .elementor-icon svg{ width:66px; height:66px; fill:#25A85B; }
.pv-ty-title .elementor-heading-title{ font:700 40px/1.15 "Inter",sans-serif; color:#1A1A1A; margin:0 0 14px; }
.pv-ty-msg{ max-width:520px; }
.pv-ty-msg p{ font:400 18px/1.6 "Inter",sans-serif; color:#5b554f; margin:0 0 28px; }
.pv-ty-btn .elementor-button{ background:#D92E2E; color:#fff; border-radius:10px; padding:14px 34px; font:600 16px/1 "Inter",sans-serif; transition:background .2s ease; }
.pv-ty-btn .elementor-button:hover{ background:#B81F1F; }
@media (max-width:640px){ .pv-ty-title .elementor-heading-title{ font-size:30px; } }

/* ---- Páginas "¿Qué quieres hacer?" (bio-link) ---- */
#pv-choose{ text-align:center; max-width:520px; margin:0 auto; }
.pv-choose-title .elementor-heading-title{ font:700 34px/1.2 "Inter",sans-serif; color:#1A1A1A; margin:0 0 28px; }
.pv-choose-btn{ width:100%; max-width:380px; margin:0 auto 14px; }
.pv-choose-btn .elementor-button{ width:100%; display:flex; align-items:center; justify-content:center; gap:10px; background:#D92E2E; color:#fff; border-radius:12px; padding:15px 24px; font:600 16px/1 "Inter",sans-serif; transition:.2s ease; }
.pv-choose-btn .elementor-button:hover{ background:#B81F1F; }
.pv-choose-btn--wa .elementor-button{ background:#1FA855; }
.pv-choose-btn--wa .elementor-button:hover{ background:#178a46; }
.pv-choose-btn--ghost .elementor-button{ background:#fff; color:#3b3733; border:1px solid #e4ddd5; }
.pv-choose-btn--ghost .elementor-button:hover{ background:#faf7f3; color:#D92E2E; border-color:#D92E2E; }

/* ============================================================
   Página GUÍAS (/guias/): hero + pill-tabs + acordeones masonry.
   Chrome nativo Elementor; grids = HTML widgets (clases fiables).
   Paneles por #id + JS inline-display (no dependen de _css_classes de container).
   ============================================================ */
#pv-guias-hero .elementor-heading-title{ text-shadow:0 2px 18px rgba(0,0,0,.35); }
/* barra de tabs solapando el hero */
#pv-guias-tabbar-wrap{ margin-top:-34px; position:relative; z-index:6; }
.pv-guias-tabbar{ display:inline-flex; gap:6px; background:#fff; border-radius:14px; padding:6px; box-shadow:0 14px 38px rgba(20,20,24,.18); }
.pv-guias-tab{ -webkit-appearance:none; appearance:none; border:0; background:transparent; cursor:pointer; font:600 13px/1 "Inter",sans-serif; color:#3b3733; padding:13px 28px; border-radius:9px; transition:.18s ease; white-space:nowrap; }
.pv-guias-tab:hover{ color:#D92E2E; }
.pv-guias-tab.is-active{ background:#D92E2E; color:#fff; box-shadow:0 6px 16px rgba(217,46,46,.32); }
/* paneles (compra visible por defecto; pagos oculto hasta que el JS lo maneje) */
#pv-panel-pagos{ display:none; }
/* fila intro (compra) */
.pv-guias-intro{ display:flex; gap:44px; align-items:center; flex-wrap:wrap; }
.pv-guias-introcol:first-child{ flex:1 1 52%; }
.pv-guias-introcol:last-child{ flex:1 1 40%; }
.pv-guias-video img{ box-shadow:0 16px 44px rgba(20,20,24,.20); display:block; }
.pv-guias-sectitle{ width:100%; align-self:flex-start; }
.pv-guias-sectitle .elementor-heading-title{ text-align:left; }
/* columnas masonry (cada columna empaqueta independiente => coincide con el mockup) */
.pv-guias-cols{ display:flex; gap:22px; align-items:flex-start; width:100%; }
.pv-guias-col{ flex:1 1 0; min-width:0; display:flex; flex-direction:column; gap:22px; }
/* tarjeta acordeón */
.pv-guias-card{ background:#fff; border:1px solid #ece7e0; border-radius:16px; overflow:hidden; transition:box-shadow .2s ease, border-color .2s ease; }
.pv-guias-card:hover{ box-shadow:0 10px 30px rgba(20,20,24,.08); }
.pv-guias-card.is-open{ border-color:#e4ddd5; box-shadow:0 14px 36px rgba(20,20,24,.10); }
.pv-guias-head{ width:100%; display:flex; align-items:center; gap:16px; padding:22px 24px; margin:0; background:transparent; border:0; cursor:pointer; text-align:left; font-family:inherit; }
.pv-guias-ico{ flex:0 0 auto; width:46px; height:46px; border-radius:13px; background:#faf1f1; color:#D92E2E; display:flex; align-items:center; justify-content:center; }
.pv-guias-ico i{ font-size:21px; line-height:1; }
.pv-guias-htext{ flex:1 1 auto; min-width:0; display:flex; flex-direction:column; gap:3px; }
.pv-guias-num{ font:700 12px/1 "Inter",sans-serif; letter-spacing:1.6px; text-transform:uppercase; color:#D92E2E; }
.pv-guias-title{ font:600 17px/1.25 "Inter",sans-serif; color:#1A1A1A; }
.pv-guias-chev{ flex:0 0 auto; color:#b3aca3; display:flex; transition:transform .25s ease; }
.pv-guias-chev i{ font-size:16px; line-height:1; }
.pv-guias-card.is-open .pv-guias-chev{ transform:rotate(180deg); color:#D92E2E; }
.pv-guias-body{ max-height:0; overflow:hidden; transition:max-height .34s ease; }
.pv-guias-card.is-open .pv-guias-body{ max-height:1800px; }
.pv-guias-bodyin{ padding:2px 24px 24px 24px; color:#3b3733; font:400 15.5px/1.72 "Inter",sans-serif; }
.pv-guias-bodyin p{ margin:0 0 12px; }
.pv-guias-bodyin p:last-child{ margin-bottom:0; }
.pv-guias-bodyin ol,.pv-guias-bodyin ul{ margin:0 0 12px; padding-left:20px; }
.pv-guias-bodyin ul{ list-style:disc; }
.pv-guias-bodyin li{ margin:0 0 8px; }
.pv-guias-bodyin a{ color:#D92E2E; text-decoration:underline; }
.pv-guias-bodyin strong{ color:#1A1A1A; }
@media (max-width:900px){
  .pv-guias-intro{ flex-direction:column; align-items:stretch; gap:26px; }
  .pv-guias-introcol:first-child,.pv-guias-introcol:last-child{ flex:1 1 100%; width:100% !important; }
  .pv-guias-cols{ flex-direction:column; }
}
@media (max-width:600px){
  #pv-guias-tabbar-wrap{ margin-top:-28px; }
  .pv-guias-tab{ padding:12px 18px; font-size:14px; }
  .pv-guias-head{ padding:18px 18px; gap:13px; }
  .pv-guias-bodyin{ padding:2px 18px 20px 18px; }
}
/* BLINDAJE: el kit de Elementor (.elementor-kit-XXX button / :hover / :focus) pinta TODO
   <button> de rojo (primary) y negro en hover, con especificidad (0,1,1) > nuestras clases.
   Forzamos con !important en normal+hover+focus+active para que no superponga. */
.pv-guias-tabbar .pv-guias-tab,
.pv-guias-tabbar .pv-guias-tab:hover,
.pv-guias-tabbar .pv-guias-tab:focus,
.pv-guias-tabbar .pv-guias-tab:active{
  background:transparent !important; color:#3b3733 !important; border:0 !important; box-shadow:none !important; text-shadow:none !important;
}
.pv-guias-tabbar .pv-guias-tab:hover{ color:#D92E2E !important; }
.pv-guias-tabbar .pv-guias-tab.is-active,
.pv-guias-tabbar .pv-guias-tab.is-active:hover,
.pv-guias-tabbar .pv-guias-tab.is-active:focus{
  background:#D92E2E !important; color:#fff !important; box-shadow:0 6px 16px rgba(217,46,46,.32) !important;
}
.pv-guias-card .pv-guias-head,
.pv-guias-card .pv-guias-head:hover,
.pv-guias-card .pv-guias-head:focus,
.pv-guias-card .pv-guias-head:active{
  background-color:transparent !important; color:#1A1A1A !important; border:0 !important; box-shadow:none !important; outline:none !important; text-shadow:none !important;
}
.pv-guias-card .pv-guias-head:hover{ background-color:#faf6f2 !important; }
/* asegurar que el ícono/num/título conserven su color de marca (no herencia del botón) */
.pv-guias-card .pv-guias-ico{ color:#D92E2E !important; background:#faf1f1 !important; }
.pv-guias-card .pv-guias-ico i{ color:#D92E2E !important; }
.pv-guias-card .pv-guias-num{ color:#D92E2E !important; }
.pv-guias-card .pv-guias-title{ color:#1A1A1A !important; }
.pv-guias-card.is-open .pv-guias-chev{ color:#D92E2E !important; }

/* ============================================================
   Botón "Volver arriba" global (#pv-top, inyectado por provivienda.js).
   Es un <button> => blindar contra el kit de Elementor con !important.
   Colocado SOBRE el botón flotante de WhatsApp (abajo-derecha).
   ============================================================ */
#pv-top{
  position:fixed; left:21px; right:auto; bottom:28px; z-index:9998;
  width:46px; height:46px; padding:0; border:0 !important;
  border-radius:50% !important;
  background-color:#D92E2E !important; color:#fff !important; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 22px rgba(20,20,24,.22) !important;
  opacity:0; visibility:hidden; transform:translateY(10px);
  transition:opacity .25s ease, transform .25s ease, background-color .2s ease, visibility .25s;
}
#pv-top.is-visible{ opacity:1; visibility:visible; transform:translateY(0); }
#pv-top:hover,#pv-top:focus{ background-color:#B81F1F !important; color:#fff !important; }
#pv-top i{ font-size:17px; line-height:1; }
@media (max-width:600px){ #pv-top{ left:16px; right:auto; bottom:20px; width:42px; height:42px; } }

/* ============================================================
   Ocultar las cajas visibles de "rich snippet" (estrellas) que Rank Math
   inyecta en el contenido (#rank-math-rich-snippet-wrapper). NO afecta el
   JSON-LD (schema para Google), que va aparte en <script type=ld+json>.
   ============================================================ */
#rank-math-rich-snippet-wrapper{ display:none !important; }

/* ============================================================
   HEADER STICKY — fix del HOVER de los botones (Provitrack / Contáctanos).
   El CSS del header sticky fuerza el color del texto con !important:
     .gp-header.elementor-sticky--active .elementor-button{color:#000!important}
     .gp-header.elementor-sticky--active .header-contacto .elementor-button{color:#fff!important}
   Eso pisa el color de HOVER del botón => Provitrack quedaba negro sobre rojo y
   Contáctanos blanco sobre blanco (invisible). Restauramos el color correcto en
   :hover con mayor especificidad + !important (el fondo de hover ya funciona).
   ============================================================ */
.gp-header.elementor-sticky--active .elementor-element-6c49e5d .elementor-button:hover{ color:#ffffff !important; }
.gp-header.elementor-sticky--active .header-contacto .elementor-button:hover{ color:#D92E2E !important; }

/* ============================================================
   Página 404 (child theme 404.php) — branded.
   ============================================================ */
.pv-404-area{ flex:1 1 100% !important; width:100% !important; }   /* #content de GP es flex; ocupar todo */
.pv-404{ background:#faf7f3; padding:92px 24px 104px; text-align:center; }
.pv-404-inner{ max-width:660px; margin:0 auto; }
.pv-404-eyebrow{ display:inline-block; color:#D92E2E; font:700 13px/1 "Inter",sans-serif; letter-spacing:3px; text-transform:uppercase; margin-bottom:10px; }
.pv-404-num{ font:800 132px/1 "Inter",sans-serif; color:#D92E2E; letter-spacing:-5px; margin:0 0 4px; }
.pv-404-title{ font:700 32px/1.18 "Inter",sans-serif; color:#1A1A1A; margin:6px 0 12px; }
.pv-404-text{ color:#6b6660; font:400 17px/1.65 "Inter",sans-serif; margin:0 auto 28px; max-width:520px; }
.pv-404-cta{ display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin-bottom:28px; }
.pv-404-btn{ display:inline-flex; align-items:center; justify-content:center; padding:13px 26px; border-radius:9px; font:600 15px/1 "Inter",sans-serif; text-decoration:none; border:1px solid #e4ddd5; background:#fff; color:#3b3733; transition:.18s ease; }
.pv-404-btn:hover{ border-color:#D92E2E; color:#D92E2E; }
.pv-404-btn--primary{ background:#D92E2E; border-color:#D92E2E; color:#fff; }
.pv-404-btn--primary:hover{ background:#B81F1F; border-color:#B81F1F; color:#fff; }
.pv-404-btn--ghost{ background:transparent; border-color:transparent; color:#6b6660; }
.pv-404-btn--ghost:hover{ color:#D92E2E; }
.pv-404-search{ display:flex; max-width:430px; margin:0 auto 24px; border:1px solid #e4ddd5; border-radius:11px; overflow:hidden; background:#fff; }
.pv-404-search input{ flex:1; min-width:0; border:0; padding:13px 16px; font:400 15px/1 "Inter",sans-serif; color:#1A1A1A; background:transparent; outline:none; }
.pv-404-search button{ border:0; background:#D92E2E; color:#fff; padding:0 22px; cursor:pointer; transition:background .18s ease; }
.pv-404-search button:hover{ background:#B81F1F; }
.pv-404-links{ display:flex; gap:22px; justify-content:center; flex-wrap:wrap; }
.pv-404-links a{ color:#6b6660; font:500 14px/1 "Inter",sans-serif; text-decoration:none; }
.pv-404-links a:hover{ color:#D92E2E; }
@media (max-width:600px){
  .pv-404{ padding:60px 16px 72px; }
  .pv-404-num{ font-size:96px; letter-spacing:-3px; }
  .pv-404-title{ font-size:25px; }
  .pv-404-text{ font-size:16px; }
}

/* ============================================================
   Landings de tipo (Casas 8521 / Apartamentos 8547): FAQ sutil (acordeón
   NATIVO de Elementor, editable por el equipo) + ocultar el filtro "Tipo".
   ============================================================ */
#pv-faq-sec{ background:#faf7f3; padding:64px 24px 82px; }
#pv-faq-sec .pv-faq-title .elementor-heading-title{ text-align:center; font:700 30px/1.2 "Inter",sans-serif; color:#1A1A1A; margin:0 0 6px; }
#pv-faq-sec .pv-faq-sub .elementor-heading-title{ text-align:center; font:400 16px/1.5 "Inter",sans-serif; color:#8a8279; margin:0 auto 30px; max-width:560px; }

/* Acordeón Elementor (widget "accordion") con look de marca — replica el estilo
   sutil anterior: tarjetas blancas, borde fino, ícono +/− rojo a la derecha. */
#pv-faq-sec .elementor-accordion{ max-width:820px; margin:0 auto; border:0; }
#pv-faq-sec .elementor-accordion-item{ background:#fff; border:1px solid #ece7e0 !important; border-radius:12px; margin-bottom:12px; overflow:hidden; transition:box-shadow .2s ease, border-color .2s ease; }
#pv-faq-sec .elementor-accordion-item:has(.elementor-tab-title.elementor-active){ border-color:#e4ddd5; box-shadow:0 8px 24px rgba(20,20,24,.06); }
#pv-faq-sec .elementor-tab-title{ cursor:pointer; display:flex; align-items:center; gap:16px; padding:18px 22px; border:0 !important; background:transparent !important; font:600 16.5px/1.4 "Inter",sans-serif !important; color:#1A1A1A; transition:color .15s ease; }
#pv-faq-sec .elementor-tab-title .elementor-accordion-title{ order:1; flex:1 1 auto; }
#pv-faq-sec .elementor-tab-title .elementor-accordion-icon{ order:2; flex:0 0 auto; margin:0 !important; color:#D92E2E; font-size:16px; }
#pv-faq-sec .elementor-tab-title:hover,
#pv-faq-sec .elementor-tab-title.elementor-active{ color:#D92E2E; }
#pv-faq-sec .elementor-tab-content{ padding:0 22px 20px !important; border:0 !important; background:transparent !important; color:#5b554f; font:400 15.5px/1.72 "Inter",sans-serif; }
#pv-faq-sec .elementor-tab-content p:last-child{ margin-bottom:0; }
@media (max-width:600px){
  #pv-faq-sec{ padding:44px 16px 58px; }
  #pv-faq-sec .pv-faq-title .elementor-heading-title{ font-size:24px; }
  #pv-faq-sec .elementor-tab-title{ font-size:15.5px !important; padding:16px 18px; }
}
/* Ocultar el filtro "Tipo" (JSF tax tipo_propiedad / id 12219) en las 2 landings.
   Se oculta el ITEM flex COMPLETO (.jet-smart-filters-select), no solo el <select>
   interno, para que los 5 filtros restantes rellenen la fila sin dejar hueco. */
.page-id-8521 .pv-filterbar .jet-smart-filters-select:has([data-query-var="tipo_propiedad"]),
.page-id-8547 .pv-filterbar .jet-smart-filters-select:has([data-query-var="tipo_propiedad"]){ display:none !important; }
