/* ==========================================================
 * Laventa: fragmento minimo de Preflight de Tailwind.
 * Se desactivo el Preflight completo para no romper los widgets
 * nativos de Elementor (headings, botones, margenes, etc.), pero
 * esto significa que TODAS las utilidades "border"/"border-*" de
 * Tailwind (que solo definen ancho y color) quedaban sin efecto
 * visual, porque el estilo del borde por defecto del navegador es
 * "none". Esta regla es justo la parte de Preflight que las hace
 * funcionar, sin tocar nada mas.
 * ========================================================== */
*, ::before, ::after {
  box-sizing: border-box;
  border-width: 0;
  border-style: solid;
  border-color: currentColor;
}
*, ::before, ::after {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  
}

::backdrop {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0
}

.pointer-events-none {
  pointer-events: none
}

.absolute {
  position: absolute
}

.relative {
  position: relative
}

.inset-0 {
  inset: 0px
}

.-left-3 {
  left: -0.75rem
}

.-right-3 {
  right: -0.75rem
}

.left-0 {
  left: 0px
}

.left-3 {
  left: 0.75rem
}

.left-4 {
  left: 1rem
}

.right-0 {
  right: 0px
}

.right-4 {
  right: 1rem
}

.right-\[17px\] {
  right: 17px
}

.top-1\/2 {
  top: 50%
}

.top-3 {
  top: 0.75rem
}

.top-4 {
  top: 1rem
}

.top-\[calc\(100\%\+6px\)\] {
  top: calc(100% + 6px)
}

.z-10 {
  z-index: 10
}

.z-20 {
  z-index: 20
}

.m-auto {
  margin: auto
}

.mx-auto {
  margin-left: auto;
  margin-right: auto
}

.mb-4 {
  margin-bottom: 1rem
}

.mt-0\.5 {
  margin-top: 0.125rem
}

.mt-1 {
  margin-top: 0.25rem
}

.mt-4 {
  margin-top: 1rem
}

.mt-auto {
  margin-top: auto
}

.block {
  display: block
}

.flex {
  display: flex
}

.inline-flex {
  display: inline-flex
}

.grid {
  display: grid
}

.hidden {
  display: none
}

.aspect-\[315\/197\] {
  aspect-ratio: 315/197
}

.h-1\.5 {
  height: 0.375rem
}

.h-2 {
  height: 0.5rem
}

.h-3 {
  height: 0.75rem
}

.h-3\.5 {
  height: 0.875rem
}

.h-4 {
  height: 1rem
}

.h-5 {
  height: 1.25rem
}

.h-7 {
  height: 1.75rem
}

.h-8 {
  height: 2rem
}

.h-9 {
  height: 2.25rem
}

.h-\[10px\] {
  height: 10px
}

.h-\[180px\] {
  height: 180px
}

.h-\[18px\] {
  height: 18px
}

.h-\[21px\] {
  height: 21px
}

.h-full {
  height: 100%
}

.max-h-60 {
  max-height: 15rem
}

.max-h-\[420px\] {
  max-height: 420px
}

.max-h-\[85vh\] {
  max-height: 85vh
}

.max-h-\[90vh\] {
  max-height: 90vh
}

.min-h-0 {
  min-height: 0px
}

.w-2 {
  width: 0.5rem
}

.w-3 {
  width: 0.75rem
}

.w-3\.5 {
  width: 0.875rem
}

.w-4 {
  width: 1rem
}

.w-5 {
  width: 1.25rem
}

.w-7 {
  width: 1.75rem
}

.w-8 {
  width: 2rem
}

.w-9 {
  width: 2.25rem
}

.w-\[10px\] {
  width: 10px
}

.w-\[18px\] {
  width: 18px
}

.w-\[21px\] {
  width: 21px
}

.w-full {
  width: 100%
}

.min-w-0 {
  min-width: 0px
}

.min-w-\[220px\] {
  min-width: 220px
}

.max-w-\[320px\] {
  max-width: 320px
}

.flex-1 {
  flex: 1 1 0%
}

.flex-none {
  flex: none
}

.shrink-0 {
  flex-shrink: 0
}

.-translate-y-1\/2 {
  --tw-translate-y: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}

.cursor-pointer {
  cursor: pointer
}

.snap-x {
  scroll-snap-type: x var(--tw-scroll-snap-strictness)
}

.snap-mandatory {
  --tw-scroll-snap-strictness: mandatory
}

.snap-start {
  scroll-snap-align: start
}

.appearance-none {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none
}

.grid-cols-1 {
  grid-template-columns: repeat(1, minmax(0, 1fr))
}

.grid-cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr))
}

.flex-col {
  flex-direction: column
}

.flex-wrap {
  flex-wrap: wrap
}

.flex-nowrap {
  flex-wrap: nowrap
}

.items-start {
  align-items: flex-start
}

.items-center {
  align-items: center
}

.items-baseline {
  align-items: baseline
}

.items-stretch {
  align-items: stretch
}

.justify-center {
  justify-content: center
}

.justify-between {
  justify-content: space-between
}

.gap-1 {
  gap: 0.25rem
}

.gap-1\.5 {
  gap: 0.375rem
}

.gap-2 {
  gap: 0.5rem
}

.gap-2\.5 {
  gap: 0.625rem
}

.gap-3 {
  gap: 0.75rem
}

.gap-4 {
  gap: 1rem
}

.gap-5 {
  gap: 1.25rem
}

.gap-6 {
  gap: 1.5rem
}

.gap-8 {
  gap: 2rem
}

.gap-x-4 {
  -moz-column-gap: 1rem;
       column-gap: 1rem
}

.overflow-hidden {
  overflow: hidden
}

.overflow-x-auto {
  overflow-x: auto
}

.overflow-y-auto {
  overflow-y: auto
}

.scroll-smooth {
  scroll-behavior: smooth
}

.truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap
}

.whitespace-nowrap {
  white-space: nowrap
}

.rounded-2xl {
  border-radius: 1rem
}

.rounded-\[24px\] {
  border-radius: 24px
}

.rounded-\[5px\] {
  border-radius: 5px
}

.rounded-\[7px\] {
  border-radius: 7px
}

.rounded-full {
  border-radius: 9999px
}

.rounded-lg {
  border-radius: 0.5rem
}

.border {
  border-width: 1px
}

.border-0 {
  border-width: 0px
}

.border-2 {
  border-width: 2px
}

.border-b {
  border-bottom-width: 1px
}

.border-r {
  border-right-width: 1px
}

.border-t {
  border-top-width: 1px
}

.border-\[\#D9D9D9\] {
  --tw-border-opacity: 1;
  border-color: rgb(217 217 217 / var(--tw-border-opacity, 1))
}

.border-\[\#E5E7EB\] {
  --tw-border-opacity: 1;
  border-color: rgb(229 231 235 / var(--tw-border-opacity, 1))
}

.border-\[\#E6E6E6\] {
  --tw-border-opacity: 1;
  border-color: rgb(230 230 230 / var(--tw-border-opacity, 1))
}

.border-white\/40 {
  border-color: rgb(255 255 255 / 0.4)
}

.bg-\[\#244B5A\] {
  --tw-bg-opacity: 1;
  background-color: rgb(36 75 90 / var(--tw-bg-opacity, 1))
}

.bg-\[\#ADC8CB\] {
  --tw-bg-opacity: 1;
  background-color: rgb(173 200 203 / var(--tw-bg-opacity, 1))
}

.bg-\[\#E5E7EB\] {
  --tw-bg-opacity: 1;
  background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1))
}

.bg-\[\#F4F6F7\] {
  --tw-bg-opacity: 1;
  background-color: rgb(244 246 247 / var(--tw-bg-opacity, 1))
}

.bg-\[rgba\(23\2c 23\2c 23\2c 0\.3\)\] {
  background-color: rgba(23,23,23,0.3)
}

.bg-gray-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1))
}

.bg-gray-300 {
  --tw-bg-opacity: 1;
  background-color: rgb(209 213 219 / var(--tw-bg-opacity, 1))
}

.bg-transparent {
  background-color: transparent
}

.bg-white {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1))
}

.bg-white\/95 {
  background-color: rgb(255 255 255 / 0.95)
}

.bg-gradient-to-br {
  background-image: linear-gradient(to bottom right, var(--tw-gradient-stops))
}

.from-gray-200 {
  --tw-gradient-from: #e5e7eb var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(229 231 235 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)
}

.to-gray-300 {
  --tw-gradient-to: #d1d5db var(--tw-gradient-to-position)
}

.bg-cover {
  background-size: cover
}

.bg-center {
  background-position: center
}

.bg-no-repeat {
  background-repeat: no-repeat
}

.object-cover {
  -o-object-fit: cover;
     object-fit: cover
}

.p-2 {
  padding: 0.5rem
}

.p-3 {
  padding: 0.75rem
}

.p-5 {
  padding: 1.25rem
}

.px-3 {
  padding-left: 0.75rem;
  padding-right: 0.75rem
}

.px-4 {
  padding-left: 1rem;
  padding-right: 1rem
}

.px-5 {
  padding-left: 1.25rem;
  padding-right: 1.25rem
}

.px-6 {
  padding-left: 1.5rem;
  padding-right: 1.5rem
}

.px-\[17px\] {
  padding-left: 17px;
  padding-right: 17px
}

.px-\[26px\] {
  padding-left: 26px;
  padding-right: 26px
}

.py-1 {
  padding-top: 0.25rem;
  padding-bottom: 0.25rem
}

.py-1\.5 {
  padding-top: 0.375rem;
  padding-bottom: 0.375rem
}

.py-2 {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem
}

.py-2\.5 {
  padding-top: 0.625rem;
  padding-bottom: 0.625rem
}

.py-3 {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem
}

.py-3\.5 {
  padding-top: 0.875rem;
  padding-bottom: 0.875rem
}

.py-4 {
  padding-top: 1rem;
  padding-bottom: 1rem
}

.py-5 {
  padding-top: 1.25rem;
  padding-bottom: 1.25rem
}

.py-6 {
  padding-top: 1.5rem;
  padding-bottom: 1.5rem
}

.py-\[13px\] {
  padding-top: 13px;
  padding-bottom: 13px
}

.pb-2 {
  padding-bottom: 0.5rem
}

.pb-4 {
  padding-bottom: 1rem
}

.pl-9 {
  padding-left: 2.25rem
}

.pr-1 {
  padding-right: 0.25rem
}

.pr-10 {
  padding-right: 2.5rem
}

.pr-3 {
  padding-right: 0.75rem
}

.pt-1 {
  padding-top: 0.25rem
}

.pt-3\.5 {
  padding-top: 0.875rem
}

.text-left {
  text-align: left
}

.text-center {
  text-align: center
}

.text-\[15px\] {
  font-size: 15px
}

.text-base {
  font-size: 1rem;
  line-height: 1.5rem
}

.text-lg {
  font-size: 1.125rem;
  line-height: 1.75rem
}

.text-sm {
  font-size: 0.875rem;
  line-height: 1.25rem
}

.text-xl {
  font-size: 1.25rem;
  line-height: 1.75rem
}

.text-xs {
  font-size: 0.75rem;
  line-height: 1rem
}

.font-bold {
  font-weight: 700
}

.font-medium {
  font-weight: 500
}

.font-normal {
  font-weight: 400
}

.font-semibold {
  font-weight: 600
}

.leading-snug {
  line-height: 1.375
}

.text-\[\#244B5A\] {
  --tw-text-opacity: 1;
  color: rgb(36 75 90 / var(--tw-text-opacity, 1))
}

.text-\[\#244B5A\]\/45 {
  color: rgb(36 75 90 / 0.45)
}

.text-\[\#244B5A\]\/50 {
  color: rgb(36 75 90 / 0.5)
}

.text-\[\#244B5A\]\/60 {
  color: rgb(36 75 90 / 0.6)
}

.text-\[\#ADC8CB\] {
  --tw-text-opacity: 1;
  color: rgb(173 200 203 / var(--tw-text-opacity, 1))
}

