/* ============================================
   MAIN.CSS - INMOBILIAPOLIS - LIMPIO SIN DUPLICADOS
   ============================================ */

/* ===== VARIABLES GLOBALES ===== */
:root {
    --color-primario: #E8712B;
    --color-primario-hover: #d4621f;
    --color-gris-texto: #6C757D;
    --color-gris-claro: #f8f9fa;
    --color-gris-borde: #e9ecef;
    --radio-tarjeta: 15px;
    --sombra-suave: 0px 10px 40px 0px rgba(24, 26, 32, 0.07);
}

/* ===== FUENTES ===== */
@font-face { font-family: "Poppins Bold"; src: url("../fuentes/Poppins-Bold.eot"); src: url("../fuentes/Poppins-Bold.eot?#iefix") format("embedded-opentype"), url("../fuentes/Poppins-Bold.woff2") format("woff2"), url("../fuentes/Poppins-Bold.woff") format("woff"), url("../fuentes/Poppins-Bold.ttf") format("truetype"), url("../fuentes/Poppins-Bold.svg#Poppins-Bold") format("svg"); font-weight: bold; font-style: normal; font-display: swap; }
@font-face { font-family: "Poppins Light"; src: url("../fuentes/Poppins-Light.eot"); src: url("../fuentes/Poppins-Light.eot?#iefix") format("embedded-opentype"), url("../fuentes/Poppins-Light.woff2") format("woff2"), url("../fuentes/Poppins-Light.woff") format("woff"), url("../fuentes/Poppins-Light.ttf") format("truetype"), url("../fuentes/Poppins-Light.svg#Poppins-Light") format("svg"); font-weight: 300; font-style: normal; font-display: swap; }
@font-face { font-family: "Poppins SemiBold"; src: url("../fuentes/Poppins-SemiBold.eot"); src: url("../fuentes/Poppins-SemiBold.eot?#iefix") format("embedded-opentype"), url("../fuentes/Poppins-SemiBold.woff2") format("woff2"), url("../fuentes/Poppins-SemiBold.woff") format("woff"), url("../fuentes/Poppins-SemiBold.ttf") format("truetype"), url("../fuentes/Poppins-SemiBold.svg#Poppins-SemiBold") format("svg"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Poppins Medium"; src: url("../fuentes/Poppins-Medium.eot"); src: url("../fuentes/Poppins-Medium.eot?#iefix") format("embedded-opentype"), url("../fuentes/Poppins-Medium.woff2") format("woff2"), url("../fuentes/Poppins-Medium.woff") format("woff"), url("../fuentes/Poppins-Medium.ttf") format("truetype"), url("../fuentes/Poppins-Medium.svg#Poppins-Medium") format("svg"); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: "Poppins Regular"; src: url("../fuentes/Poppins-Regular.eot"); src: url("../fuentes/Poppins-Regular.eot?#iefix") format("embedded-opentype"), url("../fuentes/Poppins-Regular.woff2") format("woff2"), url("../fuentes/Poppins-Regular.woff") format("woff"), url("../fuentes/Poppins-Regular.ttf") format("truetype"), url("../fuentes/Poppins-Regular.svg#Poppins-Regular") format("svg"); font-weight: 500; font-style: normal; font-display: swap; }

/* ===== UTILIDADES DE FUENTE ===== */
.fuente-light { font-family: "Poppins Light", sans-serif; }
.fuente-bold { font-family: "Poppins Bold", sans-serif; }
.fuente-semi-bold { font-family: "Poppins SemiBold", sans-serif; }
.fuente-medium { font-family: "Poppins Medium", sans-serif; }
.fuente-regular { font-family: "Poppins Regular", sans-serif; }
.fw-bold { font-family: "Poppins Bold"; }

/* ===== RESET / BASE ===== */
a { text-decoration: none !important; }
button { background: var(--color-primario); color: white; border: none; border-radius: 25px; font-family: "Poppins Bold", sans-serif; transition: all 0.3s ease; }
button:hover { background: #878786 !important; transform: translateY(-2px); color: white !important; }

/* ===== UTILIDADES GENERALES ===== */
.color-primario { color: var(--color-primario); }
.title-tamano { font-size: 4rem; }
.linea { width: 100px; background: var(--color-primario); height: 10px; border-radius: 25px; }
.iti { width: 100% !important; }
.error-input { background: #ff000045 !important; }
.spinner-border { color: var(--color-primario); }
.destacado { background: #f9b233; color: white; padding: 10px; border-radius: 5px; font-family: "Poppins SemiBold", sans-serif; }

/* ===== MIGA DE PAN ===== */
.miga-pan { font-size: 0.65rem; color: #7b7b7b; padding: 15px 0; }
.miga-pan a { color: var(--color-primario); text-decoration: none; transition: opacity 0.3s ease; }
.miga-pan a:hover { opacity: 0.7; }
.miga-pan span { color: #1e1e1e; }

/* ===== BACKGROUNDS - HOME ===== */
.background-banner { background: linear-gradient(to bottom, #ffdae194, white); }
.background-qn { background: url("../imagenes/fondo-qn.svg") right/cover no-repeat; }
.bg-diana { background: url("../imagenes/qn-1.jpg") center/cover no-repeat; height: 600px; width: 500px; border-top-right-radius: 55px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); }
.bg-nn { position: relative; background: url("../imagenes/libro.png") top/cover no-repeat; height: 900px; }
.container-texto { position: absolute; top: 65%; left: 80%; transform: translate(-50%, -50%); text-align: start; }
.bg-servicios { background-color: white; background-image: url("../imagenes/bg-servicios.svg"); background-repeat: no-repeat; background-position: bottom center; background-size: contain; }
.bg-i-1 { background: url("../imagenes/apto.jpg") center/cover no-repeat; height: 300px; border-radius: 15px; }
.bg-i-2 { background: url("../imagenes/Casas.jpg") center/cover no-repeat; height: 300px; border-radius: 15px; }
.bg-i-3 { background: url("../imagenes/lotes.png") center/cover no-repeat; height: 300px; border-radius: 15px; }
.bg-o-1 { background: url("../imagenes/o-1.jpg") center/cover no-repeat; height: 400px; border-radius: 15px; }
.bg-s-1 { background: rgb(155, 155, 155); border-radius: 25px; height: 600px; width: 100%; position: relative; }
.b-b { background: url("../imagenes/b-b-1.svg") top/cover no-repeat; }

/* ===== BACKGROUNDS - BLOG ===== */
.bg-blog-1 { position: relative; background: url("../imagenes/bl-1.jpg") center/cover no-repeat; height: 630px; border-radius: 15px; }
.bg-blog-2 { background: url("../imagenes/bl-1.jpg") center/cover no-repeat; height: 300px; border-radius: 15px; }
.container-text { position: absolute; bottom: 20px; left: 0; right: 0; }

/* ===== SECCIONES ===== */
.bg-sections { background-color: var(--color-gris-claro); }
.bg-blog { background: linear-gradient(to bottom, #f7f7f7 0%, #f7f7f7 50%, white 50%, white 100%); }
footer { background: linear-gradient(to bottom, #009fe3 0%, #2d2e83 100%); }
.imagenes-logo-position { position: absolute; top: 20px; left: 20px; }

/* ============================================
   MENÚ HAMBURGUESA
   ============================================ */
.menu-toggle { width: 40px; height: 45px; position: fixed; top: 1.5em; right: 2em; cursor: pointer; z-index: 12; text-align: left; }
.menu-section-cotizar { width: 40px; height: 45px; position: fixed; top: 1.2rem; right: 10em; cursor: pointer; z-index: 12; text-align: left; }
.one, .two, .three { width: 100%; height: 4px; background: #E8712B !important; padding: 0; margin: 3px auto; backface-visibility: hidden; transition-duration: 0.3s; border-radius: 5px; padding-left: 25px; }
.four { width: 5px; height: 2px; background: none !important; padding: 0; margin: 8px auto; backface-visibility: hidden; transition-duration: 0.3s; border-radius: 70px; padding-left: 6px; margin-right: 4px; margin-top: 0; margin-bottom: 0; }
.menu-toggle.on .one { transform: rotate(410deg) translate(7px, 7px); padding-left: 20px; margin: 7px auto; margin-left: 8px; background: #E8712B !important; }
.menu-toggle.on .two { opacity: 0; }
.menu-toggle.on .three { transform: rotate(312deg) translate(8px, -10px); padding-left: 20px; margin: 7px auto; margin-left: 8px; background: #E8712B !important; }
.menu { min-height: 100vh; display: flex; justify-content: center; z-index: 1; position: relative; }
.menu ul li a:hover { color: #E8712B !important; text-decoration: none; font-weight: bold; padding: 7px 0px 7px 15px; border-bottom: 1px solid #fff; }
ul a { transition-duration: 0.5s; text-decoration: none; color: #E8712B; font-size: 18px; line-height: 1; width: 100%; display: block; text-transform: uppercase; }
.top-menu_back { top: 1.2em !important; transition: 0.5s ease-in-out; z-index: 7; }
.item-menu { transition: all 0.3s ease; padding: 6px 0; color: #ec6820; }
.item-menu:hover, .item-menu-active { color: #ec6820 !important; transform: translateY(-2px); border-bottom: 1px solid  #ec6820; }
.item-menu-active a{color:#ec6820 !important;font-family: "Poppins SemiBold";}
/* ============================================
   MENÚ FULLSCREEN
   ============================================ */
.menu-img-bg { position: absolute; inset: 0; background-size: cover; background-position: center; transition: transform 8s ease; }
.menu.efectRightOn .menu-img-bg { transform: scale(1.05); }
.menu-img-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.5) 50%, rgba(0,0,0,0.7) 100%); z-index: 1; }
.menu-img-contenido { position: relative; z-index: 2; padding: 60px 40px; display: flex; flex-direction: column; justify-content: space-between; height: 90%; width: 100%; }
.menu-contacto-rapido { display: flex; flex-direction: column; gap: 12px; }
.menu-contacto-item { display: flex; align-items: center; gap: 10px; opacity: 0.8; transition: opacity 0.2s; }
.menu-contacto-item:hover { opacity: 1; }
.menu-nav-links { flex: 1; display: flex; flex-direction: column; justify-content: center; padding: 80px 40px 30px 60px; }
.menu-nav-item { display: flex; align-items: center; justify-content: space-between; padding: 16px 0; text-decoration: none; color: #1E1E1E; font-size: 28px; border-bottom: 1px solid #F0F0F0; position: relative; transition: all 0.3s ease; overflow: hidden; }
.menu-nav-item::before { content: attr(data-num); position: absolute; left: 0; font-size: 11px; color: #C4C4C4; font-weight: 400; top: 10px; opacity: 0; transform: translateX(-10px); transition: all 0.3s ease; }
.menu-nav-item:hover::before { opacity: 1; transform: translateX(0); }
.menu-nav-item:hover { padding-left: 30px; color: var(--color-primario); border-bottom-color: var(--color-primario); }
.menu-nav-item.item-menu-active { color: var(--color-primario); border-bottom-color: var(--color-primario); }
.menu-nav-flecha { font-size: 20px; opacity: 0; transform: translateX(-10px); transition: all 0.3s ease; color: var(--color-primario); }
.menu-nav-item:hover .menu-nav-flecha { opacity: 1; transform: translateX(0); }
.menu-nav-contacto { margin-top: 8px; background: rgba(232, 113, 43, 0.04); border-radius: 8px; padding-left: 16px !important; padding-right: 16px; border-bottom: 2px solid var(--color-primario) !important; }
.menu-nav-contacto .menu-nav-texto { color: var(--color-primario); }
.menu-nav-contacto:hover { background: var(--color-primario); }
.menu-nav-contacto:hover .menu-nav-texto, .menu-nav-contacto:hover .menu-nav-flecha { color: #fff; }
.menu-nav-footer { padding: 20px 40px 30px 60px; border-top: 1px solid #F0F0F0; }
.menu-social-link { display: flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 50%; border: 1px solid #E5E7EB; transition: all 0.3s ease; }
.menu-social-link:hover { border-color: var(--color-primario); background: rgba(232, 113, 43, 0.06); transform: translateY(-2px); }
.menu.efectRightOn .menu-nav-item { animation: menuItemSlide 0.4s ease forwards; opacity: 0; transform: translateY(15px); }
.menu.efectRightOn .menu-nav-item:nth-child(1) { animation-delay: 0.05s; }
.menu.efectRightOn .menu-nav-item:nth-child(2) { animation-delay: 0.1s; }
.menu.efectRightOn .menu-nav-item:nth-child(3) { animation-delay: 0.15s; }
.menu.efectRightOn .menu-nav-item:nth-child(4) { animation-delay: 0.2s; }
.menu.efectRightOn .menu-nav-item:nth-child(5) { animation-delay: 0.25s; }
.menu.efectRightOn .menu-nav-item:nth-child(6) { animation-delay: 0.3s; }
.menu.efectRightOn .menu-nav-item:nth-child(7) { animation-delay: 0.35s; }
@keyframes menuItemSlide { to { opacity: 1; transform: translateY(0); } }

.item-menu a{
   color: #E8712B;
   text-decoration: none;
}

.item-menu:hover{
   background-color: #ec6820;
   border-radius: 5px;
}

.item-menu:hover a{
   color: white !important;
}

/* ============================================
   CAMPAÑAS
   ============================================ */
.campana { height: 750px !important; border-radius: 25px; }
.campana-interna { height: 410px !important; border-radius: 25px;padding-top: 35px; }

/* ============================================
   BANNER + FILTROS DEL HOME
   ============================================ */
.banner-wrapper { position: relative; margin-top: 60px; padding-bottom: 60px; }
.bg-banner { position: relative; background-size: cover; background-position: center; }
.bg-banner .container { position: relative; border-radius: 25px; overflow: visible; }
.img-container { position: absolute; top: 3px; left: 20px; z-index: 10; width: 150px; }
.img-container-2 { position: absolute; top: 65px; left: 20px; z-index: 10; width: 150px; }
.img-container img { width: 100%; height: auto; }
.img-container-2 img { width: 100%; height: auto; }
.container-filtros { position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%); z-index: 20; width: 90%; max-width: 1200px; }
.menu-ativo { background-color: #fff; border-top-left-radius: 15px; border-top-right-radius: 15px; cursor: pointer; }
.menu-ativo p { margin-bottom: 0; border-bottom: 3px solid var(--color-primario); padding-bottom: 8px; }
.menu-inactivo { background-color: #f0f0f0; border-top-left-radius: 15px; border-top-right-radius: 15px; cursor: pointer; color: var(--color-gris-texto); }
.tab-filtro { background-color: #f0f0f0; border-top-left-radius: var(--radio-tarjeta); border-top-right-radius: var(--radio-tarjeta); cursor: pointer; color: var(--color-gris-texto); transition: all 0.3s ease; }
.tab-filtro.activo { background-color: #fff; color: #333; }
.tab-filtro.activo p { border-bottom: 3px solid var(--color-primario); padding-bottom: 8px; }
.tab-filtro:hover:not(.activo) { background-color: #e8e8e8; }
.filtros-contenido { border-radius: 0 var(--radio-tarjeta) var(--radio-tarjeta) var(--radio-tarjeta); box-shadow: var(--sombra-suave); }
.filtro-item { border-right: 1px solid var(--color-gris-borde); transition: background-color 0.2s; }
.filtro-item:hover { background-color: var(--color-gris-claro) !important; }
.filtro-item-ultimo { border-top-right-radius: var(--radio-tarjeta); border-bottom-right-radius: var(--radio-tarjeta); }
.filtro-input, .filtro-select { border: 1px solid #e9ecef; background: transparent; color: var(--color-gris-texto); width: 100%; outline: none; font-size: 14px; padding: 2px 0; -webkit-appearance: none; -moz-appearance: none; appearance: none; cursor: pointer;border-radius: 5px;padding: 2px; }
.filtro-input::placeholder { color: #adb5bd; }
.filtro-input-precio { border: 1px solid var(--color-gris-borde); border-radius: 8px; padding: 4px 8px; width: 100%; font-size: 13px; outline: none; background: var(--color-gris-claro); }
.filtro-input-precio:focus { border-color: var(--color-primario); box-shadow: 0 0 0 2px rgba(232, 113, 43, 0.1); }
.btn-buscar { background-color: var(--color-primario); color: #fff; border: none; border-radius: 10px; font-weight: 600; cursor: pointer; transition: all 0.3s; white-space: nowrap; }
.btn-buscar:hover { background-color: var(--color-primario-hover); transform: translateY(-1px); }
.filtros-avanzados { border-radius: 0 0 var(--radio-tarjeta) var(--radio-tarjeta); box-shadow: 0px 15px 40px 0px rgba(24, 26, 32, 0.1); margin-top: -1px; }
.btn-opcion-filtro { width: 42px; height: 42px; border-radius: 10px; border: 1px solid var(--color-gris-borde); background: #fff; cursor: pointer; font-weight: 600; font-size: 14px; transition: all 0.2s; color: #333; }
.btn-opcion-filtro.activo, .btn-opcion-filtro:hover { background: var(--color-primario); color: #fff; border-color: var(--color-primario); }
.btn-limpiar-filtros { background: transparent; border: 1px solid #dc3545; color: #dc3545; border-radius: 10px; padding: 8px 20px; cursor: pointer; transition: all 0.2s; width: 100%; }
.btn-limpiar-filtros:hover { background: #dc3545; color: #fff; }

/* ============================================
   TARJETAS DE PROYECTO
   ============================================ */
.tarjeta-proyecto { border-radius: var(--radio-tarjeta); overflow: hidden; transition: transform 0.3s ease, box-shadow 0.3s ease; background: #fff; }
.tarjeta-proyecto:hover { transform: translateY(-5px); box-shadow: 0 15px 35px rgba(0, 0, 0, 0.12); }
.tarjeta-proyecto-img { height: 420px; background-size: cover; background-position: center; border-radius: var(--radio-tarjeta); position: relative; display: flex; flex-direction: column; justify-content: space-between; }
.tarjeta-proyecto-img::after { content: ''; position: absolute; inset: 0; border-radius: var(--radio-tarjeta); background: linear-gradient(to bottom, transparent 40%, rgba(0,0,0,0.6) 100%); pointer-events: none; }
.tarjeta-proyecto-body { padding: 18px }
.tarjeta-proyecto-body h5 { font-size: 16px; color: #333; }
.tarjeta-ubicacion { font-size: 13px; color: var(--color-gris-texto); }
.tarjeta-specs { font-size: 12px; color: var(--color-gris-texto); }
.tarjeta-precio { color: var(--color-primario); font-size: 15px; }
.badge-destacado { background: #f9b233; color: #fff; padding: 5px 15px; border-radius: 5px; font-size: 12px; font-weight: 600; display: inline-block; }
.tarjeta-estado { padding: 4px 12px; font-size: 11px; font-weight: 600; text-align: center; }
.estado-disponible { color: #000;z-index: 1;text-align: end; }
.estado-agotado { background: rgba(220, 53, 69, 0.9); color: #fff; }
.btn-favorito-tarjeta { width: 35px; height: 35px; background: rgb(232 113 43 / 43%); border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.2s; margin-left: auto; }
.btn-favorito-tarjeta:hover { background: #fff; transform: scale(1.1); }
.btn-favorito-tarjeta img { width: 18px; }
.tarjeta-tipo-inmueble { transition: transform 0.3s; }
.tarjeta-tipo-inmueble:hover { transform: translateY(-3px); }
.btn-filtro-rapido { font-family: 'Poppins Light';padding: 3px 10px; border-radius: 10px; border: 1px solid var(--color-primario); background: transparent; color: var(--color-primario); cursor: pointer; transition: all 0.2s; font-size: 13px; white-space: nowrap; }
.btn-filtro-rapido.activo, .btn-filtro-rapido:hover { background: var(--color-primario); color: #fff; }
.btn-ver-mas { padding: 12px 40px; border-radius: 10px; border: 2px solid var(--color-primario); background: transparent; color: var(--color-primario); cursor: pointer; transition: all 0.3s; font-size: 15px; }
.btn-ver-mas:hover { background: var(--color-primario); color: #fff; }

/* ============================================
   PÁGINA /proyectos - FILTROS
   ============================================ */
.tab-filtro-page { background-color: #f0f0f0; border-top-left-radius: var(--radio-tarjeta); border-top-right-radius: var(--radio-tarjeta); cursor: pointer; color: var(--color-gris-texto); transition: all 0.3s ease; }
.tab-filtro-page.activo { background-color: #fff; color: #333; }
.tab-filtro-page.activo p { border-bottom: 3px solid var(--color-primario); padding-bottom: 8px; }
.tab-filtro-page:hover:not(.activo) { background-color: #e8e8e8; }
.filtros-page-panel { background: #fff; padding: 25px; border-radius: 0 var(--radio-tarjeta) var(--radio-tarjeta) var(--radio-tarjeta); box-shadow: var(--sombra-suave); margin-bottom: 20px; }
.filtro-input-page, .filtro-select-page { border: 1px solid var(--color-gris-borde); border-radius: 10px; padding: 8px 12px; font-size: 14px; transition: all 0.2s; }
.filtro-input-page:focus, .filtro-select-page:focus { border-color: var(--color-primario); box-shadow: 0 0 0 3px rgba(232, 113, 43, 0.1); }

/* ============================================
   PÁGINA /proyecto/{slug} - DETALLE
   ============================================ */
.proyecto-galeria-grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: 6px; margin-bottom: 20px; border-radius: var(--radio-tarjeta); overflow: hidden; }
.galeria-principal { display: block; min-height: 380px; cursor: pointer; position: relative; transition: opacity 0.3s; overflow: hidden; }
.galeria-principal img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.galeria-principal:hover { opacity: 0.95; }
.galeria-btn-ver { position: absolute; bottom: 15px; right: 15px; background: rgba(255, 255, 255, 0.95); padding: 8px 18px; border-radius: 10px; font-size: 13px; color: #333; display: flex; align-items: center; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); transition: transform 0.2s; z-index: 2; }
.galeria-btn-ver:hover { transform: translateY(-2px); }
.galeria-thumbs { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 6px; }
.galeria-thumb { display: block; cursor: pointer; position: relative; transition: opacity 0.3s; overflow: hidden; }
.galeria-thumb img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.galeria-thumb:hover { opacity: 0.85; }
.galeria-overlay-count { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.5); display: flex; align-items: center; justify-content: center; color: #fff; font-size: 20px; font-family: "Poppins SemiBold", sans-serif; z-index: 2; }
.proyecto-spec-card { background: var(--color-gris-claro); border-radius: 12px; padding: 18px 12px; transition: transform 0.2s; }
.proyecto-spec-card:hover { transform: translateY(-3px); }
.proyecto-precio-box { background: linear-gradient(135deg, #fff5ee 0%, #fff 100%); border: 1px solid rgba(232, 113, 43, 0.15); border-radius: 12px; padding: 15px 20px; }
.badge-tipo-detalle { background: var(--color-gris-claro); color: #555; padding: 4px 14px; border-radius: 20px; font-size: 12px; }
.badge-categoria-detalle { background: #e8f4fd; color: #1976d2; padding: 4px 14px; border-radius: 20px; font-size: 12px; }
.badge-estado-detalle { padding: 4px 14px; border-radius: 20px; font-size: 12px; font-weight: 600; color: #fff; }
.caract-bullet { width: 8px; height: 8px; min-width: 8px; background: var(--color-primario); border-radius: 50%; margin-top: 6px; }
.amenidad-item { background: var(--color-gris-claro); border-radius: 12px; transition: transform 0.2s, box-shadow 0.2s; }
.amenidad-item:hover { transform: translateY(-3px); box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08); }
.proyecto-form-sticky { position: sticky; top: 100px; }
.proyecto-cotizar-card { background: #fff; border-radius: var(--radio-tarjeta); padding: 25px; box-shadow: 0 5px 30px rgba(0, 0, 0, 0.08); border: 1px solid var(--color-gris-borde); }
.proyecto-form-input { border: 1px solid var(--color-gris-borde); border-radius: 10px; padding: 10px 14px; font-size: 14px; transition: all 0.2s; }
.proyecto-form-input:focus { border-color: var(--color-primario); box-shadow: 0 0 0 3px rgba(232, 113, 43, 0.1); }
.btn-cotizar-proyecto { background: var(--color-primario); color: #fff; border: none; border-radius: 10px; padding: 12px; font-size: 15px; cursor: pointer; transition: all 0.3s; }
.btn-cotizar-proyecto:hover { background: var(--color-primario-hover); transform: translateY(-2px); }
.btn-brochure { display: flex; align-items: center; justify-content: center; background: transparent; border: 2px solid var(--color-primario); color: var(--color-primario); border-radius: 10px; padding: 10px; margin-top: 12px; width: 100%; text-decoration: none; font-size: 14px; transition: all 0.3s; }
.btn-brochure:hover { background: var(--color-primario); color: #fff; }
.proyecto-compartir-card { background: #fff; border-radius: var(--radio-tarjeta); padding: 18px; box-shadow: 0 2px 15px rgba(0, 0, 0, 0.05); border: 1px solid var(--color-gris-borde); }
.btn-compartir-social { width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--color-gris-borde); background: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.2s; padding: 0; }
.btn-compartir-social:hover { background: var(--color-gris-claro); border-color: var(--color-primario); transform: translateY(-2px); }
.proyecto-tabla-unidades { border-collapse: separate; border-spacing: 0; }
.proyecto-tabla-unidades thead th { background: var(--color-gris-claro); padding: 12px 15px; font-size: 13px; color: #555; border: none; white-space: nowrap; }
.proyecto-tabla-unidades thead th:first-child { border-radius: 10px 0 0 10px; }
.proyecto-tabla-unidades thead th:last-child { border-radius: 0 10px 10px 0; }
.proyecto-tabla-unidades tbody td { padding: 14px 15px; font-size: 14px; border-bottom: 1px solid var(--color-gris-borde); vertical-align: middle; }
.proyecto-tabla-unidades tbody tr:hover { background: var(--color-gris-claro); }
.badge-unidad-disponible { background: #d4edda; color: #155724; padding: 4px 12px; border-radius: 20px; font-size: 12px; font-weight: 600; }
.badge-unidad-reservado { background: #fff3cd; color: #856404; padding: 4px 12px; border-radius: 20px; font-size: 12px; font-weight: 600; }
.badge-unidad-vendido { background: #f8d7da; color: #721c24; padding: 4px 12px; border-radius: 20px; font-size: 12px; font-weight: 600; }
.btn-cotizar-unidad { background: var(--color-primario); color: #fff; border: none; border-radius: 8px; padding: 6px 18px; font-size: 13px; cursor: pointer; transition: all 0.2s; white-space: nowrap; }
.btn-cotizar-unidad:hover { background: var(--color-primario-hover); transform: translateY(-1px); }
.unidades-header { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; }
.unidades-total-badge { background: var(--color-gris-claro); color: #6b7280; font-size: 13px; font-weight: 600; padding: 4px 14px; border-radius: 20px; }
.unidades-resumen { display: flex; gap: 16px; margin-bottom: 20px; flex-wrap: wrap; }
.unidades-stat { display: flex; align-items: center; gap: 8px; background: #fff; border: 1.5px solid #e5e7eb; border-radius: 10px; padding: 12px 20px; min-width: 140px; transition: border-color 0.2s; }
.unidades-stat:hover { border-color: var(--stat-color); }
.unidades-stat-num { font-size: 26px; font-weight: 700; color: var(--stat-color); line-height: 1; }
.unidades-stat-label { font-size: 13px; color: #6b7280; }
.unidades-filtros { display: flex; gap: 8px; margin-bottom: 18px; flex-wrap: wrap; }
.unidades-filtro-btn { background: #fff; border: 1.5px solid #e5e7eb; border-radius: 8px; padding: 8px 18px; font-size: 13px; font-weight: 600; color: #555; cursor: pointer; transition: all 0.2s; display: flex; align-items: center; gap: 6px; }
.unidades-filtro-btn:hover { border-color: var(--color-primario); color: var(--color-primario); }
.unidades-filtro-btn.activo { background: var(--color-primario); color: #fff; border-color: var(--color-primario); }
.unidades-filtro-btn.activo .unidades-filtro-count { background: rgba(255,255,255,0.25); color: #fff; }
.unidades-filtro-count { background: var(--color-gris-claro); color: #888; font-size: 11px; padding: 2px 8px; border-radius: 10px; font-weight: 700; }
.unidades-sin-resultados { text-align: center; color: #9ca3af; padding: 30px 0; font-size: 14px; }
.unidades-paginador { display: flex; align-items: center; justify-content: center; gap: 6px; padding: 18px 0 4px; flex-wrap: wrap; }
.unidades-pag-info { font-size: 12px; color: #888; margin-right: 12px; }
.unidades-pag-btn { min-width: 36px; height: 36px; padding: 0 10px; font-size: 14px; border: 1.5px solid #e5e7eb; background: #fff; border-radius: 8px; cursor: pointer; color: #555; font-weight: 600; transition: all 0.2s; }
.unidades-pag-btn:hover:not(.activo):not([disabled]) { border-color: var(--color-primario); color: var(--color-primario); background: #fef2f5; }
.unidades-pag-btn.activo { background: var(--color-primario); color: #fff; border-color: var(--color-primario); cursor: default; }
.unidades-pag-btn[disabled] { opacity: 0.4; cursor: not-allowed; }
.unidades-pag-dots { color: #aaa; font-size: 14px; padding: 0 4px; }
.proyecto-descripcion { font-size: 15px; }
.proyecto-descripcion p { margin-bottom: 12px; }
.proyecto-desc-colapsado { max-height: 160px; overflow: hidden; position: relative; }
.proyecto-desc-colapsado::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 60px; background: linear-gradient(to bottom, rgba(255,255,255,0), #fff); pointer-events: none; }
.proyecto-desc-expandido { max-height: none; }
.proyecto-desc-expandido::after { display: none; }
.btn-leer-mas { background: none; border: none; color: var(--color-primario); cursor: pointer; padding: 8px 0; font-size: 14px; }
.proyecto-mapa-container { border-radius: var(--radio-tarjeta); overflow: hidden; box-shadow: 0 5px 20px rgba(0, 0, 0, 0.08); }

/* ============================================
   HOME: ¿POR QUÉ ELEGIRNOS?
   ============================================ */
.seccion-porque { background: linear-gradient(135deg, #fff8f4 0%, #fff 50%, #f0f7ff 100%); }
.porque-badge { display: inline-block; color: black; padding: 6px 18px; border-radius: 25px; font-size: 13px; letter-spacing: 1px; text-transform: uppercase; }
.porque-features { display: flex; flex-direction: column; gap: 18px; }
.porque-feature-item { display: flex; align-items: center; gap: 14px; padding: 14px 18px; background: #fff; border-radius: 12px; border: 1px solid var(--color-gris-borde); transition: all 0.3s ease; }
.porque-feature-item:hover { border-color: var(--color-primario); box-shadow: 0 4px 15px rgba(232, 113, 43, 0.1); transform: translateX(5px); }
.porque-feature-icon { width: 42px; height: 42px; min-width: 42px; background: rgba(232, 113, 43, 0.08); border-radius: 10px; display: flex; align-items: center; justify-content: center; }
.porque-stats-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.porque-stat-card { background: #fff; border-radius: 16px; padding: 28px 20px; text-align: center; border: 1px solid var(--color-gris-borde); transition: all 0.4s ease; position: relative; overflow: hidden; height: 150px;}
.porque-stat-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: var(--color-primario); transform: scaleX(0); transition: transform 0.4s ease; }
.porque-stat-card:hover { transform: translateY(-5px); box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08); }
.porque-stat-card:hover::before { transform: scaleX(1); }
.porque-stat-numero { font-size: 42px; color: var(--color-primario); line-height: 1; display: inline; }
.porque-stat-signo { font-size: 28px; color: var(--color-primario); display: inline; vertical-align: top; margin-left: 2px; }
.porque-stat-label { font-size: 14px; color: #6C757D; margin-top: 8px; }
.porque-stat-1 { border-top: 3px solid var(--color-primario); }
.porque-stat-2 { border-top: 3px solid #009fe3; }
.porque-stat-3 { border-top: 3px solid #2d2e83; }
.porque-stat-4 { border-top: 3px solid #28a745; }
.porque-stat-1 .porque-stat-numero, .porque-stat-1 .porque-stat-signo { color: var(--color-primario); }
.porque-stat-2 .porque-stat-numero, .porque-stat-2 .porque-stat-signo { color: #009fe3; }
.porque-stat-3 .porque-stat-numero, .porque-stat-3 .porque-stat-signo { color: #2d2e83; }
.porque-stat-4 .porque-stat-numero, .porque-stat-4 .porque-stat-signo { color: #28a745; }

/* ============================================
   HOME: MAPA INTERACTIVO (LEAFLET)
   ============================================ */
.seccion-mapa { background: #fff; }
.mapa-ciudades-lista { background: var(--color-gris-claro); border-radius: var(--radio-tarjeta); padding: 25px; }
.mapa-ciudades-scroll { max-height: 350px; overflow-y: auto; padding-right: 5px; }
.mapa-ciudades-scroll::-webkit-scrollbar { width: 4px; }
.mapa-ciudades-scroll::-webkit-scrollbar-thumb { background: var(--color-primario); border-radius: 10px; }
.mapa-ciudad-item { display: flex; justify-content: space-between; align-items: center; padding: 12px 14px; border-radius: 10px; cursor: pointer; transition: all 0.2s ease; margin-bottom: 4px; }
.mapa-ciudad-item:hover, .mapa-ciudad-item.activo { background: #fff; transform: translateX(4px); box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05); }
.mapa-ciudad-dot { width: 10px; height: 10px; min-width: 10px; background: var(--color-primario); border-radius: 50%; }
.mapa-ciudad-count { background: var(--color-primario); color: #fff; width: 32px; height: 32px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 13px; }
.leaflet-container { height: 480px; }

/* ============================================
   HOME: TESTIMONIOS
   ============================================ */
.seccion-testimonios { }
.testimonio-card { background: #fff; padding: 28px; height: 230px; position: relative; transition: all 0.3s ease; display: flex; flex-direction: column; }
.testimonio-card:hover { border-color: var(--color-primario); box-shadow: 0 8px 25px rgba(232, 113, 43, 0.08); transform: translateY(-3px); }
.testimonio-comillas { position: absolute; top: 20px; right: 22px; }
.testimonio-estrellas { display: flex; gap: 3px; }
.testimonio-texto { flex: 1; margin-bottom: 18px; min-height: 50px; }
.testimonio-autor { display: flex; align-items: center; gap: 12px; padding-top: 16px; border-top: 1px solid var(--color-gris-borde); }
.testimonio-avatar { width: 44px; height: 44px; min-width: 44px; border-radius: 50%; color: #fff; display: flex; align-items: center; justify-content: center; font-size: 16px; }
.btn-testimonio-nav { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--color-gris-borde); background: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.2s ease; color: #333; padding: 0; }
.btn-testimonio-nav:hover { background: var(--color-primario); border-color: var(--color-primario); color: #fff; transform: scale(1.05); }
.swiper-pagination-testimonios .swiper-pagination-bullet-active { background: var(--color-primario) !important; }

/* ============================================
   PÁGINA CONTÁCTENOS
   ============================================ */
.cto-hero { position: relative; background: linear-gradient(135deg, #2d2e83 0%, #009fe3 100%); padding: 0px 0 80px; overflow: hidden; }
.cto-hero-bg { position: absolute; inset: 0; background: url('../imagenes/contacto-hero.jpg') center/cover no-repeat; opacity: 0.15; }
.cto-hero-badge { display: inline-block; background: rgba(232, 113, 43, 0.2); color: var(--color-primario); padding: 6px 18px; border-radius: 25px; font-size: 13px; letter-spacing: 0.5px; }
.cto-hero-stats { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; }
.cto-hero-stat-divider { width: 1px; height: 40px; background: rgba(255, 255, 255, 0.2); }
.cto-hero .miga-pan a { color: var(--color-primario); }
.cto-hero .miga-pan, .cto-hero .miga-pan span { color: rgba(255, 255, 255, 0.6); }
.cto-cards-section { padding: 0 0 60px; }
.cto-cards-row {position: relative; z-index: 10; }
.cto-card { background: #fff; border-radius: var(--radio-tarjeta); padding: 28px 24px; height: 100%; border: 1px solid var(--color-gris-borde); transition: all 0.3s ease; text-align: center; }
.cto-card:hover { transform: translateY(-5px); box-shadow: var(--sombra-suave); border-color: var(--color-primario); }
.cto-card-icon { width: 56px; height: 56px; border-radius: 50%; background: rgba(232, 113, 43, 0.08); display: flex; align-items: center; justify-content: center; margin: 0 auto; }
.cto-link { color: var(--color-primario); text-decoration: none; transition: opacity 0.2s; }
.cto-link:hover { opacity: 0.8; color: var(--color-primario); }
.cto-card-wa { background: #25D366; border-color: #25D366; }
.cto-card-wa:hover { background: #1fb855; border-color: #1fb855; box-shadow: 0 12px 30px rgba(37, 211, 102, 0.25); }
.cto-card-icon-wa { background: rgba(255, 255, 255, 0.2); }
.cto-wa-btn { display: inline-block; background: #fff; color: #25D366; padding: 8px 22px; border-radius: 25px; font-size: 13px; text-decoration: none; transition: all 0.2s; margin-top: 6px; }
.cto-wa-btn:hover { background: rgba(255, 255, 255, 0.9); color: #1fb855; transform: scale(1.03); }
.cto-form-section { padding: 0 0 60px; }
.cto-form-wrapper { display: flex; border-radius: var(--radio-tarjeta); overflow: hidden; border: 1px solid var(--color-gris-borde); box-shadow: var(--sombra-suave); }
.cto-form-visual { flex: 0 0 38%; background: linear-gradient(160deg, #2d2e83 0%, #009fe3 100%); position: relative; overflow: hidden; }
.cto-form-visual::before { content: ''; position: absolute; top: -50%; right: -50%; width: 100%; height: 100%; background: radial-gradient(circle, rgba(232, 113, 43, 0.12) 0%, transparent 70%); }
.cto-form-visual-content { position: relative; z-index: 2; padding: 40px 35px; height: 100%; display: flex; flex-direction: column; justify-content: space-between; }
.cto-form-linea { width: 50px; height: 3px; background: var(--color-primario); border-radius: 3px; margin: 16px 0; }
.cto-form-checks { display: flex; flex-direction: column; gap: 14px; }
.cto-form-check { display: flex; align-items: center; gap: 10px; }
.cto-form-redes { margin-top: 30px; }
.cto-social-circle { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, 0.25); transition: all 0.3s ease; }
.cto-social-circle:hover { border-color: var(--color-primario); background: rgba(232, 113, 43, 0.15); transform: translateY(-2px); }
.cto-form-campos { flex: 1; padding: 40px; background: #fff; }
.cto-campos-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px; }
.cto-campo { margin-bottom: 16px; }
.cto-campo label { display: block; font-size: 13px; color: #374151; margin-bottom: 6px; }
.cto-campo .form-control { border: 1px solid var(--color-gris-borde); border-radius: 10px; padding: 11px 14px; font-size: 14px; transition: all 0.2s; background: var(--color-gris-claro); }
.cto-campo .form-control:focus { border-color: var(--color-primario); box-shadow: 0 0 0 3px rgba(232, 113, 43, 0.1); background: #fff; }
.cto-campo .form-control::placeholder { color: #B0B7C0; }
.cto-terminos { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 16px; }
.cto-terminos input[type="checkbox"] { margin-top: 3px; accent-color: var(--color-primario); min-width: 16px; }
.cto-btn-enviar { background: var(--color-primario); color: #fff; border: none; padding: 13px 36px; border-radius: 10px; font-size: 14px; cursor: pointer; transition: all 0.3s ease; letter-spacing: 0.5px; }
.cto-btn-enviar:hover { background: var(--color-primario-hover); transform: translateY(-2px); box-shadow: 0 6px 20px rgba(232, 113, 43, 0.3); }
.cto-btn-enviar:disabled { opacity: 0.7; cursor: not-allowed; transform: none; }
.cto-mapa-section { padding: 60px 0 80px; background: var(--color-gris-claro); }
.cto-mapa-container { border-radius: var(--radio-tarjeta); overflow: hidden; border: 1px solid var(--color-gris-borde); box-shadow: var(--sombra-suave); height: 400px; }
.cto-mapa-container #mpmultiple { height: 400px !important; width: 100% !important; }

/* ============================================
   FLOTANTE WHATSAPP + GRACIAS + COMPARTIDOS
   ============================================ */
.floating-button { position: fixed; bottom: 40px; right: 0px; width: 90px; height: 50px; border-radius: 50%; text-align: center; cursor: pointer; z-index: 2; }
.hvr-wobble-horizontal { font-family: "Poppins Medium"; border: none; background: var(--button-color); color: white; text-transform: uppercase; transition: 0.3s ease-in-out; }
.hvr-wobble-horizontal a { color: white; }
.solo-pc-contenido { position: fixed; }
.fondo-total2 { height: 115vh !important; background: url(../imagenes/campanas/file-2026022045banner.jpg) center/cover no-repeat; display: flex; align-items: center; justify-content: center; }
.div-gracias { font-size: 30px; text-align: center; font-weight: 700; font-family: "Poppins Medium"; color: #fff !important; }
.btn-volver { background: none; border: #ffffff solid 1px; border-radius: 100px; letter-spacing: 2px; padding: 10px; }
.btn-volver a { text-decoration: none; }
.btn-medios-nav { background: var(--color-primario); border: none; width: 42px; height: 42px; border-radius: 50%; color: white; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.3s ease; }
.btn-medios-nav:hover { background: #ec6820; transform: scale(1.1); }
.swiper-pagination-medios .swiper-pagination-bullet-active,
.swiper-pagination-galeria .swiper-pagination-bullet-active,
.swiper-pagination-blog-conoceme .swiper-pagination-bullet-active { background: var(--color-primario) !important; }


/* ============================================
   CÓMO FUNCIONA + SERVICIOS - CSS
   ============================================ */

/* ===== BADGE ===== */
.cf-badge { display: inline-block; color: black; border-radius: 25px; font-size: 12px; letter-spacing: 1.5px; }

/* ===== SECCIÓN CÓMO FUNCIONA ===== */
.seccion-como-funciona { background: #fff; }

.cf-pasos-row { position: relative; }

.cf-card { position: relative; padding: 0 10px; }

.cf-card-top { display: flex; align-items: center; justify-content: space-between; }

.cf-numero { font-size: 48px; color: rgba(232,113,43,0.12); line-height: 1; }

.cf-icono { width: 56px; height: 56px; min-width: 56px; background: rgba(232,113,43,0.08); border-radius: 14px; display: flex; align-items: center; justify-content: center; transition: all 0.3s; }

.cf-card:hover .cf-icono { background: var(--color-primario); }
.cf-card:hover .cf-icono svg { stroke: #fff; }

/* Línea conectora entre pasos (solo desktop) */
.cf-linea { display: none; }

@media (min-width: 992px) {
    .cf-linea {
        display: block;
        position: absolute;
        top: 28px;
        right: -20px;
        width: 40px;
        height: 2px;
        background: repeating-linear-gradient(
            90deg,
            var(--color-primario) 0px,
            var(--color-primario) 6px,
            transparent 6px,
            transparent 12px
        );
    }
    .cf-pasos-row > div { position: relative; }
}

/* ===== SECCIÓN SERVICIOS ===== */
.seccion-servicios-inmo { background: var(--color-gris-claro); }

.cf-servicio { background: #fff; border-radius: var(--radio-tarjeta); padding: 28px 24px; height: 100%; border: 1px solid var(--color-gris-borde); transition: all 0.3s ease; position: relative; overflow: hidden; }
.cf-servicio::before { content: ''; position: absolute; top: 0; left: 0; width: 4px; height: 0; background: var(--color-primario); border-radius: 0 0 4px 0; transition: height 0.3s ease; }
.cf-servicio:hover { transform: translateY(-4px); box-shadow: var(--sombra-suave); border-color: rgba(232,113,43,0.2); }
.cf-servicio:hover::before { height: 100%; }

.cf-servicio-icono { width: 50px; height: 50px; background: rgba(232,113,43,0.08); border-radius: 12px; display: flex; align-items: center; justify-content: center; color: var(--color-primario); transition: all 0.3s; }
.cf-servicio:hover .cf-servicio-icono { background: var(--color-primario); color: #fff; }
.cf-servicio:hover .cf-servicio-icono svg { stroke: #fff; }

/* ===== BOTÓN CONTACTO ===== */
.cf-btn-contacto { display: inline-flex; align-items: center; background: var(--color-primario); color: #fff; padding: 12px 28px; border-radius: 10px; font-size: 14px; transition: all 0.3s; white-space: nowrap; }
.cf-btn-contacto:hover { background: var(--color-primario-hover); color: #fff; transform: translateY(-2px); box-shadow: 0 6px 20px rgba(232,113,43,0.3); }


.floating-button {
    position: fixed;
    bottom: 40px;
    right: 0px;
    width: 90px;
    height: 50px;
    border-radius: 50%;
    text-align: center;
    cursor: pointer;
    z-index: 2;
}

/* ============================================
   RESPONSIVE - UN SOLO BLOQUE CONSOLIDADO
   (antes había 6 @media duplicados, ahora solo 2)
   ============================================ */
@media (max-width: 991px) {
    .title-tamano { font-size: 2rem; }
    .bg-diana { display: none; }
    .campana { height: 500px !important; }
    .campana-interna { height: 250px !important; }
    p { text-align: justify; }
    .container-filtros { width: 95%; bottom: -30px; }
    .filtros-contenido { flex-direction: column; border-radius: var(--radio-tarjeta); }
    .filtro-item { border-right: none; border-bottom: 1px solid var(--color-gris-borde); }
    .filtro-item-ultimo { border-radius: 0 0 var(--radio-tarjeta) var(--radio-tarjeta); padding: 15px !important; }
    .banner-wrapper { padding-bottom: 0px; }
    .img-container { width: 100px; top: -25px; left: 15px; }
    .tarjeta-proyecto-img { height: 180px; }
    .proyecto-galeria-grid { grid-template-columns: 1fr 1fr; }
    .galeria-principal { min-height: 280px; }
    .galeria-thumbs { grid-template-columns: 1fr; grid-template-rows: 1fr 1fr; }
    .galeria-thumb { min-height: 80px; }
    .proyecto-form-sticky { position: static; margin-top: 30px; }
    .filtros-page-panel { padding: 18px; }
    .porque-stats-grid { gap: 12px; }
    .porque-stat-card { padding: 20px 14px; }
    .porque-stat-numero { font-size: 32px; }
    .menu-nav-links { padding: 100px 24px 30px 24px; }
    .menu-nav-footer { padding: 20px 24px 30px 24px; }
    .cto-hero { padding: 100px 0 60px; }
    .cto-form-wrapper { flex-direction: column; }
    .cto-form-visual { flex: none; }
    .cto-form-visual-content { padding: 30px 24px; }
    .cto-form-campos { padding: 30px 24px; }
    .menu-nav-links{justify-content: start;}

    .cf-numero { font-size: 36px; }
    .cf-btn-contacto { width: 100%; justify-content: center; margin-top: 8px; }
    .img-distancia{height: 300px !important;}
}

@media (max-width: 575px) {
    .tarjeta-proyecto-img { height: 160px; }
    .btn-filtro-rapido { padding: 6px 14px; font-size: 13px; }
    .proyecto-galeria-grid { grid-template-columns: 1fr; }
    .galeria-principal { min-height: 220px; }
    .galeria-thumbs { display: none; }
    .proyecto-spec-card { padding: 14px 10px; }
    .proyecto-cotizar-card { padding: 18px; }
    .proyecto-tabla-unidades { font-size: 13px; }
    .proyecto-tabla-unidades tbody td, .proyecto-tabla-unidades thead th { padding: 10px 8px; }
    .unidades-resumen { gap: 10px; }
    .unidades-stat { padding: 10px 14px; min-width: auto; flex: 1; }
    .unidades-stat-num { font-size: 20px; }
    .unidades-filtro-btn { padding: 6px 12px; font-size: 12px; }
    .btn-medios-nav { width: 36px; height: 36px; }
    .porque-feature-item { padding: 12px 14px; }
    .porque-stat-card { padding: 16px 10px; }
    .porque-stat-numero { font-size: 28px; }
    .porque-stat-signo { font-size: 20px; }
    .testimonio-card { padding: 20px; }
    .mapa-ciudades-lista { padding: 18px; }
    .menu-nav-item { font-size: 22px; padding: 13px 0; }
    .cto-hero h1 { font-size: 30px !important; }
    .cto-hero-stats { gap: 16px; }
    .cto-hero-stat-divider { height: 30px; }
    .cto-campos-grid { grid-template-columns: 1fr; gap: 0; }
    .cto-mapa-container, .cto-mapa-container #mpmultiple { height: 300px !important; }

    .cf-card { padding: 0; }
    .cf-servicio { padding: 22px 18px; }
}