@charset "utf-8";

/* 
Main CSS
Author: D25studio.com
Project: Juan Raíces
Created on: 22/12/2023
Updated: Fuentes cambiadas a Optima Nova LT Pro Medium Condensed (títulos) e Inter (contenido)
*/


@font-face {
  font-family: 'Juanfont';
  src:
    url('assets/fonts/Juanfont.ttf?801gxb') format('truetype'),
    url('assets/fonts/Juanfont.woff?801gxb') format('woff'),
    url('assets/fonts/Juanfont.svg?801gxb#Juanfont') format('svg');
  font-weight: normal;
  font-style: normal;
  font-display: block;
}

/* Fuentes comentadas - Reemplazadas por Google Fonts */
/*
@font-face {
    font-family: 'Borna';
    src: url('assets/fonts/Borna-Medium.woff2') format('woff2'),
        url('assets/fonts/Borna-Medium.woff') format('woff');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Borna';
    src: url('assets/fonts/Borna-Regular.woff2') format('woff2'),
        url('assets/fonts/Borna-Regular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Borna';
    src: url('assets/fonts/Borna-SemiBold.woff2') format('woff2'),
        url('assets/fonts/Borna-SemiBold.woff') format('woff');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Satoshi';
    src: url('assets/fonts/Satoshi-Bold.woff2') format('woff2'),
        url('assets/fonts/Satoshi-Bold.woff') format('woff');
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Satoshi';
    src: url('assets/fonts/Satoshi-BoldItalic.woff2') format('woff2'),
        url('assets/fonts/Satoshi-BoldItalic.woff') format('woff');
    font-weight: bold;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Satoshi';
    src: url('assets/fonts/Satoshi-Italic.woff2') format('woff2'),
        url('assets/fonts/Satoshi-Italic.woff') format('woff');
    font-weight: normal;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Satoshi';
    src: url('assets/fonts/Satoshi-Regular.woff2') format('woff2'),
        url('assets/fonts/Satoshi-Regular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}
*/

/* NUEVAS FUENTES: Optima Nova LT Pro Medium Condensed para títulos, Inter para contenido */

/* Declaraciones @font-face para Optima Nova LT Pro Medium Condensed */
@font-face {
    font-family: 'Optima Nova LT Pro';
    src: url('assets/fonts/OptimaNovaLTPro-MediumCond.woff2') format('woff2'),
         url('assets/fonts/OptimaNovaLTPro-MediumCond.woff') format('woff');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Optima Nova LT Pro';
    src: url('assets/fonts/OptimaNovaLTPro-Regular.woff2') format('woff2'),
         url('assets/fonts/OptimaNovaLTPro-Regular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

:root {
  --color-green: #70EE9C;
  --color-blue_royal: #1A1F4A;      /* Azul real oscuro para títulos */
  --color-blue_medium: rgb(0, 27, 138);     /* Azul medio/violeta para elementos principales */
  --color-blue_dark: #00003F;       /* Azul muy oscuro RGB(0,0,63) para botones específicos */
  
  /* Colores específicos para botones */
  --color-button-blue: rgb(0, 27, 138);      /* Azul para botones principales */
  --color-button-blue-dark: rgb(0, 12, 61);  /* Azul oscuro para botón de pagos */
  --color-gray_medium_dark: #5A5A5A; /* Gris medio-oscuro para texto secundario */
  --color-gray_light_medium: #D1D5DB; /* Gris claro-medio para fondos y bordes */
  --color-gray_medium: #555555;     /* Gris medio para texto y elementos */
  --color-white: #fff;
  --color-black: #222;

  /* NUEVAS VARIABLES DE COLOR PARA ACCESIBILIDAD */
  --color-error: #DC2626;           /* Rojo con buen contraste */
  --color-error-light: #FEE2E2;     /* Rojo claro para fondos */
  --color-success: #059669;         /* Verde con buen contraste */
  --color-success-light: #D1FAE5;   /* Verde claro para fondos */
  --color-warning: #D97706;         /* Naranja con buen contraste */
  --color-warning-light: #FEF3C7;   /* Naranja claro para fondos */

  --font-main: 'Optima Nova LT Pro', sans-serif;
  --font-main-regular: normal;
  --font-main-medium: 500;
  --font-main-semibold: 600;
  --font-secondary: 'Inter', sans-serif;
  --font-secondary-regular: normal;
  --font-secondary-bold: bold;
  --font-icon: 'Juanfont';

  --size-10: 0.625rem;
  --size-20: 1.25rem;
  --size-30: 1.875rem;
  --size-40: 2.5rem;
  --size-50: 3.125rem;
  --size-60: 3.75rem;
  --size-70: 4.375rem;
  --size-80: 5rem;

  --shadow-large: 0 1.25rem 3.75rem -1.25rem rgb(0 0 0 / 35% );
  --shadow-medium: 0 1rem 2.5rem rgb(0 0 0 / 30% );
  --shadow-button: 0 0.3125rem 1rem rgb(111 115 237 / 35%);

  /* NUEVAS VARIABLES DE INTERLINEADO */
  --line-height-tight: 1.1;      /* Títulos grandes (H1) */
  --line-height-normal: 1.2;     /* Subtítulos (H2) */
  --line-height-relaxed: 1.3;    /* Encabezados medios (H3, H4) */
  --line-height-loose: 1.4;      /* Encabezados pequeños (H5) */
  
  /* NUEVAS VARIABLES DE ESPACIADO */
  --spacing-xs: 0.5rem;          /* 8px */
  --spacing-sm: 1rem;            /* 16px */
  --spacing-md: 1.5rem;          /* 24px */
  --spacing-lg: 2rem;            /* 32px */
  --spacing-xl: 3rem;            /* 48px */
}

/* Base */
html, body {font:16px/1.25em 'Inter', sans-serif;}
html {scroll-behavior: smooth; height:100%; width:100%;}
/* Ajuste de scroll para anclas con header fijo */
:target {
    scroll-margin-top: 120px;
}
body {background: var(--color-white); color: var(--color-black); margin:0; padding:0; overflow-x:hidden; -webkit-font-smoothing: antialiased; -webkit-text-shadow: rgba(0,0,0,.01) 0 0 1px; text-shadow:rgba(0,0,0,.01) 0 0 1px; width:100%;}
body.minicart-open, body.search-open {height: 100%; overflow: hidden;}
* {-webkit-box-sizing:border-box; -moz-box-sizing:border-box; box-sizing:border-box;}
h1, h2, h3, h4, h5 {font-family: var(--font-main); margin:0 0 0.5em; text-transform: uppercase;}
h1, h2, h3 {font-weight: var(--font-main-medium);}
h4, h5 {font-weight: var(--font-main-semibold);}
h1 {font-size: clamp(2.5rem, 8vw, 3.5rem); line-height: 1.1; letter-spacing: 0.02em;}
h2 {font-size: clamp(2rem, 6vw, 2.8rem); line-height: 1.2; letter-spacing: 0.01em;}
h3 {font-size: clamp(1.5rem, 5vw, 2.2rem); line-height: 1.3; letter-spacing: 0.01em;}
h4 {font-size: clamp(1.25rem, 4vw, 1.8rem); line-height: 1.3; letter-spacing: 0.005em;}
h5 {font-size: clamp(1.1rem, 3vw, 1.4rem); line-height: 1.4; letter-spacing: 0.01em;}
a {color: var(--color-dark_blue); text-decoration:none;}
a:hover {color: var(--color-dark_blue_h); text-decoration:none;}
p a {font-weight: 600;}
abbr, ins {text-decoration: none;}
del {opacity: 0.35;}
img {height:auto; max-width:100%;}
input:not([type="button"]):not([type="radio"]):not([type="checkbox"]):not([type="submit"]), textarea, select {background: var(--color-white); border: 1px solid var(--color-gray_medium_dark); border-radius: var(--size-20); color: var(--color-black); font: 1em/1em 'Inter', sans-serif; padding: 1rem 1.25rem; outline: none; transition: all 0.2s; width: 100%;}
input:not([type="button"]):not([type="radio"]):not([type="checkbox"]):not([type="submit"]), select {height: var(--size-60);}
input:where([type="checkbox"], [type="radio"]) {-webkit-appearance: none; appearance: none; border: 1px solid var(--color-dark_blue); background: #fff; border-radius: 0; height: 1.4285rem; margin: calc(0.75em - 13px) 0.75rem 0 0; vertical-align: top; width: 1.4285rem;}
select {appearance: none; background-image: url(assets/images/bg-select.svg); background-position: right 1em center; background-repeat: no-repeat; padding: var(--size-10) var(--size-50) var(--size-10) var(--size-20);}

/* MEJORAR ACCESIBILIDAD DE SELECT Y TEXTAREA */
select {
  cursor: pointer;
  background-color: var(--color-white);
}

select:focus {
  background-color: var(--color-white);
  border-color: var(--color-blue_medium);
}

/* Textarea con mejor accesibilidad */
textarea {
  resize: vertical;
  min-height: 120px;
  line-height: 1.5;
}

textarea:focus {
  border-color: var(--color-blue_medium);
  box-shadow: 0 0 0 2px rgba(65, 81, 198, 0.2);
}

/* Contador de caracteres para textarea */
.char-counter {
  font-size: 0.75rem;
  color: var(--color-gray_medium);
  text-align: right;
  margin-top: 0.25rem;
}

.char-counter.near-limit {
  color: var(--color-warning);
}

.char-counter.over-limit {
  color: var(--color-error);
}

/* GRUPOS DE FORMULARIO ACCESIBLES */
.form-group {
  margin-bottom: 1.5rem;
}

.form-group .form-help {
  font-size: 0.8rem;
  color: var(--color-gray_medium);
  margin-top: 0.25rem;
  font-style: italic;
}

.form-group .form-error {
  font-size: 0.8rem;
  color: var(--color-error);
  margin-top: 0.25rem;
  font-weight: 500;
}

/* Campos obligatorios */
.form-field.required label::after {
  content: " *";
  color: var(--color-error);
  font-weight: bold;
}

/* Campos opcionales */
.form-field.optional label::after {
  content: " (opcional)";
  color: var(--color-gray_medium);
  font-size: 0.8rem;
  font-style: italic;
}
textarea {padding-top: 1.625rem; resize: none;}
input[type="radio"]{border-radius: 50%;}
input[type="checkbox"] {border-radius: 5px; height: var(--size-20); width: var(--size-20);}
input[type="checkbox"]:checked {background-image : url('assets/images/img-checkbox_checked.svg');}
input[type="radio"] {border-radius: 50%; height: var(--size-20); width: var(--size-20);}
input[type="radio"]:not(:checked) {background-color: var(--color-gray_light_medium);}
input[type="radio"]:checked {background-image: url('assets/images/img-radio_checked.svg');}
input:where([type="checkbox"]:where(:checked:not(:disabled)), [type="radio"]):where(:checked:not(:disabled)) {background-color: var(--color-green); outline: none;}
input:where([type="checkbox"], [type="radio"]):disabled {background: #eee;}

/* MEJORAR ACCESIBILIDAD DE CHECKBOXES Y RADIO BUTTONS */
input[type="checkbox"],
input[type="radio"] {
  min-height: 20px;
  min-width: 20px;
}

/* Labels para checkboxes y radio buttons */
.checkbox-label,
.radio-label {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  cursor: pointer;
  font-size: 0.9rem;
  color: var(--color-gray_medium_dark);
  margin-bottom: 0.5rem;
}

.checkbox-label:hover,
.radio-label:hover {
  color: var(--color-blue_royal);
}

/* Estados de validación para checkboxes y radio */
.checkbox-label.error,
.radio-label.error {
  color: var(--color-error);
}

.checkbox-label.success,
.radio-label.success {
  color: var(--color-success);
}

/* ESTADOS DE ERROR Y ÉXITO PARA ACCESIBILIDAD */
.input-error {
  border-color: var(--color-error) !important;
  background-color: var(--color-error-light) !important;
}

.input-error:focus {
  outline-color: var(--color-error) !important;
  box-shadow: 0 0 0 2px rgba(220, 38, 38, 0.2) !important;
}

.input-success {
  border-color: var(--color-success) !important;
  background-color: var(--color-success-light) !important;
}

.input-success:focus {
  outline-color: var(--color-success) !important;
  box-shadow: 0 0 0 2px rgba(5, 150, 105, 0.2) !important;
}

.input-warning {
  border-color: var(--color-warning) !important;
  background-color: var(--color-warning-light) !important;
}

.input-warning:focus {
  outline-color: var(--color-warning) !important;
  box-shadow: 0 0 0 2px rgba(217, 119, 6, 0.2) !important;
}

/* MENSAJES DE ESTADO */
.error-message {
  color: var(--color-error);
  font-size: 0.875rem;
  margin-top: 0.5rem;
  padding: 0.5rem 0.75rem;
  background-color: var(--color-error-light);
  border-radius: var(--size-10);
  border-left: 4px solid var(--color-error);
}

.success-message {
  color: var(--color-success);
  font-size: 0.875rem;
  margin-top: 0.5rem;
  padding: 0.5rem 0.75rem;
  background-color: var(--color-success-light);
  border-radius: var(--size-10);
  border-left: 4px solid var(--color-success);
}

.warning-message {
  color: var(--color-warning);
  font-size: 0.875rem;
  margin-top: 0.5rem;
  padding: 0.5rem 0.75rem;
  background-color: var(--color-warning-light);
  border-radius: var(--size-10);
  border-left: 4px solid var(--color-warning);
}

/* INDICADORES VISUALES DE ESTADO */
.form-field {
  position: relative;
}

.form-field .status-icon {
  position: absolute;
  right: 1rem;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  color: var(--color-white);
}

.form-field .status-icon.error {
  background-color: var(--color-error);
}

.form-field .status-icon.success {
  background-color: var(--color-success);
}

.form-field .status-icon.warning {
  background-color: var(--color-warning);
}

/* Estados de validación automática */
input:valid:not(:placeholder-shown) {
  border-color: var(--color-success);
}

input:invalid:not(:placeholder-shown) {
  border-color: var(--color-error);
}

/* NOTIFICACIONES Y ALERTAS DEL SISTEMA */
.notification {
  position: fixed;
  top: 2rem;
  right: 2rem;
  max-width: 400px;
  padding: 1rem 1.5rem;
  border-radius: var(--size-20);
  box-shadow: var(--shadow-large);
  z-index: 1000;
  animation: slideIn 0.3s ease-out;
}

.notification.error {
  background-color: var(--color-error);
  color: var(--color-white);
  border-left: 4px solid var(--color-error);
}

.notification.success {
  background-color: var(--color-success);
  color: var(--color-white);
  border-left: 4px solid var(--color-success);
}

.notification.warning {
  background-color: var(--color-warning);
  color: var(--color-white);
  border-left: 4px solid var(--color-warning);
}

.notification.info {
  background-color: var(--color-black);
  color: var(--color-white);
  border-left: 4px solid var(--color-blue_medium);
}

/* Animación para notificaciones */
@keyframes slideIn {
  from {
    transform: translateX(100%);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}

/* KEYFRAMES PARA ANIMACIONES RESPETUOSAS */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes slideInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes pulse {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.05);
  }
}

/* CLASES DE UTILIDAD PARA ANIMACIONES */
.animate-fade-in {
  animation: fadeIn var(--transition-normal) var(--ease-out);
}

.animate-fade-in-up {
  animation: fadeInUp var(--transition-normal) var(--ease-out);
}

.animate-slide-in-up {
  animation: slideInUp var(--transition-normal) var(--ease-out);
}

.animate-pulse {
  animation: pulse 2s var(--ease-in-out) infinite;
}

/* Estados de carga */
.loading {
  animation: pulse 1.5s var(--ease-in-out) infinite;
}

/* Transiciones suaves para elementos que aparecen */
.fade-in-element {
  opacity: 0;
  transform: translateY(20px);
  transition: all var(--transition-normal) var(--ease-out);
}

.fade-in-element.visible {
  opacity: 1;
  transform: translateY(0);
}

/* VARIABLES PARA ANIMACIONES RESPETUOSAS */
:root {
  /* Duración de transiciones */
  --transition-fast: 0.15s;
  --transition-normal: 0.3s;
  --transition-slow: 0.5s;
  
  /* Funciones de timing */
  --ease-out: cubic-bezier(0.0, 0.0, 0.2, 1);
  --ease-in: cubic-bezier(0.4, 0.0, 1, 1);
  --ease-in-out: cubic-bezier(0.4, 0.0, 0.2, 1);
  
  /* Valores de transform */
  --scale-hover: 1.02;
  --scale-active: 0.98;
  --translate-y: 2px;
}

/* RESPETAR PREFERENCIAS DE MOVIMIENTO REDUCIDO */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  
  /* Desactivar transformaciones complejas */
  .no-motion {
    transform: none !important;
    transition: none !important;
  }
}

/* ANIMACIONES SUAVES PARA ELEMENTOS INTERACTIVOS */
.btn,
input,
select,
textarea,
a {
  transition: all var(--transition-normal) var(--ease-out);
}

/* Hover states con animaciones */
.btn:hover {
  transform: translateY(var(--translate-y));
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.btn:active {
  transform: translateY(0) scale(var(--scale-active));
  transition-duration: var(--transition-fast);
}

/* Animaciones para enlaces */
a:hover {
  transform: translateY(-1px);
}

/* Animaciones para inputs en focus */
input:focus,
select:focus,
textarea:focus {
  transform: scale(1.01);
  transition-duration: var(--transition-fast);
}

/* ANIMACIONES PARA MENÚ Y NAVEGACIÓN */
#main-menu ul li a {
  transition: all var(--transition-normal) var(--ease-out);
  position: relative;
}

#main-menu ul li a:hover {
  transform: translateY(-2px);
}

#main-menu ul li a:after {
  transition: width var(--transition-normal) var(--ease-out);
}

