@charset "utf-8";

/*
Theme Name: Esencia Inmobiliaria Theme
Version: 1.0
Author: Rogelio Estrella
*/

@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap');
@import url('esencia-blog.css');

*, *::before, *::after {
    box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
body {
    font-family: "Montserrat", sans-serif;
    font-optical-sizing: auto;
    background-color: #ffffff;
    margin: 0;
    padding: 0;
    color: #3e474e;
}
.cabecera-sitio{
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: nowrap;
}
.marca-sitio{
    width: 220px;
    margin: 40px 30px 40px 100px;
    position: relative;
    z-index: 950;
    flex-shrink: 0;
    height: 104px;
}
.marca-sitio .custom-logo{
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;
}
.marca-sitio .custom-logo.logoopen {
    filter: brightness(10);
    position: fixed;
    top: 40px;
    left: 100px;
    width: 220px;
    height: auto;
}
/* ==== MENÚ PRINCIPAL (solo desktop) ==== */
.primary-menu {
    display: block;
    width: 100%;
    padding-top: 145px;
}

/* =========================================================
   MENÚ PRINCIPAL — ARCHITECTURAL HOVER
   ========================================================= */

.primary-menu-list {
    display: flex;
    flex-direction: column;
    padding: 0;
    width: 100%;
    max-width: 380px;
}

/* ITEM
--------------------------------------------------------- */

.primary-menu-list > li {
    position: relative;
    list-style: none;
    width: 100%;
    box-sizing: border-box;
    padding: 0 0 0 110px;
    /* quitamos el border original */
    border-bottom: none;
    overflow: hidden;
}

/* Línea divisoria inferior */
.primary-menu-list > li::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background: linear-gradient(90deg, rgba(202, 88, 33, 0.9) 0%, rgba(202, 88, 33, 0.9) 0%, rgba(95, 95, 95, 0.65) 0%);
    transition: background 0.5s ease, opacity 0.5s ease;
    pointer-events: none;
}

/* LINK
--------------------------------------------------------- */

.primary-menu-list > li > a {
    position: relative;
    z-index: 2;
    display: block;
    padding: 20px 0 15px 0;
    color: rgba(255, 255, 255, 0.88);
    font-size: 17px;
    font-weight: 400;
    text-decoration: none;
    transition: color 0.35s ease, transform 0.45s cubic-bezier(.22,.61,.36,1);
}

/* pequeña línea naranja que aparece antes del texto */
.primary-menu-list > li > a::before {
    content: "";
    position: absolute;
    left: -42px;
    top: 50%;
    width: 0;
    height: 1px;
    background-color: #ca5821;
    transform: translateY(-50%);
    transition: width 0.45s cubic-bezier(.22,.61,.36,1);
    box-shadow: 0 0 10px rgba(202, 88, 33, 0.3);
}

/* Luz muy sutil de fondo */
.primary-menu-list > li::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(202,88,33,0.10) 0%, rgba(202,88,33,0.035) 42%, transparent 85%);
    transform: translateX(-105%);
    transition: transform 0.55s cubic-bezier(.22,.61,.36,1);
    pointer-events: none;
}

/* =========================================================
   ITEM ACTUAL
   ========================================================= */

.primary-menu-list .current-menu-item > a, .primary-menu-list .current-menu-ancestor > a {
    color: #ffffff;
    font-weight: 700;
}

/* pequeña marca permanente en la página actual */

.primary-menu-list .current-menu-item > a::before, .primary-menu-list .current-menu-ancestor > a::before {
    width: 18px;
    opacity: 0.75;
}

/* último item sin divisor */

.primary-menu-list > li:last-child::after {
    display: none;
}

.footer-menu {
    display: flex;
}

.footer-menu .menu {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.footer-menu .menu-item {
    display: flex;
    align-items: center;
}

.footer-menu .menu-item a {
    display: flex;
    align-items: center;
    text-decoration: none;
    font-size: 16px;
    letter-spacing: 0.5px;
    color: #2c373f;
    font-weight: 400;
    letter-spacing: 1px;
    transition: all 0.2s ease;
    padding: 18px 20px 18px 20px;
}
.footer-menu .menu-item a:hover{
    color: #ca5821;
}
/* Botón naranja: "COTIZAR AHORA" */
.footer-menu .menu-item.cotizalink02 a {
    background-color: #ca5821;
    color: #fff;
    font-weight: 700;
    padding: 18px 92px 18px 20px;
    transition: background-color 0.2s ease;
}
.single-proyecto .footer-menu .menu-item.cotizalink02.menunoproyecto,
.single-proyecto .widget .cotizalink03.menunoproyecto{
    display: none;
}
.wp-custom-logo .footer-menu .menu-item.cotizalink02.menuproyecto,
.wp-custom-logo .widget .cotizalink03.menuproyecto{
    display: none;
}
.single-proyecto.wp-custom-logo .footer-menu .menu-item.cotizalink02.menuproyecto,
.single-proyecto.wp-custom-logo .widget .cotizalink03.menuproyecto{
    display: inline-table;
}

.cotizalink03 {
    background-color: #ca5821;
    color: #fff;
    font-weight: 700;
    padding: 18px 15px 18px 15px;
    transition: background-color 0.2s ease;
    display: inline-table;
    border-radius: 4px;
    border: solid 2px #ffffff;
    box-sizing: border-box;
}

.footer-menu .menu-item.cotizalink02 a:hover, .cotizalink03:hover {
    background-color: #3e474e;
}
.cotizalink01{
    background-color: #ca5821;
    color: #fff;
    display: inline-table;
    position: absolute;
    top: 88px;
    right: 30px;
    border: solid 2px #fff;
    border-radius: 6px;
    padding: 11px 25px;
    text-decoration: none;
    font-size: 12px;
    font-weight: 700;
    transition: all 0.2s ease-in;
}
.cotizalink01:hover{
    background-color: #fff;
    color: #2c373f;
}

.grid-proyectos {
    max-width: 1900px;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    justify-content: center;
    gap: 80px;
    width: 100%;
    box-sizing: border-box;
    padding: 80px;
}
.proyecto-otros .grid-proyectos{
    padding-top: 40px;
}

.card-proyecto {
    max-width: 520px;
    width: 100%;
    will-change: transform;
    box-shadow: 0 12px 35px rgba(0, 0, 0, 0.10);
    transition: transform 0.35s ease, box-shadow 0.35s ease;
    border-radius: 0 0 10px 10px;
}
.card-proyecto__link{
    text-decoration: none;
}
.card-proyecto:hover .card-proyecto__imagen img{
    transform: scale(1.05);
}
.card-proyecto__imagen{
    position: relative;
    overflow: hidden;
    border-radius: 10px 10px 10px 0;
    z-index: 3;
}
.card-proyecto__imagen .badge{
    position: absolute;
    background-color: #ffffff;
    color: #3e474e;
    top: 0;
    right: 0;
    padding: 10px 15px;
    border-radius: 0 0 0 10px;
}
.card-proyecto__imagen .badge::before{
    content: "";
    width: 10px;
    height: 10px;
    background-image: url(assets/img/curva-01.png);
    background-repeat: no-repeat;
    background-position: right top;
    position: absolute;
    top: 0px;
    left: -10px;
}
.card-proyecto__imagen .badge::after{
    content: "";
    width: 10px;
    height: 10px;
    background-image: url(assets/img/curva-01.png);
    background-repeat: no-repeat;
    background-position: right top;
    position: absolute;
    bottom: -10px;
    right: 0;
}
.card-proyecto__imagen img{
    width: 100%;
    height: auto;
    margin: 0;
    float: left;
    transition: all 0.3s ease-out;
}
.card-proyecto__imagen::before{
    content: "VER PROYECTO";
    background-color: #FFF;
    color: #3e474e;
    font-weight: 700;
    font-size: 11px;
    line-height: 12px;
    padding: 10px 23px 7px 15px;
    position: absolute;
    right: 0;
    top: 0;
    display: inline-table;
    z-index: 10;
    border-radius: 0 0 0 10px;
    transition: all 0.3s ease-in;
    transform: translateY(-100%);
    background-image: url(assets/img/flechita.png);
    background-repeat: no-repeat;
    background-position: right 12px;
}
.card-proyecto:hover .card-proyecto__imagen::before{
    transform: translateY(0);
}
.card-proyecto__direwrap{
    width: 100%;
    box-sizing: border-box;
    padding: 0 25px;
    display: block;
    position: relative;
    z-index: 20;
}
.card-proyecto__direccion{
    color: #3e474e;
    font-size: 16px;
    font-weight: 300;
    margin: 0;
}
.card-proyecto__distrito{
    color: #3e474e;
    font-size: 15px;
    font-weight: 700;
    text-transform: uppercase;
    margin: 5px 0 20px 0;
}
.card-proyecto__info{
    width: 100%;
    box-sizing: border-box;
    border-radius: 0 0 10px 10px;
    background-color: #e9ebed;
    position: relative;
    display: grid;
    grid-template-columns: 1fr 200px;
    align-items: center;
    transition: all 0.3s ease-in;
    padding-right: 9px;
    border: solid 5px #ffffff;
}
.card-proyecto:hover .card-proyecto__info{
    background-color: #e0eefc;
}
.spec{
    box-sizing: border-box;
    padding: 35px 15px 35px 75px;
    position: relative;
}
.card-proyecto__area .spec{
    background-image: url(assets/img/icon-area.png);
    background-repeat: no-repeat;
    background-position: 20px 11px;
    padding: 15px 15px 3px 70px;
}
.card-proyecto__dormitorios .spec{
    background-image: url(assets/img/icon-dormitorio.png);
    background-repeat: no-repeat;
    background-position: 17px 4px;
    padding: 3px 15px 15px 70px;
}
.spec.card__precio{
    background-color: #ffffff;
    padding: 20px 25px 20px 25px;
    border-radius: 6px 0 6px 6px;
    position: relative;
    container-type: inline-size;
}
.spec.card__precio .spec__valor {
    font-size: 30px;
}
.card-proyecto__logo{
    box-sizing: border-box;
    padding: 10px 40px;
}
.card-proyecto__logo img{
    width: 100%;
    height: auto;
}
.card-proyecto__title{
    font-size: 25px;
    color: #3e474e;
    margin-bottom: 12px;
}
.spec__label{
    font-size: 13px;
    font-weight: 700;
    width: 100%;
    display: block;
    margin: 0;
    color: #3e474e;
}
.spec__valor{
    font-size: 18px;
    font-weight: 300;
    width: 100%;
    display: block;
    margin: 0;
    color: #3e474e;
}
.grid-proyectos__sidebar{
    grid-column: span 1;
    border-radius: 10px;
}
.grid-proyectos__sidebar-item.widget_block{
    height: 100%;
}
.banneredge{
    border-radius: 10px;
    height: 100%;
    min-height: 567px;
    box-sizing: border-box;
}
.form-filtro-proyectos {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 60px 92px 60px 40%;
}

.form-filtro-proyectos select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    flex: 1;
    min-width: 180px;
    background: #ffffff;
    border: 1px solid #ffffff;
    border-bottom: 1px solid #7f8589;
    border-radius: 0;
    padding: 14px 40px 14px 18px;
    font-size: 16px;
    color: #7f8589;
    cursor: pointer;
    /* flecha custom */
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7' viewBox='0 0 12 7'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23999' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 16px center;
}

.form-filtro-proyectos select:focus {
    outline: none;
    border-bottom: 1px solid #f2f2f2;
}

.form-filtro-proyectos button[type="submit"] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    white-space: nowrap;
    background: #ffffff;
    color: #3e474e;
    border: solid 1px #a4a7a9;
    padding: 14px 24px 14px 20px;
    font-size: 13px;
    font-weight: 300;
    letter-spacing: 0.5px;
    cursor: pointer;
    transition: all 0.2s ease;
    text-transform: uppercase;
}

.form-filtro-proyectos button[type="submit"]::before {
    content: "";
    width: 18px;
    height: 18px;
    background: url("assets/img/filtericon.png") no-repeat center / contain;
}

.form-filtro-proyectos button[type="submit"]:hover {
    filter: invert(1);
}
.entry-content{
    position: relative;
}
.topslogan{
    position: absolute;
    top: 0px;
    left: 0px;
    font-size: 30px;
    line-height: 110%;
    font-weight: 300;
    width: 40%;
    max-width: 650px;
    box-sizing: border-box;
    padding: 50px 20px 0px 92px;
    margin: 0px;
}
.filtro-proyectos-wrap{
    background-color: #f5f5f5;
    box-sizing: border-box;
}
.filtro-proyectos__toggle {
    display: none;
    transition: all 0.2s;
}
.filtro-proyectos-wrap.is-abierto .filtro-proyectos__toggle{
    filter: invert(1);
}
/* =========================================================
   MENÚ HAMBURGUESA + PANEL LATERAL (DRAWER)
   ========================================================= */

/* -------------------------------
   Botón hamburguesa
   ------------------------------- */
.menu-toggle {
    position: absolute;
    top: 80px;
    left: 30px;
    width: 40px;
    height: 25px;
    padding: 0;
    background: transparent;
    border: none;
    cursor: pointer;
    z-index: 1000;
    /* Siempre por encima del panel */
    -webkit-tap-highlight-color: transparent;
}

.menu-toggle-line {
    position: absolute;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: #8b9092;
    border-radius: 2px;
    transition: transform 0.35s ease, opacity 0.35s ease;
    will-change: transform, opacity;
}

.menu-toggle-line:nth-child(1) {
    top: 0;
}

.menu-toggle-line:nth-child(2) {
    top: 10px;
}

.menu-toggle-line:nth-child(3) {
    top: 20px;
}

/* Estado activo: transforma las 3 líneas en una X centrada */
.menu-toggle.is-active{
    position: fixed;
}
.menu-toggle.is-active .menu-toggle-line:nth-child(1) {
    transform: translateY(10px) rotate(45deg);
    background-color: #fff;
}

.menu-toggle.is-active .menu-toggle-line:nth-child(2) {
    opacity: 0;
}

.menu-toggle.is-active .menu-toggle-line:nth-child(3) {
    transform: translateY(-10px) rotate(-45deg);
    background-color: #fff;
}

/* -------------------------------
   Panel lateral (drawer)
   ------------------------------- */
