/* Vibes Temporada · parte pública.
   Colores de marca en variables: el tema nuevo puede sobrescribirlas. */
:root {
	--vt-texto: #17181a;
	--vt-suave: #5d6168;
	--vt-acento: #b09162;
	--vt-acento-osc: #8f7449;
	--vt-fondo: #faf9f7;
	--vt-borde: #e4e0d9;
	--vt-ok: #1a7f37;
	--vt-error: #b42318;
	--vt-ocupado: #d9d5ce;
	--vt-radio: 10px;
}

/* Galería */
.vt-galeria-pub { display: grid; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: clamp(150px, 20vw, 250px) clamp(150px, 20vw, 250px); gap: 8px; margin: 0 0 1.5rem; position: relative; border-radius: var(--vt-radio); overflow: hidden; }
.vt-galeria-pub .vt-foto { display: block; overflow: hidden; background: var(--vt-borde); }
.vt-galeria-pub .vt-foto img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; }
.vt-galeria-pub .vt-foto:hover img { transform: scale(1.03); }
.vt-galeria-pub .vt-foto-principal { grid-row: 1 / span 2; }
.vt-galeria-pub .vt-foto-oculta { display: none; }
.vt-galeria-envoltura { position: relative; margin: 0 0 1.5rem; }
.vt-galeria-envoltura .vt-galeria-pub { margin: 0; }
.vt-galeria-pub .vt-foto { cursor: zoom-in; }
.vt-mas-fotos { position: absolute; right: 12px; bottom: 12px; background: #fff; color: var(--vt-texto); padding: 8px 14px; border: 0; border-radius: 999px; font: inherit; font-size: .88rem; font-weight: 700; box-shadow: 0 2px 10px rgba(0,0,0,.18); cursor: pointer; }
.vt-mas-fotos:hover { background: #fff8e8; }
.vt-contador-movil { display: none; }
/* Móvil: carrusel deslizable con todas las fotos */
@media (max-width: 700px) {
	.vt-galeria-pub { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 8px; grid-template: none; scrollbar-width: none; -webkit-overflow-scrolling: touch; border-radius: var(--vt-radio); }
	.vt-galeria-pub::-webkit-scrollbar { display: none; }
	.vt-galeria-pub .vt-foto, .vt-galeria-pub .vt-foto-oculta { display: block !important; flex: 0 0 88%; height: 260px; scroll-snap-align: center; border-radius: 14px; }
	.vt-galeria-pub .vt-foto:only-of-type { flex-basis: 100%; }
	.vt-galeria-pub .vt-foto img { transition: none; }
	.vt-galeria-envoltura .vt-mas-fotos { display: none; }
	.vt-contador-movil { display: block; position: absolute; right: 12px; bottom: 12px; z-index: 2; background: rgba(23,24,26,.7); color: #fff; padding: 4px 10px; border-radius: 999px; font-size: .8rem; font-weight: 700; pointer-events: none; }
}

/* Visor de fotos a pantalla completa */
.vt-visor { position: fixed; inset: 0; z-index: 100000; background: rgba(15,16,18,.96); display: flex; flex-direction: column; color: #fff; touch-action: pan-y; }
.vt-visor[hidden] { display: none; }
.vt-visor-barra { display: flex; justify-content: space-between; align-items: center; padding: 14px 16px; font-weight: 700; }
.vt-visor-cerrar, .vt-visor-flecha { border: 0; background: rgba(255,255,255,.14); color: #fff; width: 46px; height: 46px; border-radius: 999px; font-size: 1.5rem; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.vt-visor-cerrar:hover, .vt-visor-flecha:hover { background: rgba(255,255,255,.28); }
.vt-visor-escena { flex: 1; position: relative; display: flex; align-items: center; justify-content: center; min-height: 0; padding: 0 70px; }
.vt-visor-escena img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 8px; user-select: none; -webkit-user-drag: none; transition: opacity .2s; }
.vt-visor-flecha { position: absolute; top: 50%; transform: translateY(-50%); }
.vt-visor-ant { left: 14px; }
.vt-visor-sig { right: 14px; }
.vt-visor-miniaturas { display: flex; gap: 6px; overflow-x: auto; padding: 12px 16px 18px; justify-content: safe center; scrollbar-width: none; }
.vt-visor-miniaturas::-webkit-scrollbar { display: none; }
.vt-visor-miniaturas button { flex: 0 0 64px; height: 48px; padding: 0; border: 2px solid transparent; border-radius: 6px; overflow: hidden; opacity: .55; cursor: pointer; background: none; }
.vt-visor-miniaturas button.activa { border-color: #fff; opacity: 1; }
.vt-visor-miniaturas img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 700px) {
	.vt-visor-escena { padding: 0; }
	.vt-visor-flecha { width: 40px; height: 40px; background: rgba(0,0,0,.35); }
	.vt-visor-ant { left: 8px; } .vt-visor-sig { right: 8px; }
}
body.vt-visor-abierto { overflow: hidden; }

/* Cabecera y datos */
.vt-cabecera { display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem 1.5rem; margin-bottom: 1rem; }
.vt-precio-desde { margin: 0; font-size: 1.05rem; }
.vt-precio-desde strong { font-size: 1.6rem; color: var(--vt-texto); }
.vt-precio-desde span { color: var(--vt-suave); }
.vt-zona { margin: 0; color: var(--vt-suave); }
.vt-zona a { color: inherit; }
.vt-datos { list-style: none; display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 0; width: 100%; }
.vt-datos li { background: var(--vt-fondo); border: 1px solid var(--vt-borde); border-radius: 999px; padding: .3rem .9rem; font-size: .92rem; }
.vt-h2 { margin-top: 2rem; }
.vt-caracteristicas { border-collapse: collapse; width: 100%; max-width: 560px; }
.vt-caracteristicas th, .vt-caracteristicas td { text-align: left; padding: .45rem 0; border-bottom: 1px solid var(--vt-borde); font-weight: normal; }
.vt-caracteristicas th { color: var(--vt-suave); width: 45%; }
.vt-energia { display: inline-block; min-width: 1.6em; text-align: center; border-radius: 4px; color: #fff; background: #888; padding: 0 .4em; font-weight: 700; }
.vt-energia-a { background: #00843d; } .vt-energia-b { background: #4cb848; } .vt-energia-c { background: #bfd730; color: #222; }
.vt-energia-d { background: #fff200; color: #222; } .vt-energia-e { background: #fdb913; color: #222; } .vt-energia-f { background: #f37021; } .vt-energia-g { background: #ed1c24; }
.vt-equipamiento { list-style: none; padding: 0; columns: 3 180px; margin: 0; }
.vt-equipamiento li { padding: .25rem 0 .25rem 1.4rem; position: relative; break-inside: avoid; }
.vt-equipamiento li::before { content: ""; position: absolute; left: 0; top: .7em; width: .7rem; height: .4rem; border-left: 2px solid var(--vt-acento); border-bottom: 2px solid var(--vt-acento); transform: rotate(-45deg); }
.vt-video { margin: 1.5rem 0; aspect-ratio: 16/9; }
.vt-video iframe { width: 100%; height: 100%; }

/* Ficha en dos columnas con tarjeta fija */
.vt-ficha-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: clamp(1.5rem, 4vw, 3.5rem); align-items: start; }
.vt-ficha-aside { position: sticky; top: 96px; }
.admin-bar .vt-ficha-aside { top: 128px; }
.vt-resumen { background: #fff; border: 1px solid var(--vt-borde); border-radius: var(--vt-radio); padding: 1.5rem; box-shadow: 0 10px 30px rgba(23,24,26,.08); }
.vt-resumen-precio { margin: 0 0 .75rem; color: var(--vt-suave); }
.vt-resumen-precio strong { font-size: 1.9rem; color: var(--vt-texto); font-weight: 600; }
.vt-resumen-lista { list-style: none; padding: 0; margin: 0 0 1.25rem; font-size: .92rem; color: var(--vt-suave); }
.vt-resumen-lista li { padding: .45rem 0; border-bottom: 1px solid var(--vt-borde); }
.vt-resumen-lista li:last-child { border-bottom: 0; }
.vt-resumen-texto { color: var(--vt-suave); font-size: .92rem; }
.vt-boton-bloque { display: block; text-align: center; }
.vt-ficha-main .vt-cabecera .vt-precio-desde { display: none; }
@media (max-width: 960px) {
	.vt-ficha-grid { grid-template-columns: 1fr; }
	.vt-ficha-aside { position: static; order: -1; }
	.vt-ficha-main .vt-cabecera .vt-precio-desde { display: block; }
	.vt-resumen { box-shadow: none; }
}

/* Buscador (portada) */
.vt-buscador { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) auto; gap: .5rem; align-items: end; background: #fff; border-radius: 18px; padding: .75rem; box-shadow: 0 18px 50px rgba(23,24,26,.25); color: var(--vt-texto); }
.vt-buscador { width: 100%; box-sizing: border-box; }
.vt-buscador label, .vt-buscador input, .vt-buscador select { min-width: 0; }
.vt-buscador label { display: flex; flex-direction: column; gap: .15rem; padding: .45rem .9rem; border-radius: 12px; font-size: .78rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--vt-suave); }
.vt-buscador label:hover { background: var(--vt-fondo); }
.vt-buscador input, .vt-buscador select { border: 0; background: transparent; font: inherit; font-size: 1rem; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--vt-texto); padding: .2rem 0; width: 100%; outline: none; }
.vt-buscador .vt-boton { height: 100%; min-height: 3.4rem; padding: 0 2rem; border-radius: 12px; }
.vt-buscador:has(select[name=vt_zona]) { grid-template-columns: repeat(4, minmax(0, 1fr)) auto; }
@media (max-width: 760px) {
	.vt-buscador, .vt-buscador:has(select[name=vt_zona]) { grid-template-columns: 1fr 1fr; }
	.vt-buscador .vt-boton { grid-column: 1 / -1; min-height: 3rem; }
}

/* Agenda sin abrir (pisos publicados sin precio) */
.vt-agenda-cerrada-chip { display: inline-block; margin: 0; padding: .3rem .9rem; border-radius: 999px; background: #efece6; color: var(--vt-suave); font-size: .9rem; letter-spacing: .02em; }
.vt-tarjeta-precio .vt-agenda-cerrada-chip { font-size: .85rem; }
.vt-agenda-cerrada { text-align: center; }
.vt-agenda-cerrada p { max-width: 520px; margin-left: auto; margin-right: auto; color: var(--vt-suave); }
.vt-cal-mes h4 .vt-sin-abrir { color: #a39d93; font-style: italic; }

/* Botones */
.vt-boton, .vt-reserva button.vt-boton { display: inline-block; background: var(--vt-texto); color: #fff; border: 0; border-radius: 999px; padding: .85rem 1.6rem; font-size: 1rem; cursor: pointer; text-decoration: none; transition: background .2s; }
.vt-boton:hover { background: var(--vt-acento-osc); color: #fff; }
.vt-boton[disabled] { opacity: .5; cursor: not-allowed; }
.vt-boton-sec { display: inline-block; background: transparent; color: var(--vt-texto); border: 1px solid var(--vt-texto); border-radius: 999px; padding: .6rem 1.2rem; text-decoration: none; cursor: pointer; font-size: .95rem; }
.vt-boton-sec:hover { background: var(--vt-fondo); }

/* Reserva */
.vt-reserva { margin-top: 2.5rem; padding: clamp(1rem, 3vw, 2rem); background: var(--vt-fondo); border: 1px solid var(--vt-borde); border-radius: var(--vt-radio); }
.vt-reserva .vt-h2 { margin-top: 0; }
.vt-nota-min { color: var(--vt-suave); font-size: .92rem; }
.vt-calendario { margin: 1rem 0 1.5rem; }
.vt-cal-nav { display: flex; justify-content: space-between; align-items: center; margin-bottom: .5rem; }
.vt-cal-nav button { background: #fff; border: 1px solid var(--vt-borde); border-radius: 999px; width: 2.2rem; height: 2.2rem; cursor: pointer; font-size: 1.1rem; line-height: 1; color: var(--vt-texto); }
.vt-cal-nav button[disabled] { opacity: .35; cursor: default; }
.vt-cal-leyenda { display: flex; gap: 1rem; font-size: .8rem; color: var(--vt-suave); }
.vt-cal-leyenda i { display: inline-block; width: .8rem; height: .8rem; border-radius: 3px; vertical-align: -1px; margin-right: .3rem; }
.vt-cal-meses { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 1rem; }
.vt-cal-mes { background: #fff; border: 1px solid var(--vt-borde); border-radius: 8px; padding: .6rem; }
.vt-cal-mes h4 { margin: 0 0 .4rem; font-size: .95rem; display: flex; justify-content: space-between; }
.vt-cal-mes h4 small { color: var(--vt-suave); font-weight: normal; text-transform: none; }
.vt-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; font-size: .8rem; text-align: center; }
.vt-cal-grid .vt-dow { color: var(--vt-suave); font-size: .7rem; padding-bottom: 2px; }
.vt-cal-grid button { border: 0; background: transparent; padding: .35rem 0; border-radius: 4px; cursor: pointer; color: var(--vt-texto); font: inherit; }
.vt-cal-grid button:hover:not([disabled]) { background: var(--vt-borde); }
.vt-cal-grid button[disabled] { cursor: default; color: #aaa; }
.vt-cal-grid .vt-ocup { background: var(--vt-ocupado); color: #8a857c; text-decoration: line-through; }
.vt-cal-grid .vt-sel { background: var(--vt-acento); color: #fff; }
.vt-cal-grid .vt-rango { background: #eadfcc; }

.vt-fechas { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; max-width: 480px; }
.vt-form label { display: flex; flex-direction: column; gap: .3rem; font-size: .9rem; color: var(--vt-suave); }
.vt-form input[type=text], .vt-form input[type=email], .vt-form input[type=tel], .vt-form input[type=date], .vt-form input[type=number], .vt-form select, .vt-form textarea { font: inherit; color: var(--vt-texto); background: #fff; border: 1px solid var(--vt-borde); border-radius: 8px; padding: .65rem .75rem; width: 100%; box-sizing: border-box; }
.vt-form input:focus, .vt-form select:focus, .vt-form textarea:focus { outline: 2px solid var(--vt-acento); outline-offset: 1px; border-color: var(--vt-acento); }
.vt-extras { border: 0; padding: 0; margin: 1rem 0 0; }
.vt-extras legend { font-weight: 600; margin-bottom: .4rem; }
.vt-extras label, .vt-form .vt-check { flex-direction: row; align-items: center; gap: .5rem; color: var(--vt-texto); }
.vt-presupuesto { margin: 1.25rem 0; background: #fff; border: 1px solid var(--vt-borde); border-radius: 8px; padding: 1rem 1.25rem; }
.vt-presupuesto .vt-placeholder { margin: 0; color: var(--vt-suave); }
.vt-presupuesto .vt-errores { color: var(--vt-error); margin: 0; padding-left: 1.1rem; }
.vt-desglose td { font-size: .95rem; }
.vt-desglose .vt-total td { font-size: 1.1rem; }
.vt-desglose .vt-garantia td, .vt-desglose .vt-senal td { color: var(--vt-suave); font-size: .9rem; }
.vt-datos-cliente h3 { margin-top: 1.5rem; }
.vt-explica { background: #fff7e6; border-left: 3px solid var(--vt-acento); padding: .6rem .9rem; font-size: .92rem; }
.vt-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: 1.25rem; }
.vt-grid .vt-ancho { grid-column: 1 / -1; }
.vt-grid small { color: var(--vt-suave); }
@media (max-width: 600px) { .vt-grid, .vt-fechas { grid-template-columns: 1fr; } }
.vt-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.vt-aviso { padding: .8rem 1rem; border-radius: 8px; margin: 1rem 0; }
.vt-aviso-ok { background: #e7f5ec; color: #14532d; }
.vt-aviso-error { background: #fdecea; color: #7a1a12; }

/* Listado */
.vt-listado p:empty, .vt-tarjeta > br, .vt-reserva p:empty, .vt-buscador p:empty, .vt-buscador br { display: none; }
.vt-filtros { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: .75rem; align-items: end; background: var(--vt-fondo); border: 1px solid var(--vt-borde); border-radius: var(--vt-radio); padding: 1rem; margin-bottom: 1rem; }
.vt-filtros label { display: flex; flex-direction: column; gap: .3rem; font-size: .85rem; color: var(--vt-suave); }
.vt-filtros input, .vt-filtros select { font: inherit; border: 1px solid var(--vt-borde); border-radius: 8px; padding: .55rem .6rem; background: #fff; }
.vt-resultados { color: var(--vt-suave); }
.vt-tarjetas { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 1.5rem; }
.vt-tarjeta { background: #fff; border: 1px solid var(--vt-borde); border-radius: var(--vt-radio); overflow: hidden; display: flex; flex-direction: column; transition: box-shadow .2s, transform .2s; }
.vt-tarjeta:hover { box-shadow: 0 10px 30px rgba(23,24,26,.10); transform: translateY(-2px); }
.vt-tarjeta-foto { aspect-ratio: 4/3; display: block; background: var(--vt-borde); overflow: hidden; }
.vt-tarjeta-foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.vt-tarjeta-cuerpo { padding: 1rem 1.1rem 1.2rem; display: flex; flex-direction: column; gap: .35rem; flex: 1; }
.vt-tarjeta-zona { margin: 0; font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; color: var(--vt-acento-osc); }
.vt-tarjeta h3 { margin: 0; font-size: 1.1rem; line-height: 1.3; }
.vt-tarjeta h3 a { color: var(--vt-texto); text-decoration: none; }
.vt-tarjeta-datos { margin: 0; color: var(--vt-suave); font-size: .9rem; }
.vt-tarjeta-precio { margin: auto 0 0; padding-top: .5rem; }
.vt-tarjeta-precio span { color: var(--vt-suave); font-size: .85rem; }
.vt-tarjeta-precio strong { font-size: 1.2rem; }
.vt-paginacion { display: flex; gap: .4rem; justify-content: center; margin-top: 2rem; }
.vt-paginacion a, .vt-paginacion span { padding: .4rem .8rem; border: 1px solid var(--vt-borde); border-radius: 6px; text-decoration: none; }
.vt-paginacion span { background: var(--vt-texto); color: #fff; }

/* Página del cliente */
.vt-cliente { max-width: 680px; }
.vt-cliente-ref { font-size: 1.1rem; }
.vt-estado-cli { display: inline-block; padding: .2rem .7rem; border-radius: 999px; background: var(--vt-fondo); border: 1px solid var(--vt-borde); font-size: .9rem; }
.vt-estado-vt_confirmada { background: #e7f5ec; border-color: #b7e0c4; }
.vt-estado-vt_contraoferta, .vt-estado-vt_aprobada { background: #fff7e6; border-color: #f0d9a8; }
.vt-estado-vt_rechazada, .vt-estado-vt_cancelada, .vt-estado-vt_caducada { background: #f2f2f2; }
.vt-contraoferta { background: var(--vt-fondo); border: 1px solid var(--vt-borde); border-radius: var(--vt-radio); padding: 1rem 1.25rem; margin: 1rem 0; }
.vt-cliente-form { display: inline-block; margin: .5rem .5rem 0 0; }

/* Búsqueda sin resultados */
.vt-sin-resultados { display: flex; gap: 1.1rem; align-items: flex-start; background: var(--vt-fondo, #fff8e8); border-radius: var(--vt-radio, 18px); padding: 1.4rem 1.5rem; margin: 0 0 1.5rem; }
.vt-sin-resultados-corta { background: #fff3c2; }
.vt-sin-icono { font-size: 2.2rem; line-height: 1; margin: 0; }
.vt-sin-resultados h3 { margin: 0 0 .4rem; font-size: 1.3rem; }
.vt-sin-resultados p { margin: 0 0 1rem; }
.vt-sin-resultados .vt-boton { display: inline-block; }
@media (max-width: 600px) { .vt-sin-resultados { flex-direction: column; gap: .5rem; padding: 1.2rem; } }

/* Aviso de disponibilidad (pisos sin fechas) */
.vt-agenda-cerrada .vt-aviso-icono { text-align: center; }
.vt-aviso-icono { font-size: 2.2rem; line-height: 1; margin: 0 auto .25rem !important; animation: vt-campana 2.5s ease-in-out infinite; transform-origin: 50% 10%; }
@keyframes vt-campana { 0%, 70%, 100% { transform: rotate(0); } 75% { transform: rotate(14deg); } 82% { transform: rotate(-12deg); } 89% { transform: rotate(8deg); } 95% { transform: rotate(-4deg); } }
@media (prefers-reduced-motion: reduce) { .vt-aviso-icono { animation: none; } }
.vt-aviso { max-width: 480px; margin: 1.25rem auto 0; text-align: left; }
.vt-aviso-fila { display: flex; gap: .5rem; background: #fff; border-radius: 999px; padding: .35rem; box-shadow: 0 8px 24px rgba(15,111,118,.12); }
.vt-aviso-email { flex: 1; min-width: 0; display: flex; }
.vt-aviso-email input { flex: 1; min-width: 0; border: 0; background: transparent; font: inherit; font-size: 1rem; padding: .7rem 1rem; outline: none; color: var(--vt-texto); }
.vt-aviso .vt-boton { border-radius: 999px; padding: .7rem 1.4rem; white-space: nowrap; }
.vt-aviso-acepto { display: flex; gap: .5rem; align-items: flex-start; margin: .8rem .5rem 0; font-size: .85rem; color: var(--vt-suave); line-height: 1.4; }
.vt-aviso-acepto input { margin-top: .2rem; flex: none; }
.vt-aviso-estado { margin: .8rem .5rem 0 !important; font-size: .95rem; font-weight: 600; text-align: center; }
.vt-aviso-estado:empty { display: none; }
.vt-aviso-estado.vt-error { color: #b42318; }
.vt-aviso-hecho { background: #e6f6f7; color: #0F6F76; border-radius: 18px; padding: 1rem 1.2rem; font-weight: 600; text-align: center; max-width: 480px; margin: 1.25rem auto 0; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
@media (max-width: 480px) {
	.vt-aviso-fila { flex-direction: column; border-radius: 20px; }
	.vt-aviso .vt-boton { width: 100%; }
}

/* Estancia corta en la ficha: enlace a la reserva por días (Hostify) */
.vt-corta { display: flex; gap: 1rem; align-items: flex-start; background: #fff3c2; border-radius: var(--vt-radio, 18px); padding: 1.2rem 1.3rem; margin: 1rem 0 0; }
.vt-corta-icono { font-size: 1.8rem; line-height: 1; margin: 0; }
.vt-corta h3 { margin: 0 0 .35rem; font-size: 1.15rem; }
.vt-corta p { margin: 0 0 .9rem; }
.vt-corta .vt-boton { display: inline-block; }
.vt-por-dias { margin-top: .6rem; }
@media (max-width: 600px) { .vt-corta { flex-direction: column; gap: .4rem; padding: 1.1rem; } .vt-corta .vt-boton { display: block; text-align: center; } }

/* Lista de espera de verano */
.vt-verano-caja { background: linear-gradient(160deg, #fff6d6 0%, #fffbee 60%, #e6f6f7 100%); border-radius: var(--vb-radio, 22px); padding: 2rem 1.6rem; margin: 2rem 0; text-align: center; }
.vt-verano-caja .vt-h2 { margin: .2rem 0 .5rem; }
.vt-verano-sol { font-size: 2.4rem; line-height: 1; margin: 0 !important; }
.vt-verano-intro { max-width: 560px; margin: 0 auto 1.2rem !important; color: var(--vt-suave); }
.vt-verano { max-width: 620px; margin: 0 auto; text-align: left; }
.vt-verano-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: .7rem; }
.vt-verano label { display: flex; flex-direction: column; gap: .3rem; font-size: .9rem; font-weight: 600; color: var(--vt-texto); }
.vt-verano input[type=text], .vt-verano input[type=email], .vt-verano input[type=tel], .vt-verano input[type=number], .vt-verano textarea { font: inherit; font-weight: 400; padding: .7rem .9rem; border: 1px solid var(--vt-borde); border-radius: 12px; background: #fff; width: 100%; box-sizing: border-box; }
.vt-verano-meses { border: 0; padding: 0; margin: 1rem 0 0; display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
.vt-verano-meses legend { font-size: .9rem; font-weight: 600; margin-bottom: .4rem; padding: 0; }
.vt-verano-meses label { flex-direction: row; align-items: center; gap: .4rem; background: #fff; border: 1px solid var(--vt-borde); border-radius: 999px; padding: .45rem 1rem; cursor: pointer; }
.vt-verano-mensaje { margin-top: 1rem; }
.vt-verano .vt-aviso-acepto { flex-direction: row; font-weight: 400; }
.vt-verano .vt-boton { display: block; width: 100%; margin-top: 1rem; border-radius: 999px; padding: .85rem 1.4rem; font-size: 1rem; }
.vt-verano-mas { text-align: center; margin: 1rem 0 0 !important; font-size: .95rem; }
.vt-verano-enlace { display: block; text-align: center; margin-top: .8rem; font-size: .9rem; font-weight: 600; color: var(--vb-mar-osc, #0F6F76); }
/* Página: rejilla de pisos para marcar */
.vt-verano-pagina { max-width: 1100px; }
.vt-verano-pagina > .vt-h2 { margin-top: 1.5rem; }
.vt-verano-pagina .vt-verano-grid, .vt-verano-pagina .vt-verano-meses, .vt-verano-pagina .vt-verano-mensaje, .vt-verano-pagina .vt-aviso-acepto, .vt-verano-pagina .vt-boton, .vt-verano-pagina .vt-aviso-estado { max-width: 620px; }
.vt-verano-pisos { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: .8rem; margin: 0 0 1rem; }
.vt-verano-piso { position: relative; flex-direction: row !important; align-items: stretch; gap: 0 !important; background: #fff; border: 2px solid var(--vt-borde); border-radius: 16px; overflow: hidden; cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.vt-verano-piso input { position: absolute; top: .55rem; left: .55rem; width: 1.3rem; height: 1.3rem; accent-color: #13b0bb; z-index: 1; }
.vt-verano-piso-foto { flex: none; width: 84px; background: #eee center / cover no-repeat; }
.vt-verano-piso-txt { display: flex; flex-direction: column; gap: .15rem; padding: .6rem .7rem; min-width: 0; }
.vt-verano-piso-txt strong { font-size: .92rem; line-height: 1.25; }
.vt-verano-piso-txt small { font-weight: 400; color: var(--vt-suave); }
.vt-verano-piso-txt a { font-size: .8rem; font-weight: 600; margin-top: auto; }
.vt-verano-piso:has(input:checked) { border-color: #13b0bb; box-shadow: 0 6px 18px rgba(19,176,187,.25); background: #f0fbfc; }
/* Franja (portada y listado) */
.vt-verano-banner { display: flex; align-items: center; gap: 1rem; padding: 1.1rem 1.4rem; margin: 1.5rem 0; border-radius: var(--vb-radio, 22px); background: linear-gradient(110deg, #ffd23f 0%, #ffe68a 55%, #bfeef1 100%); color: #17181a !important; text-decoration: none !important; box-shadow: 0 10px 30px rgba(176,145,0,.18); transition: transform .15s; }
.vt-verano-banner:hover { transform: translateY(-2px); }
.vt-verano-banner-sol { font-size: 2.2rem; line-height: 1; }
.vt-verano-banner-txt { display: flex; flex-direction: column; gap: .15rem; flex: 1; min-width: 0; }
.vt-verano-banner-txt strong { font-size: 1.15rem; }
.vt-verano-banner-txt span { font-size: .95rem; }
.vt-verano-banner-boton { flex: none; background: #17181a; color: #fff; border-radius: 999px; padding: .65rem 1.2rem; font-weight: 700; font-size: .95rem; white-space: nowrap; }
@media (max-width: 640px) {
	.vt-verano-caja { padding: 1.5rem 1.1rem; }
	.vt-verano-banner { flex-wrap: wrap; padding: 1rem 1.1rem; }
	.vt-verano-banner-sol { font-size: 1.8rem; }
	.vt-verano-banner-boton { width: 100%; box-sizing: border-box; text-align: center; }
	.vt-verano-pisos { grid-template-columns: 1fr 1fr; gap: .55rem; }
	.vt-verano-piso { flex-direction: column !important; }
	.vt-verano-piso-foto { width: 100%; height: 86px; }
	.vt-verano-piso-txt { padding: .45rem .55rem .55rem; }
	.vt-verano-piso-txt strong { font-size: .85rem; }
}
/* Documentación para el contrato: se pide en la página del cliente solo después de aprobar la solicitud. */
.vt-docs-cliente { margin-top: 2rem; padding: 1.25rem 1.25rem .5rem; border: 1px solid var(--vt-borde); border-radius: 14px; background: #fff; }
.vt-docs-cliente h3 { margin-top: 0; }