/* Animaciones para tabs */
#home-search #tabs-nav li a {
  transition: all var(--transition-normal) var(--ease-out);
}

#home-search #tabs-nav li a:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

/* Animaciones para paginación */
.wp-pagenavi a {
  transition: all var(--transition-normal) var(--ease-out);
}

.wp-pagenavi a:hover {
  transform: scale(1.1);
}

/* ANIMACIONES PARA ELEMENTOS DE LISTA Y CARDS */
.item-list .product-item {
  transition: all var(--transition-normal) var(--ease-out);
}

.item-list .product-item:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
}

/* Animaciones para imágenes */
.item-list .product-item .item__image a:before {
  transition: opacity var(--transition-normal) var(--ease-out);
}

.item-list .product-item .item__image a i {
  transition: all var(--transition-normal) var(--ease-out);
}

/* Animaciones para filtros */
.filters select {
  transition: all var(--transition-normal) var(--ease-out);
}

.filters select:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

/* ANIMACIONES PARA HERO SECTION Y ELEMENTOS PRINCIPALES */
#home-search .main-title,
#home-search .main-title h1 {
  transition: all var(--transition-slow) var(--ease-out);
}

/* Animaciones para el slider de palabras - removidas para evitar conflicto */

/* Animaciones para el formulario de búsqueda */
#home-search .tab-content ul li input,
#home-search .tab-content ul li select {
  transition: all var(--transition-normal) var(--ease-out);
}

#home-search .tab-content ul li input:focus,
#home-search .tab-content ul li select:focus {
  transform: scale(1.02);
}

/* Animaciones para el botón de búsqueda */
#home-search .tab-content ul li.sf-field-submit input {
  transition: all var(--transition-normal) var(--ease-out);
}

#home-search .tab-content ul li.sf-field-submit input:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4);
}
label input {vertical-align: middle;}

.text-center {text-align: center;}
.text-right {text-align: right;}

.bg-color-green {background-color: var(--color-green);}
.bg-color-blue_royal {background-color: var(--color-blue_royal);}
.bg-color-blue_medium {background-color: rgb(0, 27, 138);}
.bg-color-gray_medium_dark {background-color: var(--color-gray_medium_dark);}
.bg-color-gray_light_medium {background-color: var(--color-gray_light_medium);}
.bg-color-gray_medium {background-color: var(--color-gray_medium);}
.bg-color-white {background-color: var(--color-white);}
.bg-color-black {background-color: var(--color-black);}

/* NUEVAS CLASES DE FONDO PARA ACCESIBILIDAD */
.bg-color-error {background-color: var(--color-error);}
.bg-color-error-light {background-color: var(--color-error-light);}
.bg-color-success {background-color: var(--color-success);}
.bg-color-success-light {background-color: var(--color-success-light);}
.bg-color-warning {background-color: var(--color-warning);}
.bg-color-warning-light {background-color: var(--color-warning-light);}

.color-green {color: var(--color-green);}
.color-blue_royal {color: var(--color-blue_royal);}
.color-blue_light {color: var(--color-blue_medium);}
.color-gray_dark {color: var(--color-gray_medium_dark);}
.color-gray_light {color: var(--color-gray_light_medium);}
.color-white {color: var(--color-white);}
.color-black {color: var(--color-black);}

/* NUEVAS CLASES DE COLOR PARA ACCESIBILIDAD */
.color-error {color: var(--color-error);}
.color-success {color: var(--color-success);}
.color-warning {color: var(--color-warning);}

.has-border {border-width: 1px; border-style: solid;}
.border-color-green {color: var(--color-green);}
.border-color-blue_royal {color: var(--color-blue_royal);}
.border-color-blue_light {color: var(--color-blue_medium);}
.border-color-gray_dark {color: var(--color-gray_medium_dark);}
.border-color-gray_light {color: var(--color-gray_light_medium);}
.border-color-white {color: var(--color-white);}
.border-color-black {color: var(--color-black);}

.border-radius-20 {border-radius: var(--size-20);}
.border-radius-30 {border-radius: var(--size-30);}
.border-radius-40 {border-radius: var(--size-40);}

.card-gutter-20 {padding: var(--size-20);}
.card-gutter-30 {padding: var(--size-30);}
.card-gutter-40 {padding: var(--size-40);}

.shadow-large {box-shadow: var(--shadow-large);}
.shadow-medium {box-shadow: var(--shadow-medium);}

/* SISTEMA DE GRID RESPONSIVE MEJORADO */

/* MÓVIL - Pantallas pequeñas */
@media screen and (max-width: 767px) {
    .row-items-large-2, .row-items-large-3, .row-items-large-4 {
        display: flex;
        flex-direction: column;
        gap: var(--spacing-sm);
    }
    .row-items-large-2 .item, .row-items-large-3 .item, .row-items-large-4 .item {
        width: 100%;
        margin-bottom: var(--spacing-sm);
    }
    
    /* ESPACIADO RESPONSIVE PARA MÓVILES */
    .page-header { padding: var(--spacing-md) 0; }
    .page-content { padding-bottom: var(--spacing-md); }
    .page-section { padding-bottom: var(--spacing-md); padding-top: var(--spacing-md); }
    .page-section .section-title { margin-bottom: var(--spacing-md); }
    
    /* Hero section responsive */
    #home-search { padding-bottom: 4rem; padding-top: calc(4rem + 2rem); }
    
    /* Elementos de lista */
    .item-list { margin-bottom: var(--spacing-md); }
    .item-list ul { gap: var(--spacing-md); }
    
    /* Navegación */
    .wp-pagenavi { margin: var(--spacing-md); }
    
    /* Filtros */
    .filters ul { gap: var(--spacing-sm); }
    
    /* Cards y elementos */
    .card-gutter-20, .card-gutter-30, .card-gutter-40 { padding: var(--spacing-sm); }
}

@media screen and (min-width: 1366px) {
    /* DESKTOP GRANDE - Pantallas grandes */
    .row-items-large-2 {display: flex; gap: var(--spacing-xl);}
    .row-items-large-2 .item {flex-direction: column; width: calc(50% - 1.5rem);}
    .row-items-large-3 {display: flex; gap: var(--spacing-xl);}
    .row-items-large-3 .item {flex-direction: column; width: calc(33.3333% - 1.5rem);}
    .row-items-large-4 {display: flex; gap: var(--spacing-xl);}
    .row-items-large-4 .item {flex-direction: column; width: calc(25% - 1.5rem);}
}

@media screen and (min-width: 821px) and (max-width: 1365px) {
    /* DESKTOP MEDIANO - Laptops y pantallas medianas */
    .row-items-large-2 {display: flex; gap: var(--spacing-lg);}
    .row-items-large-2 .item {flex-direction: column; width: calc(50% - 1.5rem);}
    .row-items-large-3 {display: flex; gap: var(--spacing-lg);}
    .row-items-large-3 .item {flex-direction: column; width: calc(33.3333% - 1.5rem);}
    .row-items-large-4 {display: flex; gap: var(--spacing-lg);}
    .row-items-large-4 .item {flex-direction: column; width: calc(25% - 1.5rem);}
}

/* NUEVOS BREAKPOINTS INTERMEDIOS */
@media screen and (min-width: 768px) and (max-width: 1023px) {
  /* TABLET - Optimización específica para pantallas medianas */
  .row-items-large-2 {display: flex; gap: var(--spacing-md);}
  .row-items-large-2 .item {flex-direction: column; width: calc(50% - 0.75rem);}
  .row-items-large-3 {display: flex; gap: var(--spacing-md);}
  .row-items-large-3 .item {flex-direction: column; width: calc(50% - 0.75rem);} /* 2 columnas en tablet */
  .row-items-large-4 {display: flex; gap: var(--spacing-md);}
  .row-items-large-4 .item {flex-direction: column; width: calc(50% - 0.75rem);} /* 2 columnas en tablet */
}

@media screen and (min-width: 1024px) and (max-width: 1365px) {
  /* DESKTOP PEQUEÑO - Optimización para laptops */
  .row-items-large-2 {display: flex; gap: var(--spacing-lg);}
  .row-items-large-2 .item {flex-direction: column; width: calc(50% - 1.5rem);}
  .row-items-large-3 {display: flex; gap: var(--spacing-lg);}
  .row-items-large-3 .item {flex-direction: column; width: calc(33.3333% - 1.5rem);}
  .row-items-large-4 {display: flex; gap: var(--spacing-lg);}
  .row-items-large-4 .item {flex-direction: column; width: calc(25% - 1.5rem);}
}

@media screen and (min-width: 1920px) {
  /* 4K - Optimización para pantallas grandes */
  .wrap {max-width: 120em;}
  .row-items-large-2 {display: flex; gap: var(--spacing-xl);}
  .row-items-large-2 .item {flex-direction: column; width: calc(50% - 1.5rem);}
  .row-items-large-3 {display: flex; gap: var(--spacing-xl);}
  .row-items-large-3 .item {flex-direction: column; width: calc(33.3333% - 1.5rem);}
  .row-items-large-4 {display: flex; gap: var(--spacing-xl);}
  .row-items-large-4 .item {flex-direction: column; width: calc(25% - 1.5rem);}
}

/* CLASES DE UTILIDAD PARA GRID RESPONSIVE */
.grid-responsive {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-md);
}

.grid-responsive-2 .item { width: calc(50% - 0.75rem); }
.grid-responsive-3 .item { width: calc(33.3333% - 1rem); }
.grid-responsive-4 .item { width: calc(25% - 1.125rem); }

@media screen and (max-width: 767px) {
  .grid-responsive-2 .item,
  .grid-responsive-3 .item,
  .grid-responsive-4 .item {
    width: 100%;
  }
}

@media screen and (min-width: 768px) and (max-width: 1023px) {
  .grid-responsive-3 .item,
  .grid-responsive-4 .item {
    width: calc(50% - 0.75rem);
  }
}

/* OPTIMIZACIÓN ESPECÍFICA PARA TABLETS */
@media screen and (min-width: 768px) and (max-width: 1023px) {
  /* Ajustar tamaños de encabezados para tablets */
  h1 { font-size: clamp(2.2rem, 6vw, 2.8rem); }
  h2 { font-size: clamp(1.8rem, 5vw, 2.2rem); }
  h3 { font-size: clamp(1.4rem, 4vw, 1.8rem); }
  h4 { font-size: clamp(1.2rem, 3.5vw, 1.6rem); }
  h5 { font-size: clamp(1rem, 3vw, 1.3rem); }
  
  /* Optimizar espaciado para pantallas medianas */
  .page-section .section-title { margin-bottom: var(--spacing-lg); }
  
  /* Ajustar títulos específicos para tablets */
  #home-search .main-title { font-size: clamp(1.3rem, 3vw, 1.5rem); }
  #home-search .main-title h1 { font-size: clamp(2.2rem, 5vw, 2.6rem); }
  .page-section .section-title h2 { font-size: clamp(1.8rem, 4vw, 2.2rem); }
  
  /* Optimizar espaciado de elementos */
  .card-gutter-20 { padding: var(--spacing-md); }
  .card-gutter-30 { padding: var(--spacing-lg); }
  .card-gutter-40 { padding: var(--spacing-xl); }
  
  /* ESPACIADO RESPONSIVE PARA TABLETS */
  .page-header { padding: var(--spacing-lg) 0; }
  .page-content { padding-bottom: var(--spacing-lg); }
  .page-section { padding-bottom: var(--spacing-lg); padding-top: var(--spacing-lg); }
  .page-section .section-title { margin-bottom: var(--spacing-lg); }
  
  /* Hero section responsive */
  #home-search { padding-bottom: 6rem; padding-top: calc(6rem + 3rem); }
  
  /* Elementos de lista */
  .item-list { margin-bottom: var(--spacing-lg); }
  .item-list ul { gap: var(--spacing-lg); }
  
  /* Navegación */
  .wp-pagenavi { margin: var(--spacing-lg); }
  
  /* Filtros */
  .filters ul { gap: var(--spacing-md); }
}

/* OPTIMIZACIÓN PARA LAPTOPS */
@media screen and (min-width: 1024px) and (max-width: 1365px) {
  /* Ajustes específicos para laptops */
  h1 { font-size: clamp(2.5rem, 7vw, 3.2rem); }
  h2 { font-size: clamp(2rem, 6vw, 2.6rem); }
  h3 { font-size: clamp(1.6rem, 5vw, 2.1rem); }
  
  /* Optimizar títulos específicos para laptops */
  #home-search .main-title { font-size: clamp(1.4rem, 2.5vw, 1.6rem); }
  #home-search .main-title h1 { font-size: clamp(2.4rem, 4vw, 2.8rem); }
  .page-section .section-title h2 { font-size: clamp(2rem, 3.5vw, 2.6rem); }
  
  /* ESPACIADO RESPONSIVE PARA LAPTOPS */
  .page-header { padding: var(--spacing-xl) 0; }
  .page-content { padding-bottom: var(--spacing-xl); }
  .page-section { padding-bottom: var(--spacing-xl); padding-top: var(--spacing-xl); }
  .page-section .section-title { margin-bottom: var(--spacing-xl); }
  
  /* Hero section responsive */
  #home-search { padding-bottom: 8rem; padding-top: calc(8rem + 4rem); }
  
  /* Elementos de lista */
  .item-list { margin-bottom: var(--spacing-xl); }
  .item-list ul { gap: var(--spacing-xl); }
  
  /* Navegación */
  .wp-pagenavi { margin: var(--spacing-xl); }
  
  /* Filtros */
  .filters ul { gap: var(--spacing-lg); }
}