.menu-panel {
    position: fixed;
    top: 0;
    left: 0;
    width: 580px;
    height: 100vh;
    background-color: #000000;
    background-image: url(assets/img/fondo-menu.jpg);
    background-position: center;
    background-size: cover;
    background-attachment: fixed;
    color: #ffffff;
    z-index: 200;
    /* Por debajo del botón */
    transform: translateX(-100%);
    transition: transform 0.45s cubic-bezier(.76, 0, .24, 1);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.menu-panel.is-open {
    transform: translateX(0);
}

.menu-panel-inner {
    width: 100%;
    height: 100%;
    /* El contenido (menú WP, logo, CTA, etc.) se insertará aquí manualmente */
}

.site-footer {
    width: 100%;
    background-color: #111820;
    background-image: url(assets/img/fondo-pie.jpg);
    background-repeat: no-repeat;
    background-position: bottom right;
    background-attachment: fixed;
    color: #ffffff;
}

.footer-widgets {
    display: grid;
    gap: 80px;
    grid-template-columns: 300px 1fr 200px;
    width: 100%;
    max-width: 1660px;
    margin: 0 auto;
    padding: 0 40px;
    box-sizing: border-box;
}
.grid-widget-center{
    display: grid;
    gap: 80px;
    grid-template-columns: 150px 130px 150px 245px;
    width: 100%;
}
.footer-column {
    min-width: 0;
    box-sizing: border-box;
    box-sizing: border-box;
    padding: 120px 0 80px 0;
}

.footer-column.footer-column-1 {
    border-right: 1px solid rgba(255,255,255,0.22);
}

.footer-column .widget {
    margin: 0;
}

.footer-column p {
    margin-top: 0;
    color: rgba(255,255,255);
    font-size: 13px;
}

.footer-column a {
    color: rgba(255,255,255);
    text-decoration: none;
    transition: color 0.25s ease;
    font-size: 13px;
}

.footer-column a:hover {
    color: #ca5821;
}

.footer-column ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.footer-column li {
    margin-bottom: 14px;
}
.wp-block-heading.footertitle{
    font-size: 15px;
    margin-top: 0px;
}
.telepie strong{
    font-size: 18px;
}
.logopie img{
    filter: brightness(10);
    margin-left: -10px;
}
.bloquehome01{
    background-image: linear-gradient(to bottom, #f5f5f5, #e9ebed);
    margin-top: 50px;
}
.colbeneficios{
    position: relative;
    flex: 0 0 30%;
    max-width: 30%;
}
.beneficios {
    position: absolute;
    list-style: none;
    margin: 0;
    padding: 0;
    min-height: 480px;
    top: -235px;
    left: 0px;
}

.beneficios li strong {
    display: block;
    font-size: 68px;
    font-weight: 800;
    color: #ca5821;
    line-height: 90%;
    margin-bottom: 8px;
}

.beneficios li {
    position: absolute;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    background: #fff;
    border-radius: 50%;
    box-shadow: 0 10px 30px rgba(0,0,0,0.08);
    padding: 20px;
    font-size: 0.95rem;
    color: #333;
    line-height: 1.3;
}

/* Círculo 1: Proyectos entregados */
.itembeneficio01 {
    width: 180px;
    height: 180px;
    top: 160px;
    left: 20px;
}

/* Círculo 2: Años creando valor */
.itembeneficio02 {
    width: 200px;
    height: 200px;
    top: 0;
    left: 190px;
}

/* Círculo 3: +240 familias */
.itembeneficio03 {
    width: 260px;
    height: 260px;
    top: 200px;
    left: 300px;
}

.itembeneficio03 strong {
    font-size: 3.5rem;
}
.lgrupobeneficio{
    position: absolute;
    bottom: -240px;
    left: 0px;
}
/* ==== FILA "EL ARTE DE VIVIR MEJOR" ==== */
.elartecol {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: stretch !important;
}

/* Columna de la imagen: ocupa todo el alto disponible */
.arteimg {
    display: flex;
    flex: 0 0 30%;
    max-width: 30%;
    align-self: stretch !important;
    /* vence al align-self:center que Gutenberg pone por is-vertically-aligned-center */
}

/* La figura llena la columna */
.arteimg .wp-block-image {
    width: 100%;
    height: 100%;
    margin: 0;
    overflow: hidden;
}

/* La imagen se recorta manteniendo proporción, ancla al lado izquierdo */
.arteimg .wp-block-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: right center;
    display: block;
}

.artevivircontent{
    font-size: 18px;
    line-height: 25px;
    color: #3e474e;
    font-weight: 300;
    flex: 0 0 40%;
    max-width: 40%;
    padding: 35px 0;
    box-sizing: border-box;
}
.artevivircontent h2{
    font-weight: 300;
    font-size: 35px;
    line-height: 38px;
    margin-bottom: 35px;
}
.artevivircontent h2 strong{
    font-weight: 800;
    color: #ca5821;
}
.artevivircontent strong{
    font-weight: 800;
}
.homereferido{
    font-size: 18px;
    line-height: 140%;
    padding: 40px 40px 40px 140px;
    box-sizing: border-box;
    margin-top: 60px;
}
.homereferido h2{
    font-weight: 300;
    font-size: 35px;
    line-height: 38px;
    margin-bottom: 35px;
}
.homereferido h2 strong{
    font-weight: 800;
}
.lbotnblanco{
    margin-top: 35px;
}
.lbotnblanco a {
    position: relative;
    display: inline-block;
    padding: 14px 32px;
    background: #ffffff;
    color: #3d464e;
    text-decoration: none;
    border-radius: 8px;
    transition: all 0.1s ease-in;
}

.lbotnblanco a:hover {
    background-color: #3d464e;
    color: #fff;
    border-radius: 12px;
    animation: pulse 0.4s ease-in-out;
}
.proyecto-galeria__swiper {
    position: relative;
    width: 100%;
    height: 500px;
    /* ajusta a la altura real del diseño */
    overflow: hidden;
}

.proyecto-galeria__swiper .swiper-wrapper {
    height: 100%;
}

.proyecto-galeria__swiper .swiper-slide {
    height: 100%;
}

.proyecto-galeria__swiper .swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.proyecto-galeria__swiper .swiper-button-prev, .proyecto-galeria__swiper .swiper-button-next {
    color: #fff;
}
#mapa-imagen-activa {
    transition: opacity 200ms ease;
    opacity: 1;
}
#mapa-imagen-activa.is-fading {
    opacity: 0;
}
.swiper-slide {
    position: relative;
}
.lightbox-galeria {
    position: absolute;
    bottom: 16px;
    right: 16px;
    width: 40px;
    height: 40px;
    background: rgba(255, 255, 255, 0.9);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
}

/* ========================================
   FORMULARIO CONTACT FORM 7
======================================== */

.solicitud-form {
    width: 100%;
    font-family: inherit;
    color: #3d4652;
    box-sizing: border-box;
}

.solicitud-form *, .solicitud-form *::before, .solicitud-form *::after {
    box-sizing: border-box;
}

/* GRID DOS COLUMNAS */

.solicitud-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 30px;
    row-gap: 16px;
}

/* LABELS */

.solicitud-campo > label {
    display: block;
    margin: 0 0 8px 17px;
    font-size: 16px;
    line-height: 1.4;
    font-weight: 600;
    color: #3d4652;
}

/* CONTENEDOR DE INPUT */

.solicitud-input {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
    min-width: 0;
}

/* CAMPOS */

.solicitud-input input, .solicitud-input select {
    display: block;
    width: 100%;
    min-width: 0;
    height: 54px;
    padding: 0 16px 0 56px;
    background: #fff;
    border: 1px solid #cbd3df;
    border-radius: 7px;
    color: #374151;
    font-family: inherit;
    font-size: 16px;
    font-weight: 400;
    outline: none;
    box-shadow: none;
    transition: border-color .2s ease, box-shadow .2s ease;
}

/* PLACEHOLDERS */

.solicitud-input input::placeholder {
    color: #697586;
    opacity: 1;
}

/* FOCUS */

.solicitud-input input:focus, .solicitud-input select:focus {
    border-color: #d94000;
    box-shadow: 0 0 0 3px rgba(217, 64, 0, .08);
}

/* ========================================
   ICONOS
======================================== */

.solicitud-input::before {
    content: "";
    position: absolute;
    left: 19px;
    top: 27px;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    pointer-events: none;
    z-index: 2;
}

/* USUARIO */

.icon-user::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%236b7788' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M5 21v-2a7 7 0 0 1 14 0v2'/%3E%3C/svg%3E");
}

/* EMAIL */

.icon-mail::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%236b7788' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E");
}

/* CELULAR */

.icon-phone::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%236b7788' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='6' y='2' width='12' height='20' rx='2'/%3E%3Cpath d='M11 18h2'/%3E%3C/svg%3E");
}

/* DOCUMENTO */

.icon-id::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%236b7788' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Ccircle cx='8' cy='10' r='2'/%3E%3Cpath d='M5 16c0-2 6-2 6 0M14 9h5M14 13h5'/%3E%3C/svg%3E");
}

/* ========================================
   DOCUMENTO DE IDENTIDAD
======================================== */

.solicitud-documento {
    display: flex;
    position: relative;
    width: 100%;
    min-width: 0;
}

.solicitud-documento > .solicitud-input {
    flex: 1;
    min-width: 0;
}

.solicitud-documento input {
    padding-right: 67px;
}

/* SELECTOR DE TIPO DE DOCUMENTO */

.solicitud-tipo-documento {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 48px;
    z-index: 3;
}

.solicitud-tipo-documento .wpcf7-form-control-wrap {
    display: block;
    width: 100%;
    height: 100%;
}

.solicitud-tipo-documento select {
    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;
    border-radius: 0 7px 7px 0;
    background-color: transparent;
    color: transparent;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
}

.solicitud-tipo-documento::after {
    content: "";
    position: absolute;
    width: 8px;
    height: 8px;
    border-right: 2px solid #253447;
    border-bottom: 2px solid #253447;
    transform: rotate(45deg);
    right: 19px;
    top: 21px;
    pointer-events: none;
}

/* ========================================
   SELECT TIPOLOGÍA
======================================== */

.solicitud-select select {
    padding: 0 44px 0 22px;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
}

.solicitud-select::after {
    content: "";
    position: absolute;
    right: 19px;
    top: 21px;
    width: 8px;
    height: 8px;
    border-right: 2px solid #253447;
    border-bottom: 2px solid #253447;
    transform: rotate(45deg);
    pointer-events: none;
}

/* ========================================
   TÉRMINOS Y CONDICIONES
======================================== */

.solicitud-legal {
    margin-top: 36px;
    margin-bottom: 23px;
    font-size: 15px;
    line-height: 1.6;
    color: #667385;
}

.solicitud-legal .wpcf7-list-item {
    margin: 0;
}

.solicitud-legal .wpcf7-list-item label {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    cursor: pointer;
}

.solicitud-legal input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    flex: 0 0 19px;
    width: 19px;
    height: 19px;
    margin: 3px 0 0;
    border: 1px solid #94a3b8;
    border-radius: 3px;
    background: #fff;
    cursor: pointer;
    position: relative;
}

.solicitud-legal input[type="checkbox"]:checked {
    background: #d93c00;
    border-color: #d93c00;
}

.solicitud-legal input[type="checkbox"]:checked::after {
    content: "";
    position: absolute;
    left: 5px;
    top: 1px;
    width: 5px;
    height: 10px;
    border: solid white;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

.solicitud-legal a {
    color: #d93c00;
    text-decoration: none;
}

.solicitud-legal a:hover {
    text-decoration: underline;
}

/* ========================================
   BOTÓN ENVIAR
======================================== */

.solicitud-enviar {
    position: relative;
    width: 100%;
}

.solicitud-enviar input[type="submit"] {
    display: block;
    width: 100%;
    height: 63px;
    padding: 0 70px 0 28px;
    margin: 0;
    background: #d83d00;
    border: none;
    border-radius: 7px;
    color: #fff;
    font-family: inherit;
    font-size: 16px;
    font-weight: 700;
    text-align: left;
    letter-spacing: .2px;
    cursor: pointer;
    transition: background .2s ease;
}

.solicitud-enviar input[type="submit"]:hover {
    background: #ca5821;
}

/* FLECHA */

.solicitud-enviar::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 22px;
    transform: translateY(-50%);
    font-family: Arial, sans-serif;
    font-size: 34px;
    font-weight: 400;
    line-height: 1;
    pointer-events: none;
    background-image: url(assets/img/flecha-send.png);
    background-repeat: no-repeat;
    width: 21px;
    height: 22px;
}

/* ========================================
   MENSAJE DE SEGURIDAD
======================================== */

.solicitud-seguridad {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 14px;
    color: #687586;
    font-size: 13px;
    line-height: 1.5;
}

.solicitud-escudo {
    display: inline-block;
    flex-shrink: 0;
    width: 21px;
    height: 24px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%236b7788' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10Z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E") center / contain no-repeat;
}

.icon-pin::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%236b7788' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11a7 7 0 0 1 14 0c0 4.8-7 11-7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E");
}

.icon-area::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%236b7788' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='4' width='16' height='16' rx='1'/%3E%3Cpath d='M4 9h4M4 14h3M9 4v4M14 4v3'/%3E%3C/svg%3E");
}

/* ========================================
   CONTACT FORM 7
======================================== */
.solicitud-form.solicitud-referidos{
    margin-top: 60px;
    box-sizing: border-box;
    padding: 25px;
    background-color: #fff;
    border-radius: 8px;
    box-shadow: 0 12px 35px rgba(0, 0, 0, 0.10);
}

.solicitud-form .wpcf7-form-control-wrap {
    display: block;
    width: 100%;
    min-width: 0;
}

.solicitud-form .wpcf7-not-valid {
    border-color: #dc2626 !important;
}

.solicitud-form .wpcf7-not-valid-tip {
    font-size: 12px;
    color: #dc2626;
    margin-top: 5px;
}

.solicitud-form .wpcf7-spinner {
    position: absolute;
    right: 75px;
    top: 50%;
    margin: -12px 0 0;
}

.solicitud-form .wpcf7-response-output {
    margin: 20px 0 0 !important;
    padding: 12px 16px !important;
    border-radius: 6px;
    font-size: 14px;
}
.fancybox-caption-wrap{
    display: none !important;
}
.proyecto-otros{
    margin-top: 100px;
}
.proyecto-otros__titulo{
    font-weight: 800;
    text-align: center;
    font-size: 25px;
}

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

/* =========================================================
   ESENCIA INMOBILIARIA
   DETALLE DE PROYECTO — HERO
   Estilos exclusivos de .proyecto-hero
   ========================================================= */

.proyecto-hero {
    --hero-texto: #3e474e;
    --hero-naranja: #ca5821;
    --hero-fondo: #f3f5f8;
    --hero-plomo: #59636d;
    --hero-padding: clamp(30px, 3.5vw, 70px);
    display: grid;
    grid-template-columns: 50% 50%;
    width: 100%;
    min-height: clamp(560px, 40.4vw, 800px);
    background: var(--hero-fondo);
    color: var(--hero-texto);
    overflow: hidden;
}

/* =========================================================
   1. IMAGEN PRINCIPAL
   ========================================================= */

.proyecto-hero .proyecto-hero__imagen {
    position: relative;
    width: 100%;
    min-width: 0;
    overflow: hidden;
    background: #e9edf2;
}

/* Imagen del edificio */

.proyecto-hero .proyecto-hero__imagen-img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
}

/* =========================================================
   2. LOGOTIPO DEL PROYECTO
   ========================================================= */

.proyecto-hero .proyecto-hero__logo {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36%;
    max-width: 355px;
    min-height: 140px;
    padding: 28px 35px;
    background-color: var(--hero-plomo);
}

/* PNG blanco con transparencia */

.proyecto-hero .proyecto-hero__logo img {
    display: block;
    width: 100%;
    max-width: 280px;
    height: auto;
    object-fit: contain;
}

/* =========================================================
   3. CONTENEDOR DE INFORMACIÓN
   ========================================================= */

.proyecto-hero .proyecto-hero__info {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 70px clamp(35px, 9vw, 180px) 0 var(--hero-padding);
    background: var(--hero-fondo);
}

/* =========================================================
   4. BADGE PRE-VENTA
   ========================================================= */

