.modal-visita-overlay{
position:fixed;
inset:0;
background:rgba(0,0,0,0.48);
display:flex;
align-items:center;
justify-content:center;
z-index:9999;
padding:12px;
opacity:0;
visibility:hidden;
pointer-events:none;
transition:opacity 180ms ease, visibility 180ms ease;
}

.modal-visita-overlay[hidden]{
display:none !important;
}

.modal-visita-overlay.is-open{
opacity:1;
visibility:visible;
pointer-events:auto;
}

body.modal-open{
overflow:hidden;
}

.modal-visita{
position:relative;
width:min(92vw, 680px);
max-height:none;
overflow:visible;
background:rgba(255,255,255,0.94);
backdrop-filter:blur(5px);
-webkit-backdrop-filter:blur(5px);
border:1px solid rgba(255,255,255,0.55);
border-radius:16px;
padding:24px 28px;
box-shadow:0 18px 50px rgba(0,0,0,0.16);
transform:translateY(8px);
opacity:0;
transition:transform 180ms ease, opacity 180ms ease;
}

.modal-visita-overlay.is-open .modal-visita{
transform:translateY(0);
opacity:1;
}

.modal-visita__cerrar{
position:absolute;
top:4px;
right:4px;
width:44px;
height:44px;
min-width:44px;
min-height:44px;
padding:0;
border:0;
background:transparent;
color:#1f3a5f;
font-size:20px;
line-height:1;
cursor:pointer;
display:inline-flex;
align-items:center;
justify-content:center;
border-radius:8px;
}

.modal-visita__cerrar:hover{
background:rgba(31,58,95,0.08);
}

.modal-visita__title{
margin:0 36px 6px 0;
font-size:clamp(1.25rem, 2.2vw, 1.6rem);
line-height:1.2;
font-weight:700;
color:#1f3a5f;
}

.modal-visita__intro{
margin:0 0 16px;
font-size:15px;
line-height:1.45;
color:#555;
}

.modal-visita__form{
display:grid;
grid-template-columns:repeat(2, minmax(0, 1fr));
gap:10px 14px;
}

.modal-visita__field{
display:flex;
flex-direction:column;
gap:4px;
min-width:0;
}

.modal-visita__field--full{
grid-column:1 / -1;
}

.modal-visita__split{
display:grid;
grid-template-columns:1fr 1fr;
gap:10px 10px;
}

.modal-visita__form label,
.visit-development span{
font-size:13px;
font-weight:600;
margin-bottom:4px;
color:#1f3a5f;
}

.modal-visita__form input:not([type="hidden"]),
.modal-visita__form select{
min-height:42px;
height:42px;
padding:8px 12px;
border-radius:8px;
border:1px solid rgba(0,0,0,0.18);
font-size:15px;
font-family:inherit;
width:100%;
box-sizing:border-box;
background:#fff;
color:#222;
}

.modal-visita__form input:focus,
.modal-visita__form select:focus{
outline:2px solid #1f3a5f;
outline-offset:2px;
border-color:#1f3a5f;
}

.visit-development{
display:flex;
flex-direction:column;
justify-content:center;
min-height:42px;
padding:2px 0 0;
}

.visit-development strong{
font-size:15px;
font-weight:700;
line-height:1.25;
color:#1f3a5f;
}

.modal-visita__confirmacion{
margin:0;
font-size:12px;
line-height:1.4;
color:#555;
opacity:0.8;
}

.modal-visita__error{
margin:0;
font-size:13px;
line-height:1.4;
color:#a1262d;
}

.modal-visita__submit{
grid-column:1 / -1;
margin-top:14px;
min-height:46px;
padding:0 22px;
border:0;
border-radius:10px;
background:#1f3a5f;
color:#fff;
font-size:16px;
font-weight:700;
cursor:pointer;
font-family:inherit;
transition:background 0.2s ease, opacity 0.2s ease;
}

.modal-visita__submit:hover{
background:#2a5080;
}

.modal-visita__submit:disabled{
opacity:0.72;
cursor:wait;
}

.modal-visita__privacy{
grid-column:1 / -1;
margin:7px 0 0;
font-size:12px;
line-height:1.4;
opacity:0.7;
}

.modal-visita__exito{
text-align:center;
padding:8px 4px 0;
}

.modal-visita__exito-title{
margin:8px 0 10px;
font-size:1.4rem;
font-weight:700;
color:#1f3a5f;
}

.modal-visita__exito p{
margin:0 0 18px;
font-size:16px;
line-height:1.5;
color:#444;
}

.modal-visita__exito-cerrar{
min-height:46px;
padding:0 28px;
border:0;
border-radius:10px;
background:#1f3a5f;
color:#fff;
font-size:16px;
font-weight:700;
cursor:pointer;
font-family:inherit;
}

.modal-visita__exito-cerrar:hover{
background:#2a5080;
}

.btn-agendar-visita{
display:inline-flex;
align-items:center;
justify-content:center;
min-height:48px;
padding:0 22px;
border-radius:10px;
border:1px solid #1f3a5f;
background:#1f3a5f;
color:#fff;
font-size:16px;
font-weight:700;
cursor:pointer;
font-family:inherit;
text-decoration:none;
box-sizing:border-box;
appearance:none;
-webkit-appearance:none;
}

.btn-agendar-visita:hover{
background:#2a5080;
border-color:#2a5080;
}

header .btn-agendar-visita,
.hero .btn-agendar-visita{
margin-top:18px;
width:auto;
max-width:100%;
}

.asesor .btn-agendar-visita{
margin:16px auto 0;
}

.asesoria-contacto__acciones .btn-agendar-visita{
width:auto;
max-width:none;
font-family:inherit;
}

@media (max-width: 600px){
.modal-visita{
width:calc(100vw - 24px);
max-height:92vh;
overflow-y:auto;
padding:22px 18px;
}

.modal-visita__form{
grid-template-columns:1fr;
}

.modal-visita__form input:not([type="hidden"]),
.modal-visita__form select{
min-height:46px;
height:46px;
font-size:16px;
}

.modal-visita__submit{
width:100%;
}

.btn-agendar-visita{
width:100%;
max-width:360px;
}

.asesoria-contacto__acciones .btn-agendar-visita{
width:100%;
}
}

@media (max-height: 700px){
.modal-visita{
max-height:calc(100vh - 24px);
overflow-y:auto;
}
}

@media (prefers-reduced-motion: reduce){
.modal-visita-overlay,
.modal-visita{
transition:none;
}

.modal-visita{
transform:none;
}
}