/* Buttons - Usando Inter (font-secondary) para mejor legibilidad */
.btn {border:none; border-radius: 0; cursor: pointer; align-items: center; gap: 1rem; font-family: var(--font-main); font-size: 0.9rem; font-weight: 400; text-transform: uppercase; letter-spacing: 0.04em; height: var(--size-50); justify-content: center; line-height: 1em; min-width: 8.75rem; overflow: hidden; padding: 0.875rem 1.5625rem; position: relative;}

/* Section CTA - Botones principales con más espacio */
.section-cta {
    margin: var(--spacing-xl) 0;
    padding: var(--spacing-lg) 0;
}
.btn:not(.btn-full):not(:last-child) {margin-right: var(--size-10);}
.btn:not(.btn-full) {display:inline-flex;}
.btn-small {border-radius: var(--size-30); cursor: pointer; display: inline-flex; align-items: center; gap: 1rem; font-family: var(--font-main); font-size: 0.9rem; font-weight: 400; height: var(--size-40); justify-content: center; line-height: 1em; overflow: hidden; padding: 0.625rem 1.5625rem; position: relative; text-transform: uppercase; letter-spacing: 0.04em;}
.btn.btn-full {display: flex; width: 100%;}
.btn.btn-main:not(.bg-color-green) {color: var(--color-white);}
.btn.btn-main.bg-color-blue_royal i {color: var(--color-white);}
.btn.btn-secondary {color: var(--color-black);}
.btn.btn-secondary i {color: var(--color-blue_royal);}
.btn.bg-color-green {color: var(--color-white); background-color: var(--color-black); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.3);}
/* Botones con color azul normal (rgb 0, 27, 138) */
.btn.bg-color-blue_medium {background-color: var(--color-button-blue); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.3);}
.btn.btn-main.bg-color-blue_medium {background-color: var(--color-button-blue); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.3);}
#header .btn.bg-color-blue_medium {background-color: var(--color-button-blue);}
#header .btn.btn-main.bg-color-blue_medium {background-color: var(--color-button-blue);}
.header__content .btn.bg-color-blue_medium {background-color: var(--color-button-blue);}
.header__content .btn.btn-main.bg-color-blue_medium {background-color: var(--color-button-blue);}
#header .header__content .btn.bg-color-blue_medium {background-color: var(--color-button-blue) !important;}
#header .header__content .btn.btn-main.bg-color-blue_medium {background-color: var(--color-button-blue) !important;}
#header .header__content .btn:not(.bg-color-blue_dark) {background-color: var(--color-button-blue) !important;}
#header .header__content a.btn:not(.bg-color-blue_dark) {background-color: var(--color-button-blue) !important;}

/* Botones con color azul oscuro (rgb 0, 12, 61) */
.btn.bg-color-blue_dark {background-color: var(--color-button-blue-dark); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.3);}
.btn.btn-main.bg-color-blue_dark {background-color: var(--color-button-blue-dark); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.3);}
#header .btn.bg-color-blue_dark {background-color: var(--color-button-blue-dark);}
#header .btn.btn-main.bg-color-blue_dark {background-color: var(--color-button-blue-dark);}
.header__content .btn.bg-color-blue_dark {background-color: var(--color-button-blue-dark);}
.header__content .btn.btn-main.bg-color-blue_dark {background-color: var(--color-button-blue-dark);}
#header .header__content .btn.bg-color-blue_dark {background-color: var(--color-button-blue-dark) !important;}
#header .header__content .btn.btn-main.bg-color-blue_dark {background-color: var(--color-button-blue-dark) !important;}

/* Botón de buscar - color azul oscuro */
#home-search .tab-content ul li.sf-field-submit input,
#home-search .tab-content.active ul li.sf-field-submit input,
#home-search #search-arrendar ul li.sf-field-submit input,
#home-search #search-comprar ul li.sf-field-submit input {background-color: var(--color-button-blue-dark) !important;}
.btn-icon_left i {margin-right: 1rem;}
.btn-icon_right i {margin-left: 1rem;}

.btn span:first-child {position: relative; transition: all 0.3s ease-in-out; top: 0;}
.btn:hover span:first-child {opacity: 0; top: -100%;}
.btn span:last-child {bottom: 0; opacity: 0; position: absolute; transition: all 0.3s ease-in-out;}
.btn:hover span:last-child {opacity: 1; transform: translateY(-100%);}

/* Icons */
[class^="ci icon-"], [class*="ci icon-"] {
  font-family: 'Juanfont' !important;
  speak: never;
  font-size: 1rem;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-agent:before {content: "\e900";}
.icon-area:before {content: "\e901";}
.icon-arrow_diagonal:before {content: "\e902";}
.icon-arrow_down:before {content: "\e903";}
.icon-arrow_first:before {content: "\e904";}
.icon-arrow_last:before {content: "\e905";}
.icon-arrow_left:before {content: "\e906";}
.icon-arrow_right:before {content: "\e907";}
.icon-arrow_up:before {content: "\e908";}
.icon-at:before {content: "\e909";}
.icon-bathroom:before {content: "\e90a";}
.icon-bed:before {content: "\e90b";}
.icon-calendar:before {content: "\e90c";}
.icon-car:before {content: "\e90d";}
.icon-card:before {content: "\e90e";}
.icon-chat:before {content: "\e90f";}
.icon-checkbox_check:before {content: "\e910";}
.icon-close:before {content: "\e911";}
.icon-code:before {content: "\e912";}
.icon-contract:before {content: "\e913";}
.icon-favorite:before {content: "\e914";}
.icon-filter:before {content: "\e915";}
.icon-floor:before {content: "\e916";}
.icon-heart:before {content: "\e917";}
.icon-key:before {content: "\e918";}
.icon-link:before {content: "\e919";}
.icon-location:before {content: "\e91a";}
.icon-magnifier:before {content: "\e91b";}
.icon-phone:before {content: "\e91c";}
.icon-pyramid:before {content: "\e91d";}
.icon-radio_check:before {content: "\e91e";}
.icon-sale:before {content: "\e91f";}
.icon-security:before {content: "\e920";}
.icon-upload:before {content: "\e921";}
.icon-user:before {content: "\e922";}
.icon-valuation:before {content: "\e923";}

@media screen and (min-width: 1601px) {
  .wrap {max-width: 100em;}
}

/* Header */
#header {position: fixed; transition: all 0.2s ease-in; width: 100%; z-index: 100;}
#header:before {background: var(--color-white); content: " "; height: var(--size-70); left: 0; position: absolute; top: 0; transition: all 0.2s linear; width: 100%; z-index: -1;}
/* ESTADO ANTERIOR: height: 0; */
#header .wrap {position: relative;}
#header.fixed:before {height: var(--size-70);}
#header.fixed:not(.hidden):before {box-shadow: 0 0.625rem 1.875rem rgb(0 0 0 / 15%);}
#header.hidden {transform: translateY(-100%);}
#header .brand img {width: 6.5em; background: #FFFFFF;}
#header .logo-nav {gap: var(--size-20);}
body.home #header:not(.fixed) #main-menu ul li a {color: var(--color-blue_royal);}
/* ESTADO ANTERIOR: color: var(--color-white); */

@media screen and (min-width: 1366px) {
    #header .header-social, #main-menu .user-actions {display: none;}
    #main-menu, #header .header__content {padding: var(--size-10) 0;}
    #main-menu {font-family: var(--font-main); font-weight: var(--font-main-regular);}
    #main-menu ul {display: flex; gap: var(--size-10); list-style: none; margin: 0; padding: 0;}
    #main-menu ul li a {display: block; padding: 1em; position: relative; transition: color 0.4s; text-transform: uppercase; letter-spacing: 0.04em; font-weight: 400; font-size: 0.9rem;}
    #main-menu ul li a:hover {color: var(--color-blue_medium) !important;}
    #main-menu ul li a:after {background: var(--color-blue_medium); bottom: var(--size-10); content: " "; height: 2px; left: 50%; position: absolute; transform: translateX(-50%); transition: width 0.4s cubic-bezier(0,0,.5,1); width: 0;}
    #main-menu ul li a:hover:after {width: var(--size-30);}
    #main-menu ul li.current-menu-item a:after {width: var(--size-10);}
    #main-menu ul li.current-menu-item a:hover:after {width: var(--size-30);}
}
@media screen and (max-width: 1365px) {
    body.menu-open {overflow: hidden;}
    .hb-menu {border-radius: var(--size-20); display: block; height: var(--size-50); position: relative; width: var(--size-50); top: var(--size-10);}
    .hb-menu span {height: 2px; left: var(--size-10); position: absolute; width: var(--size-30);}
    .hb-menu span.hb-t {top: 1em;}
    .hb-menu span.hb-m {top: 1.5em;}
    .hb-menu span.hb-b {top: 2em;}
    body.home #header:not(.fixed) .hb-menu span {background: var(--color-white);}
    #header .hb-menu span {background: var(--color-blue_royal);}
    #header.fixed .hb-menu span {background: var(--color-blue_medium);}
    #header .header__content {padding: var(--size-10) 0;}
    #header .header-social ul {margin: 0;}
    #header .header-social ul li {background: transparent;}
    #header .header-social ul a {aspect-ratio: 1; border: 1px solid var(--color-white); border-radius: var(--size-20); justify-content: center; width: var(--size-50);}
    #main-menu {background: var(--color-blue_medium); display: flex; align-items: center; justify-content: center; inset: 0; filter: blur(10px); opacity: 0; padding: var(--size-20); position: fixed; transform: scale(0.9); transition: all 0.4s cubic-bezier(0,0,.5,1); visibility: hidden; z-index: 101;}
    body.menu-open #main-menu {filter: blur(0); opacity: 1; transform: scale(1); visibility: visible;}
    #main-menu .close-menu {aspect-ratio: 1; position: absolute; right: var(--size-20); top: var(--size-20); width: var(--size-40);}
    #main-menu .close-menu:before, #main-menu .close-menu:after {background: var(--color-white); content: " "; height: 1px; left: 50%; position: absolute; top: 50%; width: 100%;}
    #main-menu .close-menu:before {transform: translate(-50%, -50%) rotate(45deg);}
    #main-menu .close-menu:after {transform: translate(-50%, -50%) rotate(-45deg);}
    #main-menu .user-actions, #main-menu .header-social {flex-grow: 0;}
    #main-menu #nav {display: flex; align-items: center; flex-grow: 1; text-align: center;}
    #main-menu #nav ul {display: flex; flex-direction: column; gap: var(--size-10); list-style: none; margin: 0; padding: 0;}
    #main-menu #nav ul li {font-size: var(--size-30); line-height: 1; text-transform: uppercase; letter-spacing: 0.04em; font-weight: 400;}
    #main-menu #nav ul li a {color: var(--color-white);}
}
@media screen and (min-width: 431px) {
    #main-menu .user-actions {display: none;}
}
@media screen and (min-width: 431px) and (max-width: 1365px) {
    #main-menu {flex-direction: column-reverse;}
}
@media screen and (max-width: 430px) {
    #header .header__content {display: none;}
    #header .hb-menu {margin-left: auto;}
    #main-menu {flex-direction: column;}
}

#home-search {
    padding-bottom: 3rem; 
    padding-top: calc(9.375rem + 9rem); 
    position: relative; 
    overflow: hidden;
    height: 100vh;
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

.background-video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    min-height: 100vh;
    overflow: hidden;
}

.background-video video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    min-height: 100vh;
    min-width: 100vw;
}

.background-video:after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(13, 26, 51, 0.2);
    z-index: 1;
}

#home-search .wrap {
    position: relative;
    z-index: 3;
    width: 100%;
}

#home-search .search-wrapper {position: relative; z-index: 3;}
#home-search .main-title {color: #fff; font-family: var(--font-main); font-size: clamp(1.2rem, 3.5vw, 1.6rem); font-weight: var(--font-main-regular); line-height: 1.3; letter-spacing: 0.01em; margin-bottom: 1.5em; opacity: 0.9; text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7);}
#home-search .main-title h1 {font-size: clamp(2rem, 6vw, 2.8rem); font-weight: var(--font-main-regular); letter-spacing: 0.02em; margin-bottom: 0.3em; text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7); text-transform: uppercase;}
#home-search #tabs-nav {display: flex; gap: 5px; list-style: none; margin: 0; padding: 0;}
#home-search #tabs-nav li.tab-active a {background: var(--color-white); color: var(--color-blue_royal);}
#home-search #tabs-nav li a {background: rgb(0 0 0 / 20%); border-radius: var(--size-10) var(--size-10) 0 0; color: var(--color-white); display: flex; font-family: var(--font-main); align-items: center; height: var(--size-50); padding: 1.2em var(--size-40); transition: var(--transition-button); text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);}
#home-search #tabs-nav li:not(.tab-active) a:hover {background: rgb(0 0 0 / 10%);}
#home-search #tabs-nav li.page-link a {color: var(--color-white); font-weight: var(--font-main-medium); text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8);}
#home-search .tab-content {background: var(--color-white); border-radius: 0; box-shadow: var(--shadow-large); padding: var(--size-10);}
#home-search .tab-content:not(.active) {display: none;}
#home-search .tab-content ul {display: flex; flex-wrap: wrap; gap: var(--size-20); margin: 0; padding: 0;}
#home-search .tab-content ul li {padding: 0;}
#home-search .tab-content ul li label {display: block;}
#home-search .tab-content ul li input, #home-search .tab-content ul li select {border-color: transparent; font-family: var(--font-main); font-size: 1rem; width: 100%;}
#home-search .tab-content ul li.sf-field-search {flex-grow: 1;}
#home-search .tab-content ul li.sf-field-submit input {background: transparent; border-radius: 0; cursor: pointer; font-size: 0.9rem; font-family: var(--font-main); font-weight: 400; color: var(--color-white); height: var(--size-60); transition: background-color 0.4s; width: auto; padding: 0 1.5rem; min-width: 8rem; text-transform: uppercase; letter-spacing: 0.04em;}
#home-search .featured-project {max-width: 50vw; width: 36%; position: absolute; top: 6.25rem;}
#home-search .featured-project img {border-radius: var(--size-40); object-fit: cover;}
#home-search .featured-project figure {position: relative;}
#home-search .featured-project figcaption {background: rgb(255 255 255 / 20%); backdrop-filter: blur(15px); border-radius: var(--size-30); bottom: var(--size-30); color: var(--color-white); display: flex; align-items: center; gap: var(--size-10); font-size: 0.875rem; padding: 0.3125rem 0.3125rem 0.3125rem 1rem; position: absolute; right: var(--size-30);}
#home-search .featured-project figcaption a {background: var(--color-blue_royal); border-radius: var(--size-30); display: flex; align-items: center; gap: var(--size-10); font-family: var(--font-main); font-weight: var(--font-main-medium); padding: 0.3125rem 0.625rem;}
#home-search .featured-project figcaption a i {font-size: 0.75rem;}

@media screen and (min-width: 1601px) {
    #home-search .featured-project {right: calc((100vw - 100rem) / 2);}
    #home-search .featured-project img {aspect-ratio: 1;}
}