.proyecto-hero .badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: flex-start;
    width: fit-content;
    margin: 0 0 22px;
    padding: 9px 19px;
    border-radius: 5px;
    background: var(--hero-naranja);
    color: #ffffff;
    font-size: 16px;
    line-height: 1;
    font-weight: 800;
    text-transform: uppercase;
}

/* =========================================================
   5. TÍTULO Y DIRECCIÓN
   ========================================================= */

.proyecto-hero .proyecto-hero__title {
    margin: 0 0 22px;
    color: var(--hero-texto);
    font-size: clamp(24px, 1.8vw, 36px);
    line-height: 1.15;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.2px;
}

.proyecto-hero .proyecto-hero__direccion {
    margin: 0;
    font-size: clamp(14px, 1.05vw, 20px);
    font-weight: 400;
    line-height: 1.35;
}

.proyecto-hero .proyecto-hero__distrito {
    margin: 0;
    font-size: clamp(14px, 1.05vw, 20px);
    font-weight: 800;
    line-height: 1.35;
    text-transform: uppercase;
}

/* =========================================================
   6. ÁREA Y DORMITORIOS
   ========================================================= */

.proyecto-hero .proyecto-hero__specs {
    display: grid;
    grid-template-columns: 0.65fr 1fr;
    width: calc(100% + var(--hero-padding));
    min-height: 120px;
    margin-top: 48px;
    margin-left: calc(-1 * var(--hero-padding));
    padding-left: var(--hero-padding);
    background: #ffffff;
    border-radius: 0 9px 0 0;
    position: relative;
}
.proyecto-hero .proyecto-hero__specs::before{
    content: "";
    width: 180px;
    height: 1px;
    background-color: #c5cbd1;
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
}
.proyecto-hero .proyecto-hero__specs .spec.spec--dormitorios{
    padding-left: 90px;
    box-sizing: border-box;
    background-position: 35px center;
}

/* IMPORTANTE:
   Se neutraliza el padding global de .spec
   únicamente dentro del hero.
*/

.proyecto-hero .proyecto-hero__specs .spec {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    margin: 0;
    padding: 20px 15px 20px 65px;
    background-color: transparent;
    background-repeat: no-repeat;
    background-size: 40px auto;
    background-position: 10px center;
}

/* Área */

.proyecto-hero .spec--area {
    background-image: url("assets/img/icon-area.png");
}

/* Dormitorios */

.proyecto-hero .spec--dormitorios {
    background-image: url("assets/img/icon-dormitorio.png");
}

/* Separador vertical */

.proyecto-hero .proyecto-hero__specs .spec + .spec {
    border-left: 1px solid #c5cbd1;
}

/* Etiquetas */

.proyecto-hero .proyecto-hero__specs .spec__label {
    display: block;
    width: auto;
    margin: 0 0 3px;
    color: var(--hero-texto);
    font-size: 15px;
    line-height: 1.3;
    font-weight: 700;
}

/* Valores */

.proyecto-hero .proyecto-hero__specs .spec__valor {
    display: block;
    width: auto;
    margin: 0;
    color: var(--hero-texto);
    font-size: clamp(17px, 1.15vw, 23px);
    font-weight: 300;
    line-height: 1.3;
}

/* =========================================================
   7. PRECIO Y BOTÓN DE COTIZACIÓN
   ========================================================= */

.proyecto-hero .proyecto-hero__precio-cotiza {
    display: grid;
    grid-template-columns: 35% 65%;
    align-items: center;
    width: calc(100% + var(--hero-padding));
    min-height: 135px;
    margin-left: calc(-1 * var(--hero-padding));
    padding: 0 0 0 var(--hero-padding);
    background: #ffffff;
    border-radius: 0 0 9px 0;
}

/* Precio */

.proyecto-hero .spec--precio {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    margin: 0;
    padding: 0 10px;
    background: transparent;
}

.proyecto-hero .spec--precio .spec__label {
    display: block;
    width: auto;
    margin: 0;
    font-size: 18px;
    line-height: 1.2;
    font-weight: 700;
}

.proyecto-hero .spec--precio .spec__valor {
    display: block;
    width: auto;
    margin: 0;
    font-size: clamp(25px, 2.3vw, 45px);
    line-height: 1.15;
    font-weight: 300;
    white-space: nowrap;
}

/* Botón naranja */

.proyecto-hero .btn--cotiza {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    width: calc(100% + 8px);
    min-height: 56px;
    padding: 22px 30px;
    background: var(--hero-naranja);
    border-radius: 8px 0 0 8px;
    color: #ffffff;
    font-size: clamp(14px, 1.1vw, 21px);
    font-weight: 800;
    line-height: 1.2;
    text-decoration: none;
    text-transform: uppercase;
    transition: background-color 0.25s ease, padding-left 0.25s ease;
    position: relative;
}

.proyecto-hero .btn--cotiza:hover {
    background: #a84216;
    padding-left: 38px;
}
.proyecto-hero .btn--cotiza::before{
    content: "";
    background-image: url(assets/img/esquinita.png);
    background-repeat: no-repeat;
    width: 8px;
    height: 5px;
    position: absolute;
    right: 0px;
    top: -5px;
}

/* =========================================================
   8. TEXTO DE PRESENTACIÓN
   ========================================================= */

.proyecto-hero .proyecto-hero__presentacion {
    margin: 0;
    padding: 35px 10px 30px;
    color: var(--hero-texto);
    font-size: clamp(14px, 1.02vw, 20px);
    line-height: 1.38;
    font-weight: 400;
}

.proyecto-hero .proyecto-hero__presentacion p {
    margin: 0 0 15px;
}

.proyecto-hero .proyecto-hero__presentacion p:last-child {
    margin-bottom: 0;
}

.proyecto-hero .proyecto-hero__presentacion strong {
    font-weight: 800;
}

/* =========================================================
   9. BOTÓN VER BROCHURE
   ========================================================= */

.proyecto-hero .btn--brochure {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: flex-start;
    gap: 12px;
    min-height: 72px;
    margin-top: auto;
    margin-left: 10px;
    padding: 18px 30px;
    background: #ffffff;
    border-radius: 10px 10px 0 0;
    color: var(--hero-texto);
    font-size: 15px;
    font-weight: 400;
    text-decoration: none;
    text-transform: uppercase;
    transition: all 0.25s ease;
    position: relative;
}

.proyecto-hero .btn--brochure:hover {
    filter: invert(10);
}
.proyecto-hero .btn--brochure::before{
    content: "";
    background-image: url(assets/img/curva-03.png);
    width: 10px;
    height: 10px;
    position: absolute;
    left: -10px;
    bottom: 0px;
}
.proyecto-hero .btn--brochure::after{
    content: "";
    background-image: url(assets/img/curva-02.png);
    width: 10px;
    height: 10px;
    position: absolute;
    right: -10px;
    bottom: 0px;
}

/* Icono PDF sin modificar el PHP */

.proyecto-hero .icon-doc {
    display: inline-block;
    flex-shrink: 0;
    width: 19px;
    height: 23px;
    background-color: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 28'%3E%3Cpath fill='black' d='M4 1h11l6 6v18a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V3a2 2 0 0 1 2-2zm0 2v22h15V8h-5V3H4zm12 1.4V6h1.6L16 4.4zM7 20h10v2H7v-2zm4-10h2v5l2-2 1.4 1.4-4.4 4.4-4.4-4.4L9 13l2 2v-5z'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 28'%3E%3Cpath fill='black' d='M4 1h11l6 6v18a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V3a2 2 0 0 1 2-2zm0 2v22h15V8h-5V3H4zm12 1.4V6h1.6L16 4.4zM7 20h10v2H7v-2zm4-10h2v5l2-2 1.4 1.4-4.4 4.4-4.4-4.4L9 13l2 2v-5z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* =========================================================
   ESENCIA INMOBILIARIA
   DETALLE DE PROYECTO — BENEFICIOS
   ========================================================= */

.proyecto-beneficios {
    --beneficios-texto: #3e474e;
    --beneficios-separador: #d8dce1;
    width: 100%;
    padding: 75px 30px 85px;
    background-color: #ffffff;
    color: var(--beneficios-texto);
    box-sizing: border-box;
}

/* =========================================================
   1. TÍTULO
   ========================================================= */

.proyecto-beneficios .proyecto-beneficios__title {
    margin: 0 0 55px;
    padding: 0;
    color: var(--beneficios-texto);
    font-size: 24px;
    line-height: 1.2;
    font-weight: 800;
    text-align: center;
    text-transform: uppercase;
}

/* =========================================================
   2. CONTENEDOR DE BENEFICIOS
   ========================================================= */

.proyecto-beneficios .proyecto-beneficios__lista {
    display: inline-table;
    width: 100%;
    margin: 0 auto;
    padding: 0;
    text-align: center;
}

/* =========================================================
   3. BENEFICIO INDIVIDUAL
   ========================================================= */

.proyecto-beneficios .beneficio {
    position: relative;
    display: inline-table;
    width: 150px;
    min-width: 0;
    padding: 0 15px;
    box-sizing: border-box;
    text-align: center;
    margin: 10px;
}

/* =========================================================
   4. ICONOS
   ========================================================= */

.proyecto-beneficios .beneficio__icono {
    display: block;
    width: 120px;
    height: 120px;
    max-width: 100%;
    margin: 0 auto 15px;
    object-fit: contain;
}

/* =========================================================
   5. NOMBRE DEL BENEFICIO
   ========================================================= */

.proyecto-beneficios .beneficio__nombre {
    display: block;
    width: 100%;
    max-width: 185px;
    margin: 0 auto;
    color: var(--beneficios-texto);
    font-size: 16px;
    font-weight: 400;
    line-height: 1.25;
    text-align: center;
    overflow-wrap: break-word;
}

/* =========================================================
   6. SEPARADORES VERTICALES
   ========================================================= */

/* Línea divisoria entre beneficios */

.proyecto-beneficios .beneficio:not(:last-child)::after {
    content: "";
    position: absolute;
    right: 0;
    top: -20px;
    width: 1px;
    height: 125px;
    background-color: var(--beneficios-separador);
    pointer-events: none;
}

/* Separadores alternados:
   1 y 3 comienzan más abajo.
*/

.proyecto-beneficios .beneficio:nth-child(odd)::after {
    top: 70px;
}

/* El último beneficio no lleva separador */

.proyecto-beneficios .beneficio:last-child::after {
    display: none;
}

/* =========================================================
   ESENCIA INMOBILIARIA
   DETALLE DE PROYECTO — GALERÍAS
   ========================================================= */

.proyecto-galerias {
    --galerias-texto: #3e474e;
    --galerias-fondo: #f3f5f8;
    position: relative;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 42px;
    width: 100%;
    padding: 50px max(40px, calc((100% - 1656px) / 2)) 100px;
    background: #ffffff;
    box-sizing: border-box;
    isolation: isolate;
}
.proyecto-galeria.proyecto-galeria--360 {
    grid-column: 1 / -1;
    width: 100%;
}
.proyecto-galeria.proyecto-galeria--360 iframe{
    border-radius: 10px;
}

.proyecto-galeria.proyecto-galeria--360 .embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; }
.proyecto-galeria.proyecto-galeria--360 .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%;}

/* =========================================================
   1. FRANJA GRIS DETRÁS DE LAS IMÁGENES
   ========================================================= */

.proyecto-galerias::before {
    content: "";
    position: absolute;
    top: 250px;
    left: 0;
    width: 100%;
    height: 140px;
    background-color: var(--galerias-fondo);
    z-index: -1;
    pointer-events: none;
}

/* =========================================================
   2. CONTENEDOR INDIVIDUAL
   ========================================================= */

.proyecto-galerias .proyecto-galeria {
    position: relative;
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0;
}

/* =========================================================
   3. TÍTULOS
   ========================================================= */

.proyecto-galerias .proyecto-galeria__title {
    margin: 0 0 16px;
    padding: 0 25px;
    color: var(--galerias-texto);
    font-size: clamp(19px, 1.35vw, 26px);
    line-height: 1.2;
    font-weight: 800;
    text-transform: uppercase;
}

/* El segundo título se alinea a la derecha */

.proyecto-galerias .proyecto-galeria--areas-comunes .proyecto-galeria__title {
    text-align: right;
}

/* =========================================================
   4. CONTENEDOR SWIPER
   ========================================================= */

.proyecto-galerias .proyecto-galeria__swiper {
    position: relative;
    width: 100%;
    height: auto;
    aspect-ratio: 806 / 464;
    overflow: hidden;
    border-radius: 8px;
    background-color: #e9ebed;
}

/* Wrapper */

.proyecto-galerias .proyecto-galeria__swiper .swiper-wrapper {
    height: 100%;
}

/* Cada diapositiva */

.proyecto-galerias .proyecto-galeria__swiper .swiper-slide {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

/* =========================================================
   5. IMÁGENES
   ========================================================= */

.proyecto-galerias .proyecto-galeria__swiper .swiper-slide > img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
}

/* =========================================================
   6. FLECHAS DE NAVEGACIÓN
   ========================================================= */

.proyecto-galerias .proyecto-galeria__swiper .swiper-button-prev, .proyecto-galerias .proyecto-galeria__swiper .swiper-button-next {
    position: absolute;
    top: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 70px;
    margin: 0;
    color: #ffffff;
    background: transparent;
    border: none;
    transform: translateY(-50%);
    z-index: 10;
    cursor: pointer;
    transition: background-color 0.25s ease, opacity 0.25s ease;
}

/* Flecha izquierda */

.proyecto-galerias .proyecto-galeria__swiper .swiper-button-prev {
    left: 10px;
    right: auto;
}

/* Flecha derecha */

.proyecto-galerias .proyecto-galeria__swiper .swiper-button-next {
    right: 10px;
    left: auto;
}

/* Dibujamos las flechas con CSS.
   Así no dependemos de fuentes de iconos. */

.proyecto-galerias .proyecto-galeria__swiper .swiper-button-prev::after, .proyecto-galerias .proyecto-galeria__swiper .swiper-button-next::after {
    content: "";
    display: block;
    width: 23px;
    height: 23px;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
    font-size: 0;
}

/* Dirección izquierda */

.proyecto-galerias .proyecto-galeria__swiper .swiper-button-prev::after {
    transform: rotate(-135deg);
}

/* Dirección derecha */

.proyecto-galerias .proyecto-galeria__swiper .swiper-button-next::after {
    transform: rotate(45deg);
}

/* Hover */


/* Botones deshabilitados por Swiper */

.proyecto-galerias .proyecto-galeria__swiper .swiper-button-disabled {
    opacity: 0.3;
    cursor: default;
}

/* =========================================================
   7. BOTÓN LIGHTBOX
   ========================================================= */

.proyecto-galerias .lightbox-galeria {
    position: absolute;
    right: 15px;
    bottom: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    padding: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.95);
    color: var(--galerias-texto);
    text-decoration: none;
    opacity: 0;
    transform: translateY(5px);
    transition: opacity 0.25s ease, transform 0.25s ease;
    z-index: 5;
}

/* Mostrar al pasar el cursor */

.proyecto-galerias .proyecto-galeria__swiper:hover .lightbox-galeria, .proyecto-galerias .lightbox-galeria:focus-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Icono de lupa */