.text-gray-500 {
  --tw-text-opacity: 1;
  color: rgb(107 114 128 / var(--tw-text-opacity, 1))
}

.text-white {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1))
}

.underline {
  text-decoration-line: underline
}

.opacity-0 {
  opacity: 0
}

.shadow-2xl {
  --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
  --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
}

.shadow-\[0_20px_40px_rgba\(20\2c 40\2c 48\2c \.18\)\] {
  --tw-shadow: 0 20px 40px rgba(20,40,48,.18);
  --tw-shadow-colored: 0 20px 40px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
}

.shadow-lg {
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
}

.shadow-md {
  --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
}

.outline-none {
  outline: 2px solid transparent;
  outline-offset: 2px
}

.backdrop-blur-\[2px\] {
  --tw-backdrop-blur: blur(2px);
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)
}

.backdrop-blur-md {
  --tw-backdrop-blur: blur(12px);
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)
}

.transition-colors {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms
}

.transition-transform {
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms
}

.\[-ms-overflow-style\:none\] {
  -ms-overflow-style: none
}

.\[scrollbar-width\:none\] {
  scrollbar-width: none
}

.last\:border-r-0:last-child {
  border-right-width: 0px
}

.hover\:bg-\[\#F4F6F7\]:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(244 246 247 / var(--tw-bg-opacity, 1))
}

.peer:checked ~ .peer-checked\:border-\[\#ADC8CB\] {
  --tw-border-opacity: 1;
  border-color: rgb(173 200 203 / var(--tw-border-opacity, 1))
}

.peer:checked ~ .peer-checked\:bg-\[\#ADC8CB\] {
  --tw-bg-opacity: 1;
  background-color: rgb(173 200 203 / var(--tw-bg-opacity, 1))
}

.peer:checked ~ .peer-checked\:opacity-100 {
  opacity: 1
}

@media (min-width: 640px) {
  .sm\:-left-5 {
    left: -1.25rem
  }

  .sm\:-right-5 {
    right: -1.25rem
  }

  .sm\:h-11 {
    height: 2.75rem
  }

  .sm\:w-11 {
    width: 2.75rem
  }

  .sm\:w-\[calc\(\(100\%-20px\)\/2\)\] {
    width: calc((100% - 20px) / 2)
  }

  .sm\:w-auto {
    width: auto
  }

  .sm\:flex-none {
    flex: none
  }

  .sm\:flex-row {
    flex-direction: row
  }

  .sm\:items-center {
    align-items: center
  }

  .sm\:gap-4 {
    gap: 1rem
  }

  .sm\:p-6 {
    padding: 1.5rem
  }

  .sm\:px-6 {
    padding-left: 1.5rem;
    padding-right: 1.5rem
  }

  .sm\:px-8 {
    padding-left: 2rem;
    padding-right: 2rem
  }

  .sm\:py-5 {
    padding-top: 1.25rem;
    padding-bottom: 1.25rem
  }

  .sm\:text-base {
    font-size: 1rem;
    line-height: 1.5rem
  }

  .sm\:text-lg {
    font-size: 1.125rem;
    line-height: 1.75rem
  }

  .sm\:text-sm {
    font-size: 0.875rem;
    line-height: 1.25rem
  }

  .sm\:text-xl {
    font-size: 1.25rem;
    line-height: 1.75rem
  }
}

@media (min-width: 1024px) {
  .lg\:h-auto {
    height: auto
  }

  .lg\:max-h-none {
    max-height: none
  }

  .lg\:min-h-\[110px\] {
    min-height: 110px
  }

  .lg\:w-\[calc\(\(100\%-40px\)\/3\)\] {
    width: calc((100% - 40px) / 3)
  }

  .lg\:w-auto {
    width: auto
  }

  .lg\:flex-1 {
    flex: 1 1 0%
  }

  .lg\:basis-\[218px\] {
    flex-basis: 218px
  }

  .lg\:basis-\[214px\] {
    flex-basis: 214px
  }

  .lg\:basis-\[244px\] {
    flex-basis: 244px
  }

  .lg\:basis-\[227px\] {
    flex-basis: 227px
  }

  .lg\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important
  }

  .lg\:grid-cols-\[38\%_1fr\] {
    grid-template-columns: 38% 1fr
  }

  .lg\:flex-row {
    flex-direction: row
  }

  .lg\:gap-4 {
    gap: 1rem
  }

  .lg\:self-stretch {
    align-self: stretch
  }

  .lg\:overflow-visible {
    overflow: visible
  }
}

.\[\&\:\:-webkit-scrollbar\]\:hidden::-webkit-scrollbar {
  display: none
}


/* ==========================================================
 * Laventa: comportamiento del header global (Cabecera).
 * ========================================================== */

.lv-navbar {
  position: sticky;
  top: 0;
  z-index: 999;
  transition: background-color .25s ease, box-shadow .25s ease;
}

body.home .lv-navbar {
  margin-bottom: -104px;
  background-color: transparent !important;
}

.lv-logo-slot { position: relative; display: flex !important; }
.lv-logo-white, .lv-logo-color { display: flex !important; }
.lv-logo-color { display: none !important; }
body:not(.home) .lv-logo-color,
body.home .lv-navbar.lv-scrolled .lv-logo-color { display: flex !important; }
body:not(.home) .lv-logo-white,
body.home .lv-navbar.lv-scrolled .lv-logo-white { display: none !important; }

.lv-nav-pill {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}
.lv-nav-pill .elementor-nav-menu {
  display: flex;
  flex-wrap: nowrap;
  gap: 22px;
  align-items: center;
  white-space: nowrap;
}