@media screen and (min-width: 1365px) and (max-width: 1600px) {
    #home-search .featured-project {right: 0.75rem;}
    #home-search .featured-project img {aspect-ratio: 10/14;}
}
@media screen and (max-width: 1365px) {
    #home-search .featured-project {display: none;}
}
@media screen and (min-width: 821px) {
    #home-search .tab-content ul li:not(.sf-field-search):not(:last-child) {border-right: 1px solid #E4E5EC;}
    #home-search .tab-content ul li.sf-field-submit input {background-color: var(--color-button-blue-dark) !important;}

}
@media screen and (max-width: 820px) {
    #home-search .tab-content ul li.sf-field-search {border-bottom: 1px solid #E4E5EC;}
    #home-search .tab-content ul li.sf-field-submit {margin-left: auto;}
    #home-search .tab-content ul li.sf-field-submit input {background-color: var(--color-button-blue-dark) !important;}
    
    .background-video {
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: 100% !important;
        z-index: 1 !important;
    }
    
    .background-video video {
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
    }

}

.slider-words {display: inline-flex; margin-right: 1rem; position: relative; transition: width 0.3s; vertical-align: bottom;}
.slider-words span {background: var(--color-blue_royal); color: var(--color-white); display: none; opacity: 0; border-radius: 0; padding: 0.25rem 0.75rem;}
.slider-words span:first-of-type {display: block; opacity: 1;}
.slider-words.js-loaded span {display: block; position: absolute; top: 100%;}
.words-slide-init {transform: translate3d(0, -100%, 0);}
.words-slide-in {animation: slideIn 1s forwards;}
@keyframes slideIn {0% {opacity: 0; transform: translate3d(0, -150%, 0);} 100% {opacity: 1; transform: translate3d(0, -100%, 0);}}
.words-slide-out {animation: slideOut 1s forwards;}
@keyframes slideOut { 0% {opacity: 1; transform: translate3d(0, -100%, 0);} 30% {opacity: 0;} 100% {opacity: 0; transform: translate3d(0, -50%, 0);}}

/* Content */
body:not(.home) .main-content {padding-top: 7.5em;}
.sticky-title {position: sticky !important; top: 7.5em;}
.page-section .section-title {position: relative; z-index: 1; margin-bottom: var(--spacing-sm); text-align: center;}
.page-section .section-title h2 {margin: 0; font-size: clamp(2rem, 4.5vw, 2.8rem); font-weight: var(--font-main-medium); color: var(--color-blue_royal); letter-spacing: 0.02em; line-height: 1.2; text-transform: uppercase;}
.page-section .section-title h2:after {content: ''; display: block; width: 60px; height: 3px; background: var(--color-blue_medium); margin: 1rem auto 0; border-radius: 2px;}
.page-section .section-title span {position: relative;}
.page-section .section-title span:before {display: none;}
.page-section.section-scrolled .section-title span:before {width: 100%;}
.floating-label {position: relative;}
.floating-label > input, .floating-label > select {height: calc(3.5rem + 2px); line-height: 1.25;}
.floating-label > label {pointer-events: none; position: absolute; top: 0; left: 0; width: 100%; height: 100%; line-height: 1.6rem; padding: 1rem 1.25rem !important; overflow: hidden; text-align: start; text-overflow: ellipsis; white-space: nowrap; pointer-events: none; border: 1px solid transparent; transform-origin: 0 0; transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out;}
.floating-label > input {padding: 1rem 1.25rem !important;}
.floating-label > input::-moz-placeholder {color: transparent;}
.floating-label > input::placeholder {color: transparent;}

/* Placeholders más legibles para accesibilidad */
input::placeholder,
textarea::placeholder,
select::placeholder {
  color: var(--color-gray_medium);
  opacity: 0.8;
  font-size: 0.9rem;
}

/* Mejorar contraste de placeholders en focus */
input:focus::placeholder,
textarea:focus::placeholder,
select:focus::placeholder {
  color: var(--color-gray_medium_dark);
  opacity: 0.6;
}
.floating-label > input:not(:-moz-placeholder-shown) {padding-top: 1.5714rem !important; padding-bottom: 0.7142rem !important;}
.floating-label > input:focus, .floating-label > input:not(:placeholder-shown) {padding-top: 1.5714rem !important; padding-bottom: 0.7142rem !important;}
.floating-label > input:-webkit-autofill {padding-top: 1.5714rem !important; padding-bottom: 0.7142rem !important;}
.floating-label > select {padding-top: 1.5714rem !important; padding-bottom: 0.7142rem !important;}
.floating-label > input:focus ~ label, .floating-label > textarea:focus ~ label, .floating-label > select ~ label, .floating-label.filled label {opacity: 0.65; transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);}
.floating-label > input:-webkit-autofill ~ label {opacity: 0.65; transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);}

/* MEJORAR ACCESIBILIDAD DE FORMULARIOS */
.floating-label > label {
  color: var(--color-gray_medium_dark);
  font-weight: 500;
  font-size: 0.9rem;
}

.floating-label > label:focus-within {
  color: var(--color-blue_royal);
  font-weight: 600;
}

/* Labels más visibles para accesibilidad */
.form-label {
  display: block;
  margin-bottom: 0.5rem;
  font-weight: var(--font-main-medium);
  color: var(--color-blue_royal);
  font-size: 0.9rem;
}

.form-label.required::after {
  content: " *";
  color: var(--color-error);
  font-weight: bold;
}
.no-items-found {margin: var(--size-80) 0;}
.no-items-found figure {position: relative;}
.no-items-found figure .img-icon {aspect-ratio: 1; background: rgb(255 255 255 / 60%); backdrop-filter: blur(15px); border-radius: var(--size-20); display: inline-flex; align-items: center; justify-content: center; position: absolute; width: var(--size-80);}
.no-items-found figure .img-icon i {color: var(--color-blue_royal); font-size: var(--size-20);}
.no-items-found h3 {margin-bottom: var(--size-40);}
.wp-pagenavi {display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--size-10); margin: var(--size-60);}
.wp-pagenavi a, .wp-pagenavi span {aspect-ratio: 1; border-radius: var(--size-20); display: inline-flex; align-items: center; justify-content: center; transition: background 0.4s cubic-bezier(0,0,.5,1); width: var(--size-50);}
.wp-pagenavi a:hover {background-color: var(--color-gray_light_medium);}
.wp-pagenavi span:not(.extend) {background-color: var(--color-green);}

@media screen and (min-width: 821px) {
    .page-header {padding: var(--size-80) 0;}

/* Banner con imagen destacada para page-nueva.php */
/* Tamaño ideal de imagen: 1920x600px (relación 16:5) o 1920x500px (relación 3.84:1) */
.page-header-banner {
    position: relative;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    min-height: 400px;
    height: 50vh;
    max-height: 600px;
    display: flex;
    align-items: center;
    padding: 0;
    overflow: hidden;
}

/* Opción alternativa: mostrar toda la imagen sin recortar */
.page-header-banner.page-header-banner-contain {
    background-size: contain;
    background-color: var(--color-gray_light_medium);
    height: auto;
    min-height: 400px;
    padding: var(--spacing-xl) 0;
}

.page-header-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.6));
    display: flex;
    align-items: center;
    width: 100%;
}

.page-header-banner .page-header-overlay .wrap {
    position: relative;
    z-index: 1;
    width: 100%;
}

.page-header-banner h1 {
    color: var(--color-white);
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
    margin: 0;
}

@media (max-width: 768px) {
    .page-header-banner {
        min-height: 300px;
    }
}

/* Estilos para el slider de historia en página Nosotros */
.history-slider-wrapper {
    position: relative;
    padding: 0 60px 40px;
}

.history-navigation {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 100%;
    display: flex;
    justify-content: space-between;
    pointer-events: none;
    z-index: 10;
}

.history-nav-btn {
    background: var(--color-white);
    border: 2px solid var(--color-button-blue-dark);
    border-radius: 50%;
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    pointer-events: all;
    transition: all 0.3s ease;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    z-index: 11;
}

.history-nav-btn:hover {
    background: var(--color-button-blue-dark);
    color: var(--color-white);
    transform: scale(1.1);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

.history-nav-btn i {
    font-size: 1.5rem;
    color: var(--color-button-blue-dark);
    transition: color 0.3s ease;
}

.history-nav-btn:hover i {
    color: var(--color-white);
}

.history-nav-prev {
    left: 0;
}

.history-nav-next {
    right: 0;
}

.history-slider .swiper-scrollbar {
    bottom: 0;
    height: 6px;
    background: var(--color-gray_light_medium);
    border-radius: 3px;
}

.history-slider .swiper-scrollbar-drag {
    background: var(--color-button-blue-dark);
    border-radius: 3px;
}

/* Menú de años para el slider de historia */
.history-years-menu {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: var(--spacing-sm);
    margin-top: var(--spacing-lg);
    flex-wrap: wrap;
    padding: var(--spacing-md) 0;
}

.history-year-btn {
    background: var(--color-white);
    border: 2px solid var(--color-button-blue-dark);
    border-radius: var(--size-30);
    padding: var(--spacing-xs) var(--spacing-md);
    font-family: var(--font-main);
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--color-button-blue-dark);
    cursor: pointer;
    transition: all 0.3s ease;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    min-width: 60px;
}

.history-year-btn:hover {
    background: var(--color-button-blue-dark);
    color: var(--color-white);
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}

.history-year-btn.active {
    background: var(--color-button-blue-dark);
    color: var(--color-white);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

@media (max-width: 768px) {
    .history-slider-wrapper {
        padding: 0 50px 40px;
    }
    
    .history-nav-btn {
        width: 40px;
        height: 40px;
    }
    
    .history-nav-btn i {
        font-size: 1.2rem;
    }
    
    .history-years-menu {
        gap: var(--spacing-xs);
        padding: var(--spacing-sm) 0;
    }
    
    .history-year-btn {
        font-size: 0.8rem;
        padding: 0.4rem var(--spacing-sm);
        min-width: 50px;
    }
}
    .page-content {padding-bottom: var(--size-80);}
    .page-section .section-title {margin-bottom: var(--size-80);}
    .page-section {padding-bottom: var(--size-80); padding-top: var(--size-80);}
    .no-items-found img {aspect-ratio: 1; width: 100%;}
    .no-items-found figure .img-icon {top: 50%; right: -1.875rem; transform: translateY(-50%);}
}
@media screen and (max-width: 820px) {
    .page-header {padding: var(--size-40) 0;}
    .page-content {padding-bottom: var(--size-40);}
    .page-section {padding-bottom: var(--size-40); padding-top: var(--size-40);}
    .page-section .column-left:not(:last-child) {margin-bottom: var(--size-60);}
    .page-section .section-title {margin-bottom: var(--size-40);}
    .no-items-found {text-align: center;}
    .no-items-found .row {gap: var(--size-40);}
    .no-items-found img {max-width: 20rem; margin: 0;}
    .no-items-found figure {margin: 0;}
    .no-items-found figure .img-icon {bottom: -1.875rem; left: 50%; transform: translateX(-50%);}
}
@media screen and (max-width: 430px) {
    .mobile-reverse {flex-direction: column-reverse;}
}

/* Item List */
.item-list {margin-bottom: var(--size-40);}
.item-list ul {display: flex; flex-wrap: wrap; align-items: flex-start; align-content: flex-start; list-style: none; margin: 0; padding: 0;}
.item-list ul li {display: flex; flex-direction: column;}
.item-list .product-item {background: var(--color-white); border-radius: var(--size-20);}
.item-list .product-item .item__image {position: relative;}
.item-list .product-item .item__image figure {margin: 0;}
.item-list .product-item .item__image a {border-radius: var(--size-20); display: block; overflow: hidden; position: relative;}
.item-list .product-item .item__image a:before {background: rgb(0 0 0 / 30%); content: " "; inset: 0; opacity: 0; position: absolute; z-index: 0; transition: opacity 0.2s ease-out;}
.item-list .product-item:hover .item__image a:before, .item-list .product-item:hover .item__image a i {opacity: 1;}
.item-list .product-item .item__image a i {color: var(--color-white); font-size: var(--size-30); left: 50%; opacity: 0; position: absolute; top: 50%; transition: opacity 0.3s ease-out; transform: translate(-50%, -50%); z-index: 1;}
.item-list .product-item .item__image img {aspect-ratio: 16/10; display: block; object-fit: cover; width: 100%;}
.item-list .product-item .item__image .item__status {border-radius: var(--size-10); color: var(--color-blue_royal); font-family: var(--font-main); font-size: 0.875rem; font-weight: var(--font-main-medium); line-height: 1em; left: var(--size-10); padding: var(--size-10); position: absolute; top: var(--size-10); text-transform: uppercase;}
.item-list .product-item .item__body {display: flex; flex-wrap: wrap; gap: var(--size-10); padding: var(--size-20); text-align: center;}
.item-list .product-item .item__body > div {flex: 1 0 100%;}
.item-list .product-item .item__body .item__price {color: var(--color-blue_royal); font-family: var(--font-main); font-size: var(--size-20); font-weight: var(--font-main-semibold);}
.item-list .product-item .item__body .item__title h3 {font-size: 1em; margin: 0;}
.item-list .product-item .item__body .item__title label {color: var(--color-gray_medium_dark); font-size: 0.875rem;}
.item-list .product-item .item__body .item_attributes {display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--size-30);}
.item-list .product-item .item__body .item_attributes > div {display: flex; align-items: center; gap: 0.75rem;}
.item-list .product-item .item__body .item_attributes > div:not(.item-attr_area) .attr-value {font-weight: var(--font-main-semibold);}
.item-list .product-item .item__body .item_attributes .item-attr_area .attr-value {text-align: left;}
.item-list .product-item .item__body .item_attributes .item-attr_area .attr-value span {font-weight: var(--font-main-semibold); line-height: 1em;}
.item-list .product-item .item__body .item_attributes .item-attr_area .attr-value legend {color: var(--color-gray_medium_dark); font-size: var(--size-10); line-height: var(--size-10);}
.item-list .product-item .item__body .item_attributes .attr-icon {color: var(--color-blue_medium);}
.item-list .product-item .item__body .item_attributes .attr-icon i {display: block; font-size: var(--size-20);}
.item-list .product-item .item__body .item_attributes .attr-value {font-family: var(--font-main);}
.item-list .item-count {margin: var(--size-40) 0;}

@media screen and (min-width: 1025px) {
    .item-list ul {gap: var(--size-40);}
    .item-list ul li {width: calc(25% - 1.875rem);}
}

@media screen and (min-width: 821px) and (max-width: 1024px) {
    .item-list ul {gap: var(--size-20);}
    .item-list ul li {width: calc(25% - 0.9375rem);}
}

@media screen and (min-width: 431px) and (max-width: 820px) {
    .item-list ul {gap: var(--size-20);}
    .item-list ul li {width: calc(50% - 0.625rem);}
}

@media screen and (max-width: 430px) {
    .item-list ul {gap: var(--size-30);}
    .item-list ul li {width: 100%;}
}