.lightbox-galeria__icono {
    position: relative;
    display: block;
    width: 16px;
    height: 16px;
    border: 2px solid currentColor;
    border-radius: 50%;
    background: none;
    margin: -4px 0 0 -4px;
}

.lightbox-galeria__icono::after {
    content: "";
    position: absolute;
    width: 8px;
    height: 2px;
    right: -6px;
    bottom: -3px;
    background: currentColor;
    transform: rotate(45deg);
    border-radius: 2px;
}

/* =========================================================
   ESENCIA INMOBILIARIA
   DETALLE DE PROYECTO — UBICACIÓN
   ========================================================= */

.proyecto-mapa {
    --mapa-texto: #3e474e;
    --mapa-naranja: #ca5821;
    --mapa-fondo: #f3f5f8;
    display: grid;
    grid-template-columns: 42% 58%;
    width: 100%;
    margin: 40px 0 60px 0;
    background: var(--mapa-fondo);
    color: var(--mapa-texto);
}

/* =========================================================
   1. CONTENEDOR DEL MAPA
   ========================================================= */

.proyecto-mapa .proyecto-mapa__imagen {
    position: relative;
    width: 100%;
    min-width: 0;
    min-height: 0;          /* antes 590px */
    overflow: hidden;
    background: var(--mapa-texto);
}

/* Imagen activa */

.proyecto-mapa #mapa-imagen-activa {
    inset: 0;
    display: block;
    width: 100%;
    height: auto;
    opacity: 1;
    transition: opacity 200ms ease;
}

.mapa-lista { display: none; }
.mapa-lista.is-active { display: block; }

.proyecto-mapa__listas {
    margin-top: 1.5rem;
    margin-bottom: 50px;
}

.mapa-lista ol {
	list-style: none;
	margin: 0;
	padding: 0;
	counter-reset: mapa-item;
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
}

.mapa-lista li {
	counter-increment: mapa-item;
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	margin: 0;
	padding: .3rem .85rem .3rem .3rem;
	background: #e3202b; /* rojo de tus pines */
	color: #fff;
	border-radius: 999px;
	font-size: .9rem;
	font-weight: 600;
	line-height: 1.3;
}

.mapa-lista li::before {
	content: counter(mapa-item);
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 1.6em;
	height: 1.6em;
	border-radius: 50%;
	background: #fff;
	color: #e3202b;
	font-size: .8rem;
	font-weight: 700;
	line-height: 1.5;
}

.mapa-lista li div,
.mapa-lista li span { margin: 0; color: inherit; }

/* Mantener la transición del JS */

.proyecto-mapa #mapa-imagen-activa.is-fading {
    opacity: 0;
}

/* =========================================================
   2. PANEL DE INFORMACIÓN
   ========================================================= */

.proyecto-mapa .proyecto-mapa__panel {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-width: 0;
    padding: 0 clamp(35px, 3.7vw, 75px) 0;
    background: var(--mapa-fondo);
    border-radius: 0 24px 0 0;
}

/* =========================================================
   3. ACCESOS MAPS / WAZE / WHATSAPP
   ========================================================= */

.proyecto-mapa .proyecto-mapa__acciones {
    display: flex;
    align-items: center;
    justify-content: center;
    align-self: flex-end;
    flex-wrap: wrap;
    gap: 25px;
    max-width: 100%;
    min-height: 72px;
    margin: 0 0 75px;
    padding: 14px 30px;
    background: #ffffff;
    border-radius: 0 0 10px 10px;
}

/* Enlaces individuales */

.proyecto-mapa .accion-mapa {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    color: var(--mapa-texto);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none;
    text-transform: uppercase;
    white-space: nowrap;
    transition: color 0.25s ease;
}

.proyecto-mapa .accion-mapa:hover {
    color: var(--mapa-naranja);
}
.proyecto-mapa .proyecto-mapa__imagen .proyecto-mapa__acciones {
    align-self: auto;
    justify-content: space-evenly;
    width: 100%;
    max-width: none;
    min-height: 0;
    margin: 0;
    padding: 14px 20px;
    gap: 15px;
    background: var(--mapa-texto); /* gris plomo #3e474e */
    border-radius: 0;
}

.proyecto-mapa .proyecto-mapa__imagen .accion-mapa {
    color: #fff;
}

.proyecto-mapa .proyecto-mapa__imagen .accion-mapa:hover {
    color: #fff;
    opacity: .75;
}

/* =========================================================
   4. ICONOS DE NAVEGACIÓN
   ========================================================= */

.proyecto-mapa .accion-mapa::before {
    content: "";
    display: inline-block;
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    background-color: currentColor;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: contain;
    mask-size: contain;
}

/* Google Maps */

.proyecto-mapa .accion-mapa--maps::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2a7 7 0 0 0-7 7c0 5 7 13 7 13s7-8 7-13a7 7 0 0 0-7-7zm0 2a5 5 0 0 1 5 5c0 2.8-2.8 7.3-5 10.1C9.8 16.3 7 11.8 7 9a5 5 0 0 1 5-5zm0 2a3 3 0 1 0 0 6 3 3 0 0 0 0-6zm0 2a1 1 0 1 1 0 2 1 1 0 0 1 0-2z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2a7 7 0 0 0-7 7c0 5 7 13 7 13s7-8 7-13a7 7 0 0 0-7-7zm0 2a5 5 0 0 1 5 5c0 2.8-2.8 7.3-5 10.1C9.8 16.3 7 11.8 7 9a5 5 0 0 1 5-5zm0 2a3 3 0 1 0 0 6 3 3 0 0 0 0-6zm0 2a1 1 0 1 1 0 2 1 1 0 0 1 0-2z'/%3E%3C/svg%3E");
}

/* Waze: icono de navegación */

.proyecto-mapa .accion-mapa--waze::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2a9 9 0 0 0-9 9v1c0 3 2 5.5 5 6.5a2.5 2.5 0 1 0 4 1h3a2.5 2.5 0 1 0 4.5-1.5A9 9 0 0 0 12 2zm0 2a7 7 0 0 1 7 7c0 3-1.5 5-4 5.5H9C6.5 16 5 14 5 11a7 7 0 0 1 7-7zM9 9a1 1 0 1 0 0 2 1 1 0 0 0 0-2zm6 0a1 1 0 1 0 0 2 1 1 0 0 0 0-2zm-6 4c1 2 5 2 6 0H9z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2a9 9 0 0 0-9 9v1c0 3 2 5.5 5 6.5a2.5 2.5 0 1 0 4 1h3a2.5 2.5 0 1 0 4.5-1.5A9 9 0 0 0 12 2zm0 2a7 7 0 0 1 7 7c0 3-1.5 5-4 5.5H9C6.5 16 5 14 5 11a7 7 0 0 1 7-7zM9 9a1 1 0 1 0 0 2 1 1 0 0 0 0-2zm6 0a1 1 0 1 0 0 2 1 1 0 0 0 0-2zm-6 4c1 2 5 2 6 0H9z'/%3E%3C/svg%3E");
}

/* WhatsApp */

.proyecto-mapa .accion-mapa--whatsapp::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2zm0 2a8 8 0 1 1 0 16 8 8 0 0 1-4.1-1.1l-3 .8.8-2.9A8 8 0 0 1 12 4zm-4 4c-.6 0-1 .5-1 1.5 0 2.5 3.5 6 6.5 7 1.5.5 3 .3 3.5-.7.3-.6.3-1.1 0-1.3l-2.4-1.2c-.3-.1-.5-.1-.7.2l-.9 1.1c-1.5-.5-2.7-1.6-3.4-3l.9-.8c.2-.2.2-.5.1-.7L9.5 8.4C9.3 8.1 9 8 8 8z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2zm0 2a8 8 0 1 1 0 16 8 8 0 0 1-4.1-1.1l-3 .8.8-2.9A8 8 0 0 1 12 4zm-4 4c-.6 0-1 .5-1 1.5 0 2.5 3.5 6 6.5 7 1.5.5 3 .3 3.5-.7.3-.6.3-1.1 0-1.3l-2.4-1.2c-.3-.1-.5-.1-.7.2l-.9 1.1c-1.5-.5-2.7-1.6-3.4-3l.9-.8c.2-.2.2-.5.1-.7L9.5 8.4C9.3 8.1 9 8 8 8z'/%3E%3C/svg%3E");
}

/* =========================================================
   5. TÍTULO UBICACIÓN
   ========================================================= */

.proyecto-mapa .proyecto-mapa__title {
    margin: 60px 0 30px;
    color: var(--mapa-texto);
    font-size: clamp(22px, 1.35vw, 27px);
    font-weight: 800;
    line-height: 1.2;
    text-transform: uppercase;
}

/* =========================================================
   6. DIRECCIÓN Y DISTRITO
   ========================================================= */

.proyecto-mapa .proyecto-mapa__direccion {
    margin: 0;
    font-size: clamp(15px, 1vw, 20px);
    font-weight: 400;
    line-height: 1.35;
}

.proyecto-mapa .proyecto-mapa__distrito {
    margin: 0;
    font-size: clamp(15px, 1vw, 20px);
    font-weight: 800;
    line-height: 1.35;
    text-transform: uppercase;
}

/* =========================================================
   7. TEXTO DE INTRODUCCIÓN
   ========================================================= */

.proyecto-mapa .proyecto-mapa__introduccion {
    margin: 25px 0 45px;
    color: var(--mapa-texto);
    font-size: clamp(15px, 1vw, 19px);
    font-weight: 400;
    line-height: 1.5;
}

.proyecto-mapa .proyecto-mapa__introduccion strong {
    font-weight: 800;
}

/* =========================================================
   8. BOTONES DE CATEGORÍAS
   ========================================================= */

.proyecto-mapa .proyecto-mapa__tabs {
    display: flex;
    align-items: flex-start;
    align-content: flex-start;
    flex-wrap: wrap;
    gap: 10px;
    width: 100%;
    margin: 0;
    padding: 0;
}

/* Botón individual */

.proyecto-mapa .mapa-tab {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 51px;
    margin: 0;
    padding: 10px 18px;
    background: var(--mapa-naranja);
    border: 1px solid var(--mapa-naranja);
    border-radius: 7px;
    color: #ffffff;
    font-family: inherit;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    cursor: pointer;
    transition: background-color 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}

/* Iconos PNG del ACF */

.proyecto-mapa .mapa-tab__icono {
    display: block;
    flex-shrink: 0;
    width: 26px;
    height: 26px;
    object-fit: contain;
}

/* Nombre */

.proyecto-mapa .mapa-tab__nombre {
    display: inline-block;
    color: inherit;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
}

/* Categoría seleccionada */

.proyecto-mapa .mapa-tab.is-active {
    background: var(--mapa-texto);
    border-color: var(--mapa-texto);
}

/* Hover */


/* Accesibilidad con teclado */

.proyecto-mapa .mapa-tab:focus-visible, .proyecto-mapa .accion-mapa:focus-visible {
    outline: 2px solid var(--mapa-naranja);
    outline-offset: 4px;
}

/* =========================================================
   ESENCIA INMOBILIARIA
   DETALLE DE PROYECTO — TIPOLOGÍAS Y COTIZACIÓN
   ========================================================= */

.proyecto-tipologia {
    --tipo-texto: #3e474e;
    --tipo-naranja: #ca5821;
    --tipo-borde: #cbd3df;
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
    align-items: center;
    gap: clamp(35px, 3vw, 60px);
    width: 100%;
    max-width: 1760px;
    margin: 0 auto;
    padding: 80px 30px 80px;
    background: #ffffff;
    color: var(--tipo-texto);
    box-sizing: border-box;
    scroll-margin-top: 30px;
}

/* =========================================================
   1. CONTENEDOR DEL PLANO
   ========================================================= */

.proyecto-tipologia .proyecto-tipologia__plano {
    position: relative;
    width: 100%;
    min-width: 0;
    background: #ffffff;
    border: 1px solid #e1e4e8;
    border-radius: 9px;
    box-shadow: 0 1px 10px rgba(0, 0, 0, 0.13);
    overflow: hidden;
}

/* =========================================================
   2. SLIDER DE PLANOS
   ========================================================= */

.proyecto-tipologia .proyecto-tipologia__swiper {
    position: relative;
    width: 100%;
    height: auto;
    aspect-ratio: 1.42 / 1;
    overflow: hidden;
    background: #ffffff;
}

/* Wrapper */

.proyecto-tipologia .proyecto-tipologia__swiper .swiper-wrapper {
    height: 100%;
}

/* Slide individual */

.proyecto-tipologia .proyecto-tipologia__swiper .swiper-slide {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

/* Imagen del plano */

.proyecto-tipologia .proyecto-tipologia__swiper .swiper-slide > img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
}

/* IMPORTANTE:
   object-fit: contain evita recortar los planos.
   El blanco del archivo se conserva.
*/

/* =========================================================
   3. FLECHAS DEL SLIDER
   ========================================================= */

.proyecto-tipologia .proyecto-tipologia__swiper .swiper-button-prev, .proyecto-tipologia .proyecto-tipologia__swiper .swiper-button-next {
    position: absolute;
    top: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 60px;
    margin: 0;
    transform: translateY(-50%);
    color: var(--tipo-texto);
    background: rgba(255, 255, 255, 0.85);
    border-radius: 5px;
    z-index: 10;
    transition: opacity 0.25s ease, background-color 0.25s ease;
}

/* Posiciones */

.proyecto-tipologia .proyecto-tipologia__swiper .swiper-button-prev {
    left: 10px;
    right: auto;
}

.proyecto-tipologia .proyecto-tipologia__swiper .swiper-button-next {
    right: 10px;
    left: auto;
}

/* Dibujar flechas sin depender de iconos externos */

.proyecto-tipologia .proyecto-tipologia__swiper .swiper-button-prev::after, .proyecto-tipologia .proyecto-tipologia__swiper .swiper-button-next::after {
    content: "";
    width: 15px;
    height: 15px;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
    font-size: 0;
}

.proyecto-tipologia .proyecto-tipologia__swiper .swiper-button-prev::after {
    transform: rotate(-135deg);
}

.proyecto-tipologia .proyecto-tipologia__swiper .swiper-button-next::after {
    transform: rotate(45deg);
}

/* Mostrar flechas al pasar el cursor */


/* =========================================================
   4. BOTÓN PARA AMPLIAR EL PLANO
   ========================================================= */

.proyecto-tipologia .lightbox-plano {
    position: absolute;
    right: 15px;
    bottom: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    background: rgba(255, 255, 255, 0.95);
    border: 1px solid #e1e4e8;
    border-radius: 50%;
    color: var(--tipo-texto);
    text-decoration: none;
    z-index: 5;
    opacity: 0;
    transition: opacity 0.25s ease, background-color 0.25s ease;
}

/* Mostrar al pasar el cursor */

.proyecto-tipologia .proyecto-tipologia__swiper:hover .lightbox-plano, .proyecto-tipologia .lightbox-plano:focus-visible {
    opacity: 1;
}

/* Icono de ampliación */

.proyecto-tipologia .lightbox-plano .lightbox-galeria__icono {
    position: relative;
    display: block;
    width: 16px;
    height: 16px;
    border: 2px solid currentColor;
    border-radius: 50%;
    background: none;
}

.proyecto-tipologia .lightbox-plano .lightbox-galeria__icono::after {
    content: "";
    position: absolute;
    width: 8px;
    height: 2px;
    right: -6px;
    bottom: -3px;
    background: currentColor;
    transform: rotate(45deg);
}