body.home .lv-navbar:not(.lv-scrolled) .lv-nav-pill .elementor-item { color: #fff !important; }
body:not(.home) .lv-nav-pill .elementor-item,
body.home .lv-navbar.lv-scrolled .lv-nav-pill .elementor-item { color: #244B5A !important; }

body.home .lv-navbar:not(.lv-scrolled) .elementor-menu-toggle,
body.home .lv-navbar:not(.lv-scrolled) .elementor-heading-title { color: #fff !important; }
body.home .lv-navbar:not(.lv-scrolled) .elementor-icon-box-description { color: #fff !important; }
body.home .lv-navbar:not(.lv-scrolled) .elementor-menu-toggle svg { fill: #fff !important; }
body:not(.home) .lv-navbar .elementor-menu-toggle,
body.home .lv-navbar.lv-scrolled .elementor-menu-toggle,
body:not(.home) .lv-navbar .elementor-heading-title,
body.home .lv-navbar.lv-scrolled .elementor-heading-title { color: #244B5A !important; }
body:not(.home) .lv-navbar .elementor-icon-box-description,
body.home .lv-navbar.lv-scrolled .elementor-icon-box-description { color: #244B5A !important; }
body:not(.home) .lv-navbar .elementor-menu-toggle svg,
body.home .lv-navbar.lv-scrolled .elementor-menu-toggle svg { fill: #244B5A !important; }

body:not(.home) .lv-navbar,
body.home .lv-navbar.lv-scrolled {
  background-color: #fff !important;
  box-shadow: 0 2px 12px rgba(20,40,48,.08);
}

@media (max-width: 1023px) { .lv-nav-pill { display: none; } }

/* Menu movil (tablet + mobile): a partir de 1024px se ve el menu de
 * escritorio (pill + boton Contactanos); por debajo, se ve el corazon
 * de favoritos + el boton de hamburguesa, que abre el popup "Menu Movil"
 * de Elementor en vez del menu desplegable nativo. */
@media (min-width: 1024px) {
  .lv-mobile-only { display: none !important; }
}
@media (max-width: 1023px) {
  .lv-desktop-only { display: none !important; }
}
body.home .lv-navbar:not(.lv-scrolled) .lv-mobile-only,
body.home .lv-navbar:not(.lv-scrolled) .lv-mobile-fav .elementor-icon,
body.home .lv-navbar:not(.lv-scrolled) .lv-mobile-fav .elementor-heading-title,
body.home .lv-navbar:not(.lv-scrolled) .lv-mobile-menu-btn.elementor-icon {
  color: #fff !important;
}
body:not(.home) .lv-mobile-fav .elementor-icon,
body:not(.home) .lv-mobile-fav .elementor-heading-title,
body:not(.home) .lv-mobile-menu-btn.elementor-icon,
body.home .lv-navbar.lv-scrolled .lv-mobile-fav .elementor-icon,
body.home .lv-navbar.lv-scrolled .lv-mobile-fav .elementor-heading-title,
body.home .lv-navbar.lv-scrolled .lv-mobile-menu-btn.elementor-icon {
  color: #244B5A !important;
}
.lv-mobile-menu-btn { cursor: pointer; }

/* Ventana emergente del menu movil */
.lv-mobile-menu-popup .lv-popup-close { cursor: pointer; }
@media (max-width: 768px) {
/*   .lv-topbar { display: none; } */
  .lv-logo-slot img { max-width: 130px; height: auto; }
  .lv-navbar { padding-top: 5px !important; padding-bottom: 5px !important; }
}

.elementor-nav-menu--dropdown { background: #fff; }
.elementor-nav-menu--dropdown .elementor-item { color: #244B5A !important; }


/* ==========================================================
 * Laventa: tarjetas de propiedades (carrusel destacadas).
 * ========================================================== */

.lv-card-title {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: calc(1.1em * 2);
}

.lv-fav-icon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(1);
  transition: opacity .25s ease, transform .25s ease;
}
.lv-fav-icon--off { opacity: 1; }
.lv-fav-icon--on { opacity: 0; transform: translate(-50%, -50%) scale(0.4); }
.lv-fav-btn.is-active .lv-fav-icon--off { opacity: 0; transform: translate(-50%, -50%) scale(0.4); }
.lv-fav-btn.is-active .lv-fav-icon--on { opacity: 1; transform: translate(-50%, -50%) scale(1); }
@keyframes lv-fav-pop {
  0%   { transform: scale(1); }
  40%  { transform: scale(1.35); }
  100% { transform: scale(1); }
}
.lv-fav-btn.lv-fav-pop { animation: lv-fav-pop .35s ease; }




/* ==========================================================
 * Laventa: neutraliza el reset global de <button> del Kit de
 * Elementor sobre nuestros botones "crudos".
 * ========================================================== */

.lv-search-btn {
  background-color: #ADC8CB !important;
  color: #244B5A !important;
  border-style: none !important;
  border-radius: 7px !important;
  padding: 13px 26px !important;
}
.lv-search-btn:hover, .lv-search-btn:focus { background-color: #83A1A5 !important; color: #244B5A !important; }

.lv-more-filters-btn {
  background-color: #fff !important;
  color: #244B5A !important;
  border-style: solid !important;
  border-width: 1px !important;
  border-color: #D9D9D9 !important;
  border-radius: 7px !important;
  padding: 13px 20px !important;
}
.lv-more-filters-btn:hover, .lv-more-filters-btn:focus { background-color: #f9fafb !important; color: #244B5A !important; }

.lv-carousel-arrow {
  background-color: #ADC8CB !important;
  color: inherit !important;
  border-style: solid !important;
  border-width: 0px !important;
  border-radius: 9999px !important;
  padding: 10px !important;
  width: 2.5rem !important;
  height: 2.5rem !important;
  z-index: 20 !important;
}
.lv-carousel-arrow:hover, .lv-carousel-arrow:focus { background-color: #83A1A5 !important; }

.lv-dot {
  background-color: #d1d5db !important;
  border-style: none !important;
  border-radius: 9999px !important;
  padding: 0 !important;
  width: 0.5rem !important;
  height: 0.5rem !important;
  transition: background-color .2s ease, transform .2s ease;
}
.lv-dot.bg-\[\#244B5A\] { background-color: #244B5A !important; }

.lv-fav-btn {
  background-color: #0000005e !important;
  border-style: none !important;
  border-radius: 9999px !important;
  padding: 0 !important;
  width: 1.75rem !important;
  height: 1.75rem !important;
}
.lv-fav-btn:hover, .lv-fav-btn:focus { background-color: #3d3d3dc4 !important; }

.lv-contact-btn {
  background-color: #ADC8CB !important;
  color: #244B5A !important;
  border-style: none !important;
  border-radius: 0.5rem !important;
  padding: 0.5rem 0.875rem !important;
}
.lv-contact-btn:hover, .lv-contact-btn:focus { background-color: #9fbdc1 !important; color: #244B5A !important; }

.lv-wishlist-remove {
  background-color: transparent !important;
  border-style: none !important;
  padding: 0.5rem !important;
}
.lv-wishlist-remove:hover, .lv-wishlist-remove:focus {
  background-color: transparent !important;
}

.lv-multiselect-trigger {
  background-color: #fff !important;
  color: #244B5A !important;
  border-style: solid !important;
  border-width: 1px !important;
  border-color: #E5E7EB !important;
  border-radius: 7px !important;
  padding: 13px 17px !important;
}
.lv-multiselect-trigger:hover, .lv-multiselect-trigger:focus { background-color: #fff !important; color: #244B5A !important; }


/* Clases de Tailwind agregadas para el rediseno del buscador (finder.php) */
.text-\[15px\] { font-size: 15px }
.text-\[\#244B5A\]\/45 { color: rgb(36 75 90 / 0.45) }
.text-\[\#244B5A\]\/60 { color: rgb(36 75 90 / 0.6) }
.text-\[\#ADC8CB\] { --tw-text-opacity: 1; color: rgb(173 200 203 / var(--tw-text-opacity, 1)) }
.border-\[\#E5E7EB\] { --tw-border-opacity: 1; border-color: rgb(229 231 235 / var(--tw-border-opacity, 1)) }
.px-\[17px\] { padding-left: 17px; padding-right: 17px }
.px-\[26px\] { padding-left: 26px; padding-right: 26px }
.py-\[13px\] { padding-top: 13px; padding-bottom: 13px }
.rounded-\[7px\] { border-radius: 7px }
.h-\[21px\] { height: 21px }
.w-\[21px\] { width: 21px }
.rotate-90 { --tw-rotate: 90deg; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) }

/* Clases de Tailwind para el multiselect con checkboxes del buscador */
.py-2\.5 { padding-top: 0.625rem; padding-bottom: 0.625rem }
.hover\:bg-\[\#F4F6F7\]:hover { --tw-bg-opacity: 1; background-color: rgb(244 246 247 / var(--tw-bg-opacity, 1)) }
.border-2 { border-width: 2px }
.border-\[\#D9D9D9\] { --tw-border-opacity: 1; border-color: rgb(217 217 217 / var(--tw-border-opacity, 1)) }
.rounded-\[5px\] { border-radius: 5px }
.w-5 { width: 1.25rem }
.h-5 { height: 1.25rem }
.w-3 { width: 0.75rem }
.h-3 { height: 0.75rem }
.opacity-0 { opacity: 0 }
.peer:checked ~ .peer-checked\:opacity-100 { opacity: 1 }
.peer:checked ~ .peer-checked\:bg-\[\#ADC8CB\] { --tw-bg-opacity: 1; background-color: rgb(173 200 203 / var(--tw-bg-opacity, 1)) }
.peer:checked ~ .peer-checked\:border-\[\#ADC8CB\] { --tw-border-opacity: 1; border-color: rgb(173 200 203 / var(--tw-border-opacity, 1)) }
.transition-transform { transition-property: transform; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms }
.truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border-width: 0 }
.left-0 { left: 0px }
.top-\[calc\(100\%\+6px\)\] { top: calc(100% + 6px) }
.z-10 { z-index: 10 }
.z-20 { z-index: 20 }
.min-w-\[220px\] { min-width: 220px }
.right-\[17px\] { right: 17px }
.shadow-lg { --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) }
.max-h-60 { max-height: 15rem }
.overflow-y-auto { overflow-y: auto }
.cursor-pointer { cursor: pointer }
.text-left { text-align: left }
.rotate-180 { --tw-rotate: 180deg; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) }
.pointer-events-none { pointer-events: none }
.py-1\.5 { padding-top: 0.375rem; padding-bottom: 0.375rem }


/* El contenedor del buscador necesita su propio z-index/contexto de
 * apilamiento; sin esto, aunque el panel del multiselect tenga z-20,
 * la seccion siguiente (Propiedades destacadas) queda "por encima" en
 * el orden normal del documento y tapa el panel desplegable. */
.lv-search-wrap {
  position: relative;
  z-index: 50;
}

/* Clases para el buscador interno del multiselect */
.p-2 { padding: 0.5rem }
.border-b { border-bottom-width: 1px }
.py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem }
.py-3 { padding-top: 0.75rem; padding-bottom: 0.75rem }
.text-\[\#244B5A\]\/50 { color: rgb(36 75 90 / 0.5) }
.block { display: block }
.m-auto { margin: auto }


/* Clases de Tailwind para el rediseno de la tarjeta de propiedad (ajustada al Figma) */
.top-4 { top: 1rem }
.left-4 { left: 1rem }
.right-4 { right: 1rem }
.pb-4 { padding-bottom: 1rem }
.pt-1 { padding-top: 0.25rem }
.flex-nowrap { flex-wrap: nowrap }
.gap-x-3\.5 { -moz-column-gap: 0.875rem; column-gap: 0.875rem }
.gap-\[7px\] { gap: 7px }
.font-normal { font-weight: 400 }
.shrink-0 { flex-shrink: 0 }
.text-\[8px\] { font-size: 8px }
.border-\[\#E6E6E6\] { --tw-border-opacity: 1; border-color: rgb(230 230 230 / var(--tw-border-opacity, 1)) }
.backdrop-blur-\[2px\] { --tw-backdrop-blur: blur(2px); -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia) }
.rounded-\[24px\] { border-radius: 24px }
.bg-\[\#ADC8CB\] { --tw-bg-opacity: 1; background-color: rgb(173 200 203 / var(--tw-bg-opacity, 1)) }
.bg-\[rgba\(23\2c 23\2c 23\2c 0\.3\)\] { background-color: rgba(23,23,23,0.3) }

/* Clases faltantes: ajuste de specs (tarjeta) y flechas mas grandes (carrusel) */
.pt-3\.5 { padding-top: 0.875rem }
.items-baseline { align-items: baseline }
.gap-1 { gap: 0.25rem }
.-left-5 { left: -1.25rem }
.-right-5 { right: -1.25rem }
.w-11 { width: 2.75rem }
.h-11 { height: 2.75rem }

/* Flechas del carrusel: tamanos responsive */
.-left-3 { left: -0.75rem }
.-right-3 { right: -0.75rem }
.h-9 { height: 2.25rem }
.w-9 { width: 2.25rem }
.h-\[10px\] { height: 10px }
.w-\[10px\] { width: 10px }


/* Clases de Tailwind para el shortcode [laventa_wishlist] */
.inline-flex { display: inline-flex }
.h-14 { height: 3.5rem }
.h-8 { height: 2rem }
.max-h-\[85vh\] { max-height: 85vh }
.w-14 { width: 3.5rem }
.w-8 { width: 2rem }
.max-w-\[320px\] { max-width: 320px }
.items-start { align-items: flex-start }
.gap-4 { gap: 1rem }
.py-14 { padding-top: 3.5rem; padding-bottom: 3.5rem }
.px-2 { padding-left: 0.5rem; padding-right: 0.5rem }
.px-6 { padding-left: 1.5rem; padding-right: 1.5rem }
.py-4 { padding-top: 1rem; padding-bottom: 1rem }
.py-5 { padding-top: 1.25rem; padding-bottom: 1.25rem }
.pt-2 { padding-top: 0.5rem }
.text-center { text-align: center }
.text-lg { font-size: 1.125rem; line-height: 1.75rem }
.opacity-40 { opacity: 0.4 }
.underline { text-decoration-line: underline }
.hover\:text-red-500:hover { --tw-text-opacity: 1; color: rgb(239 68 68 / var(--tw-text-opacity, 1)) }

@media (min-width: 640px) {
  .sm\:h-9 { height: 2.25rem }
  .sm\:w-9 { width: 2.25rem }
  .sm\:w-\[220px\] { width: 220px }
  .sm\:h-full { height: 100% }
  .sm\:aspect-auto { aspect-ratio: auto }
  .sm\:max-h-\[80vh\] { max-height: 80vh }
  .sm\:px-6 { padding-left: 1.5rem; padding-right: 1.5rem }
  .sm\:py-5 { padding-top: 1.25rem; padding-bottom: 1.25rem }
  .sm\:py-20 { padding-top: 5rem; padding-bottom: 5rem }
  .sm\:text-lg { font-size: 1.125rem; line-height: 1.75rem }
  .sm\:text-base { font-size: 1rem; line-height: 1.5rem }
  .sm\:text-sm { font-size: 0.875rem; line-height: 1.25rem }
  .sm\:w-auto { width: auto }
  .sm\:flex-row { flex-direction: row }
  .sm\:flex-col { flex-direction: column }
  .sm\:items-center { align-items: center }
  .sm\:gap-4 { gap: 1rem }
}

.bg-\[\#F4F6F7\] { --tw-bg-opacity: 1; background-color: rgb(244 246 247 / var(--tw-bg-opacity, 1)) }
@media (min-width: 640px) {
  .sm\:text-xl { font-size: 1.25rem; line-height: 1.75rem }
  .sm\:w-16 { width: 4rem }
  .sm\:h-16 { height: 4rem }
}


.h-\[100vh\] { height: 100vh }
.min-h-0 { min-height: 0px }



.lv-wishlist-footer-empty{
 background: #d9d9d959 !important;
}
.elementor-popup-modal__close-button{
	background-color: #ffffff !important;
    font-family: "Montserrat", Sans-serif;
    font-weight: 600;
    color: #244B5A;
    border-style: none;
    border-radius: 7px 7px 7px 7px;
	padding: 0px !important;
}
.lv-wishlist-share{
	background-color: #ffffff !important;
    font-family: "Montserrat", Sans-serif;
    font-weight: 600;
    color: #244B5A;
    border-style: none;
    border-radius: 7px 7px 7px 7px;
	padding: 0px !important;
}
.max-h-\[90vh\] { max-height: 90vh }

.h-\[197px\] { height: 197px }
.min-w-0 { min-width: 0px }

.h-auto { height: auto }


.grid { display: grid }
.p-3 { padding: 0.75rem }
.grid-cols-\[110px_1fr\] { grid-template-columns: 110px 1fr }


.self-stretch { align-self: stretch }
.min-h-\[110px\] { min-height: 110px }
.grid-cols-\[140px_1fr\] { grid-template-columns: 140px 1fr }


.bg-gray-200 { --tw-bg-opacity: 1; background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1)) }
.bg-cover { background-size: cover }
.bg-center { background-position: center }
.bg-no-repeat { background-repeat: no-repeat }
.grid-cols-\[38\%_1fr\] { grid-template-columns: 38% 1fr }

/* ==========================================================
 * Laventa: Filtros avanzados (popup).
 * ========================================================== */

/* El boton "Cancelar" reusa .elementor-popup-modal__close-button (para que
 * Elementor lo reconozca como cierre) + .lv-more-filters-btn (estilo
 * outline). Esa primera clase ya trae padding:0 !important definido antes
 * en este archivo para otro boton; se sobre-especifica aqui con una clase
 * extra para que gane por especificidad sin importar el orden. */
.elementor-popup-modal__close-button.lv-af-cancel-btn {
  padding: 13px 20px !important;
}

/* Alcobas/Banos/Parqueaderos: contenedor con borde gris (como los demas
 * campos) y solo el boton activo lleva la "pildora" de color; el resto
 * son botones planos sin fondo ni borde propio. */
.lv-af-pill {
  background-color: transparent !important;
  color: #244B5A !important;
  border: none !important;
  border-radius: 7px !important;
  padding: 8px 12px !important;
  flex: 1 1 0%;
  text-align: center;
  transition: background-color .15s ease, color .15s ease;
}
.lv-af-pill:hover:not(.is-active) { background-color: #F4F6F7 !important; }
.lv-af-pill.is-active {
  background-color: #ADC8CB !important;
  color: #fff !important;
}

/* .lv-af-amenity tiene el mismo riesgo (es un <button> crudo dentro de
 * "Que debe incluir"): se fuerza tambien por si acaso, aunque su borde
 * visible ayuda a disimularlo. */
.lv-af-amenity {
  background-color: #fff !important;
  border-width: 1px !important;
  border-style: solid !important;
  border-color: #E5E7EB !important;
  border-radius: 9999px !important;
  padding: 10px 18px !important;
}
.lv-af-amenity.is-active {
  background-color: #F4F6F7 !important;
  border-color: #244B5A !important;
}

.lv-af-amenity { transition: background-color .15s ease, border-color .15s ease; }
.lv-af-amenity.is-active {
  background-color: #F4F6F7;
  border-color: #244B5A;
}

/* Slider doble: dos <input type="range"> superpuestos con pointer-events
 * desactivado en el track y reactivado solo en el thumb, para que cada
 * manija se pueda arrastrar de forma independiente. Thumb blanco con
 * borde y sombra suave, igual al Figma (no relleno solido). */
.lv-af-range {
  top: 50%;
  transform: translateY(-50%);
  left: 0;
  height: 20px;
  margin: 0;
}
.lv-af-range::-webkit-slider-runnable-track { background: transparent; height: 6px; }
.lv-af-range::-moz-range-track { background: transparent; height: 6px; border: none; }
.lv-af-range::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  pointer-events: auto;
  width: 20px;
  height: 20px;
  border-radius: 9999px;
  background: #fff;
  border: 1px solid #D9D9D9;
  box-shadow: 0 1px 3px rgba(20,40,48,.25);
  cursor: pointer;
  margin-top: -7px;
}
.lv-af-range::-moz-range-thumb {
  pointer-events: auto;
  width: 20px;
  height: 20px;
  border-radius: 9999px;
  background: #fff;
  border: 1px solid #D9D9D9;
  box-shadow: 0 1px 3px rgba(20,40,48,.25);
  cursor: pointer;
}


/* ==========================================================
 * Laventa: utilidades de Tailwind que faltaban compilar para el
 * modal de Filtros avanzados (el build estatico no se habia vuelto
 * a generar desde que se agregaron estas clases nuevas).
 * ========================================================== */
.border-r { border-right-width: 1px }
.last\:border-r-0:last-child { border-right-width: 0px }
.grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)) }
.gap-8 { gap: 2rem }
.shadow-2xl {
  --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
  --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
}
.max-h-\[420px\] { max-height: 420px }
.pl-9 { padding-left: 2.25rem }
.pr-3 { padding-right: 0.75rem }
@media (min-width: 1024px) {
  .lg\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)) }
  .lg\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)) }
  .lg\:max-h-none { max-height: none }
}

/* ==========================================================
 * Laventa: quitar el foco nativo (recuadro negro) que Chrome dibuja
 * dentro de los <select> al hacer clic. "outline-none" de Tailwind no
 * alcanza porque ese recuadro no es un outline normal, sino parte del
 * render nativo del control que solo desaparece si "appearance: none"
 * realmente gana la especificidad (por eso se fuerza con !important).
 * ========================================================== */
.lv-advanced-filters select,
.lv-search-wrap select {
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
  outline: none !important;
  box-shadow: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.lv-advanced-filters select:focus,
.lv-advanced-filters select:focus-visible,
.lv-search-wrap select:focus,
.lv-search-wrap select:focus-visible {
  outline: none !important;
  box-shadow: none !important;
}

/* ==========================================================
 * Laventa: estado de foco unificado para los campos del modal de
 * filtros avanzados (select, fecha, buscador de amenities, montos).
 * Sin esto no habia NINGUN indicador visual al hacer foco (se veia
 * roto); se agrega un borde + sombra suave en el color de marca.
 * Para los selects y los montos, el borde vive en el DIV que envuelve
 * al input real, asi que se usa :focus-within; para los inputs de
 * texto simples (fecha, buscador) el borde esta en el propio input.
 * ========================================================== */
.lv-af-field {
  transition: border-color .15s ease, box-shadow .15s ease;
}
.lv-af-field:focus-within,
input.lv-af-field:focus {
  border-color: #244B5A !important;
  box-shadow: 0 0 0 3px rgba(36,75,90,.12);
}

/* Los <input> de "Precio minimo/maximo" y "Desde/Hasta" (Area) viven
 * dentro de un DIV que ya tiene el borde; el input no debe traer el
 * suyo propio (el borde "negro" que se veia era el default del
 * navegador para <input type="text">, no un estilo nuestro). */
.lv-af-input {
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  background: transparent !important;
}

/* El campo de "Fecha de publicacion" es un <input> real (no un DIV que
 * envuelve al input, como en el select), asi que compite directo contra
 * el estilo global que Elementor le pone a TODOS los <input> del sitio
 * vía el Kit (mismo problema de especificidad que ya tuvimos con los
 * botones "crudos" -- .elementor-kit-N input le gana a una sola clase
 * de Tailwind). Se fuerza con !important, igual que con los botones. */
input.lv-af-date {
  border: 1px solid #E5E7EB !important;
  border-radius: 7px !important;
  padding: 12px 16px !important;
}
input.lv-af-search {
  border: 1px solid #E5E7EB !important;
  border-radius: 7px !important;
  padding: 10px 12px 10px 36px !important;
}

/* "Limpiar filtros" es un <button> plano (sin lv-search-btn ni
 * lv-more-filters-btn), asi que hereda el fondo/padding/radio por
 * defecto que Elementor le pone a TODOS los botones via el Kit. Debe
 * verse como un simple texto subrayado, sin caja. */
#lv-af-clear {
  background: none !important;
  background-color: transparent !important;
  border: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
}
.p-1\.5 {
  padding: 0.375rem
}


/* ==========================================================
 * Laventa: card de blog (loop-item "Card blog").
 * ========================================================== */
.lv-blog-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  flex: none;
  border-radius: 9999px;
  background-color: #ADC8CB;
  color: #244B5A;
  transition: background-color .15s ease;
}
.lv-blog-arrow:hover {
  background-color: #83A1A5;
}
.lv-blog-excerpt p {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin: 0;
}

/* Utilidades que faltaban para el carrusel interno de fotos de la card. */
.bg-white\/90 { background-color: rgb(255 255 255 / 0.9) }
.bg-white\/50 { background-color: rgb(255 255 255 / 0.5) }
.shadow-sm {
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
}
.duration-500 { transition-duration: 500ms }
.ease-out { transition-timing-function: cubic-bezier(0, 0, 0.2, 1) }
.lv-card-slider-prev, .lv-card-slider-next {
  background-color: rgba(255,255,255,.9) !important;
  border-style: none !important;
  border-radius: 9999px !important;
  padding: 0 !important;
  width: 1.75rem !important;
  height: 1.75rem !important;
}
.lv-card-slider-prev:hover, .lv-card-slider-next:hover { background-color: #fff !important; }
.left-2 { left: 0.5rem }
.right-2 { right: 0.5rem }
.bottom-2 { bottom: 0.5rem }
.inset-x-0 { left: 0px; right: 0px }

/* Utilidades que faltaban para la galeria del detalle de inmueble. */
.aspect-\[16\/10\] { aspect-ratio: 16/10 }
.w-10 { width: 2.5rem }
.h-10 { height: 2.5rem }
.w-20 { width: 5rem }
.h-16 { height: 4rem }
.border-transparent { border-color: transparent }
.border-\[\#244B5A\] {
  --tw-border-opacity: 1;
  border-color: rgb(36 75 90 / var(--tw-border-opacity, 1))
}
.mt-3 { margin-top: 0.75rem }
.pb-1 { padding-bottom: 0.25rem }
@media (min-width: 640px) {
  .sm\:w-24 { width: 6rem }
  .sm\:h-\[70px\] { height: 70px }
}
@media (min-width: 1024px) {
  .lg\:aspect-\[21\/9\] { aspect-ratio: 21/9 }
}
.lv-gallery-prev, .lv-gallery-next {
  background-color: rgba(255,255,255,.9) !important;
  border-style: none !important;
  border-radius: 9999px !important;
  padding: 0 !important;
  width: 2.5rem !important;
  height: 2.5rem !important;
}
.lv-gallery-prev:hover, .lv-gallery-next:hover { background-color: #fff !important; }
.lv-gallery-viewall {
  background-color: #fff !important;
  border-style: none !important;
  border-radius: 7px !important;
  padding: 8px 14px !important;
}
.lv-gallery-thumb {
  background-color: transparent !important;
  border-style: solid !important;
  border-width: 2px !important;
  border-radius: 8px !important;
  padding: 0 !important;
  display: block !important;
  overflow: hidden !important;
  width: 5rem !important;
  height: 4rem !important;
  line-height: 0 !important;
}
.lv-gallery-thumb img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  -o-object-fit: cover !important;
     object-fit: cover !important;
}
@media (min-width: 640px) {
  .lv-gallery-thumb { width: 6rem !important; height: 70px !important; }
}

.bottom-4 { bottom: 1rem }
.rounded-xl { border-radius: 0.75rem }

/* Utilidades que faltaban para la caja de luz (lightbox) del detalle. */
.fixed { position: fixed }
.z-\[999\] { z-index: 999 }
.bg-black\/90 { background-color: rgb(0 0 0 / 0.9) }
.bg-white\/10 { background-color: rgb(255 255 255 / 0.1) }
.hover\:bg-white\/20:hover { background-color: rgb(255 255 255 / 0.2) }
.max-w-full { max-width: 100% }
.max-h-full { max-height: 100% }
.select-none { -webkit-user-select: none; -moz-user-select: none; user-select: none }
@media (min-width: 640px) {
  .sm\:left-6 { left: 1.5rem }
  .sm\:right-6 { right: 1.5rem }
  .sm\:w-12 { width: 3rem }
  .sm\:h-12 { height: 3rem }
}
.lv-lightbox-close, .lv-lightbox-prev, .lv-lightbox-next, .lv-lightbox-zoom-in, .lv-lightbox-zoom-out {
  background-color: rgba(255,255,255,.1) !important;
  border-style: none !important;
  border-radius: 9999px !important;
  padding: 0 !important;
}
.lv-lightbox-close:hover, .lv-lightbox-prev:hover, .lv-lightbox-next:hover,
.lv-lightbox-zoom-in:hover, .lv-lightbox-zoom-out:hover {
  background-color: rgba(255,255,255,.2) !important;
}
.lv-lightbox-close { width: 2.25rem !important; height: 2.25rem !important; }
.lv-lightbox-zoom-in, .lv-lightbox-zoom-out { width: 2.25rem !important; height: 2.25rem !important; }
.lv-lightbox-prev, .lv-lightbox-next { width: 2.5rem !important; height: 2.5rem !important; }
@media (min-width: 640px) {
  .lv-lightbox-prev, .lv-lightbox-next { width: 3rem !important; height: 3rem !important; }
}

/* Hover de las cards de propiedades: se eleva un poco con sombra, y la
 * foto hace un leve zoom -- sutil pero que se note al pasar el mouse. */
.lv-property-card {
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.lv-property-card:hover {
  position: relative;
  z-index: 5;
  transform: translateY(-4px);
  box-shadow: 0 8px 18px rgba(20,40,48,.12);
  border-color: #D9E2E5;
}
.lv-property-card .lv-card-slider-track img {
  transition: transform .5s ease;
}
.lv-property-card:hover .lv-card-slider-track img {
  transform: scale(1.08);
}
.pb-3 { padding-bottom: 0.75rem }
.-mt-3 { margin-top: -0.75rem }

.pt-3 { padding-top: 0.75rem }

.pb-8 { padding-bottom: 2rem }

.text-\[\#244B5A\]\/70 { color: rgb(36 75 90 / 0.7) }
@media (min-width: 640px) {
  .sm\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)) }
}
.lv-pd-fav, .lv-pd-share {
  background-color: transparent !important;
  border-style: none !important;
  padding: 0 !important;
}

/* ==========================================================
 * Laventa: detalle de inmueble -- info debajo de la galeria.
 * ========================================================== */

/* Columna derecha fija mientras se scrollea la izquierda (mas alta). */
.lv-pd-right-sticky {
  position: sticky;
  top: calc(var(--lv-header-h, 90px) + 16px);
}

/* Botones "crudos" propios de esta seccion: se fuerza su estilo con
 * !important por el mismo motivo de siempre en este tema (Elementor le
 * pone su propio fondo/padding por defecto a TODOS los <button>/<input>
 * del sitio via el Kit, con mas especificidad que una sola clase). */
.lv-pd-whatsapp-btn {
  background-color: #25D366 !important;
  color: #fff !important;
  text-decoration: none !important;
  border-style: none !important;
}
.lv-pd-whatsapp-btn:hover { background-color: #1EBE5A !important; color: #fff !important; }

.lv-pd-download-btn {
  background-color: #fff !important;
  color: #244B5A !important;
  border-style: solid !important;
  border-width: 1px !important;
  border-color: #E5E7EB !important;
}
.lv-pd-download-btn:hover { background-color: #F4F6F7 !important; }

.lv-pd-submit-btn {
  background-color: #ADC8CB !important;
  color: #244B5A !important;
  border-style: none !important;
}
.lv-pd-submit-btn:hover { background-color: #9BC0C4 !important; }

.lv-pd-fav, .lv-pd-share, .lv-pd-acc-trigger {
  background-color: transparent !important;
  border-style: none !important;
  padding: 0 !important;
}
.lv-pd-acc-trigger { padding: 20px !important; }

.lv-pd-input {
  border-width: 1px !important;
  border-style: solid !important;
  border-color: #E5E7EB !important;
  border-radius: 7px !important;
  background-color: #fff !important;
}
.lv-pd-input:focus {
  border-color: #244B5A !important;
  box-shadow: 0 0 0 3px rgba(36,75,90,.12);
}

.lv-pd-checkbox { accent-color: #244B5A; }

/* Utilidades que faltaban para la info del detalle de inmueble. */
@media (min-width: 1024px) {
  .lg\:grid-cols-\[1fr_380px\] { grid-template-columns: 1fr 380px }
}
.gap-10 { gap: 2.5rem }
.text-3xl { font-size: 1.875rem; line-height: 2.25rem }
.p-6 { padding: 1.5rem }
.rounded-\[10px\] { border-radius: 10px }
.pb-5 { padding-bottom: 1.25rem }
.pb-6 { padding-bottom: 1.5rem }
.mt-1\.5 { margin-top: 0.375rem }
.mt-2 { margin-top: 0.5rem }
.mt-5 { margin-top: 1.25rem }
.mt-6 { margin-top: 1.5rem }
.font-extrabold { font-weight: 800 }
.leading-relaxed { line-height: 1.625 }
@media (min-width: 640px) {
  .sm\:text-3xl { font-size: 1.875rem; line-height: 2.25rem }
  .sm\:items-start { align-items: flex-start }
}

/* Utilidades que faltaban para el detalle de inmueble (info debajo de la galeria). */
.sm\:justify-between {}
@media (min-width: 640px) {
  .sm\:justify-between { justify-content: space-between }
}
.text-2xl { font-size: 1.5rem; line-height: 2rem }
.mt-8 { margin-top: 2rem }

/* Columna derecha del detalle: fija (sticky) mientras se hace scroll,
 * dejando un margen arriba para no pegarse al header. */
.lv-pd-right-sticky {
  position: sticky;
  top: calc(var(--lv-header-h, 90px) + 16px);
}

/* Acordeon de caracteristicas: altura animada en vez de mostrar/ocultar
 * de golpe (eso era lo que se sentia como un salto). */
.lv-pd-acc-panel {
  overflow: hidden;
  transition: max-height .3s ease;
}
.lv-pd-acc-panel.is-closed {
  max-height: 0 !important;
}

/* Iconos de favoritos/compartir y botones crudos: proteger contra el
 * reset global de <button> de Elementor. */
.lv-pd-fav, .lv-pd-share, .lv-pd-download-btn, .lv-pd-submit-btn, .lv-pd-acc-trigger {
  background-color: transparent !important;
  border-style: none !important;
  padding: 0 !important;
}
.lv-pd-download-btn {
  background-color: #fff !important;
  border-style: solid !important;
  border-width: 1px !important;
  border-color: #E5E7EB !important;
  border-radius: 7px !important;
  padding: 12px !important;
}
.lv-pd-submit-btn {
  background-color: #ADC8CB !important;
  border-radius: 7px !important;
  padding: 12px !important;
}
.lv-pd-whatsapp-btn {
  background-color: #25D366 !important;
}
.lv-pd-acc-trigger {
  padding: 16px 20px !important;
}
.lv-pd-wrap a { color: #244B5A !important; }

.w-6 { width: 1.5rem }
.h-6 { height: 1.5rem }

/* El fix de color de enlaces (.lv-pd-wrap a) le pisaba el texto blanco al
 * boton de WhatsApp, que tambien es un <a>. Se sobre-especifica aqui. */
.lv-pd-wrap a.lv-pd-whatsapp-btn {
  color: #fff !important;
}
.bg-\[\#F7F7F7\] {
  --tw-bg-opacity: 1;
  background-color: rgb(247 247 247 / var(--tw-bg-opacity, 1))
}
.pt-8 { padding-top: 2rem }
.pt-12 { padding-top: 3rem }
.m-0 { margin: 0 }

/* Refuerzo defensivo del circulo detras de los iconos de favoritos/compartir. */
.lv-pd-icon-circle {
  width: 1.75rem !important;
  height: 1.75rem !important;
  flex: none !important;
  border-radius: 9999px !important;
  background-color: #F3F3F3 !important;
}

/* La clase de fondo gris real, que nunca se habia compilado. */
.bg-\[\#F3F3F3\] {
  --tw-bg-opacity: 1;
  background-color: rgb(243 243 243 / var(--tw-bg-opacity, 1))
}
.mb-0 { margin-bottom: 0px }

.top-\[calc\(100\%\+10px\)\] { top: calc(100% + 10px) }
.z-30 { z-index: 30 }
.w-64 { width: 16rem }
.p-2\.5 { padding: 0.625rem }
.shadow-xl {
  --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
}

/* Botones del menu de compartir: proteger contra el reset global de
 * <button> de Elementor, y el estado hover/transicion. */
.lv-share-option {
  background-color: transparent !important;
  border-style: none !important;
  padding: 10px 12px !important;
  transition: background-color .15s ease;
}
.lv-share-option:hover {
  background-color: #F7F7F7 !important;
}
.aspect-video { aspect-ratio: 16 / 9 }
.left-1\/2 { left: 50% }
.-translate-x-1\/2 {
  --tw-translate-x: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}

.lv-pd-map-btn {
  background-color: #fff !important;
  border-style: none !important;
  border-radius: 10px !important;
  padding: 12px 20px !important;
}
.mt-16 { margin-top: 4rem }
.mb-6 { margin-bottom: 1.5rem }

.w-2\.5 { width: 0.625rem }
.h-2\.5 { height: 0.625rem }

.w-48 { width: 12rem }
.text-\[13px\] { font-size: 13px }

/* Miniaturas de la galeria: la activa se ve nitida, las demas quedan
 * desenfocadas y un poco mas oscuras para que resalte cual esta viendo. */
.lv-gallery-thumb img {
  transition: filter .25s ease;
}
.lv-gallery-thumb.border-transparent img {
  filter: blur(1.5px) brightness(0.85);
}
.lv-gallery-thumb.border-\[\#244B5A\] img {
  filter: none;
}
.px-10 { padding-left: 2.5rem; padding-right: 2.5rem }
.pt-6 { padding-top: 1.5rem }
.text-\[\#244B5A\]\/45 { color: rgb(36 75 90 / 0.45) }

/* Botones crudos de la barra de filtros del listado de propiedades:
 * proteger contra el reset global de <button> de Elementor. */
.lv-toolbar-select {
  background-color: #fff !important;
  border-style: solid !important;
  border-width: 1px !important;
  border-color: #E5E7EB !important;
  border-radius: 7px !important;
  padding: 13px 17px !important;
}

/* Separador entre la barra de filtros y la fila de resultados del
 * listado de propiedades: protegido contra el reset global de <hr> de
 * Elementor (hr{margin:0}). */
.lv-toolbar-divider {
  margin-top: 24px !important;
  margin-bottom: 0 !important;
}

/* Barra de filtros + resultados de /propiedades/: queda fija (position:
 * fixed via JS) justo debajo del header al hacer scroll. La logica de
 * activarla vive en propertiesListing.php (laventa_render_properties_toolbar). */
.lv-toolbar-fixed {
  z-index: 30;
}

/* Fila de resultados (cuenta + orden + toggle mapa) cuando queda fija
 * justo debajo de la toolbar de filtros (ver script en
 * propertiesListing.php / laventa_render_properties_toolbar). */
.lv-results-fixed {
  z-index: 28;
  background-color: #fff;
}

.lv-results-backdrop {
  position: fixed;
  background-color: #fff;
  z-index: 26;
}

.lv-toolbar-backdrop {
  position: fixed;
  left: 0;
  width: 100%;
  background-color: #fff;
  z-index: 27;
}

/* Select nativo "Cualquier precio" (buscador del home y de
 * /propiedades/): mismo motivo que .lv-advanced-filters select / .lv-search-wrap
 * select mas arriba -- si "appearance: none" no gana la especificidad, el
 * navegador sigue dibujando su combobox nativo por dentro, con foco negro
 * Y padding reservado propio (el espacio gigante a la izquierda del texto). */
.lv-raw-select {
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
  outline: none !important;
  box-shadow: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  -webkit-tap-highlight-color: transparent;
}
.lv-raw-select:focus,
.lv-raw-select:focus-visible {
  outline: none !important;
  box-shadow: none !important;
}
.lv-raw-select::-moz-focus-inner {
  border: 0;
}

/* Toggle Grid/Mapa de /propiedades/: en modo "grid" (por defecto) el
 * panel de mapa esta oculto y la grilla ocupa todo el ancho; en modo
 * "map" la grilla se angosta a 2 columnas y el mapa aparece al lado,
 * fijo (sticky) mientras se hace scroll por los resultados. */
#lv-properties-layout[data-mode="map"] #lv-properties-grid-col {
  width: 100%;
}
#lv-properties-map {
  display: none;
  width: 100%;
  min-height: 320px;
}
@media (min-width: 1024px) {
  #lv-properties-layout[data-mode="map"] #lv-properties-grid-col {
    /* min-width: 0 es la parte clave: por defecto un hijo flex no se
     * encoge mas alla del ancho minimo de su contenido (las tarjetas),
     * asi que sin esto "width: 50%" se ignora y el mapa queda aplastado
     * en lo poco que sobra. */
    width: 50%;
    min-width: 0;
    flex: 0 0 50%;
  }
  #lv-properties-layout[data-mode="map"] .lv-properties-grid-inner {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  #lv-properties-layout[data-mode="map"] #lv-properties-map {
    display: block;
    width: 50%;
    flex: 0 0 50%;
    align-self: flex-start;
    position: sticky;
    top: calc(var(--lv-header-h, 90px) + var(--lv-toolbar-h, 150px));
    height: calc(100vh - var(--lv-header-h, 90px) - var(--lv-toolbar-h, 150px) - 32px);
  }
}
/* En mobile/tablet (sin espacio para las 2 columnas lado a lado): el
 * modo "map" muestra SOLO el mapa a pantalla completa, y el modo
 * "grid" solo la grilla; nunca los dos partidos en columnas angostas.
 * IMPORTANTE: #lv-properties-map tiene "display: none" a nivel base (mas
 * arriba) para el modo grid en desktop; sin esta regla, quedaba oculto
 * tambien en mobile aunque el modo fuera "map" (bug: no se veia ni el
 * mapa ni la grilla). */
@media (max-width: 1023px) {
  #lv-properties-layout[data-mode="map"] #lv-properties-grid-col {
    display: none;
  }
  #lv-properties-layout[data-mode="map"] #lv-properties-map {
    display: block;
    width: 100%;
    height: calc(100vh - 220px);
    min-height: 420px;
  }
}

/* Boton flotante "Lista" para volver desde el mapa en mobile/tablet (ver
 * comentario junto al boton en propertiesListing.php). Oculto por
 * defecto; solo aparece en pantallas angostas y en modo mapa. */
.lv-mobile-map-list-btn {
  display: none;
}
@media (max-width: 1023px) {
  #lv-properties-layout[data-mode="map"] .lv-mobile-map-list-btn {
    display: flex;
    position: fixed;
    left: 50%;
    bottom: 24px;
    transform: translateX(-50%);
    z-index: 40;
    background-color: #244B5A;
    color: #fff;
    padding: 12px 24px;
    border-radius: 999px;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
    border: none;
  }
}
.lv-toolbar-sort, .lv-toolbar-map-toggle {
  background-color: transparent !important;
  border-style: none !important;
  padding: 0 !important;
}
.lv-toolbar-map-toggle {
  background-color: #fff !important;
  border-style: solid !important;
  border-width: 1px !important;
  border-color: #E5E7EB !important;
  border-radius: 7px !important;
  padding: 10px 16px !important;
}
.pr-6 { padding-right: 1.5rem }

.lv-toolbar-sort {
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
  outline: none !important;
  box-shadow: none !important;
  padding-left: 0 !important;
  padding-right: 22px !important;
}
.lv-toolbar-sort:focus { outline: none !important; box-shadow: none !important; }
/* Agregado para la grilla + paginacion de /propiedades/ (laventa_properties_grid). */
.pb-16 { padding-bottom: 4rem }
.mt-10 { margin-top: 2.5rem }
.max-w-\[1240px\] { max-width: 1240px }
.max-w-\[1480px\] { max-width: 1480px }

/* Botones crudos del paginador (Anterior / numeros / Siguiente) en
 * /propiedades/: mismo motivo que .lv-toolbar-select mas arriba --
 * protegerlos del reset global de <button> que el Kit de Elementor le
 * pone a TODO <button> del sitio (fondo #ADC8CB, sin borde, radio 7px),
 * que gana por especificidad a las utilidades Tailwind sueltas
 * (bg-white, border, text-[#244B5A], etc.) usadas en el markup. */
.lv-page-prev, .lv-page-next, .lv-page-number {
  background-color: #fff !important;
  border-style: solid !important;
  border-width: 1px !important;
  border-color: #E5E7EB !important;
  border-radius: 7px !important;
  color: #244B5A !important;
}
.lv-page-prev, .lv-page-next {
  padding: 10px 16px !important;
}
.lv-page-number {
  padding: 0 !important;
}
.lv-page-number.bg-\[\#244B5A\] {
  background-color: #244B5A !important;
  border-color: #244B5A !important;
  color: #fff !important;
}

/* Reforzado al final del archivo a proposito: mas abajo en el CSS
 * gana el empate de especificidad contra .sm\:grid-cols-2 (que en
 * este archivo aparece despues de la primera definicion de
 * .lg\:grid-cols-4), evitando que en pantallas anchas se quede en
 * 2 columnas en vez de 4. */
@media (min-width: 1024px) {
  .lg\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)) }
}


/* Filtros avanzados: linea divisoria entre columnas (solo en desktop,
 * donde las 3 columnas van lado a lado; en mobile se apilan y no hace
 * falta). El padding compensa el gap-8 (32px) del grid para que el
 * contenido no quede demasiado pegado a la linea. */
@media (min-width: 1024px) {
  .lv-af-col-divider {
    border-left: 1px solid #E5E7EB;
    padding-left: 24px;
  }
}

/* ============================================================
 * Timeline "Trayectoria" (pagina Nosotros) - [laventa_trayectoria]
 * Linea central, hitos alternados izq/der, y opacidad segun scroll
 * (controlada por JS en includes/views/trayectoria.php via clase
 * "is-active"). Los dos <div class="lv-timeline-col"> de cada hito: solo
 * UNO de los dos trae contenido (el otro queda vacio, es el lado
 * contrario), eso es lo que crea la alternancia izquierda/derecha.
 * ============================================================ */
.lv-timeline {
  position: relative;
  max-width: 1240px;
  margin: 0 auto;
  padding: 60px 40px;
}
.lv-timeline::before {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 2px;
  background-color: #DDE5E4;
  transform: translateX(-50%);
}
.lv-timeline-item {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 44px 1fr;
  align-items: start;
  margin-bottom: 50px;
}
.lv-timeline-item:last-child {
  margin-bottom: 0;
}
.lv-timeline-col {
  min-height: 1px;
  opacity: 0.2;
  transition: opacity 0.5s ease, transform 0.5s ease;
}
.lv-timeline-item.is-active .lv-timeline-col {
  opacity: 1;
}
.lv-timeline-col-left {
  padding-right: 36px;
  text-align: right;
}
.lv-timeline-col-right {
  padding-left: 36px;
  text-align: left;
}
.lv-timeline-marker {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-top: 30px;
}
.lv-timeline-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background-color: #244B5A;
  border: 3px solid #fff;
  box-shadow: 0 0 0 2px #DDE5E4;
  display: block;
}
.lv-timeline-year {
  font-family: Montserrat, sans-serif;
  font-weight: 800;
  font-size: 68px;
  line-height: 1;
  color: #C7D2D4;
  transition: color 0.5s ease;
  margin: 0 0 10px 0;
}
.lv-timeline-item.is-active .lv-timeline-year {
  color: #244B5A;
}
.lv-timeline-heading {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}
.lv-timeline-col-left .lv-timeline-heading {
  justify-content: flex-end;
}
.lv-timeline-heading .dashicons {
  color: #244B5A;
  font-size: 18px;
  width: 18px;
  height: 18px;
}
.lv-timeline-heading h3 {
  margin: 0;
  font-family: Montserrat, sans-serif;
  font-weight: 700;
  font-size: 16px;
  color: #244B5A;
}
.lv-timeline-desc p {
  margin: 0 0 4px 0;
  font-family: Montserrat, sans-serif;
  font-size: 16px;
  line-height: 1.6;
  color: rgba(36, 75, 90, 0.7);
}
.lv-timeline-img {
  display: block !important;
  width: 220px !important;
  max-width: 220px !important;
  height: 130px !important;
  max-height: 130px !important;
  object-fit: cover !important;
  border-radius: 8px !important;
  margin-top: 12px;
}
@media (min-width: 768px) {
  .lv-timeline-col-left .lv-timeline-img {
    margin-left: auto;
  }
}
.lv-timeline-icon-img {
  width: 18px;
  height: 18px;
  object-fit: contain;
  display: inline-block;
}

@media (max-width: 767px) {
  .lv-timeline {
    padding: 40px 20px;
  }
  .lv-timeline::before {
    left: 14px;
  }
  .lv-timeline-item {
    grid-template-columns: 30px 1fr;
  }
  .lv-timeline-marker {
    grid-column: 1;
    padding-top: 6px;
  }
  .lv-timeline-col-left,
  .lv-timeline-col-right {
    grid-column: 2;
    grid-row: 1;
    text-align: left;
    padding-left: 18px;
    padding-right: 0;
  }
  .lv-timeline-col-left .lv-timeline-heading {
    justify-content: flex-start;
  }
  .lv-timeline-year {
    font-size: 44px;
  }
  .lv-timeline-img {
    width: 100% !important;
    max-width: 320px !important;
    height: 170px !important;
    max-height: 170px !important;
    margin-left: 0;
  }
}

/* ============================================================
 * Preguntas Frecuentes [laventa_faq]: pastillas de categoria +
 * acordeon + tarjeta lateral de contacto.
 * ============================================================ */
.lv-faq {
  max-width: 1240px;
  margin: 0 auto;
}
.lv-faq-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 24px;
}
.lv-faq-pill {
  font-family: Montserrat, sans-serif !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  padding: 10px 18px !important;
  border-radius: 7px !important;
  border: 1px solid #E5E7EB !important;
  background-color: #fff !important;
  color: #244B5A !important;
  cursor: pointer;
  line-height: normal !important;
}
.lv-faq-pill.is-active {
  background-color: #ADC8CB !important;
  border-color: #ADC8CB !important;
  color: #244B5A !important;
}
.lv-faq-layout {
  display: flex;
  align-items: flex-start;
  gap: 24px;
}
.lv-faq-accordion {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.lv-faq-item {
  border: 1px solid #E5E7EB;
  border-radius: 10px;
  overflow: hidden;
  transition: background-color 0.3s ease;
}
.lv-faq-item.is-open {
  background-color: #DCE5E4;
  border-color: #DCE5E4;
}
.lv-faq-question {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  text-align: left;
  background: none !important;
  border: none !important;
  cursor: pointer;
  padding: 18px 20px !important;
  font-family: Montserrat, sans-serif !important;
  font-weight: 700 !important;
  font-size: 15px !important;
  color: #244B5A !important;
  line-height: normal !important;
}
.lv-faq-caret {
  flex: none;
  transition: transform 0.3s ease;
  color: #244B5A;
}
.lv-faq-item.is-open .lv-faq-caret {
  transform: rotate(180deg);
}
.lv-faq-answer {
  display: none;
  padding: 0 20px 20px 20px;
}
.lv-faq-item.is-open .lv-faq-answer {
  display: block;
}
.lv-faq-answer p {
  margin: 0;
  font-family: Montserrat, sans-serif;
  font-size: 14px;
  line-height: 1.6;
  color: rgba(36, 75, 90, 0.75);
}
.lv-faq-sidebar {
  flex: 0 0 300px;
  width: 300px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.lv-faq-card {
  background-color: #F1F2F3;
  border-radius: 12px;
  padding: 28px 24px;
  text-align: center;
}
.lv-faq-card-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background-color: #244B5A;
  color: #fff;
  font-size: 22px;
  margin-bottom: 14px;
}
.lv-faq-card h3 {
  margin: 0 0 8px 0;
  font-family: Montserrat, sans-serif;
  font-weight: 800;
  font-size: 17px;
  color: #244B5A;
}
.lv-faq-card p {
  margin: 0 0 18px 0;
  font-family: Montserrat, sans-serif;
  font-size: 13.5px;
  line-height: 1.5;
  color: rgba(36, 75, 90, 0.7);
}
.lv-faq-cta {
  display: inline-block;
  width: 100%;
  box-sizing: border-box;
  background-color: #ADC8CB;
  color: #244B5A;
  font-family: Montserrat, sans-serif;
  font-weight: 700;
  font-size: 14px;
  padding: 12px 18px;
  border-radius: 7px;
  text-decoration: none;
  text-align: center;
}
.lv-faq-sidebar-img {
  width: 100%;
  height: 220px;
  object-fit: cover;
  border-radius: 12px;
  display: block;
}

@media (max-width: 900px) {
  .lv-faq-layout {
    flex-direction: column;
  }
  .lv-faq-sidebar {
    flex: 1 1 auto;
    width: 100%;
    flex-direction: row;
  }
  .lv-faq-card {
    flex: 1 1 50%;
  }
  .lv-faq-sidebar-img {
    flex: 1 1 50%;
    height: auto;
  }
}
@media (max-width: 600px) {
  .lv-faq {
    padding: 24px 20px;
  }
  .lv-faq-sidebar {
    flex-direction: column;
  }
  .lv-faq-question {
    font-size: 14px;
    padding: 16px;
  }
}

/* Titulos (h2, h3) dentro del contenido de las entradas del blog
 * (widget "Post Content" de Elementor Pro en la plantilla single-post):
 * por defecto salian en regular, se fuerzan a negrita para que se vean
 * como el resto de los encabezados del sitio. */
.elementor-widget-theme-post-content h2,
.elementor-widget-theme-post-content h3 {
  font-family: Montserrat, sans-serif !important;
  font-weight: 800 !important;
  color: #244B5A;
}

/* ============================================================
 * Animaciones de entrada sutiles, SOLO en /creditos-hipotecarios/ (pagina
 * ID 477). CSS puro con @keyframes (nunca depende de un script para
 * revelarse, asi que el peor caso si algo falla es que se vea sin animar,
 * nunca invisible). Estaba antes embebido en functions.php
 * (laventa_creditos_animations, enganchado a wp_head); se movio aqui para
 * que todo el CSS del sitio viva en un solo lugar. Los selectores son IDs
 * unicos de Elementor propios de esa pagina, por eso no hace falta ningun
 * condicional de pagina aqui: en cualquier otra pagina esas clases
 * simplemente no existen.
 * ============================================================ */

		@keyframes lv-fade-up {
			from { opacity: 0; transform: translateY(18px); }
			to   { opacity: 1; transform: translateY(0); }
		}
		@keyframes lv-fade-left {
			from { opacity: 0; transform: translateX(-18px); }
			to   { opacity: 1; transform: translateX(0); }
		}
		@keyframes lv-fade-right {
			from { opacity: 0; transform: translateX(18px); }
			to   { opacity: 1; transform: translateX(0); }
		}
		@keyframes lv-fade-in {
			from { opacity: 0; }
			to   { opacity: 1; }
		}

		/* Titulo + imagenes */
		.elementor-element-a881c18,
		.elementor-element-332ce68,
		.elementor-element-c8fa99e,
		.elementor-element-71ee422,
		/* Haz realidad la compra... */
		.elementor-element-a8205ea,
		.elementor-element-a808a07,
		/* Que es un credito hipotecario (fondo gris) */
		.elementor-element-795fd28,
		.elementor-element-d9591f5,
		/* 4 tarjetas */
		.elementor-element-bb57a22,
		.elementor-element-aa4388d,
		.elementor-element-935be2b,
		.elementor-element-5c4acf0,
		.elementor-element-53b1191,
		.elementor-element-b29f66c,
		/* Preparate antes... */
		.elementor-element-634a176,
		.elementor-element-b1b282b,
		.elementor-element-f738dae,
		.elementor-element-24ef841,
		.elementor-element-b13c226,
		.elementor-element-07cdc2f,
		/* Que necesito para solicitarlo */
		.elementor-element-c6c7bc0,
		.elementor-element-285d978,
		.elementor-element-5e196ea,
		.elementor-element-f004bcd,
		.elementor-element-c879092,
		.elementor-element-c0aa34a,
		.elementor-element-0992550,
		.elementor-element-d7f9472,
		/* CTA final */
		.elementor-element-ab63c2f,
		.elementor-element-f9757c6,
		.elementor-element-c9bacf9 {
			animation-duration: 0.7s;
			animation-timing-function: ease-out;
			animation-fill-mode: both;
		}

		.elementor-element-a881c18 { animation-name: lv-fade-up; }
		.elementor-element-332ce68 { animation-name: lv-fade-up; animation-delay: .10s; }
		.elementor-element-c8fa99e { animation-name: lv-fade-in; }
		.elementor-element-71ee422 { animation-name: lv-fade-in; animation-delay: .15s; }

		.elementor-element-a8205ea { animation-name: lv-fade-left; }
		.elementor-element-a808a07 { animation-name: lv-fade-right; animation-delay: .10s; }

		.elementor-element-795fd28 { animation-name: lv-fade-up; }
		.elementor-element-d9591f5 { animation-name: lv-fade-up; animation-delay: .10s; }

		.elementor-element-bb57a22 { animation-name: lv-fade-up; }
		.elementor-element-aa4388d { animation-name: lv-fade-up; animation-delay: .10s; }
		.elementor-element-935be2b { animation-name: lv-fade-up; }
		.elementor-element-5c4acf0 { animation-name: lv-fade-up; animation-delay: .10s; }
		.elementor-element-53b1191 { animation-name: lv-fade-up; animation-delay: .20s; }
		.elementor-element-b29f66c { animation-name: lv-fade-up; animation-delay: .30s; }

		.elementor-element-634a176 { animation-name: lv-fade-left; }
		.elementor-element-b1b282b { animation-name: lv-fade-up; }
		.elementor-element-f738dae { animation-name: lv-fade-up; animation-delay: .08s; }
		.elementor-element-24ef841 { animation-name: lv-fade-up; animation-delay: .16s; }
		.elementor-element-b13c226 { animation-name: lv-fade-up; animation-delay: .24s; }
		.elementor-element-07cdc2f { animation-name: lv-fade-up; animation-delay: .32s; }

		.elementor-element-c6c7bc0 { animation-name: lv-fade-up; }
		.elementor-element-285d978 { animation-name: lv-fade-left; }
		.elementor-element-5e196ea { animation-name: lv-fade-left; animation-delay: .06s; }
		.elementor-element-f004bcd { animation-name: lv-fade-left; animation-delay: .12s; }
		.elementor-element-c879092 { animation-name: lv-fade-left; animation-delay: .18s; }
		.elementor-element-c0aa34a { animation-name: lv-fade-left; animation-delay: .24s; }
		.elementor-element-0992550 { animation-name: lv-fade-left; animation-delay: .30s; }
		.elementor-element-d7f9472 { animation-name: lv-fade-in; animation-delay: .10s; }

		.elementor-element-ab63c2f { animation-name: lv-fade-up; }
		.elementor-element-f9757c6 { animation-name: lv-fade-up; animation-delay: .10s; }
		.elementor-element-c9bacf9 { animation-name: lv-fade-up; animation-delay: .20s; }

		/* Respeta la preferencia de "reducir movimiento" del sistema operativo */
		@media (prefers-reduced-motion: reduce) {
			.elementor-element-a881c18, .elementor-element-332ce68, .elementor-element-c8fa99e,
			.elementor-element-71ee422, .elementor-element-a8205ea, .elementor-element-a808a07,
			.elementor-element-795fd28, .elementor-element-d9591f5, .elementor-element-bb57a22,
			.elementor-element-aa4388d, .elementor-element-935be2b, .elementor-element-5c4acf0,
			.elementor-element-53b1191, .elementor-element-b29f66c, .elementor-element-634a176,
			.elementor-element-b1b282b, .elementor-element-f738dae, .elementor-element-24ef841,
			.elementor-element-b13c226, .elementor-element-07cdc2f, .elementor-element-c6c7bc0,
			.elementor-element-285d978, .elementor-element-5e196ea, .elementor-element-f004bcd,
			.elementor-element-c879092, .elementor-element-c0aa34a, .elementor-element-0992550,
			.elementor-element-d7f9472, .elementor-element-ab63c2f, .elementor-element-f9757c6,
			.elementor-element-c9bacf9 {
				animation: none !important;
				opacity: 1 !important;
				transform: none !important;
			}
		}
	
.bg-\[\#D9D9D9\] {
  background-color: #D9D9D9;
}
.max-w-\[1140px\] { max-width: 1140px }

/* Miga de pan de /inmuebles/ (page-inmuebles.php), igual a las migas hechas
 * con Elementor en el resto del sitio (Creditos, Nosotros, etc.). */
.bg-\[\#F1F2F3\] { background-color: #F1F2F3 }
.py-\[18px\] { padding-top: 18px; padding-bottom: 18px }
.gap-\[11px\] { gap: 11px }
.text-\[\#8A9296\] { color: #8A9296 }

.content-start { align-content: flex-start; }
@media (min-width: 1024px) {
  .lg\:max-h-\[560px\] { max-height: 560px; }
}

@media (min-width: 1024px) {
  .lg\:px-0 { padding-left: 0px; padding-right: 0px; }
}

.right-3 { right: 0.75rem; }

.leading-tight { line-height: 1.25; }

.leading-\[1\] { line-height: 1; }

/* El reset.css de Hello Elementor pone font-size:1rem y line-height:1.5
   a TODO <button> del sitio, incluido el de cerrar de Mapbox -- eso
   lo infla a un tamano enorme. Se restaura su tamano compacto. */
.mapboxgl-popup-close-button {
  font-size: 18px !important;
  line-height: 18px !important;
  width: 24px !important;
  height: 24px !important;
  padding: 0 !important;
}

/* Fotos de las cards: llenan siempre el 100% del slider */
/* Elementor (.elementor img) y Hello (img) fuerzan height:auto y le ganan a .h-full;
   sin esto cada foto toma la altura de su propia proporcion y deja hueco abajo. */
.lv-property-card .lv-card-slider-track img {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
}


/* Boton "Limpiar filtros" del listado: enlace en linea junto al conteo de resultados */
#lv-results-row .lv-clear-filters-btn {
  display: none;
  align-items: center;
  gap: 0.375rem;
  margin-left: 0.875rem;
  padding: 0 !important;
  vertical-align: baseline;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  color: #244B5A !important;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
}
#lv-results-row .lv-clear-filters-btn svg {
  width: 0.8125rem;
  height: 0.8125rem;
  flex: none;
}
#lv-results-row .lv-clear-filters-btn:hover,
#lv-results-row .lv-clear-filters-btn:focus {
  background: transparent !important;
  color: #142830 !important;
}


/* Favorito en la ficha de detalle: sin guardar -> corazon de contorno y
   "Guardar en favoritos"; guardado -> corazon rojo relleno (el mismo del
   header) y "Guardado en favoritos". */
.lv-pd-fav .lv-pd-fav-on { display: none; }
.lv-pd-fav.is-active .lv-pd-fav-off { display: none; }
.lv-pd-fav.is-active img.lv-pd-fav-on { display: block; }
.lv-pd-fav.is-active span.lv-pd-fav-on { display: inline; }
.lv-pd-fav.is-active .lv-pd-icon-circle { background-color: #FDECEC; }

/* Politica de privacidad: listas, enlaces y espacio al saltar desde la tabla de contenido (todo acotado a .lv-policy-content). */
.lv-policy-content ul { list-style: disc outside; padding-left: 1.4em; margin: 0 0 0.9rem; }
.lv-policy-content li { margin: 0 0 0.6em; }
.lv-policy-content li:last-child { margin-bottom: 0; }
.lv-policy-content .elementor-widget-text-editor :is(p, ul):last-child { margin-bottom: 0; }
.lv-policy-content a { color: #244B5A; text-decoration: underline; text-underline-offset: 3px; }
.lv-policy-content a:hover { color: #1B3A46; }
.lv-policy-content :is(h2, h3) { scroll-margin-top: 130px; }


/* Politica de privacidad: la tabla de contenido queda fija con CSS justo debajo del header real (misma tecnica que el sidebar de la ficha de detalle), en vez del sticky de Elementor que no conoce la altura del header. */
@media (min-width: 1025px) {
  .lv-policy-toc {
    position: sticky;
    top: calc(var(--lv-header-h, 90px) + 24px);
    align-self: flex-start;
    max-height: calc(100vh - var(--lv-header-h, 90px) - 48px);
    overflow-y: auto;
    overscroll-behavior: contain;
  }
}


/* =========================================================
 * Creditos hipotecarios, seccion "Como te ayudamos": tarjetas de
 * pasos (.lv-step-card, contenedores de Elementor) y linea del
 * proceso (.lv-journey, dentro de un widget HTML sobre el panel
 * .lv-journey-panel). Sin pseudo-elementos en los contenedores de
 * Elementor para no chocar con su overlay de fondo.
 * ========================================================= */
.lv-step-card {
  position: relative;
  overflow: hidden;
  box-shadow: inset 0 4px 0 0 #ADC8CB, 0 8px 24px rgba(36, 75, 90, 0.08);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.lv-step-card:hover {
  transform: translateY(-6px);
  border-color: #ADC8CB !important;
  box-shadow: inset 0 4px 0 0 #244B5A, 0 16px 36px rgba(36, 75, 90, 0.16);
}

.lv-journey-panel {
  background-image:
    radial-gradient(circle at 100% 0%, rgba(173, 200, 203, 0.28), rgba(173, 200, 203, 0) 45%),
    radial-gradient(circle at 0% 100%, rgba(173, 200, 203, 0.18), rgba(173, 200, 203, 0) 45%);
}

.lv-journey {
  --lv-node: 60px;
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  position: relative;
}
.lv-journey::before,
.lv-journey::after {
  content: '';
  position: absolute;
  top: calc(var(--lv-node) / 2 - 1.5px);
  left: 10%;
  right: 10%;
  height: 3px;
  border-radius: 3px;
}
.lv-journey::before { background: rgba(173, 200, 203, 0.28); }
.lv-journey::after {
  background: linear-gradient(90deg, rgba(173, 200, 203, 0), #ADC8CB 50%, rgba(173, 200, 203, 0));
  background-size: 30% 100%;
  background-repeat: no-repeat;
  background-position: -40% 0;
  animation: lv-journey-glow 3.6s ease-in-out infinite;
}
@keyframes lv-journey-glow {
  0% { background-position: -40% 0; }
  100% { background-position: 140% 0; }
}

.lv-journey__step {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  text-align: center;
  padding: 0 6px;
}
/* flecha entre una etapa y la siguiente */
.lv-journey__step:not(:last-child)::after {
  content: '';
  position: absolute;
  top: calc(var(--lv-node) / 2 - 7px);
  right: -7px;
  width: 14px;
  height: 14px;
  box-sizing: border-box;
  border-top: 3px solid #ADC8CB;
  border-right: 3px solid #ADC8CB;
  background: #244B5A;
  transform: rotate(45deg);
  z-index: 1;
}
.lv-journey__node {
  position: relative;
  z-index: 2;
  width: var(--lv-node);
  height: var(--lv-node);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #244B5A;
  border: 2px solid #ADC8CB;
  color: #ADC8CB;
  box-shadow: 0 0 0 6px #244B5A;
  transition: transform .25s ease, background-color .25s ease, color .25s ease;
}
.lv-journey__node svg {
  width: 26px;
  height: 26px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.lv-journey__step:hover .lv-journey__node {
  transform: scale(1.1);
  background: #ADC8CB;
  color: #244B5A;
}
.lv-journey__label {
  color: #FFFFFF;
  font-family: 'Montserrat', sans-serif;
  font-weight: 600;
  font-size: 15px;
  line-height: 1.3;
}
/* la meta (desembolso) resalta y late */
.lv-journey__step:last-child .lv-journey__node {
  background: #ADC8CB;
  color: #244B5A;
  border-color: #FFFFFF;
  animation: lv-journey-pulse 2.6s ease-out infinite;
}
@keyframes lv-journey-pulse {
  0% { box-shadow: 0 0 0 6px #244B5A, 0 0 0 6px rgba(173, 200, 203, 0.55); }
  70%, 100% { box-shadow: 0 0 0 6px #244B5A, 0 0 0 24px rgba(173, 200, 203, 0); }
}

/* las etapas aparecen una tras otra al hacer scroll (solo navegadores que lo soportan; en los demas se ven de entrada) */
@supports (animation-timeline: view()) {
  .lv-journey__step {
    animation-name: lv-journey-in;
    animation-duration: auto;
    animation-timing-function: linear;
    animation-fill-mode: both;
    animation-timeline: view();
    animation-range: entry 5% entry 55%;
  }
  .lv-journey__step:nth-child(2) { animation-range: entry 10% entry 60%; }
  .lv-journey__step:nth-child(3) { animation-range: entry 15% entry 65%; }
  .lv-journey__step:nth-child(4) { animation-range: entry 20% entry 70%; }
  .lv-journey__step:nth-child(5) { animation-range: entry 25% entry 75%; }
}
@keyframes lv-journey-in {
  from { opacity: 0; transform: translateY(24px) scale(0.9); }
  to { opacity: 1; transform: none; }
}

/* celular: linea vertical */
@media (max-width: 767px) {
  .lv-journey { grid-template-columns: minmax(0, 1fr); row-gap: 28px; }
  .lv-journey::before,
  .lv-journey::after {
    top: calc(var(--lv-node) / 2);
    bottom: calc(var(--lv-node) / 2);
    left: calc(var(--lv-node) / 2 - 1.5px);
    right: auto;
    width: 3px;
    height: auto;
  }
  .lv-journey::after {
    background: linear-gradient(180deg, rgba(173, 200, 203, 0), #ADC8CB 50%, rgba(173, 200, 203, 0));
    background-size: 100% 30%;
    background-position: 0 -40%;
    animation-name: lv-journey-glow-y;
  }
  .lv-journey__step { flex-direction: row; text-align: left; gap: 18px; padding: 0; }
  .lv-journey__step:not(:last-child)::after { display: none; }
}
@keyframes lv-journey-glow-y {
  0% { background-position: 0 -40%; }
  100% { background-position: 0 140%; }
}

/* respeta "reducir movimiento" del sistema y el panel de accesibilidad (Detener animaciones) */
@media (prefers-reduced-motion: reduce) {
  .lv-journey::after,
  .lv-journey__step,
  .lv-journey__step:last-child .lv-journey__node { animation: none !important; opacity: 1; transform: none; }
  .lv-step-card, .lv-journey__node { transition: none; }
}
html.lv-a11y-noanim .lv-journey::after,
html.lv-a11y-noanim .lv-journey__step,
html.lv-a11y-noanim .lv-journey__step:last-child .lv-journey__node { animation: none !important; opacity: 1; transform: none; }


/* =========================================================
 * Creditos hipotecarios, seccion "Que tipos de credito manejan":
 * tarjetas de servicios (.lv-service-card). El icono es el widget
 * nativo de Elementor; al pasar el mouse por la tarjeta el circulo
 * del icono se oscurece.
 * ========================================================= */
.lv-service-card {
  box-shadow: 0 8px 24px rgba(36, 75, 90, 0.06);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.lv-service-card:hover {
  transform: translateY(-4px);
  border-color: #ADC8CB !important;
  box-shadow: 0 14px 32px rgba(36, 75, 90, 0.14);
}
.lv-service-card .elementor-icon { transition: background-color .25s ease, color .25s ease; }
.lv-service-card:hover .elementor-icon { background-color: #244B5A !important; color: #FFFFFF !important; }
.lv-service-card:hover .elementor-icon svg { fill: #FFFFFF !important; }
@media (prefers-reduced-motion: reduce) {
  .lv-service-card, .lv-service-card .elementor-icon { transition: none; }
  .lv-service-card:hover { transform: none; }
}


/* Formulario de contacto de la ficha: campo trampa anti-spam (fuera de pantalla), estados del mensaje y boton enviando. */
.lv-pd-hp { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.lv-pd-form-msg.is-ok { color: #1B7A43; }
.lv-pd-form-msg.is-error { color: #B42318; }
.lv-pd-submit-btn:disabled { opacity: 0.6; cursor: not-allowed; }


/* Pagina interna del agente: un icono social sin enlace (el agente no tiene ese dato) no se muestra, para no dejar un boton que no hace nada. */
.lv-agent-social a.elementor-social-icon:not([href]) { display: none !important; }


/* =========================================================
 * Avisos flotantes (push) del formulario de contacto de la ficha:
 * arriba a la derecha, debajo del header, visibles aunque el panel
 * lateral este en scroll. Los errores ademas quedan fijos arriba del
 * formulario (.lv-pd-form-msg.is-error).
 * ========================================================= */
#lv-toast-region {
  position: fixed;
  top: calc(var(--lv-header-h, 90px) + 16px);
  right: 16px;
  z-index: 10000;
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: min(400px, calc(100vw - 32px));
  pointer-events: none;
}
.admin-bar #lv-toast-region { top: calc(var(--lv-header-h, 90px) + 48px); }
.lv-toast {
  pointer-events: auto;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 14px 14px 16px;
  border-radius: 12px;
  border: 1px solid;
  font-family: 'Montserrat', sans-serif;
  font-size: 14px;
  line-height: 1.45;
  font-weight: 600;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.16);
  animation: lv-toast-in .25s ease both;
}
.lv-toast.is-ok { background: #EAF6EE; border-color: #1B7A43; color: #14532D; }
.lv-toast.is-error { background: #FDECEA; border-color: #B42318; color: #7A1C14; }
.lv-toast.is-leaving { opacity: 0; transform: translateY(-6px); transition: opacity .2s ease, transform .2s ease; }
.lv-toast__icon {
  flex: none;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 800;
  line-height: 1;
  color: #FFFFFF;
}
.lv-toast.is-ok .lv-toast__icon { background: #1B7A43; }
.lv-toast.is-error .lv-toast__icon { background: #B42318; }
.lv-toast__text { flex: 1; min-width: 0; }
.lv-toast__text a { color: inherit; text-decoration: underline; }
.lv-toast__close {
  flex: none;
  width: 24px !important;
  height: 24px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: transparent !important;
  color: inherit !important;
  font-size: 20px !important;
  line-height: 1 !important;
  cursor: pointer;
  opacity: .7;
}
.lv-toast__close:hover { opacity: 1; }
@keyframes lv-toast-in {
  from { opacity: 0; transform: translateY(-10px); }
  to { opacity: 1; transform: none; }
}
@media (max-width: 480px) {
  #lv-toast-region { left: 16px; right: 16px; width: auto; }
}
/* el error fijo arriba del formulario se nota como caja */
.lv-pd-form-msg.is-error {
  background: #FDECEA;
  border: 1px solid #B42318;
  border-radius: 7px;
  padding: 10px 12px;
}
.lv-pd-form-msg.is-error a { color: inherit; text-decoration: underline; }


/* Campo de mensaje del formulario de la ficha: dos lineas de alto y sin poder redimensionar. */
.lv-pd-textarea { display: block; width: 100%; box-sizing: border-box; height: 68px; min-height: 0; resize: none; line-height: 1.25rem; font-family: inherit; }


/* Campo del formulario de contacto con un dato invalido: borde rojo hasta que la persona lo corrija. */
.lv-pd-input[aria-invalid="true"] { border-color: #B42318 !important; box-shadow: 0 0 0 3px rgba(180, 35, 24, 0.12); }


/* =========================================================
 * Aparicion sutil al hacer scroll (todas las paginas menos el home)
 * y efectos de hover. Ver includes/reveal.php y assets/js/lv-reveal.js.
 * Se usa la propiedad "translate" (no "transform") para no pisar
 * los transform de hover que ya tienen algunas tarjetas.
 * ========================================================= */
@media (prefers-reduced-motion: no-preference) {
  html.lv-reveal-on .lv-reveal {
    opacity: 0;
    translate: 0 18px;
    transition:
      opacity .6s cubic-bezier(.22, .61, .36, 1) var(--lv-d, 0ms),
      translate .6s cubic-bezier(.22, .61, .36, 1) var(--lv-d, 0ms);
  }
  html.lv-reveal-on .lv-reveal.is-in {
    opacity: 1;
    translate: 0 0;
  }
}
html.lv-a11y-noanim .lv-reveal { opacity: 1 !important; translate: none !important; }

/* Hover sutil: botones de Elementor (los que no tienen ya una animacion propia) */
body:not(.home) .elementor-widget-button .elementor-button:not([class*="elementor-animation-"]) {
  transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease, border-color .2s ease;
}
body:not(.home) .elementor-widget-button .elementor-button:not([class*="elementor-animation-"]):hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(36, 75, 90, 0.18);
}
/* Tarjetas de agentes y de blog: se elevan un poco (la sombra sigue la forma redondeada) */
body:not(.home) .e-loop-item {
  transition: transform .3s ease, filter .3s ease;
}
body:not(.home) .e-loop-item:hover {
  transform: translateY(-4px);
  filter: drop-shadow(0 12px 22px rgba(36, 75, 90, 0.16));
}
/* Preguntas frecuentes: el borde se marca al pasar el mouse */
.lv-faq-item {
  transition: border-color .2s ease, box-shadow .2s ease;
}
.lv-faq-item:hover {
  border-color: #ADC8CB !important;
  box-shadow: 0 6px 18px rgba(36, 75, 90, 0.08);
}
@media (prefers-reduced-motion: reduce) {
  body:not(.home) .elementor-widget-button .elementor-button:hover,
  body:not(.home) .e-loop-item:hover { transform: none; }
}