/* Search filters */
.filters ul {display: flex; flex-wrap: wrap; align-items: center; margin: 0; padding: 0;}
.filters select {background-color: var(--color-gray_light_medium); border: none; height: var(--size-50);}
.filters .sf-field-taxonomy-venta_arriendo ul {background: var(--color-gray_light_medium); border-radius: var(--size-30); gap: 0;}
.filters .sf-field-taxonomy-venta_arriendo li {padding: 0;}
.filters .sf-field-taxonomy-venta_arriendo li input {display: none;}
.filters .sf-field-taxonomy-venta_arriendo li label {border-radius: var(--size-30); cursor: pointer; display: flex; align-items: center; height: var(--size-50); margin: 0; padding: var(--size-10) var(--size-20);}
.filters .sf-field-taxonomy-venta_arriendo li.sf-option-active label {background-color: var(--color-blue_royal); color: var(--color-white); font-weight: var(--font-secondary-bold);}
.filters .sf-field-post-meta-informacion_base_precio h4 {font-size: 0.875rem; font-weight: var(--font-main-regular); line-height: 1em; padding: 0;}
.filters .sf-field-post-meta-informacion_base_precio .sf-meta-range {font-weight: var(--font-secondary-bold);}
.filters .sf-field-post-meta-informacion_base_precio .sf-meta-range .sf-range-prefix, 
.filters .sf-field-post-meta-informacion_base_precio .sf-meta-range .sf-text-number {font-size: 0.875rem;}
.filters .sf-field-post-meta-informacion_base_precio .sf-meta-range .sf-text-number {font-variant-numeric: tabular-nums;}
.filters .sf-field-post-meta-informacion_base_precio .sf-meta-range .sf-range-values-seperator {font-weight: initial; margin: 0 var(--size-10);}
.filters .sf-field-post-meta-informacion_base_precio .meta-slider {background: transparent; border: none; box-shadow: none; height: 3px; margin: 8px 5px 0; max-width: inherit;}
.filters .sf-field-post-meta-informacion_base_precio .meta-slider .noUi-connects {background: var(--color-gray_light_medium); border: none; border-radius: 3px; height: 3px;}
.filters .sf-field-post-meta-informacion_base_precio .meta-slider .noUi-connects .noUi-connect {background: var(--color-green);}
.filters .sf-field-post-meta-informacion_base_precio .meta-slider .noUi-origin {left: 100%; top: 1px;}
.filters .sf-field-post-meta-informacion_base_precio .meta-slider .noUi-origin .noUi-handle {background: var(--color-green); box-shadow: none; border: none; height: 11px; left: -5px; width: 11px;}
.filters .sf-field-post-meta-informacion_base_precio .meta-slider .noUi-origin .noUi-handle:before,
.filters .sf-field-post-meta-informacion_base_precio .meta-slider .noUi-origin .noUi-handle:after {display: none;}
.filters .sf-field-post-meta-informacion_base_precio .meta-slider .noUi-origin .noUi-handle.noUi-handle-lower {right: inherit;}
.filters .sf-field-post-meta-informacion_base_precio .meta-slider .noUi-origin .noUi-handle.noUi-handle-upper {right: 0;}

@media screen and (min-width: 1181px) {
    .filters ul {gap: var(--size-20);}
    .filters .sf-field-taxonomy-venta_arriendo {margin-right: auto;}
    .filters .filters__toggle {display: none;}
}
@media screen and (max-width: 1180px) {
    .list-container {display: flex; flex-direction: column-reverse; padding-bottom: var(--size-60);}
    .filters {bottom: var(--size-20); position: sticky; z-index: 99;}
    .filters ul {gap: var(--size-20);}
    .filters .filters__toggle {background: var(--color-blue_medium); border-radius: var(--size-40); display: flex; flex-direction: column; height: var(--size-60); margin: 0 auto; overflow: hidden; position: relative; width: 18.75rem; z-index: 2;}
    .filters .filters__toggle span {color: var(--color-white); display: flex; flex: 0 0 100%; align-items: center; gap: var(--size-20); height: var(--size-60); justify-content: center; transition: transform 0.4s cubic-bezier(0,0,.5,1); width: 100%;}
    .filters.open .filters__toggle span {transform: translateY(-100%);}
    .filters .filters__wrap {background: rgba(255 255 255 / 0.8); backdrop-filter: blur(15px); border-radius: var(--size-20); bottom: 0; box-shadow: 0 var(--size-10) var(--size-30) rgba(0 0 0 / 0.2); padding: var(--size-30) var(--size-30) var(--size-60); opacity: 0; position: absolute; transition: all 0.4s cubic-bezier(0,0,.5,1); visibility: hidden; width: 100%;  z-index: 1;}
    .filters.open .filters__wrap {bottom: var(--size-30); opacity: 1; visibility: visible;}
}
@media screen and (min-width: 431px) and (max-width: 1180px) {
    .filters ul {justify-content: space-between;}
    .filters .filters__wrap {left: 50%; max-width: 43.75rem; transform: translateX(-50%);}
}
@media screen and (max-width: 430px) {
    .filters {left: var(--size-20); right: var(--size-20);}
    .filters .searchandfilter > ul {justify-content: center;}
    .filters .searchandfilter > ul > li {padding: 0;}
    .filters .searchandfilter > ul > li:not(.sf-field-taxonomy-venta_arriendo) {width: 100%;}
    .filters .sf-field-taxonomy-tipo_propiedad label,
    .filters .sf-field-taxonomy-lugar label,
    .filters .sf-field-post-meta-atributos_principales_habitaciones label {width: 100%;}
    .filters .sf-field-post-meta-informacion_base_precio {text-align: center;}
}

/* Property */
.property .property__header {margin-bottom: var(--size-80); padding: 0;}
.property .property__gallery .gallery__wrapper {position: relative;}
.property .property__gallery .item__actions {display: flex; gap: var(--size-10); position: absolute; right: var(--size-10); top: var(--size-10); z-index: 5;}
.property .property__gallery .item__actions button {border: none; border-radius: var(--size-10); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; font-family: var(--font-main); font-weight: var(--font-main-medium); height: 2.1875rem; padding: var(--size-10);}
.property .property__gallery .item__actions button.icon-share {background: var(--color-green); color: var(--color-blue_royal);}
.property .property__gallery .item__actions button.simplefavorite-button {background: var(--color-blue_royal); color: var(--color-green);}
.property .gallery-slider {border-radius: var(--size-20); position: relative;}
.property .gallery-slider img {aspect-ratio: 16/10; object-fit: cover; width: 100%;}
.property .gallery-slider .item a, .property .gallery-slider .item img {display: block;}
.property .gallery-slider .slide-navigation {bottom: var(--size-10); display: flex; gap: var(--size-10); left: var(--size-10); position: absolute; z-index: 5;}
.property .gallery-slider .slide-navigation div[class^="nav-"] {background: rgb(255 255 255 / 60%); backdrop-filter: blur(30px); border-radius: var(--size-20); color: var(--color-blue_royal); cursor: pointer; display: flex; align-items: center; justify-content: center; height: var(--size-50); width: var(--size-50);}
.property .property__info > div:not(:last-child) {margin-bottom: var(--size-40);}
.property .property__info h1 {font-size: var(--size-50);}
.property .property__info .property__basics {display: flex; gap: var(--size-30);}
.property .property__info .property__basics > div {display: flex; gap: var(--size-10);}
.property .property__info .property__basics i {color: var(--color-blue_royal); font-size: var(--size-20);}
.property .property__info .property__price {display: flex; gap: var(--size-30);}
.property .property__info .property__price label {display: block;}
.property .property__info .property__price .price__value {color: var(--color-blue_royal); font-family: var(--font-main); font-size: 1.25rem; font-weight: var(--font-main-semibold);}

#property-featured .featured-item_list {display: flex; flex-wrap: wrap;}
#property-featured .featured-item_list .featured__item {background: var(--color-gray_light_medium); border-radius: var(--size-20); display: flex; flex-wrap: wrap; gap: var(--size-10); flex: 1 0 0%; font-family: var(--font-main); font-weight: var(--font-main-medium); padding: var(--size-30);}
#property-featured .featured-item_list .featured__item > div {flex: 0 0 100%;}
#property-featured .featured-item_list .featured__item .item__icon i {color: var(--color-blue_medium); font-size: var(--size-30);}
#property-featured .featured-item_list .featured__item .item__value {font-size: var(--size-40); line-height: 1;}
#property-featured .featured-item_list .featured__item .item__value > span:last-child {font-size: var(--size-20);}
#property-featured .featured-item_list .featured__item .item__label {color: var(--color-blue_royal);}
#property-additional .column-left .item {margin-bottom: var(--size-40);}
#property-additional .column-left .item label, #property-additional .column-left .attr__other label {font-family: var(--font-main); font-weight: var(--font-main-medium);}
#property-additional .column-left .item span {background: var(--color-gray_light_medium); border-radius: var(--size-10); padding: 0.3125rem 0.625rem;}
#property-additional .column-left .attr__other label {display: block; margin-bottom: var(--size-10);}
#property-additional .advisor {border-radius: var(--size-20); color: var(--color-white); display: flex; flex-wrap: wrap; align-items: center;}
#property-additional .advisor .advisor__image img {border-radius: var(--size-20); object-fit: cover; display: block;}
#property-additional .advisor .advisor__content .advisor__name label {color: var(--color-green); font-family: var(--font-main); font-weight: var(--font-main-medium);}
#property-additional .advisor .advisor__content h4 {font-size: var(--size-30);}
#property-additional .advisor .advisor__mobile {margin-bottom: var(--size-10);}
#property-additional .advisor .advisor__mobile,
#property-additional .advisor .advisor__email {font-family: var(--font-main); font-weight: var(--font-main-medium);}
#property-additional .advisor .advisor__email {overflow: hidden; text-overflow: ellipsis; width: 80%; white-space: nowrap;}
#property-additional .advisor a i {margin-right: var(--size-10);}
@media screen and (min-width: 1367px) {
    #property-additional .advisor .advisor__image img {aspect-ratio: 1;}
}
@media screen and (min-width: 431px) and (max-width: 820px) {
    #property-featured .featured-item_list .featured__item {width: calc(33.3333% - 0.9375rem);}
}
@media screen and (min-width: 821px) {
    #property-featured .featured-item_list {gap: var(--size-40);}
    #property-additional .advisor > div {flex-shrink: 1; width: 50%;}
    #property-additional .advisor .advisor__content {padding: var(--size-40);}
}
@media screen and (min-width: 821px) and (max-width: 1366px) {
    #property-additional .advisor .advisor__image img {aspect-ratio: 6/8;}
}
@media screen and (max-width: 820px) {
    .property .property__gallery {margin-bottom: var(--size-40);}
    #property-featured .featured-item_list {gap: var(--size-20);}
    #property-featured .featured-item_list .featured__item {flex: 1 1 auto;}
    #property-additional .advisor .advisor__image {width: 40%;}
    #property-additional .advisor .advisor__image img {aspect-ratio: 6/10;}
    #property-additional .advisor .advisor__content {width: 60%;}
    #property-additional .advisor .advisor__content {padding: var(--size-30);}
}
@media screen and (max-width: 430px) {
    #property-featured .featured-item_list .featured__item {width: calc(50% - 0.9375rem);}
    #property-additional .column-left .item label, #property-additional .column-left .attr__other label {display: block; margin-bottom: var(--size-10);}
}

/* Modal */
.modal {background: rgb(0 0 0 / 80%); opacity: 0; position: fixed; inset: 0; transition: all 0.4s cubic-bezier(0,0,.5,1); visibility: hidden; z-index: 110;}
.modal.modal-open {opacity: 1; visibility: visible;}
.modal .modal__wrap {background: var(--color-white); border-radius: var(--size-20); left: 50%; max-width: 40em; padding: var(--size-40); position: absolute; top: 50%; transform: translate(-50%, -50%); width: 100%;}
.modal .modal__close {background: var(--color-gray_light_medium); border: none; border-radius: var(--size-10); color: var(--color-blue_royal); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; height: 2.1875rem; position: absolute; right: var(--size-10); top: var(--size-10); width: 2.1875rem;}
.modal .modal__content {max-height: 80vh;}
#modal-inmueble .modal__content > div:not(.active) {display: none;}
#modal-inmueble .modal__content #modal--requieriments {max-height: 75vh; overflow-x: hidden; overflow-y: scroll;}

/* Gforms */
.gform_wrapper .gform_validation_errors, .gform_wrapper .gform_body .gfield.gform_validation_container {display: none;}
.gform_wrapper .gform_body .gfield {display: flex; flex-wrap: wrap; margin-bottom: var(--size-20);}
.gform_wrapper .gform_body .gfield > * {flex:0 1 100%;}
.gform_wrapper .gform_body .gfield.gfield_error input {background-color: var(--color-error-light); border-color: var(--color-error);}

/* Mejorar estados de error existentes */
.gform_wrapper .gform_body .gfield.gfield_error {
  border-left: 4px solid var(--color-error);
  padding-left: 1rem;
  margin-bottom: 1rem;
}

.gform_wrapper .gform_body .gfield.gfield_error .gfield_description {
  color: var(--color-error);
  font-size: 0.875rem;
  margin-top: 0.5rem;
}
.gform_wrapper .gform_body .gfield .validation_message:not(.instruction) {background: #ED746F; color: var(--color-white); border-radius: var(--size-20); font-size: 0.75rem; line-height: 1em; padding: 5px var(--size-10); position: absolute; right: 0.5em; top: 0.5em;}
.gform_wrapper .gform_body .gfield .ginput_container {order: 10;}
.gform_wrapper .gform_footer {margin: 0 !important; padding: 0 !important;}
.gform_wrapper .gform_footer .gform_button {background: var(--color-green); border: none; border-radius: var(--size-20); color: var(--color-blue_royal); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; font-family: var(--font-main); font-size: 0.9rem; font-weight: 400; min-width: 8.75rem; padding: 1rem 1.5625rem; text-transform: uppercase; letter-spacing: 0.04em;}
.gform_fields {display: flex; flex-wrap: wrap; column-gap: var(--size-20);}
.gform_wrapper .gform_required_legend .gfield_required_asterisk {color: red;}
.gform_fields .gfield_required_asterisk {color: red; margin-left: 5px;}
.gform_fields fieldset {border: none; border-collapse: collapse; padding: 0;}
.gform_fields fieldset legend {font-weight: var(--font-secondary-bold); margin-bottom: var(--size-10);}
.gform_fields .gsection {width: 100%;}
.gform_fields .gfield_radio {display: flex; flex-direction: row-reverse; align-items: center; justify-content: flex-end;}
.gform_fields .gfield_radio .gchoice:not(:first-child) {margin-right: 2em;}
.gform_fields .ginput_container_fileupload {border: 2px dashed var(--color-blue_medium); border-radius: var(--size-20); padding: var(--size-20); text-align: center;}
.gform_fields .ginput_container_fileupload .gform_fileupload_multifile {font-size: var(--size-20); font-weight: var(--font-secondary-bold);}
.gform_fields .ginput_container_fileupload .gform_drop_area {margin-bottom: var(--size-20);}
.gform_fields .ginput_container_fileupload .gform_drop_instructions {margin: var(--size-10); vertical-align: middle;}
.gform_fields .ginput_container_fileupload .gform_button_select_files {background: url(assets/images/icon-upload.svg) var(--color-blue_royal) center right var(--size-40) no-repeat; background-size: 16px; border: none; border-radius: var(--size-20); color: var(--color-white); display: inline-flex; align-items: center; font-family: var(--font-main); font-size: 0.9rem; font-weight: 400; height: var(--size-50); padding: 0 var(--size-80) 0 var(--size-40); text-transform: uppercase; letter-spacing: 0.04em;}
.gform_fields .field-file_upload label {font-weight: var(--font-secondary-bold); margin-bottom: var(--size-10);}
.gform_fields .gfield_visibility_hidden {display: none !important;}

/* Home */
/* SLIDER ORIGINAL COMENTADO
.cities-slider .item {background-position: center; background-size: cover; height: 80vh; position: relative; transition: all 0.3s ease-in-out; width: 21.875rem;}
.cities-slider .item:hover {width: 28.125rem;}
.cities-slider .item a {background: rgb(0,0,0); background: linear-gradient(0deg, rgba(0,0,0,0.8029805672268908) 0%, rgba(0,0,0,0) 40%); position: absolute; inset: 0;}
.cities-slider .item a > span {bottom: var(--size-40); left: var(--size-40); position: absolute; right: var(--size-40);}
.cities-slider .item a h4 {color: var(--color-white);}
.cities-slider .item a .term-counter {background: var(--color-green); border-radius: var(--size-10); color: var(--color-blue_royal); display: inline-flex; font-family: var(--font-main); line-height: 1em; padding: 0.375rem 0.75rem;}
*/

/* Cities Grid Gallery */
#cities-list {
    padding: var(--spacing-xl) 0;
    background: var(--color-gray_light_medium);
}