/* =========================================================
   5. COLUMNA DEL FORMULARIO
   ========================================================= */

.proyecto-tipologia .proyecto-tipologia__form {
    width: 100%;
    min-width: 0;
    padding: 0;
    box-sizing: border-box;
}

/* Título */

.proyecto-tipologia .proyecto-tipologia__title {
    margin: 0 0 25px;
    padding: 0;
    color: var(--tipo-texto);
    font-size: clamp(20px, 1.35vw, 27px);
    line-height: 1.25;
    font-weight: 800;
    text-transform: uppercase;
}

/* Subtítulo */

.proyecto-tipologia .proyecto-tipologia__subtitle {
    margin: 0 0 40px;
    color: var(--tipo-texto);
    font-size: clamp(14px, 1vw, 19px);
    line-height: 1.5;
    font-weight: 400;
}

/* =========================================================
   6. CONTACT FORM 7
   Contenedor exclusivo de esta sección
   ========================================================= */

.proyecto-tipologia #cf7-cotizacion-wrap {
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0;
}

/* Evitar márgenes adicionales del formulario */

.proyecto-tipologia #cf7-cotizacion-wrap .wpcf7 {
    width: 100%;
    margin: 0;
}

.proyecto-tipologia #cf7-cotizacion-wrap form {
    width: 100%;
    margin: 0;
}

/* =========================================================
   7. GRID DE CAMPOS
   ========================================================= */

/* Campo individual */

.proyecto-tipologia .solicitud-campo {
    min-width: 0;
}

/* Etiquetas */

.proyecto-tipologia .solicitud-campo > label {
    display: block;
    margin: 0 0 7px 17px;
    padding: 0;
    color: var(--tipo-texto);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.3;
}

/* Contenedor del input */

/* Inputs y selectores */

.proyecto-tipologia .solicitud-input input, .proyecto-tipologia .solicitud-input select {
    width: 100%;
    height: 54px;
    border: 1px solid var(--tipo-borde);
    border-radius: 7px;
    background-color: #ffffff;
    color: var(--tipo-texto);
    font-family: inherit;
    font-size: 15px;
}

/* Focus */

.proyecto-tipologia .solicitud-input input:focus, .proyecto-tipologia .solicitud-input select:focus {
    border-color: var(--tipo-naranja);
    box-shadow: 0 0 0 3px rgba(202, 88, 33, 0.08);
}

/* =========================================================
   8. TÉRMINOS Y CONDICIONES
   ========================================================= */

.proyecto-tipologia .solicitud-legal a {
    color: var(--tipo-naranja);
    text-decoration: none;
}

.proyecto-tipologia .solicitud-legal a:hover {
    text-decoration: underline;
}

/* =========================================================
   9. BOTÓN ENVIAR SOLICITUD
   ========================================================= */

.proyecto-tipologia .solicitud-enviar input[type="submit"] {
    width: 100%;
    height: 63px;
    padding-left: 28px;
    background: var(--tipo-naranja);
    border: 0;
    border-radius: 7px;
    color: #ffffff;
    font-size: 16px;
    font-weight: 800;
    cursor: pointer;
    transition: background-color 0.25s ease;
}

.proyecto-tipologia .solicitud-enviar input[type="submit"]:hover {
    background: #a84216;
}

/* La flecha existente se conserva */

.proyecto-tipologia .solicitud-enviar::after {
    color: #ffffff;
}

/* =========================================================
   10. MENSAJE DE SEGURIDAD
   ========================================================= */

/* ==========================================
   CORRECCIÓN DE ESPACIADOS CONTACT FORM 7
   Solo formulario de tipologías
   ========================================== */

/* Separación entre las filas de campos */

.proyecto-tipologia .solicitud-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 30px;
    row-gap: 16px;
    width: 100%;
}

/* Etiquetas de los campos */

.proyecto-tipologia .solicitud-campo label {
    display: block;
    margin: 0 0 7px 17px;
    font-size: 15px;
    font-weight: 700;
}

/* Términos y condiciones */

.proyecto-tipologia .solicitud-legal {
    grid-column: 1 / -1;
    margin-top: 35px;
    margin-bottom: 18px;
    color: #667385;
    font-size: 14px;
    line-height: 1.5;
}

/* Botón */

.proyecto-tipologia .solicitud-enviar {
    grid-column: 1 / -1;
    margin: 0;
}

/* Mensaje de seguridad */

.proyecto-tipologia .solicitud-seguridad {
    grid-column: 1 / -1;
    margin-top: 14px;
    color: #687586;
    font-size: 13px;
    line-height: 1.5;
}

.proyecto-tipologia .solicitud-seguridad > p {
    display: flex;
    align-items: center;
    gap: 12px;
}

/* Ocultar únicamente el salto de línea
   del mensaje de seguridad */

.proyecto-tipologia .solicitud-seguridad br {
    display: none;
}

/* Escudo */

.proyecto-tipologia .solicitud-escudo {
    flex-shrink: 0;
}

.proyecto-tipologia .solicitud-form p {
    margin: 0;
    padding: 0;
}

/* Campo interno utilizado por CF7 */

.proyecto-tipologia .solicitud-select {
    display: block;
    position: relative;
}

/* El select visible mantiene su diseño */

.proyecto-tipologia .solicitud-select > select {
    display: block;
    width: 100%;
}

/* Ocultar únicamente el input interno */

.proyecto-tipologia .solicitud-select input.tipologia-valor {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: 0;
    border: 0;
    opacity: 0;
    pointer-events: none;
}

/* Mantener visibles los errores de CF7 */

.proyecto-tipologia .solicitud-select .wpcf7-form-control-wrap[data-name="tipologia"] {
    display: block;
    position: relative;
    width: 100%;
}

/* Mensaje de error debajo del selector */

.proyecto-tipologia .solicitud-select .wpcf7-not-valid-tip {
    display: block;
    margin-top: 5px;
    font-size: 12px;
    color: #dc2626;
}

/* =====================================================
   AJUSTES FINALES — FORMULARIO DE COTIZACIÓN
   Exclusivos de la sección de tipologías
   ===================================================== */

/* =====================================================
   1. CORREGIR SALTOS DE LÍNEA EN LAS ETIQUETAS
   ===================================================== */

/* Eliminar únicamente los BR que CF7 introduce
   dentro de los labels de este formulario */

.proyecto-tipologia .solicitud-campo label br {
    display: none;
}

/* Eliminar márgenes de los párrafos generados */

.proyecto-tipologia .solicitud-campo > p {
    margin: 0;
    padding: 0;
}

/* Mantener la misma separación cuando la etiqueta
   queda envuelta en un <p> (variante de CF7) */

.proyecto-tipologia .solicitud-campo > p > label,
.solicitud-form .solicitud-campo > p > label {
    display: block;
    margin: 0 0 7px 17px;
    padding: 0;
    color: var(--tipo-texto);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.3;
}

/* =====================================================
   2. MINI SELECTOR DE TIPO DE DOCUMENTO
   ===================================================== */

/* Input del documento */

.proyecto-tipologia .solicitud-documento > .solicitud-input {
    flex: 1;
    min-width: 0;
}

/* Evitar el borde negro del navegador al enfocar */

.proyecto-tipologia .solicitud-tipo-documento select:focus {
    outline: none;
    box-shadow: none;
}

/* Color de las opciones del desplegable */

.proyecto-tipologia .solicitud-tipo-documento select option {
    color: #3e474e;
    background: #ffffff;
    font-size: 14px;
    font-weight: 400;
}

/* =====================================================
   3. RESPONSIVE
   ===================================================== */


/* ==========================================
   CF7 — CORRECCIÓN DE ICONOS Y SELECTOR
   ========================================== */

/* El contenedor ya no centra el icono
   respecto al mensaje de error */

.proyecto-tipologia .solicitud-input {
    width: 100%;
    min-width: 0;
    position: relative;
    align-items: flex-start;
}

/* El párrafo que envuelve al input */

.proyecto-tipologia .solicitud-input > p {
    width: 100%;
    position: relative;
    margin: 0;
    padding: 0;
}

/* Iconos de nombres, email, teléfono y DNI */

.proyecto-tipologia .solicitud-input::before {
    top: 27px;
    transform: translateY(-50%);
}

/* ==========================================
   MINI SELECTOR DE DOCUMENTO
   ========================================== */

.proyecto-tipologia .solicitud-documento {
    position: relative;
    display: flex;
    width: 100%;
    min-width: 0;
    align-items: flex-start;
}

/* Evitamos que el selector crezca cuando
   aparece el mensaje de validación */

.proyecto-tipologia .solicitud-tipo-documento {
    position: absolute;
    top: 0;
    right: 0;
    bottom: auto;
    width: 78px;
    z-index: 5;
    height: 54px;
}

/* P generado por Contact Form 7 */

.proyecto-tipologia .solicitud-tipo-documento > p {
    width: 100%;
    height: 54px;
    margin: 0;
    padding: 0;
    display: block;
}

/* Wrapper interno */

.proyecto-tipologia .solicitud-tipo-documento .wpcf7-form-control-wrap {
    display: block;
    width: 100%;
    height: 54px;
}

/* Selector */

.proyecto-tipologia .solicitud-tipo-documento select {
    display: block;
    width: 100%;
    height: 54px;
    margin: 0;
    padding: 0 25px 0 10px;
    background: #ffffff;
    border: 1px solid #cbd3df;
    border-left: 0;
    border-radius: 0 7px 7px 0;
    color: #3e474e;
    font-family: inherit;
    font-size: 13px;
    font-weight: 700;
    text-align: left;
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
    box-sizing: border-box;
}

/* Flecha: siempre centrada en los 54px */

.proyecto-tipologia .solicitud-tipo-documento::after {
    content: "";
    position: absolute;
    top: 27px;
    right: 12px;
    width: 7px;
    height: 7px;
    border-right: 2px solid #253447;
    border-bottom: 2px solid #253447;
    transform: translateY(-70%) rotate(45deg);
    pointer-events: none;
}

/* El input reserva espacio para DNI / CE / PAS */

.proyecto-tipologia .solicitud-documento .solicitud-input input {
    padding-right: 88px;
}

/* =====================================================
   CF7 — OCULTAR ERRORES ANTES DEL PRIMER ENVÍO
   Solo formulario de cotización
   ===================================================== */

/* Ocultar los mensajes de validación prematuros */

.proyecto-tipologia form.esencia-sin-intento-envio .wpcf7-not-valid-tip {
    display: none;
}

/* Evitar bordes rojos antes del primer envío */

.proyecto-tipologia form.esencia-sin-intento-envio .solicitud-input input.wpcf7-not-valid, .proyecto-tipologia form.esencia-sin-intento-envio .solicitud-input select.wpcf7-not-valid {
    border-color: #cbd3df !important;
    box-shadow: none;
}

/* También aplicar al selector de documento */

.proyecto-tipologia form.esencia-sin-intento-envio .solicitud-tipo-documento select.wpcf7-not-valid {
    border-color: #cbd3df !important;
}

/* Botón desactivado: 50% de opacidad */

.proyecto-tipologia .solicitud-enviar input[type="submit"]:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* La flecha también tendrá 50% de opacidad */

.proyecto-tipologia .solicitud-enviar:has(input[type="submit"]:disabled)::after {
    opacity: 0.5;
}
/* =========================================================
   BANNER "ESTAMOS AQUÍ PARA RESPONDER..." (WhatsApp)
   ========================================================= */

.proyecto-whatsapp {
    width: 100%;
    padding: 60px 20px;
    background: linear-gradient(to bottom, #f6f8f9, #e6e7e9);
    text-align: center;
}

.proyecto-whatsapp__container {
    max-width: 600px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.proyecto-whatsapp__icono {
    display: inline-flex;
    margin-bottom: 18px;
    line-height: 0;
    transition: transform 0.25s ease;
}

.proyecto-whatsapp__icono:hover {
    transform: scale(1.08);
}

.proyecto-whatsapp__icono img {
    width: 56px;
    height: 56px;
}

.proyecto-whatsapp__texto {
    margin: 0;
    color: #3e474e;
    font-size: 17px;
    font-weight: 500;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    line-height: 120%;
}

.proyecto-whatsapp__texto strong {
    font-weight: 800;
}

.legalproyecto{
    font-size: 12px;
    text-align: center;
    max-width: 1580px;
    display: block;
    margin: 50px auto;
    box-sizing: border-box;
    padding: 0 30px;
}

.tituentregados{
    width: 100%;
    text-align: center;
    display: block;
    background-color: #f5f5f5;
    padding: 40px 25px;
    box-sizing: border-box;
    font-size: 25px;
    font-weight: 300;
}
.tituentregados strong{
    font-weight: 800;
}

.card-entregado {
	width: 100%;
	background: #ffffff;
	border-radius: 18px;
	overflow: hidden;
	box-shadow: 0 12px 35px rgba(0, 0, 0, 0.10);
	transition: transform 0.35s ease, box-shadow 0.35s ease;
}

.card-entregado:hover, .card-proyecto:hover {
	transform: translateY(-6px);
	box-shadow: 0 20px 45px rgba(0, 0, 0, 0.16);
}


/* =========================
   IMAGEN DESTACADA
========================= */

.imagentregado {
	position: relative;
	overflow: hidden;
	aspect-ratio: 16 / 11;
	background: #eee;
}

.imagentregado > a {
	display: block;
	width: 100%;
	height: 100%;
}

.imagentregado > a > img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s ease;
}

.card-entregado:hover .imagentregado > a > img {
	transform: scale(1.04);
}


/* =========================
   LOGO SOBRE LA FOTO
========================= */

.imglogentregado {
	position: absolute;
	top: 22px;
	left: 0;

	width: 30%;
	max-width: 150px;
	min-width: 90px;

	z-index: 5;

	padding: 8px 5px 8px 15px;
	border-radius: 0 10px 10px 0 ;

	background: rgba(15, 15, 15, 0.55);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);

	box-shadow: 0 5px 18px rgba(0, 0, 0, 0.18);

	pointer-events: none;
}

.imglogentregado img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: contain;
}

.anioentregado {
	position: absolute;
	right: 0;
	top: -25px;

	margin: 0;
	padding: 11px 20px 10px;

	background: #ffffff;
	color: #272727;

	font-size: 13px;
	font-weight: 600;
	line-height: 1;

	border-radius: 10px 0 0 0;

	z-index: 6;
}
.card-proyecto__direwrap .anioentregado{
    top: -50px;
}
.anioentregado::before{
    content: "";
    background-image: url(assets/img/curva-03.png);
    width: 10px;
    height: 10px;
    position: absolute;    
    bottom: 8px;
    left: -10px;
}
.anioentregado::after{
    content: "";
    background-image: url(assets/img/curva-03.png);
    width: 10px;
    height: 10px;
    position: absolute;    
    top: -10px;
    right: 0;
}
.direntregado {
	display: flex;
	align-items: center;
	gap: 8px;
}

.direntregado a {
	color: inherit;
	text-decoration: none;
	transition: color 0.25s ease;
}

.direntregado a:hover {
	color: #d05827;
}


/* Icono Maps */
.icono-maps {
	position: relative;
	flex: 0 0 auto;

	width: 17px;
	height: 17px;

	border: 2px solid #d05827;
	border-radius: 50% 50% 50% 0;

	transform: rotate(-45deg);
    margin-top: -5px;
}