/* CUADRÍCULA ESPECÍFICA PARA 3 COLUMNAS */
.cities-grid-custom {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    grid-template-rows: 250px 250px 250px;
    gap: var(--spacing-lg);
    margin: 0 auto;
    align-items: start;
}

/* COLUMNA 1: TEXTO */
.text-column {
    grid-column: 1;
    grid-row: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--spacing-xl);
}

/* COLUMNA 1: SECCIÓN DE IMAGEN */
.image-section {
    grid-column: 1;
    grid-row: 2 / 4;
    position: relative;
    height: 100%;
    background-position: center;
    background-size: cover;
    border-radius: 0;
    overflow: hidden;
    transition: all 0.3s ease-in-out;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}

.image-section:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.2);
}

.image-section a {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: flex-end;
    background: linear-gradient(transparent, rgba(0, 0, 0, 0.7));
    text-decoration: none;
}

.text-content {
    text-align: center;
}

.text-content h3 {
    color: var(--color-blue_royal);
    font-size: 2rem;
    font-weight: 600;
    margin-bottom: var(--spacing-md);
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.text-content p {
    color: var(--color-gray_medium);
    font-size: 1.1rem;
    line-height: 1.6;
    margin: 0;
}

/* COLUMNA 2: IMAGEN GRANDE + PEQUEÑA */
.city-card-large {
    grid-column: 2;
    grid-row: 1 / 3;
    position: relative;
    height: 100%;
    background-position: center;
    background-size: cover;
    border-radius: 0;
    overflow: hidden;
    transition: all 0.3s ease-in-out;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}

.city-card-small {
    position: relative;
    height: 100%;
    background-position: center;
    background-size: cover;
    border-radius: 0;
    overflow: hidden;
    transition: all 0.3s ease-in-out;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}

/* POSICIONAMIENTO ESPECÍFICO DE LAS IMÁGENES */
.city-card-small:nth-child(4) {
    grid-column: 2;
    grid-row: 3;
}

.city-card-small:nth-child(5) {
    grid-column: 3;
    grid-row: 1;
}

.city-card-small:nth-child(6) {
    grid-column: 3;
    grid-row: 2;
}

.city-card-small:nth-child(7) {
    grid-column: 3;
    grid-row: 3;
}

/* EFECTOS HOVER PARA AMBAS TARJETAS */
.city-card-large:hover,
.city-card-small:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.2);
}

/* ENLACES Y OVERLAYS */
.city-card-large a,
.city-card-small a {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: flex-end;
    background: linear-gradient(transparent, rgba(0, 0, 0, 0.7));
    text-decoration: none;
}

.city-overlay {
    padding: var(--spacing-lg);
    width: 100%;
}

.city-overlay h4 {
    color: var(--color-white);
    font-size: 1.5rem;
    font-weight: 600;
    margin: 0 0 var(--spacing-sm) 0;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.city-overlay .term-counter {
    background: var(--color-button-blue-dark);
    color: var(--color-white);
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    display: inline-block;
}

/* RESPONSIVE PARA LA NUEVA ESTRUCTURA */
@media (max-width: 1024px) {
    .cities-grid-custom {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto auto auto auto;
        gap: var(--spacing-md);
    }
    
    .text-column {
        grid-column: 1 / -1;
        grid-row: 1;
        padding: var(--spacing-lg);
    }
    
    .city-card-large {
        grid-column: 1;
        grid-row: 2 / 4;
        height: 540px;
    }
    
    .city-card-small {
        grid-column: 2;
        height: 230px;
    }
}

@media (max-width: 768px) {
    .cities-grid-custom {
        grid-template-columns: 1fr;
        gap: var(--spacing-md);
    }
    
    .text-column {
        grid-column: 1;
        grid-row: 1;
        padding: var(--spacing-md);
    }
    
    .text-content h3 {
        font-size: 1.5rem;
    }
    
    .text-content p {
        font-size: 1rem;
    }
    
    .city-card-large {
        grid-column: 1;
        grid-row: 2;
        height: 320px;
    }
    
    .city-card-small {
        grid-column: 1;
        height: 200px;
    }
    
    .city-overlay h4 {
        font-size: 1.25rem;
    }
}

@media (max-width: 480px) {
    .city-card-large,
    .city-card-small {
        height: 180px;
    }
    
    .text-content h3 {
        font-size: 1.25rem;
    }
    
    .city-overlay h4 {
        font-size: 1.1rem;
    }
}

#home-services .services-slider {display: flex; flex-wrap: nowrap; align-items: center; overflow-x: auto;}
#home-services .services-slider .item {background-position: center; background-size: cover; border-radius: var(--size-30); box-shadow: 0 0 0; overflow: hidden; position: relative; transition: all 0.4s ease-in-out; text-decoration: none; display: block;}
#home-services .services-slider .item:before {inset: 0; position: absolute; z-index: 0;}
#home-services .services-slider .item.active {box-shadow: var(--shadow-large);}
#home-services .services-slider .item .item__icon {background: var(--color-button-blue-dark); border-radius: var(--size-20); color: var(--color-white); display: flex; align-items: center; justify-content: center; height: var(--size-60); position: absolute; transition: all 0.4s ease-out; width: var(--size-60); z-index: 1;}
#home-services .services-slider .item .item__icon i {font-size: 1.5625rem;}
#home-services .services-slider .item .item__title {position: absolute; z-index: 1;}
#home-services .services-slider .item .item__title h3 {color: var(--color-white); display: flex; align-items: center; line-height: 1; margin: 0; text-transform: uppercase;}
#home-services .services-slider .item .item__body {background: rgb(0 0 0 / 20%); backdrop-filter: blur(15px); border-radius: var(--size-30); bottom: -3.75rem; color: var(--color-white); opacity: 0; padding: var(--size-30); position: absolute; transition: all 0.3s; z-index: 2;}
#home-services .services-slider .item.active .item__body {bottom: 0; opacity: 1;}

@media screen and (min-width: 821px) {
    #home-services .services-slider {gap: var(--size-40); height: 70vh; overflow-x: visible;}
    #home-services .services-slider .item {height: calc(70vh - var(--size-80)); flex: 1 1 0; min-width: 0;}
    #home-services .services-slider .item.active {height: 70vh; flex: 1.5 1 0; min-width: 0;}
    #home-services .services-slider .item .item__icon {left: 50%; top: var(--size-30); transform: translateX(-30px);}
    #home-services .services-slider .item.active .item__icon {left: var(--size-30); transform: translateX(0);}
    #home-services .services-slider .item .item__title {bottom: var(--size-30); left: 50%; transform: translateX(-50%);}
    #home-services .services-slider .item .item__title h3 {height: 0; left: 50%; line-height: 1; position: absolute; transform: translateX(-50%) rotate(-90deg); transform-origin: center; opacity: 1; transition: opacity 0.4s; width: 0;}
    #home-services .services-slider .item.active .item__title h3 {opacity: 0;}
}
@media screen and (max-width: 820px) {
    #home-services .services-slider {gap: var(--size-20); overflow-x: auto;}
    #home-services .services-slider .item {height: 6.25rem; flex: 0 0 80%; min-width: 80%;}
    #home-services .services-slider .item.active {height: 40vh; flex: 0 0 80%; min-width: 80%;}
    #home-services .services-slider .item .item__icon {left: var(--size-20); top: var(--size-20);}
    #home-services .services-slider .item .item__title {background: rgb(0,0,0); background: linear-gradient(90deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.6) 100%); height: 100%; max-width: 80%; transition: opacity 0.4s; padding: 0 var(--size-20) 0 var(--size-60); top: 0; right:0; text-align: right;}
    #home-services .services-slider .item.active .item__title {opacity: 0;}
    #home-services .services-slider .item .item__title h3 {position: relative; top: 50%; transform: translateY(-50%);}
}

/* Espaciado del listado de servicios */
#home-services .col-12:nth-child(2) {
    margin-top: var(--size-40);
}

/* Botón de servicios - centrado con margen superior */
#home-services .col-12:last-child {
    display: flex;
    justify-content: center;
    margin-top: var(--size-40);
}

@media screen and (min-width: 821px) {
    #home-services .col-12:nth-child(2) {
        margin-top: var(--size-60);
    }
    
    #home-services .col-12:last-child {
        margin-top: var(--size-60);
    }
}

#home-data .item {display: flex; font-family: var(--font-main); flex-wrap: wrap; gap: var(--size-20); align-items: center;}
#home-data .data__number {color: var(--color-blue_royal); font-size: var(--size-60); font-weight: var(--font-main-medium); line-height: 1em;}
#home-data .data__description span {display: block;}

#home-testimonies .section__image {background-position: center; background-size: cover; border-radius: var(--size-40); position: relative;}
#home-testimonies .section__image:before {content: url(assets/images/img-quote.svg); position: absolute;}
#home-testimonies .swiper-wrapper {margin-bottom: var(--size-60);}
#home-testimonies .testimony-slider .item__body {margin-bottom: var(--size-40);}
#home-testimonies .testimony-slider .item__author .author__name {color: var(--color-blue_royal); font-weight: bold;}
#home-testimonies .testimony-slider .item__author .author__info {color: var(--color-gray_medium_dark); font-size: 0.875rem;}
#home-testimonies .slide-navigation {display: flex; flex-wrap: wrap; gap: var(--size-20);}
#home-testimonies .slide-navigation [class^="nav-"] {border-radius: var(--size-20); cursor: pointer; display: flex; align-items: center; justify-content: center; height: var(--size-50); transition: all 0.4s ease-out; width: var(--size-50);}
#home-testimonies .slide-navigation [class^="nav-"]:not(:hover) {background-color: var(--color-gray_light_medium); color: var(--color-blue_royal);}
#home-testimonies .slide-navigation [class^="nav-"]:hover {background-color: var(--color-black); color: var(--color-white);}

@media screen and (min-width: 820px) {
    #home-testimonies .section__image {height: 75vh;}
    #home-testimonies .section__image:before {right: 0; top: 50%; transform: translate(50%,-50%);}
}
@media screen and (max-width: 819px) {
    #home-testimonies .section__image {height: 40vh;}
    #home-testimonies .section__image:before {bottom: 0; left: 50%; transform: translate(-50%,30%);}
    #home-testimonies .slide-navigation {justify-content: center;}
}

#home-blog .column__container {position: sticky; top: 7.5rem;}
#home-blog .item {background: var(--color-white); border-radius: var(--size-30); display: flex; flex-wrap: wrap; align-items: center;}
#home-blog .item:not(:last-child) {margin-bottom: var(--size-40);}
#home-blog .item .item__image {position: relative;}
#home-blog .item .item__image figure {margin: 0;}
#home-blog .item .item__image a {display: block;}
#home-blog .item .item__image img {border-radius: var(--size-30); display: block;}
#home-blog .item .item__image .item__date {background: rgb(0 0 0 / 20%); backdrop-filter: blur(15px); border-radius: var(--size-10); color: var(--color-white); font-family: var(--font-main); left: var(--size-20); padding: var(--size-10); position: absolute; top: var(--size-20);}
#home-blog .item .item__image .item__date > span {display: block; line-height: 1.2em;}
#home-blog .item .item__image .item__date > span:not(.date-day) {font-size: 0.875rem;}
#home-blog .item .item__image .item__date .date-day {font-size: 1.375rem; font-weight: var(--font-main-semibold);}
#home-blog .item .item__body {flex: 1 0; padding: var(--size-40);}
#home-blog .item .item__body h3 {font-size: 1.625em; text-transform: uppercase;}

@media screen and (min-width: 1366px) {
    #home-blog .item .item__image img {aspect-ratio: 1;}
}
@media screen and (min-width: 821px) and (max-width: 1365px) {
    #home-blog .item .item__image img {aspect-ratio: 12/14;}
}
@media screen and (min-width: 821px) {
    #home-blog .item .item__image {flex: 0 1 40%;}
    #home-blog .item .item__body {padding: var(--size-40);}
}
@media screen and (max-width: 820px) {
    #home-blog .item {flex-direction: column;}
    #home-blog .item .item__image {flex: 0 1; width: 100%;}
    #home-blog .item .item__image img {aspect-ratio: 16/12; width: 100%;}
    #home-blog .item .item__body {padding: var(--size-30);}
}

/* About */
/* Reducir espacio entre título de página y primer párrafo en Nosotros */
.page-template-page-nosotros .page-header {
    margin-bottom: 0;
    padding-top: var(--spacing-md);
    padding-bottom: var(--spacing-md);
}

.page-template-page-nosotros #about-info {
    padding-top: var(--spacing-md);
}

/* Reducir espacio del título en página de contacto */
.page-template-page-contacto .page-header {
    margin-bottom: 0;
    padding-top: var(--spacing-md);
    padding-bottom: var(--spacing-xs);
}

.page-template-page-contacto .content {
    padding-top: var(--spacing-xs);
}

/* Línea de tiempo vertical para historia */
#about-history .section-title {
    margin-bottom: var(--spacing-md);
}

.history-timeline {
    position: relative;
    max-width: 1000px;
    margin: var(--spacing-md) auto 0;
    padding: var(--spacing-lg) 0;
}

.history-timeline::before {
    content: '';
    position: absolute;
    left: 50%;
    top: 0;
    bottom: 0;
    width: 3px;
    background: var(--color-button-blue-dark);
    transform: translateX(-50%);
    z-index: 0;
}

.timeline-item {
    position: relative;
    margin-bottom: var(--spacing-md);
    display: flex;
    align-items: center;
}

.timeline-item:last-child {
    margin-bottom: 0;
}

.timeline-item:nth-child(odd) .timeline-content {
    margin-right: auto;
    margin-left: 0;
    padding-right: var(--spacing-xl);
    text-align: right;
}

.timeline-item:nth-child(even) .timeline-content {
    margin-left: auto;
    margin-right: 0;
    padding-left: var(--spacing-xl);
    text-align: left;
}

.timeline-marker {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    width: 16px;
    height: 16px;
    background: var(--color-white);
    border: 3px solid var(--color-button-blue-dark);
    border-radius: 50%;
    z-index: 1;
}

.timeline-content {
    width: 52%;
    background: transparent;
    border-radius: 0;
    padding: var(--spacing-lg);
    border: none;
    transition: all 0.3s ease;
}

.timeline-content:hover {
    box-shadow: none;
}

.timeline-year {
    margin-bottom: var(--spacing-md);
}

.timeline-year h4 {
    margin: 0;
    font-size: 1.75rem;
    font-weight: 600;
    letter-spacing: 0.02em;
}

.timeline-image {
    margin-bottom: var(--spacing-md);
}

.timeline-image figure {
    margin: 0;
    overflow: hidden;
    border-radius: 0;
}

.timeline-image img {
    width: 100%;
    height: auto;
    display: block;
    transition: transform 0.3s ease;
}

.timeline-content:hover .timeline-image img {
    transform: scale(1.02);
}

.timeline-description p {
    margin: 0;
    color: var(--color-gray_medium);
    line-height: 1.7;
    font-size: 1rem;
}

@media (max-width: 768px) {
    .history-timeline {
        max-width: 100%;
    }
    
    .history-timeline::before {
        left: 30px;
    }
    
    .timeline-marker {
        left: 30px;
    }
    
    .timeline-item:nth-child(odd) .timeline-content,
    .timeline-item:nth-child(even) .timeline-content {
        width: calc(100% - 60px);
        margin-left: 60px;
        margin-right: 0;
        padding: var(--spacing-md);
        text-align: left;
    }
    
    .timeline-year h4 {
        font-size: 1.5rem;
    }
}
#about-faq .element-accordion .item {border-radius: var(--size-20); padding: var(--size-20) 0; position: relative; transition: all 0.2s;}
#about-faq .element-accordion .item:not(:last-child) {margin-bottom: var(--size-20);}
#about-faq .element-accordion .item.active {background-color: var(--color-white); box-shadow: 0 1rem 2.5rem rgb(165, 171, 185 / 0.2); z-index: 2;}
#about-faq .element-accordion .item h5, #about-faq .element-accordion .item > div {padding: 0 var(--size-20);}
#about-faq .element-accordion .item h5 {display: flex; align-items: top; justify-content: space-between; flex-wrap:wrap; margin: 0; transition: margin 0.4s;}
#about-faq .element-accordion .item.active h5 {margin-bottom: var(--size-20);}
#about-faq .element-accordion .item h5 .accordion-control {aspect-ratio: 1; position: relative; width: var(--size-30);}
#about-faq .element-accordion .item h5 .accordion-control:before, #about-faq .element-accordion .item h5 .accordion-control:after {background: var(--color-blue_medium); content:" "; height: 1px; left: 50%; position: absolute; top: 50%; transition: transform 0.4s; transform: translate(-50%,-50%); width: 100%;}
#about-faq .element-accordion .item:not(.active) h5 .accordion-control:after {transform: translate(-50%,-50%) rotate(-90deg);}
#about-faq .element-accordion .item > div {max-height: 0; overflow: hidden; transition: all 0.5s;}
#about-faq .element-accordion .item.active > div {max-height: 10rem;}

@media screen and (max-width: 820px) {
    #about-values .item {margin-bottom: var(--size-20);}
}

/* Services */
.service-section .item .item__image figure {margin: 0; position: relative;}
.service-section .item .item__image figure img {display: block;}
.service-section .item .item__image .item__icon {background: var(--color-green); border-radius: var(--size-20); color: var(--color-blue_royal); display: flex; align-items: center; justify-content: center; height: var(--size-60); left: var(--size-30); position: absolute; top: var(--size-30); width: var(--size-60); z-index: 1;}
.service-section .item .item__image .item__icon i {font-size: 1.5625rem;}
#services-main .item:nth-child(even) > .row {flex-direction: row-reverse;}
#services-main .item:not(:last-child) {margin-bottom: var(--size-40);}
#services-main .item .item__text .item__description {margin-bottom: var(--size-40);}
#services-secondary .item {display: flex;}
#services-secondary .item .item__image img {aspect-ratio: 16/12; box-shadow: var(--shadow-large); object-fit: cover;}
#services-secondary .item .item__text {display: flex; flex-wrap: wrap; flex-direction: row; align-content: space-between; height: 100%; padding: var(--size-30);}

@media screen and (max-width: 820px) {
    #services-main .item:not(:last-child) {margin-bottom: var(--size-40);}
    #services-main .item .row {flex-direction: column-reverse; gap: var(--size-20);}
    #services-secondary .row-items-large-3 {display: flex; flex-direction: column; gap: var(--size-20);}
    #services-secondary .item {flex-direction: column;}
}


/* Blog */
#featured-post .item__date, .post-list .item .item__date {background-color: rgb(0 0 0 / 20%); backdrop-filter: blur(15px); border-radius: var(--size-10); color: var(--color-white); font-family: var(--font-main); left: var(--size-20); padding: var(--size-10); position: absolute; top: var(--size-20);}
#featured-post .item__date strong, .post-list .item .item__date strong {font-size: 1.375rem; display: block;}
#featured-post .item__date span, .post-list .item .item__date span {font-size: 0.875rem; display: block;}
#featured-post .item__image figure, .post-list .item .item__image figure {margin: 0; position: relative;}
.post-list .item .item__image figure img {aspect-ratio: 16/14; display: block; object-fit: cover;}
.single .single__featured {display: flex; flex-wrap: wrap; align-items: center;}
.single .single__featured .single__image figure {margin: 0;}
.single .single__featured .single__image figure img {aspect-ratio: 16/10; display: block; object-fit: cover;}
.single .single__featured .single__excerpt {color: var(--color-white); padding: var(--size-40);}
.single .single__featured .single__excerpt .single__date {font-size: var(--size-20); margin-bottom: var(--size-20); text-transform: capitalize;}
.single .single__featured .single__excerpt h4 {margin: 0;}
.single .single__featured .single__excerpt h4 p {margin: 0;}
.single .column-left p {text-align: justify;}
.single .column-right .single__related h2 span {background-color: var(--color-green);}
.single__related .item-list .item:not(:last-child) {margin-bottom: var(--size-30);}
.single__related .item-list figure {margin: 0;}
.single__related .item-list figure img {aspect-ratio: 16/12; display: block; object-fit: cover;}
.single__related .item-list .item__date {margin-bottom: var(--size-20); text-transform: capitalize;}
.single__related .item-list .item__title {font-family: var(--font-main); font-weight: var(--font-main-semibold); font-size: var(--size-20); line-height: 1.2em;}

@media screen and (max-width: 820px) {
    .page-template-page-blog .post-list .item:not(:last-child) {margin-bottom: var(--size-40);}
    .page-template-page-blog .item > .row {gap: var(--size-20);}
}

/* Vende */
#sell-featured .item .item__icon {aspect-ratio: 1; background: var(--color-green); border-radius: var(--size-20); color: var(--color-blue_royal); display: flex; align-items: center; justify-content: center; margin-bottom: var(--size-20); width: var(--size-60);}
#sell-featured .item .item__icon i {font-size: 1.625rem;}
#sell-featured .item h3 span {display: block;}

@media screen and (max-width: 430px) {
    #sell-featured .row {gap: var(--size-20);}
}

/* Contact */
/* Estilos modernos y minimalistas para información de contacto */
#contact-info {
    margin-bottom: var(--spacing-xs);
}

.contact-info-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--spacing-lg);
}

.contact-info-item {
    display: flex;
    flex-direction: column;
    padding: var(--spacing-lg);
    border: 1px solid var(--color-gray_light_medium);
    border-radius: 0;
    transition: all 0.3s ease;
    background: var(--color-white);
}

.contact-info-item:hover {
    border-color: var(--color-button-blue-dark);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.contact-info-header {
    margin-bottom: var(--spacing-md);
    padding-bottom: var(--spacing-sm);
    border-bottom: 1px solid var(--color-gray_light_medium);
}

.contact-info-type {
    font-family: var(--font-main);
    font-size: 1.2rem;
    font-weight: 600;
    color: var(--color-blue_royal);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin: 0;
}

.contact-info-content {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
}

.contact-phone-item,
.contact-mobile-item,
.contact-email-item {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-xs);
}

.contact-label {
    font-size: 0.9rem;
    color: var(--color-gray_medium_dark);
    text-transform: uppercase;
    letter-spacing: 0.03em;
    font-weight: 500;
}

.contact-link {
    color: var(--color-button-blue-dark);
    font-size: 1.2rem;
    font-weight: 500;
    text-decoration: none;
    font-family: var(--font-secondary);
    transition: color 0.3s ease;
}

.contact-link:hover {
    color: var(--color-blue_medium);
}

@media (max-width: 768px) {
    .contact-info-grid {
        grid-template-columns: 1fr;
        gap: var(--spacing-md);
    }
    
    .contact-info-item {
        padding: var(--spacing-md);
    }
    
    #contact-locations {
        grid-template-columns: 1fr;
        gap: var(--spacing-md);
    }
}
#contact-locations {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--spacing-lg);
}
#contact-locations .row:not(:last-child) {margin-bottom: var(--size-30);}
#contact-locations .item {background: var(--color-blue_medium); border-radius: var(--size-40); color: var(--color-white); padding: var(--size-40);}
#contact-locations .item address {font-style: normal; margin-bottom: var(--size-10);}
#contact-locations .item .address__map a {}
#contact-locations .item .time-week {margin-bottom: var(--size-20);}
#contact-locations .item .contact-link {color: var(--color-white); text-decoration: underline; transition: opacity 0.3s ease; font-size: inherit;}
#contact-locations .item .contact-link:hover {opacity: 0.8;}
.gform_fields .gfield label .gfield_required {display: none;}
.gform_fields .gfield.hidden_label label {display: none;}

@media screen and (min-width: 821px) {
    #contact-info {font-size: var(--size-40);}
    #contact-info .row:not(:last-child) {margin-bottom: var(--size-40);}
}
@media screen and (max-width: 820px) {
    #contact-info .item:not(:last-child) {margin-bottom: var(--size-20);}
    #contact-info .item__content {font-size: var(--size-30);}
}
@media screen and (min-width: 431px) {
    .gform_fields .field-half {width: calc(50% - var(--size-10));}
    .gform_fields .field-full {width: 100%;}
}
@media screen and (max-width: 430px) {
    .gform_fields .field-half, .gform_fields .field-full {width: 100%;}
}

/* Footer */
#footer {background: #F7F7F7; color: #333333; margin-bottom: 0; padding-bottom: 0; border-top: 1px solid #e5e5e5;}
#newsletter .wrap {padding-bottom: var(--size-30);}
#newsletter form.mailpoet_form {display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;}
#newsletter .form-email {flex: 1 0 100%;}
#newsletter .form-email label {color: var(--color-black);}
#newsletter .form-actions input[type="submit"] {background: var(--color-blue_medium) url(assets/images/arrow_diagonal-white.svg) center right var(--size-30) no-repeat; background-size: 1em; border: none; border-radius: var(--size-20); color: var(--color-white); cursor: pointer; font-family: var(--font-main); font-size: 1em; height: var(--size-50); padding: 1rem var(--size-60) 1rem var(--size-30) !important;}
#newsletter .mailpoet_message {width: 100%;}
#footer .footer-logos .wrap {padding-bottom: var(--size-30);}
#footer .footer-logos .wrap, #footer .footer-top .wrap {border-bottom: 1px solid #e5e5e5;}
#footer .footer-top .wrap {padding-bottom: var(--size-30); padding-top: var(--size-50);}
#footer .footer-top .custom-logo-link {display: block; width: 12rem;}
#footer .footer-top .custom-logo-link img {justify-content: center;}
#footer .footer-menus {display: flex; flex-wrap: wrap;}
#footer .footer-menus .footer-menu ul {list-style: none; margin: 0; padding: 0;}
#footer .footer-menus .footer-menu ul li:not(:last-child) {margin-bottom: var(--size-10);}
#footer .footer-info .wp-block-social-links:not(.is-style-logos-only) .wp-social-link {background: transparent;}
#footer .footer-info .wp-block-social-links .wp-social-link a {border-radius: var(--size-20); display: inline-flex; align-items: center; justify-content: center; height: var(--size-50); width: var(--size-50); transition: all 0.2s; color: #333333;}
#footer .footer-info .wp-block-social-links .wp-social-link a:hover {background-color: #003C8F; box-shadow: 0 5px 20px rgba(0, 60, 143, 0.2); color: #FFFFFF !important;}
#footer .footer-bottom .wrap {padding-top: var(--size-10);}
#footer .footer-bottom .footer-legal ul {display: flex; flex-wrap: wrap; gap: var(--size-20); list-style: none; margin: 0; padding: 0;}
#footer .footer-bottom .footer-legal ul li a {font-weight: var(--font-secondary-bold);}
#footer .footer-bottom {background-color: #2c2c2c;}
#footer .footer-bottom * {color: #e5e5e5;}
.footer-copyright {font-size: 0.875em;}

@media screen and (min-width: 768px) {
    #footer .footer-logos ul {list-style: none; display: flex; align-items: center; justify-content: center; gap: var(--size-60); margin: 0; padding: 0;}
    #footer .footer-info {text-align: center; display: flex; flex-direction: column; align-items: center; justify-content: center;}
    #footer .footer-menus .footer-menu > h3 {font-size: 1.75em; margin-bottom: var(--size-20); text-transform: uppercase;}
    #footer .footer-bottom .row {align-items: center;}
    #footer .footer-bottom .footer-legal ul {justify-content: end; align-items: end; gap: var(--size-50)}
}
@media screen and (max-width: 767px) {
    #footer .footer-logos ul {height: var(--size-80); list-style: none; margin: 0; padding: 0; position: relative;}
    #footer .footer-logos ul li {height: 100%; left: 0; opacity: 0; position: absolute; top: 0; text-align: center; transition: opacity 0.4s; width: 100%;}
    #footer .footer-logos ul li.active {opacity: 1;}
    #footer .footer-logos ul li figure {margin: 0; position: relative; top: 50%; transform: translateY(-50%);}
    #footer .footer-info {display: flex; flex-direction: column; align-items: center;}
    .footer-top .row {flex-direction: column-reverse;}
    .footer-menus {gap: var(--size-40); margin-bottom: var(--size-30);}
    .footer-menu h3.menu-title {font-size: var(--size-30); margin: 0; padding: var(--size-10) 0; position: relative; transition: margin 0.4s cubic-bezier(0,0,.5,1); text-transform: uppercase;}
    .footer-menu h3.menu-title:after {background: #DDDDDD; bottom: 0; content: " "; height: 1px; left: 0; position: absolute; transition: width 0.4s cubic-bezier(0,0,.5,1); width: 100%;}
    .footer-menu h3.menu-title span {aspect-ratio: 1; position: absolute; width: var(--size-20); right: 0; top: 50%; transform: translateY(-50%);}
    .footer-menu h3.menu-title span:before, .footer-menu h3.menu-title span:after {background: var(--color-white); content: " "; height: 1px; left: 50%; position: absolute; top: 50%; width: 100%;}
    .footer-menu h3.menu-title span:before {transform: translate(-50%, -50%);}
    .footer-menu h3.menu-title span:after {transform: translate(-50%,-50%) rotate(90deg); transition: transform 0.4s cubic-bezier(0,0,.5,1), opacity 0.4s linear;}
    .footer-menu.active h3.menu-title {margin: 0 0 var(--size-20);}
    .footer-menu.active h3.menu-title:after {width: 0;}
    .footer-menu.active h3.menu-title span:after {transform: translate(-50%,-50%) rotate(0deg); opacity: 0;}
    .footer-menu .menu {max-height: 0; overflow: hidden; transition: max-height 1s cubic-bezier(0,0,.5,1);}
    .footer-menu.active .menu {max-height: 100vh;}
    .footer-bottom {text-align: center;}
    .footer-copyright {order: 2;}
    .footer-legal {order: 1;}
    #footer .footer-bottom .footer-legal ul {justify-content: center;}
}

/* ===================================
   SECCIÓN MODERNA - INMUEBLES EN CARRUSEL
   =================================== */

#modern-properties-showcase {
    padding: var(--spacing-xl) 0 var(--spacing-xl) 0;
    margin-top: 0;
    background: linear-gradient(135deg, var(--color-white) 0%, var(--color-gray_light_medium) 100%);
}

#modern-properties-showcase .container-fluid {
    margin: 0 auto;
}


#modern-properties-showcase .col-lg-6 {
    flex: 0 0 auto;
    max-width: none;
}

/* PANTALLAS GRANDES - 3 COLUMNAS */
@media (min-width: 1366px) {
    #modern-properties-showcase .row {
        align-items: stretch;
    }
    
    .carousel-container {
        max-width: 100%;
        min-height: 400px;
    }
}