.icono-maps::after {
	content: "";
	position: absolute;

	width: 5px;
	height: 5px;

	background: #d05827;
	border-radius: 50%;

	top: 4px;
	left: 4px;
}


/* =========================
   INFORMACIÓN
========================= */

.info-entregado {
	position: relative;
	padding: 25px 28px 28px;
}

.info-entregado h3 {
	margin: 0 0 14px;
	font-size: 25px;
	line-height: 1.15;
	font-weight: 600;
	letter-spacing: -0.5px;
	color: #3e474e;
}

.direntregado,
.distritoentregado {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
}

.direntregado {
	margin-bottom: 3px;
    color: #3e474e;
}

.distritoentregado {
	font-weight: 700;
	color: #3e474e;
    text-transform: uppercase;
}


/* pequeña línea decorativa */

.info-entregado::before, .card-proyecto__title::before {
	content: "";
	display: block;
	width: 38px;
	height: 3px;
	border-radius: 10px;
	background: #d05827;
	margin-bottom: 18px;
}
.imagentregado {
	cursor: zoom-in;
}

.imagentregado > a,
.imagentregado > div {
	cursor: zoom-in;
}

.contesideimage .wp-block-media-text__content{
    box-sizing: border-box;
    padding: 70px 50px;
    font-size: 15px;
    line-height: 150%;
}
.contesideimage .wp-block-media-text__media{
    height: 100%;
    background-color: #111820;
    background-image: url(assets/img/fondo-pie.jpg);
    background-repeat: no-repeat;
    background-position: bottom right;
    background-attachment: fixed;
}
.contesideimage .sinfondo .wp-block-media-text__media {
    background-image: none;
    background-color: transparent;
}
.iconvalor img{
    width: 100px !important;
    height: auto !important;
}


/* TÍTULO PRINCIPAL */

.contesideimage h1 {
	position: relative;
	margin: 0 0 28px;
	padding-bottom: 20px;
	font-size: 35px;
	line-height: 1.05;
	letter-spacing: -0.035em;
	font-weight: 400;
	color: #30363b;
}

.contesideimage h1 strong {
	font-weight: 700;
}

.contesideimage h1::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 54px;
	height: 3px;
	background: #d4571f;
	border-radius: 10px;
}

.contesideimage h2 {
	position: relative;
	margin: 28px 0 9px;
	padding-left: 13px;
	font-size: 24px;
	line-height: 1.25;
	font-weight: 700;
	letter-spacing: -0.015em;
	color: #30363b;
}

.contesideimage h2::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	width: 3px;
	height: 22px;
	background: #d4571f;
	border-radius: 10px;
	transform: translateY(-50%);
}
.gridvalores{
    margin-top: 35px;
    gap: 25px !important;
}
.solicitud-columnas {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 48px;
}
.solicitud-titulo {
  text-transform: uppercase;
  margin: 0 0 24px;
}
.solicitud-columnas .solicitud-campo {
    margin-bottom: 0px;
}
/* Referidos: neutralizar <p>/<br> de CF7 */
.solicitud-columnas p, .solicitud-grid p { margin: 0; padding: 0; }
.solicitud-columnas br, .solicitud-grid br { display: none; }
.solicitud-columnas .solicitud-input > p, .solicitud-grid .solicitud-input > p { width: 100%; position: relative; }
.solicitud-columnas .solicitud-select select, .solicitud-grid .solicitud-select select { width: 100%; }
.solicitud-columnas .solicitud-campo, .solicitud-grid .solicitud-campo { margin-bottom: 14px; }

.solicitud-campo--full {
    grid-column: 1 / -1;
}

.solicitud-input textarea {
    display: block;
    width: 100%;
    min-width: 0;
    padding: 16px;
    background: #fff;
    border: 1px solid #cbd3df;
    border-radius: 7px;
    color: #374151;
    font-family: inherit;
    font-size: 16px;
    outline: none;
    box-shadow: none;
    resize: vertical;
    transition: border-color .2s ease, box-shadow .2s ease;
}

.solicitud-input textarea::placeholder {
    color: #697586;
    opacity: 1;
}

.solicitud-input textarea:focus {
    border-color: #d94000;
    box-shadow: 0 0 0 3px rgba(217, 64, 0, .08);
}
.solicitud-sin-icono input {
    padding-left: 22px;
}
.solicitud-campo--full { grid-column: 1 / -1; }

#swiper-proyectos { aspect-ratio: 5 / 4; }

.contenidolegales{
    max-width: 1250px;
    margin: 40px auto 60px auto;
    display: block;
    box-sizing: border-box;
    padding: 15px 25px;
}
.contenidolegales p{
    line-height: 170%;
    font-size: 15px;
}

@media (max-width: 768px) {
    .solicitud-input textarea { font-size: 15px; }
}


/* =========================================================
   HOVER (fine pointer)
   ========================================================= */
@media (hover: hover) and (pointer: fine) {
    .primary-menu-list > li:hover::before {
        transform: translateX(0);
    }
    .primary-menu-list > li:hover > a {
        color: #ffffff;
        transform: translateX(10px);
    }
    .primary-menu-list > li:hover > a::before {
        width: 28px;
    }
    .primary-menu-list > li:hover::after {
        background: linear-gradient(90deg, rgba(202, 88, 33, 0.85) 0%, rgba(202, 88, 33, 0.85) 28%, rgba(95, 95, 95, 0.45) 28%);
    }
}

/* =========================================================
   HOVER
   ========================================================= */
@media (hover: hover) {
    .proyecto-galerias .proyecto-galeria__swiper .swiper-button-prev:hover, .proyecto-galerias .proyecto-galeria__swiper .swiper-button-next:hover {
        background: rgba(0, 0, 0, 0.25);
    }

    .proyecto-mapa .mapa-tab:hover {
        background: var(--mapa-texto);
        border-color: var(--mapa-texto);
        transform: translateY(-2px);
    }

    .proyecto-tipologia .proyecto-tipologia__swiper .swiper-button-prev, .proyecto-tipologia .proyecto-tipologia__swiper .swiper-button-next {
        opacity: 0;
    }
    .proyecto-tipologia .proyecto-tipologia__swiper:hover .swiper-button-prev, .proyecto-tipologia .proyecto-tipologia__swiper:hover .swiper-button-next, .proyecto-tipologia .proyecto-tipologia__swiper .swiper-button-prev:focus-visible, .proyecto-tipologia .proyecto-tipologia__swiper .swiper-button-next:focus-visible {
        opacity: 1;
    }
}

/* =========================================================
   RESPONSIVE — max-width: 1800px
   ========================================================= */
@media (max-width: 1800px) {
    .beneficios li strong{
        font-size: 50px;
    }
    .itembeneficio01 {
        width: 180px;
        height: 180px;
        top: 60px;
        left: 20px;
    }
    .itembeneficio02 {
        width: 180px;
        height: 180px;
        top: 200px;
        left: 160px;
    }
    .itembeneficio03 {
        width: 180px;
        height: 180px;
        top: 60px;
        left: 300px;
    }
    .lgrupobeneficio{
        bottom: -190px;
    }
    .arteimg {
        flex: 0 0 25%;
        max-width: 25%;
    }
    .artevivircontent {
        font-size: 16px;
        line-height: 25px;
        flex: 0 0 45%;
        max-width: 45%;
    }
    .colbeneficios {
        flex: 0 0 30%;
        max-width: 30%;
    }
}

/* =========================================================
   RESPONSIVE — max-width: 1650px
   ========================================================= */
@media (max-width: 1650px) {
    .footer-widgets{
        grid-template-columns: 250px 1fr 200px;
        max-width: 1400px;
    }
    .footer-widgets, .grid-widget-center {
        gap: 40px;
    }
    .beneficios{
        position: relative;
        width: 100%;
        top: auto;
        left: 0;
        text-align: center;
        min-height: auto;
        margin-top: 30px;
    }
    .beneficios li{
        position: relative !important;
        top: auto !important;
        left: auto !important;
        display: inline-table;
        margin: 0px 5px 6px 5px;
        box-sizing: border-box;
        padding-top: 30px;
    }
    .lgrupobeneficio{
        position: relative;
        bottom: auto;
        left: auto;
    }
}

/* =========================================================
   RESPONSIVE — max-width: 1600px
   ========================================================= */
@media (max-width: 1600px) {
    .grid-proyectos{
        gap: 50px;
    }
    .card-proyecto__direccion{
        font-size: 14px;
    }
    .card-proyecto__info{
        grid-template-columns: 1fr 150px;
    }
    .spec__valor{
        font-size: 15px;
    }
    .spec.card__precio .spec__valor{
        font-size: 25px;
    }
    .card-proyecto__direwrap{
        padding: 0 40px 0 25px;
    }
    .spec.card__precio{
        padding: 20px 15px 20px 15px;
    }
}

/* =========================================================
   RESPONSIVE — max-width: 1420px
   ========================================================= */
@media (max-width: 1420px) {
    .footer-widgets, .grid-widget-center {
        gap: 20px;
    }
    .footer-widgets{
        max-width: 1300px;
    }
}

/* =========================================================
   RESPONSIVE — max-width: 1360px
   ========================================================= */
@media (max-width: 1360px) {
    .topslogan{
        padding: 50px 20px 0px 35px;
    }
    .form-filtro-proyectos{
        padding: 60px 35px 60px 40%;
    }
}

/* =========================================================
   RESPONSIVE — max-width: 1300px
   ========================================================= */
@media (max-width: 1300px) {
    .grid-proyectos{
        grid-template-columns: 1fr 1fr;
        padding: 80px;
        gap: 80px;
    }
    .card-proyecto__info{
        grid-template-columns: 1fr 200px;
    }
    .spec.card__precio{
        padding: 20px 15px 20px 30px;
    }
    .spec.card__precio .spec__valor{
        font-size: 30px;
    }
    .grid-widget-center {
        grid-template-columns: 1fr 1fr;
    }
    .footer-column-2, .footer-column-3{
        padding-bottom: 0px;
    }
    .footer-column-4, .footer-column-5{
        padding-top: 0px;
    }
    .homereferido{
        padding: 40px;
    }
}

/* =========================================================
   RESPONSIVE — max-width: 1200px
   ========================================================= */
@media (max-width: 1200px) {
    .topslogan{
        padding: 35px 20px 0px 35px;
        width: 30%;
    }
    .form-filtro-proyectos{
        padding: 60px 35px 60px 30%;
    }

    .proyecto-hero {
        --hero-padding: 30px;
        grid-template-columns: 48% 52%;
        min-height: 570px;
    }
    .proyecto-hero .proyecto-hero__info {
        padding: 40px 30px 0 var(--hero-padding);
    }
    .proyecto-hero .proyecto-hero__logo {
        width: 45%;
        min-height: 100px;
        padding: 20px 25px;
    }
    .proyecto-hero .badge {
        margin-bottom: 18px;
        font-size: 13px;
    }
    .proyecto-hero .proyecto-hero__title {
        font-size: 25px;
        margin-bottom: 15px;
    }
    .proyecto-hero .proyecto-hero__specs {
        margin-top: 30px;
        min-height: 95px;
    }
    .proyecto-hero .proyecto-hero__specs .spec {
        padding-left: 45px;
        background-size: 28px auto;
        background-position: 8px center;
    }
    .proyecto-hero .proyecto-hero__precio-cotiza {
        min-height: 105px;
        grid-template-columns: 43% 57%;
    }
    .proyecto-hero .spec--precio .spec__valor {
        font-size: 29px;
    }
    .proyecto-hero .btn--cotiza {
        padding: 14px 18px;
        font-size: 14px;
    }
    .proyecto-hero .proyecto-hero__presentacion {
        padding: 25px 5px;
        font-size: 14px;
        line-height: 1.5;
    }
    .proyecto-hero .btn--brochure {
        min-height: 60px;
    }
    .proyecto-hero .proyecto-hero__specs {
        grid-template-columns: 1fr 1fr;
    }
    .proyecto-hero .proyecto-hero__specs .spec.spec--dormitorios{
        padding-left: 60px;
        background-position: 15px center;
    }

    .proyecto-galerias {
        gap: 25px;
        padding: 50px 35px 80px;
    }
    .proyecto-galerias .proyecto-galeria__title {
        padding: 0 10px;
        font-size: 20px;
        margin-bottom: 15px;
    }
    .proyecto-galerias::before {
        top: 190px;
        height: 120px;
    }
    .proyecto-galerias .proyecto-galeria__swiper .swiper-button-prev, .proyecto-galerias .proyecto-galeria__swiper .swiper-button-next {
        width: 38px;
        height: 55px;
    }

    .proyecto-mapa {
        grid-template-columns: 45% 55%;
        min-height: 480px;
    }

    .proyecto-mapa .proyecto-mapa__panel {
        padding: 0 30px 45px;
    }
    .proyecto-mapa .proyecto-mapa__acciones {
        gap: 12px;
        min-height: 60px;
        margin-bottom: 30px;
        padding: 12px 15px;
    }
    .proyecto-mapa .accion-mapa {
        gap: 5px;
        font-size: 10px;
    }
    .proyecto-mapa .accion-mapa::before {
        width: 25px;
        height: 25px;
    }
    .proyecto-mapa .proyecto-mapa__title {
        font-size: 22px;
        margin-bottom: 25px;
    }
    .proyecto-mapa .proyecto-mapa__introduccion {
        margin: 20px 0 30px;
    }
    .proyecto-mapa .mapa-tab {
        min-height: 43px;
        padding: 8px 12px;
        font-size: 12px;
    }
    .proyecto-mapa .mapa-tab__icono {
        width: 22px;
        height: 22px;
    }

    .proyecto-tipologia {
        grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
        gap: 30px;
        padding: 60px 30px;
    }
    .proyecto-tipologia .proyecto-tipologia__title {
        font-size: 20px;
        margin-bottom: 18px;
    }
    .proyecto-tipologia .proyecto-tipologia__subtitle {
        font-size: 14px;
        margin-bottom: 25px;
    }
    .proyecto-tipologia .solicitud-grid {
        column-gap: 15px;
        row-gap: 14px;
    }
    .proyecto-tipologia .solicitud-campo > label {
        font-size: 13px;
    }
    .proyecto-tipologia .solicitud-input input, .proyecto-tipologia .solicitud-input select {
        height: 48px;
        font-size: 13px;
    }
    .proyecto-tipologia .solicitud-legal {
        margin-top: 25px;
        font-size: 12px;
    }
    .proyecto-tipologia .solicitud-enviar input[type="submit"] {
        height: 55px;
        font-size: 14px;
    }

    /* En tablet el CSS anterior establece
    una altura de 48px para los inputs */
    .proyecto-tipologia .solicitud-tipo-documento, .proyecto-tipologia .solicitud-tipo-documento > p, .proyecto-tipologia .solicitud-tipo-documento .wpcf7-form-control-wrap, .proyecto-tipologia .solicitud-tipo-documento select {
        height: 48px;
    }
    .proyecto-tipologia .solicitud-input::before, .proyecto-tipologia .solicitud-tipo-documento::after {
        top: 24px;
    }
}

/* =========================================================
   RESPONSIVE — max-width: 1100px
   ========================================================= */