#modern-properties-showcase .section-title h2 {
    color: var(--color-blue_royal);
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 500;
    margin-bottom: var(--spacing-sm);
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

#modern-properties-showcase .section-subtitle {
    color: var(--color-gray_medium);
    font-size: 1.125rem;
    font-weight: 400;
    margin-bottom: var(--spacing-sm);
    text-transform: uppercase;
}

/* CAROUSEL HEADER */
.carousel-header {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: var(--spacing-md);
    padding: 0 var(--spacing-sm);
}

.carousel-header h3 {
    color: var(--color-blue_royal);
    font-size: 2.0rem;
    font-weight: 400;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.carousel-header h3 i {
    color: var(--color-blue_medium);
    font-size: 0.875rem;
    opacity: 0.8;
}

/* Controles del carrusel ocultos */
.carousel-header .carousel-controls {
    display: none;
}

/* CONTROLES DEL CARRUSEL - OCULTOS EN LA IMAGEN */
.carousel-controls {
    display: none;
}

/* Botones del carrusel removidos */

/* CONTENEDOR DEL CARRUSEL */
.carousel-container {
    position: relative;
    overflow: hidden;
    min-height: auto; /* Se adapta al contenido */
    max-width: 450px; /* Ancho máximo para columnas más compactas */
    margin: 0 auto; /* Centrar en su contenedor */
    background: transparent;
    border: none;
    padding: 0;
}

.carousel-item {
    position: relative;
    top: 0;
    left: 0;
    width: 100%;
    height: auto;
    display: none;
    opacity: 0;
    transform: translateX(30px);
    transition: all var(--transition-normal);
    z-index: 1;
}

.carousel-item.active {
    display: block;
    opacity: 1;
    transform: translateX(0);
    z-index: 2;
    position: relative;
}

/* TARJETA MODERNA DE INMUEBLE */
.modern-property-card {
    background: transparent;
    overflow: hidden;
    transition: all var(--transition-normal);
    padding: 0;
    margin: 0;
    border: none;
}

.modern-property-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.12);
}

/* IMAGEN DEL INMUEBLE */
.property-image {
    position: relative;
    height: 0;
    padding-bottom: 56.25%; /* Ratio 16:9 */
    overflow: hidden;
}

.property-image img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--transition-normal);
}

.modern-property-card:hover .property-image img {
    transform: scale(1.05);
}

/* OVERLAY CON INFORMACIÓN */
.image-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, rgba(13, 26, 51, 0.85) 0%, rgba(0, 60, 143, 0.75) 50%, rgba(13, 26, 51, 0.9) 100%);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: var(--spacing-md);
    opacity: 0;
    transition: all var(--transition-normal);
}

.modern-property-card:hover .image-overlay {
    opacity: 1;
}

/* INFORMACIÓN EN EL OVERLAY */
.overlay-content {
    color: var(--color-white);
    width: 100%;
}

.overlay-price {
    font-size: 1.5rem;
    font-weight: 700;
    margin-bottom: 0.5rem;
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
}

.overlay-price .price-period {
    font-size: 1rem;
    font-weight: 400;
    opacity: 0.9;
}

.overlay-title {
    font-size: 1.125rem;
    font-weight: 600;
    margin-bottom: 0.25rem;
    line-height: 1.3;
}

.overlay-location {
    font-size: 0.875rem;
    opacity: 0.9;
    margin-bottom: var(--spacing-sm);
}

.overlay-attributes {
    display: flex;
    gap: var(--spacing-md);
    margin-top: var(--spacing-sm);
    padding-top: var(--spacing-sm);
    border-top: 1px solid rgba(255, 255, 255, 0.2);
}

.overlay-attr-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.75rem;
    opacity: 0.9;
}

.overlay-attr-item i {
    color: var(--color-white);
    font-size: 0.875rem;
    min-width: 16px;
    opacity: 0.9;
}

/* ESTADO DEL INMUEBLE */
.property-status {
    position: absolute;
    top: var(--spacing-md);
    right: var(--spacing-md);
    padding: 0.5rem 1rem;
    border-radius: 0;
    font-size: 0.625rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1.25px;
    backdrop-filter: blur(10px);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2);
    z-index: 3;
}

.status-rent {
    background: var(--color-blue_royal);
    color: var(--color-white);
}

.status-sale {
    background: var(--color-blue_royal);
    color: var(--color-white);
}

/* CONTENIDO DEL INMUEBLE - OCULTO YA QUE ESTÁ EN EL OVERLAY */
.property-content {
    display: none;
}

.attr-item i {
    color: var(--color-blue_medium);
    font-size: 1rem;
}

/* ACCIONES */
.property-actions {
    text-align: center;
    margin-top: var(--spacing-md);
    padding-top: var(--spacing-sm);
    border-top: 1px solid var(--color-gray_light_medium);
}

.btn-view {
    background: var(--color-black);
    color: var(--color-white);
    padding: 0.5rem 1rem;
    text-decoration: none;
    font-family: var(--font-main);
    font-size: 0.9rem;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 0.625rem;
    text-transform: uppercase;
    letter-spacing: 1.25px;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    transition: all var(--transition-normal);
    border: none;
    cursor: pointer;
    border-radius: 0;
}

.btn-view:hover {
    background: var(--color-black);
    transform: translateY(-1px);
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
    color: var(--color-white);
    text-decoration: none;
}

/* INDICADORES DEL CARRUSEL */
.carousel-indicators {
    display: flex;
    justify-content: center;
    gap: var(--spacing-sm);
    margin-top: var(--spacing-lg);
}

.indicator {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    border: none;
    background: rgba(138, 138, 138, 0.3);
    cursor: pointer;
    transition: all var(--transition-fast);
    position: relative;
}

.indicator.active {
    background: var(--color-blue_royal);
    transform: scale(1.1);
}

.indicator.active::after {
    content: '';
    position: absolute;
    top: -1px;
    left: -1px;
    right: -1px;
    bottom: -1px;
    border: 1px solid var(--color-blue_royal);
    border-radius: 50%;
    animation: pulse 2s infinite;
}

.indicator:hover {
    background: rgba(138, 138, 138, 0.6);
    transform: scale(1.05);
}

@keyframes pulse {
    0% {
        transform: scale(1);
        opacity: 1;
    }
    50% {
        transform: scale(1.1);
        opacity: 0.7;
    }
    100% {
        transform: scale(1);
        opacity: 1;
    }
}

/* PANTALLAS MEDIANAS - 3 COLUMNAS COMPACTAS */
@media (min-width: 1024px) and (max-width: 1365px) {
    #modern-properties-showcase .row {
        align-items: stretch;
    }
    
    .carousel-container {
        max-width: 100%;
        min-height: 350px;
    }
}

/* RESPONSIVE */
@media (max-width: 1023px) {
    #modern-properties-showcase .row {
        flex-direction: column;
        align-items: center;
    }
    
    #modern-properties-showcase .col-lg-4 {
        flex: 0 0 100%;
        max-width: 100%;
        margin-bottom: var(--spacing-lg);
    }
    
    .carousel-container {
        max-width: 500px;
        min-height: 450px;
    }
}

@media (max-width: 1200px) {
    .carousel-container {
        max-width: 450px;
    }
}

@media (max-width: 991px) {
    .carousel-container {
        max-width: 500px;
        min-height: 450px;
    }
    
    .carousel-header {
        flex-direction: column;
        gap: var(--spacing-md);
        text-align: center;
    }
    
    .carousel-header .carousel-controls {
        margin-top: var(--spacing-sm);
    }
    
    .property-attributes {
        flex-direction: column;
        gap: var(--spacing-sm);
    }
}

@media (max-width: 767px) {
    #modern-properties-showcase {
        padding: var(--spacing-lg) 0;
    }
    
    .carousel-container {
        max-width: 100%;
        min-height: 480px;
    }
    
    .carousel-header h3 {
        font-size: 1.125rem;
    }
    
    .carousel-btn {
        width: 40px;
        height: 40px;
        font-size: 1rem;
    }
    
    .property-content {
        padding: var(--spacing-md);
        flex-direction: column;
        gap: var(--spacing-sm);
    }
    
    .property-attributes {
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
        min-width: 100%;
        gap: var(--spacing-md);
    }
    
    .price-amount {
        font-size: 1.25rem;
    }
    
    .property-title h4 {
        font-size: 1.125rem;
    }
    
    #modern-properties-showcase .row {
        gap: var(--spacing-lg);
    }
}

/* ANIMACIONES DEL CARRUSEL */
@keyframes slideInRight {
    from {
        opacity: 0;
        transform: translateX(50px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes slideInLeft {
    from {
        opacity: 0;
        transform: translateX(-50px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: scale(0.95);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

.carousel-item.active[data-direction="right"] {
    animation: slideInRight 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.carousel-item.active[data-direction="left"] {
    animation: slideInLeft 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.carousel-item.active:not([data-direction]) {
    animation: fadeIn 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* ESTADOS DE CARGA */
.carousel-container.loading {
    position: relative;
}

.carousel-container.loading::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 40px;
    height: 40px;
    margin: -20px 0 0 -20px;
    border: 3px solid var(--color-gray_light_medium);
    border-top: 3px solid var(--color-blue_medium);
    border-radius: 50%;
    animation: spin 1s linear infinite;
    z-index: 10;
}

.carousel-container.loading::before {
    content: 'Cargando inmuebles...';
    position: absolute;
    top: 60%;
    left: 50%;
    transform: translateX(-50%);
    color: var(--color-gray_medium);
    font-size: 0.875rem;
    z-index: 10;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* CONTENEDORES DE INMUEBLES */
.property-carousel {
    background: transparent;
    border-radius: var(--size-10);
    padding: 0;
    box-shadow: none;
    margin-bottom: 0;
}

.property-carousel.recent-properties {
    background: transparent;
}

.property-carousel.featured-properties {
    background: transparent;
}

/* Botón Flotante */
#floating-button {
    position: fixed !important;
    bottom: 6rem !important;
    right: 1.5rem !important;
    z-index: 9999 !important;
}

.floating-button-wrapper {
    position: fixed !important;
    bottom: 6rem !important;
    z-index: 9999 !important;
}

.floating-button-wrapper.floating-button-right {
    right: 1.2rem !important;
    left: auto !important;
}

.floating-button-wrapper.floating-button-left {
    left: 2rem !important;
    right: auto !important;
}

.floating-button,
#floating-button a,
.floating-button-wrapper a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 4rem !important;
    height: 4rem !important;
    background-color: var(--color-button-blue-dark) !important;
    border-radius: 50% !important;
    color: var(--color-white) !important;
    text-decoration: none !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3) !important;
    transition: all 0.3s ease !important;
    position: relative !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.floating-button:hover,
#floating-button a:hover,
.floating-button-wrapper a:hover {
    transform: scale(1.1) !important;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.4) !important;
    color: var(--color-white) !important;
    text-decoration: none !important;
    background-color: var(--color-button-blue-dark) !important;
}

.floating-button i,
#floating-button i,
.floating-button-wrapper i {
    font-size: 1.5rem !important;
    color: var(--color-white) !important;
}

.floating-button-text {
    display: none !important;
}

/* Símbolo de pesos/dinero */
.floating-button .peso-symbol,
#floating-button .peso-symbol,
.floating-button-wrapper .peso-symbol {
    font-size: 2rem !important;
    font-weight: bold !important;
    color: var(--color-white) !important;
    line-height: 1 !important;
    font-family: Arial, sans-serif !important;
}

@media screen and (max-width: 820px) {
    #floating-button,
    .floating-button-wrapper {
        bottom: 7rem !important;
    }
    
    #floating-button {
        right: 1.5rem !important;
    }
    
    .floating-button-wrapper.floating-button-right {
        right: 1.5rem !important;
    }
    
    .floating-button-wrapper.floating-button-left {
        left: 1.5rem !important;
    }
    
    .floating-button,
    #floating-button a,
    .floating-button-wrapper a {
        width: 3.5rem !important;
        height: 3.5rem !important;
    }
    
    .floating-button i,
    #floating-button i,
    .floating-button-wrapper i {
        font-size: 1.25rem !important;
    }
    
    .floating-button .peso-symbol,
    #floating-button .peso-symbol,
    .floating-button-wrapper .peso-symbol {
        font-size: 1.75rem !important;
    }
}

/* ESTILOS MODERNOS PARA TABLAS DE WORDPRESS */
.wp-block-table {
    margin: var(--spacing-xl) 0;
    overflow-x: auto;
}

.wp-block-table table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    background: var(--color-white);
    border-radius: var(--size-20);
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    font-family: var(--font-secondary);
    border: none;
}

.wp-block-table table.has-fixed-layout {
    table-layout: fixed;
}

.wp-block-table thead {
    background: var(--color-button-blue-dark);
}

.wp-block-table thead th {
    padding: var(--spacing-lg) var(--spacing-md);
    text-align: center;
    color: var(--color-white) !important;
    background: var(--color-button-blue-dark) !important;
    font-weight: 600;
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border: none;
}

.wp-block-table thead th strong {
    color: var(--color-white) !important;
}

/* Asegurar que la primera fila del tbody también tenga el estilo si no hay thead */
.wp-block-table tbody tr:first-child td {
    background: var(--color-button-blue-dark) !important;
    color: var(--color-white) !important;
    text-align: center;
    font-weight: 600;
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.wp-block-table tbody tr:first-child td strong {
    color: var(--color-white) !important;
}

.wp-block-table tbody tr {
    transition: background-color 0.2s ease;
}

.wp-block-table tbody tr:nth-child(even) {
    background-color: var(--color-gray_light_medium);
}

.wp-block-table tbody tr:hover {
    background-color: rgba(0, 27, 138, 0.05);
}

.wp-block-table tbody td {
    padding: var(--spacing-md);
    border: none;
    border-right: 1px solid rgba(0, 0, 0, 0.08);
    color: var(--color-gray_medium);
    font-size: 0.95rem;
    line-height: 1.6;
    vertical-align: top;
    position: relative;
}

.wp-block-table tbody td:last-child {
    border-right: none;
}

/* Separador vertical sutil entre columnas */
.wp-block-table tbody td:not(:last-child)::after {
    content: '';
    position: absolute;
    right: 0;
    top: 20%;
    bottom: 20%;
    width: 1px;
    background: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1), transparent);
}

.wp-block-table tbody td strong {
    color: var(--color-blue_royal);
    font-weight: 600;
}

.wp-block-table tbody td ul {
    margin: var(--spacing-sm) 0;
    padding-left: var(--spacing-lg);
    list-style: none;
}

.wp-block-table tbody td ul li {
    position: relative;
    padding-left: var(--spacing-md);
    margin-bottom: var(--spacing-xs);
    line-height: 1.7;
}

.wp-block-table tbody td ul li:before {
    content: "•";
    position: absolute;
    left: 0;
    color: var(--color-blue_medium);
    font-weight: bold;
    font-size: 1.2em;
}

.wp-block-table tbody td ul li:last-child {
    margin-bottom: 0;
}

/* Responsive para tablas */
@media (max-width: 768px) {
    .wp-block-table {
        margin: var(--spacing-lg) 0;
    }
    
    .wp-block-table table {
        font-size: 0.875rem;
    }
    
    .wp-block-table thead th,
    .wp-block-table tbody td {
        padding: var(--spacing-sm) var(--spacing-xs);
    }
    
    .wp-block-table tbody td ul {
        padding-left: var(--spacing-md);
    }
    
    .wp-block-table tbody td ul li {
        padding-left: var(--spacing-sm);
        font-size: 0.9rem;
    }
}