@media (max-width: 1100px) {
    .elartecol {
        display: grid !important;
        grid-template-columns: 1fr 1fr;
        gap: 30px;
    }
    .arteimg {
        grid-column: 1 / -1;
        flex: none;
        max-width: 100%;
        height: 400px;
        align-self: auto;
    }
    .artevivircontent {
        grid-column: 1 / 3;
        flex: none;
        max-width: 100%;
        box-sizing: border-box;
        padding-left: 40px;
        padding-right: 40px;
    }
    .colbeneficios {
        grid-column: 2 / 3;
        flex: none;
        max-width: 100%;
    }
    .beneficios{
        margin-top: -800px;
    }
    .arteimg .wp-block-image img {
        object-fit: contain;
        object-position: left center;
    }
    .lgrupobeneficio{
        float: right;
        margin-right: 40px;
    }
    .grid-proyectos {
        gap: 40px;
        padding: 80px 40px;
    }
    .topslogan{
        font-size: 25px;
        padding: 35px 20px 0px 20px;
        width: 100%;
        max-width: 100%;
        text-align: center;
    }
    .form-filtro-proyectos{
        padding: 90px 25px 40px 25px;
    }
    .footer-menu .menu-item a{
        font-size: 13px;
    }
    .footer-menu .menu-item.cotizalink02 a {
        padding: 18px 20px 18px 20px;
    }

    .proyecto-beneficios {
        padding: 65px 25px 75px;
    }
    .proyecto-beneficios .proyecto-beneficios__title {
        margin-bottom: 45px;
        font-size: 22px;
    }
    .proyecto-beneficios .beneficio {
        padding: 0 10px;
    }
    .proyecto-beneficios .beneficio__icono {
        margin-bottom: 15px;
    }
    .proyecto-beneficios .beneficio__nombre {
        font-size: 15px;
        line-height: 1.35;
    }
    .proyecto-beneficios .beneficio:not(:last-child)::after {
        height: 125px;
    }
    .proyecto-beneficios .beneficio:nth-child(odd)::after {
        top: 80px;
        height: 100px;
    }
}

/* =========================================================
   RESPONSIVE — max-width: 1000px
   ========================================================= */
@media (max-width: 1000px) {
    .card-proyecto__info {
        grid-template-columns: 1fr 150px;
    }
    .spec.card__precio{
        padding: 20px 15px 20px 15px;
    }
    .spec.card__precio .spec__valor{
        font-size: 25px;
    }
    .gridvalores{
        grid-template-columns: 1fr !important;
    }
    .solicitud-columnas {
        grid-template-columns: 1fr; gap: 32px;
    }
    .solicitud-grid{
        grid-template-columns: 1fr; gap: 0px;
    }
}

/* =========================================================
   RESPONSIVE — max-width: 950px
   ========================================================= */
@media (max-width: 950px) {
    .proyecto-tipologia {
        grid-template-columns: minmax(0, 1fr);
        gap: 45px;
        max-width: 750px;
        padding: 50px 30px 65px;
    }
    .proyecto-tipologia .proyecto-tipologia__swiper {
        aspect-ratio: 1.42 / 1;
    }
    .proyecto-tipologia .proyecto-tipologia__form {
        width: 100%;
    }
    .proyecto-tipologia .proyecto-tipologia__title {
        font-size: 24px;
    }
    .proyecto-tipologia .proyecto-tipologia__subtitle {
        font-size: 16px;
    }
    .proyecto-tipologia .solicitud-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: 25px;
    }
}

/* =========================================================
   RESPONSIVE — max-width: 900px
   ========================================================= */
@media (max-width: 900px) {
    .grid-widget-center{
        grid-template-columns: 1fr;
    }
    .footer-column-3{
        padding-top: 0px;
    }
    .footer-column-4{
        padding-bottom: 0px;
    }
}

/* =========================================================
   RESPONSIVE — max-width: 800px
   ========================================================= */
@media (max-width: 800px) {
    .colbeneficios {
        grid-column: 1 / 3;
    }
    .beneficios{
        width: 400px;
        left: calc(100% - 420px);
        margin-top: -820px;
    }
}

/* =========================================================
   RESPONSIVE — max-width: 768px
   ========================================================= */
@media (min-width: 751px) {
    .wp-block-media-text__media img {
        position: sticky !important;
        top: 0px !important;          /* ajusta según la altura de tu header */
        align-self: start !important;   /* clave: sin esto el figure ocupa toda la fila y no hay recorrido para el sticky */
    }
}
@media (max-width: 768px) {
    .elartecol {
        grid-template-columns: 1fr;
    }
    .arteimg, .artevivircontent, .colbeneficios {
        grid-column: 1;
        max-width: 100%;
    }
    .arteimg {
        height: 400px;
    }
    .filtro-proyectos-wrap{
        padding: 20px 20px 20px 20px;
        min-height: 88px;
    }
    .form-filtro-proyectos {
        display: flex;
        flex-wrap: wrap;
        gap: 12px;
        width: 100%;
        clear: both;
        padding: 0px 0px 0px 0px;
        max-height: 0;
        overflow: hidden;
        opacity: 0;
        transition: max-height 0.35s ease, opacity 0.25s ease, padding-top 0.35s ease;
    }
    .form-filtro-proyectos select {
        flex: 1 1 100%;
        min-width: 0;
    }
    .form-filtro-proyectos button[type="submit"] {
        flex: 1 1 100%;
    }
    .card-proyecto__info {
        grid-template-columns: 1fr 175px;
    }
    .spec.card__precio .spec__valor{
        font-size: 30px;
    }
    .grid-proyectos {
        grid-template-columns: 1fr;
        padding: 50px;
        gap: 50px;
        max-width: 620px;
        margin: auto;
    }
    .filtro-proyectos__toggle {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        width: 120px;
        box-sizing: border-box;
        background: #ffffff;
        color: #3e474e;
        border: solid 1px #a4a7a9;
        padding: 14px 20px;
        margin: 0px;
        font-size: 13px;
        font-weight: 300;
        letter-spacing: 0.5px;
        text-transform: uppercase;
        cursor: pointer;
        float: right;
    }
    .filtro-proyectos__toggle-icon {
        width: 18px;
        height: 18px;
        background: url("assets/img/filtericon.png") no-repeat center / contain;
    }
    .filtro-proyectos-wrap.is-abierto .form-filtro-proyectos {
        max-height: 400px;
        opacity: 1;
        padding-top: 25px;
    }
    .topslogan{
        font-size: 20px;
        padding: 35px 0 0 30px;
        text-align: left;
        width: calc(100% - 150px);
    }
    .menu-panel {
        width: 100%;
    }
    .footer-menu .menu {
        flex-direction: column;
        width: 100%;
    }
    .footer-menu .menu-item {
        width: 100%;
    }
    .footer-menu .menu-item a {
        width: 100%;
        font-size: 12px;
    }
    .footer-menu .menu-item.cotizalink02 a {
        padding: 18px 20px;
    }
    .solicitud-grid {
        grid-template-columns: 1fr;
        gap: 18px;
    }
    .solicitud-campo > label {
        margin-left: 0;
        font-size: 15px;
    }
    .solicitud-input input, .solicitud-input select {
        font-size: 15px;
        height: 52px;
    }
    .solicitud-legal {
        margin-top: 28px;
        font-size: 14px;
    }
    .solicitud-enviar input[type="submit"] {
        height: 60px;
        font-size: 15px;
        padding-left: 20px;
    }
    .solicitud-seguridad {
        font-size: 12px;
        align-items: flex-start;
    }
    .proyecto-otros__titulo{
        font-size: 21px;
    }

    .proyecto-hero {
        --hero-padding: 22px;
        display: flex;
        flex-direction: column;
        min-height: 0;
        overflow: hidden;
    }
    /* Imagen superior */
    .proyecto-hero .proyecto-hero__imagen {
        width: 100%;
        height: auto;
        aspect-ratio: 4 / 3;
        flex-shrink: 0;
    }
    .proyecto-hero .proyecto-hero__imagen-img {
        object-position: center center;
    }
    /* Logotipo sobre la imagen */
    .proyecto-hero .proyecto-hero__logo {
        width: 50%;
        max-width: 220px;
        min-height: 80px;
        padding: 16px 20px;
    }
    .proyecto-hero .proyecto-hero__logo img {
        max-width: 100%;
    }
    /* Panel de información */
    .proyecto-hero .proyecto-hero__info {
        width: 100%;
        padding: 28px 22px 0;
    }
    .proyecto-hero .badge {
        margin-bottom: 15px;
        padding: 8px 14px;
        font-size: 12px;
    }
    .proyecto-hero .proyecto-hero__title {
        margin-bottom: 15px;
        font-size: clamp(22px, 5.5vw, 29px);
        line-height: 1.15;
    }
    .proyecto-hero .proyecto-hero__direccion, .proyecto-hero .proyecto-hero__distrito {
        font-size: 14px;
    }
    /* Área y dormitorios */
    .proyecto-hero .proyecto-hero__specs {
        width: calc(100% + 22px);
        margin-top: 28px;
        margin-left: -22px;
        padding-left: 22px;
        min-height: 90px;
    }
    .proyecto-hero .proyecto-hero__specs .spec {
        padding: 15px 8px 15px 38px;
        background-size: 26px auto;
        background-position: 5px center;
    }
    .proyecto-hero .proyecto-hero__specs .spec__label {
        font-size: 11px;
    }
    .proyecto-hero .proyecto-hero__specs .spec__valor {
        font-size: clamp(12px, 3.4vw, 16px);
    }
    /* Precio y botón */
    .proyecto-hero .proyecto-hero__precio-cotiza {
        width: calc(100% + 22px);
        margin-left: -22px;
        padding-left: 22px;
        min-height: 105px;
        grid-template-columns: 45% 55%;
    }
    .proyecto-hero .spec--precio {
        padding: 15px 5px;
    }
    .proyecto-hero .spec--precio .spec__label {
        font-size: 13px;
    }
    .proyecto-hero .spec--precio .spec__valor {
        font-size: clamp(22px, 5.5vw, 30px);
    }
    .proyecto-hero .btn--cotiza {
        min-height: 50px;
        padding: 12px 15px;
        font-size: 12px;
        border-radius: 6px 0 0 6px;
    }
    /* Presentación */
    .proyecto-hero .proyecto-hero__presentacion {
        padding: 25px 0;
        font-size: 14px;
        line-height: 1.6;
    }
    /* Brochure */
    .proyecto-hero .btn--brochure {
        min-height: 58px;
        margin-top: 0;
        margin-left: 0;
        padding: 15px 22px;
        font-size: 12px;
    }

    .proyecto-beneficios {
        padding: 55px 20px 65px;
    }
    .proyecto-beneficios .proyecto-beneficios__title {
        margin-bottom: 40px;
        font-size: 21px;
    }
    .proyecto-beneficios .beneficio {
        padding: 0 8px;
    }
    .proyecto-beneficios .beneficio__icono {
        margin-bottom: 12px;
    }
    .proyecto-beneficios .beneficio__nombre {
        max-width: 160px;
        font-size: 14px;
        line-height: 1.35;
    }
    /* Ocultar los separadores del diseño desktop */
    .proyecto-beneficios .beneficio::after {
        display: none !important;
    }
    /* Si hay cinco beneficios,
    el último queda centrado */
    .proyecto-beneficios .beneficio:last-child:nth-child(odd) {
        grid-column: 1 / -1;
        justify-self: center;
        width: 50%;
    }

    .proyecto-galerias {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        column-gap: 0;
        row-gap: 45px;
        padding: 45px 20px 65px;
    }
    .proyecto-galeria.proyecto-galeria--360 {
        grid-column: 1 / -1;
    }
    .proyecto-galeria.proyecto-galeria--360 iframe {
        height: 400px;
    }
    /* Franja gris adaptada al móvil */
    .proyecto-galerias::before {
        top: 135px;
        height: 100px;
    }
    /* Cada galería ocupa toda la fila */
    .proyecto-galerias .proyecto-galeria {
        width: 100%;
        min-width: 0;
    }
    /* Títulos */
    .proyecto-galerias .proyecto-galeria__title {
        margin-bottom: 15px;
        padding: 0 5px;
        font-size: 20px;
        text-align: left;
    }
    /* Ambos títulos alineados a la izquierda */
    .proyecto-galerias .proyecto-galeria--areas-comunes .proyecto-galeria__title {
        text-align: left;
    }
    /* Imágenes */
    .proyecto-galerias .proyecto-galeria__swiper {
        width: 100%;
        height: auto;
        aspect-ratio: 4 / 3;
        border-radius: 7px;
    }
    /* Flechas */
    .proyecto-galerias .proyecto-galeria__swiper .swiper-button-prev {
        left: 5px;
    }
    .proyecto-galerias .proyecto-galeria__swiper .swiper-button-next {
        right: 5px;
    }
    .proyecto-galerias .proyecto-galeria__swiper .swiper-button-prev, .proyecto-galerias .proyecto-galeria__swiper .swiper-button-next {
        width: 36px;
        height: 50px;
    }
    .proyecto-galerias .proyecto-galeria__swiper .swiper-button-prev::after, .proyecto-galerias .proyecto-galeria__swiper .swiper-button-next::after {
        width: 17px;
        height: 17px;
    }
    /* Lightbox siempre visible en dispositivos táctiles */
    .proyecto-galerias .lightbox-galeria {
        opacity: 1;
        transform: none;
        width: 36px;
        height: 36px;
        right: 12px;
        bottom: 12px;
    }

    .proyecto-mapa {
        display: flex;
        flex-direction: column;
        min-height: 0;
        margin-top: 30px;
    }
    /* Mapa arriba */
    .proyecto-mapa .proyecto-mapa__imagen {
        width: 100%;
        height: auto;
    }
    .proyecto-mapa #mapa-imagen-activa {
        object-position: center center;
    }
    /* Panel debajo del mapa */
    .proyecto-mapa .proyecto-mapa__panel {
        width: 100%;
        padding: 0 22px 45px;
        border-radius: 0;
    }
    /* Accesos de navegación */
    .proyecto-mapa .proyecto-mapa__acciones {
        align-self: center;
        justify-content: center;
        width: calc(100% + 44px);
        max-width: none;
        min-height: 65px;
        margin: 0 -22px 30px;
        padding: 15px 12px;
        gap: 12px;
        border-radius: 0;
    }
    .proyecto-mapa .accion-mapa {
        gap: 5px;
        font-size: 10px;
    }
    .proyecto-mapa .accion-mapa::before {
        width: 24px;
        height: 24px;
    }
    /* Título */
    .proyecto-mapa .proyecto-mapa__title {
        margin-bottom: 22px;
        margin-top: 30px;
        font-size: 22px;
    }
    /* Dirección */
    .proyecto-mapa .proyecto-mapa__direccion, .proyecto-mapa .proyecto-mapa__distrito {
        font-size: 15px;
    }
    /* Introducción */
    .proyecto-mapa .proyecto-mapa__introduccion {
        margin: 22px 0 30px;
        font-size: 14px;
        line-height: 1.6;
    }
    /* Botones */
    .proyecto-mapa .proyecto-mapa__tabs {
        gap: 9px;
    }
    .proyecto-mapa .mapa-tab {
        flex: 0 1 auto;
        min-height: 44px;
        padding: 9px 13px;
        font-size: 12px;
        gap: 7px;
    }
    .proyecto-mapa .mapa-tab__icono {
        width: 22px;
        height: 22px;
    }
    .proyecto-mapa .proyecto-mapa__listas {
    order: -2;
    margin-top: 1.5rem;
    margin-bottom: 1.5rem; /* antes 50px, ahora que va arriba del h2 */
    }
    .proyecto-mapa .proyecto-mapa__tabs{
        order: -1;
    }

    .proyecto-tipologia {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 35px;
        padding: 45px 20px 60px;
    }
    /* Plano */
    .proyecto-tipologia .proyecto-tipologia__plano {
        width: 100%;
        border-radius: 7px;
    }
    .proyecto-tipologia .proyecto-tipologia__swiper {
        aspect-ratio: 1 / 1;
    }
    /* Mantener las imágenes completas */
    .proyecto-tipologia .proyecto-tipologia__swiper .swiper-slide > img {
        object-fit: contain;
    }
    /* Mostrar flechas en dispositivos táctiles */
    .proyecto-tipologia .proyecto-tipologia__swiper .swiper-button-prev, .proyecto-tipologia .proyecto-tipologia__swiper .swiper-button-next {
        opacity: 1;
        width: 35px;
        height: 45px;
    }
    /* Botón ampliar plano */
    .proyecto-tipologia .lightbox-plano {
        opacity: 1;
        width: 36px;
        height: 36px;
    }
    /* Formulario */
    .proyecto-tipologia .proyecto-tipologia__title {
        margin-bottom: 15px;
        font-size: 21px;
    }
    .proyecto-tipologia .proyecto-tipologia__subtitle {
        margin-bottom: 28px;
        font-size: 14px;
    }
    /* Una columna de campos */
    .proyecto-tipologia .solicitud-campo > label {
        margin-left: 5px;
        font-size: 14px;
    }
    .proyecto-tipologia .solicitud-input input, .proyecto-tipologia .solicitud-input select {
        height: 52px;
        font-size: 14px;
    }
    .proyecto-tipologia .solicitud-enviar input[type="submit"] {
        height: 58px;
        padding-left: 20px;
        font-size: 14px;
    }
    .proyecto-tipologia .solicitud-seguridad {
        font-size: 12px;
    }

    .proyecto-tipologia .solicitud-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 18px;
        row-gap: 18px;
        column-gap: 0;
    }
    .proyecto-tipologia .solicitud-legal {
        margin-top: 28px;
        font-size: 13px;
    }

    .proyecto-tipologia .solicitud-tipo-documento::after {
        right: 17px;
    }
    .proyecto-tipologia .solicitud-documento .solicitud-input input {
        padding-right: 80px;
    }

    .proyecto-tipologia .solicitud-tipo-documento, .proyecto-tipologia .solicitud-tipo-documento > p, .proyecto-tipologia .solicitud-tipo-documento .wpcf7-form-control-wrap, .proyecto-tipologia .solicitud-tipo-documento select {
        height: 52px;
    }
    .proyecto-tipologia .solicitud-input::before, .proyecto-tipologia .solicitud-tipo-documento::after {
        top: 26px;
    }
    .proyecto-tipologia .solicitud-tipo-documento {
        width: 70px;
    }
    .wp-block-media-text.is-stacked-on-mobile {
        grid-template-columns: 100% !important;
    }
    .wp-block-media-text.is-stacked-on-mobile > .wp-block-media-text__media {
        grid-column: 1;
        grid-row: 1;
    }
    .wp-block-media-text.is-stacked-on-mobile > .wp-block-media-text__content {
        grid-column: 1;
        grid-row: 2;
    }
    .contesideimage .wp-block-media-text__content{
        padding: 70px 20px;
    }
}

/* =========================================================
   RESPONSIVE — max-width: 740px
   ========================================================= */
@media (max-width: 740px) {
    .footer-widgets{
        grid-template-columns: 1fr;
    }
    .footer-column.footer-column-1 {
        border-right: none;
        padding-bottom: 0px;
        padding-top: 40px;
    }
    .footer-column.footer-column-2, .footer-column-6 {
        padding-top: 0px;
    }
    .footer-column.footer-column-5 {
        padding-bottom: 0px;
    }
}

/* =========================================================
   RESPONSIVE — max-width: 680px
   ========================================================= */
@media (max-width: 680px) {
    .topslogan{
        padding: 22px 0 0 30px;
    }
}

/* =========================================================
   RESPONSIVE — max-width: 640px
   ========================================================= */
@media (max-width: 640px) {
    .grid-proyectos {
        grid-template-columns: 1fr;
        padding: 50px 35px;
        gap: 60px;
    }
}

/* =========================================================
   RESPONSIVE — max-width: 600px
   ========================================================= */
@media (max-width: 600px) {
    .proyecto-whatsapp {
        padding: 45px 20px;
    }
    .proyecto-whatsapp__texto {
        font-size: 13px;
    }
    .proyecto-whatsapp__texto br {
        display: none;
    }
    .proyecto-hero .proyecto-hero__specs::before{
        width: 95px;
    }
    .card-entregado {
		max-width: 100%;
		border-radius: 14px;
	}

	.info-entregado {
		padding: 21px 22px 24px;
	}

	.info-entregado h3 {
		font-size: 22px;
	}
}

/* =========================================================
   RESPONSIVE — max-width: 560px
   ========================================================= */
@media (max-width: 560px) {
    .cabecera-sitio {
        flex-wrap: wrap;
    }
    .footer-menu {
        order: 3;
        width: 100%;
        flex-basis: 100%;
    }
    .footer-menu .menu {
        flex-direction: row;
        width: 100%;
    }
    .footer-menu .menu-item {
        width: 50%;
    }
    .footer-menu .menu-item:first-child {
        width: 55%;
    }
    .footer-menu .menu-item:last-child {
        width: 45%;
    }
    .footer-menu .menu-item a {
        width: 100%;
        justify-content: center;
        text-align: center;
        background-color: #3e474e;
        color: #fff;
        padding: 18px 10px 18px 10px;
    }
    .footer-menu .menu-item a:hover{
        background-color: #c1c3c4;
        color: #e4e2e2;
    }
    .marca-sitio{
        width: 100%;
        box-sizing: border-box;
        margin: 40px 0 40px 0;
        text-align: center;
        height: 95px;
    }
    .marca-sitio .custom-logo-link{
        width: 200px;
        display: block;
        margin: 0 auto;
    }
    .marca-sitio .custom-logo{
        width: 200px;
        margin: 0 auto;
    }
    .marca-sitio .custom-logo.logoopen{
        width: 200px;
        left: 50%;
        transform: translateX(-50%);
    }
    .primary-menu-list > li{
        max-width: 100%;
        padding-left: 0px;
        padding-right: 0px;
        text-align: center;
    }
    .primary-menu-list{
        max-width: 100%;
    }
    .cotizalink01{
        transform: rotate(-90deg);
        right: -35px;
        top: 82px;
    }
    .beneficios{
        margin-top: 0px;
        width: 100%;
        left: 0px;
    }
    .lgrupobeneficio{
        float: none;
        margin: 20px 10px 40px 35px;
    }
    .arteimg{
        height: auto;
    }
    .artevivircontent{
        padding-top: 0px;
        padding-bottom: 0px;
    }
    .artevivircontent h2, .homereferido h2{
        font-size: 25px;
        line-height: 35px;
    }
    .homereferido{
        margin-top: 0px;
    }
    .proyecto-hero .proyecto-hero__imagen{
        aspect-ratio: unset;
    }
    .proyecto-hero .proyecto-hero__imagen-img{
        position: relative;
        top: auto;
        left: auto;
    }
    .proyecto-hero .proyecto-hero__logo {
        width: 100%;
        max-width: 100%;
        padding: 10px 0px;
        box-sizing: border-box;
        position: relative;
        top: auto;
        left: auto;
    }
    .proyecto-hero .proyecto-hero__logo img{
        height: 60px;
    }
}

/* =========================================================
   RESPONSIVE — max-width: 500px
   ========================================================= */
@media (max-width: 500px) {
    .areadormi{
        display: grid;
        grid-template-columns: 1fr 1fr;
    }
    .card-proyecto__imagen .badge{
        padding: 0 15px 10px 15px;
    }
    .card-proyecto__area{
        background-color: #e9ebed;
        border-radius: 10px 0 0 10px;
    }
    .card-proyecto__dormitorios{
        background-color: #e9ebed;
        border-radius: 0 10px 10px 0;
    }
    .card-proyecto__info {
        grid-template-columns: 1fr;
        padding: 0;
    }
    .card-proyecto__logo{
        text-align: center;
        padding: 0;
        grid-column: 1 / -1;
        order: -1;
    }
    .card-proyecto__logo img{
        width: auto;
        height: 70px;
        position: absolute;
        top: 0px;
        left: 50%;
        transform: translateX(-50%) translateY(-150px);
    }
    .spec.card__precio{
        padding-top: 8px;
        text-align: center;
        border-radius: 0px;
    }
    .card-proyecto__area, .card-proyecto__dormitorios{
        display: flex;
        align-items: center;
    }
    .card-proyecto__area .spec{
        padding: 15px 15px 20px 65px;
    }
    .card-proyecto__dormitorios .spec{
        padding: 15px 15px 20px 65px;
        background-position: 15px 14px;
    }
    .site-footer{
        background-size: 186% auto;
    }
}

/* =========================================================
   RESPONSIVE — max-width: 460px
   ========================================================= */
@media (max-width: 460px) {
    .topslogan{
        font-size: 18px;
    }
    .marca-sitio{
        text-align: right;
    }
    .marca-sitio .custom-logo-link{
        margin: 0 25px 0 0;
        float: right;
    }
    .marca-sitio .custom-logo.logoopen{
        left: auto;
        right: 25px;
        transform: none;
    }
    .primary-menu-list > li > a{
        text-align: left;
        padding: 10px 35px;
        box-sizing: border-box;
    }
    .cotizalink01{
        top: 520px !important;
        bottom: auto;
        left: 15px;
        right: auto;
        transform: none;
        width: calc(100% - 30px);
        font-size: 16px;
        text-align: center;
    }
    .homereferido h2{
        font-size: 23px;
        line-height: 25px;
    }
    .lbotnblanco a{
        font-size: 14px;
        width: 100%;
        text-align: center;
        box-sizing: border-box;
    }
    .card-proyecto__area .spec,
    .card-proyecto__dormitorios .spec{
        padding: 55px 15px 15px 15px;
        text-align: center;
        background-position: center 10px;
        width: 100%;
    }
    .card-proyecto__dormitorios .spec{
        background-position: center 18px;
    }
}

/* =========================================================
   RESPONSIVE — max-width: 433px
   ========================================================= */
@media (max-width: 433px) {
    .topslogan{
        padding-top: 13px;
        padding-left: 22px;
    }
}

/* =========================================================
   RESPONSIVE — max-width: 420px
   ========================================================= */
@media (max-width: 420px) {
    .card-proyecto__direwrap{
        text-align: center;
    }
    .proyecto-mapa .accion-mapa {
    font-size: 0; /* oculta el texto sin quitarlo del DOM (accesible) */
    gap: 0;
    }
    .proyecto-mapa .accion-mapa::before {
        width: 40px;
        height: 40px;
    }
    .proyecto-mapa .proyecto-mapa__acciones {
        gap: 30px;
    }
    .card-proyecto__title::before{
        margin-left: 50%;
        transform: translateX(-50%);
    }
}

/* =========================================================
   RESPONSIVE — max-width: 380px
   ========================================================= */
@media (max-width: 380px) {
    .proyecto-hero .proyecto-hero__specs .spec {
        padding-left: 32px;
        background-size: 22px auto;
    }
    .proyecto-hero .proyecto-hero__specs .spec__valor {
        font-size: 12px;
    }
    .proyecto-hero .spec--precio .spec__valor {
        font-size: 21px;
    }
    .proyecto-hero .btn--cotiza {
        font-size: 13px;
        padding-left: 20px;
    }

    .proyecto-beneficios {
        padding: 45px 15px 55px;
    }
    .proyecto-beneficios .beneficio{
        width: 49%;
        box-sizing: border-box;
        margin: 0;
    }
    .proyecto-beneficios .beneficio__icono {
        width: 75px;
        height: 75px;
    }
    .proyecto-beneficios .beneficio__nombre {
        font-size: 13px;
    }

    .proyecto-galerias {
        padding: 40px 15px 55px;
        row-gap: 35px;
    }
    .proyecto-galerias .proyecto-galeria__title {
        font-size: 18px;
    }
    .proyecto-galerias .proyecto-galeria__swiper {
        aspect-ratio: 1 / 1;
    }

    .proyecto-mapa .proyecto-mapa__panel {
        padding-right: 15px;
        padding-left: 15px;
    }
    .proyecto-mapa .proyecto-mapa__acciones {
        width: calc(100% + 30px);
        margin-right: -15px;
        margin-left: -15px;
        gap: 10px;
    }
    .proyecto-tipologia {
        padding: 35px 15px 50px;
    }
    .proyecto-tipologia .proyecto-tipologia__swiper {
        aspect-ratio: 1 / 1.1;
    }
    .proyecto-tipologia .proyecto-tipologia__title {
        font-size: 19px;
    }
    .proyecto-tipologia .solicitud-campo > label {
        font-size: 13px;
    }
    .mapa-lista li{
        font-size: 12px;
    }
}

.contenidolegales ol.wp-block-list {
  list-style: none;
  counter-reset: cookies;
  padding: 0;
  margin: 1.5rem 0;
}

.contenidolegales ol.wp-block-list li {
  counter-increment: cookies;
  position: relative;
  padding: 18px 20px 18px 70px;
  margin-bottom: 14px;
  background: #fff;
  border: 1px solid #e6e6e6;
  border-left: 4px solid currentColor;
  border-radius: 8px;
  line-height: 1.6;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.contenidolegales ol.wp-block-list li:hover {
  transform: translateX(4px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08);
}

.contenidolegales ol.wp-block-list li::before {
  content: counter(cookies);
  position: absolute;
  left: 18px;
  top: 50%;
  transform: translateY(-50%);
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #1a1a1a;
  color: #fff;
  font-weight: 700;
  font-size: 16px;
}

.contenidolegales ol.wp-block-list li strong {
  display: block;
  margin-bottom: 4px;
  font-size: 1.05em;
}
.contenidolegales ul.wp-block-list {
  list-style: none;
  padding: 0;
  margin: 1.2rem 0;
}

.contenidolegales ul.wp-block-list li {
  position: relative;
  padding: 4px 0 4px 28px;
  line-height: 1.6;
  border-bottom: 1px solid #e2e2e2;
}

.contenidolegales ul.wp-block-list li:last-child {
  border-bottom: none;
}

.contenidolegales ul.wp-block-list li::before {
  content: "";
  position: absolute;
  left: 4px;
  top: 15px;
  width: 4px;
  height: 4px;
  border-radius: 2px;
  background: #6d6d6d;
}

@media (max-width: 600px) {
  .contenidolegales ol.wp-block-list li {
    padding: 16px 16px 16px 60px;
  }
  .contenidolegales ol.wp-block-list li::before {
    left: 14px;
    width: 30px;
    height: 30px;
    font-size: 14px;
  }
}