/* =========================================================================
   reservas-v2.css — Lavado de cara del motor de reservas (Fase 2)
   Enlazado DESPUÉS de reservas.css, solo overrides/componentes nuevos.
   Reutiliza la paleta ya existente en reservas.css:
     vino  #991A2E   oliva #92b42f   navy #21252e / #363e4c
     texto #676767 / #5A5A5A   éxito #0ab21b / #008009
   ========================================================================= */

:root{
	--rv2-vino: #991A2E;
	--rv2-oliva: #92b42f;
	--rv2-navy: #21252e;
	--rv2-text: #676767;
	--rv2-text-light: #8a8a8a;
	--rv2-success: #0ab21b;
	--rv2-border: #e3e1dd;
	--rv2-bg-soft: #faf9f7;
	--rv2-radius: 10px;
	--rv2-shadow: 0 2px 14px rgba(33,37,46,.08);
}

.hidden{ display:none !important; }

/* ---------- Lavado de cara general de las tarjetas del motor ---------- */
.booking_process .form-group,
.booking_process .booking_search,
.booking-sumary,
.extra-card,
.extras-included,
.confirmation-banner {
	border-radius: var(--rv2-radius);
	box-shadow: var(--rv2-shadow);
}
.booking_process .form-group{
	background: #fff;
	padding: 1.25rem 1.5rem;
	margin-bottom: 1.25rem;
	border: 1px solid var(--rv2-border);
}
.booking_process .form-group h2{
	color: var(--rv2-navy);
	font-weight: 700;
	letter-spacing: .02em;
}
.booking_process input[type=submit].button-input,
.booking_process .button2{
	border-radius: 6px;
	transition: transform .12s ease, box-shadow .12s ease;
}
.booking_process input[type=submit].button-input:hover,
.booking_process .button2:hover{
	box-shadow: 0 4px 10px rgba(153,26,46,.25);
}

/* ---------------------- Selector de huéspedes (paso 1) ---------------------- */
.guests-selector{ position: relative; }
.guests-toggle{
	display: flex;
	align-items: center;
	justify-content: space-between;
	cursor: pointer;
	user-select: none;
	gap: .5rem;
}
.guests-toggle:focus{ outline: 2px solid var(--rv2-oliva); outline-offset: 2px; }
.guests-popover{
	display: none;
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	z-index: 40;
	width: 280px;
	background: #fff;
	border: 1px solid var(--rv2-border);
	border-radius: var(--rv2-radius);
	box-shadow: 0 8px 28px rgba(33,37,46,.18);
	padding: 1rem;
	color: var(--rv2-text);
	text-align: left;
}
.guests-popover.open{ display: block; }
.guests-row{
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: .6rem 0;
	border-bottom: 1px solid var(--rv2-border);
}
.guests-row:last-of-type{ border-bottom: none; }
.guests-label strong{ display:block; color: var(--rv2-navy); font-size: .95rem; }
.guests-sublabel{ display:block; font-size: .78rem; color: var(--rv2-text-light); }
.guests-stepper{ display: flex; align-items: center; gap: .6rem; }
.guests-btn{
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px; height: 30px;
	min-width: 30px;
	padding: 0;
	margin: 0;
	border-radius: 50%;
	border: 1px solid var(--rv2-vino);
	background: #fff;
	color: var(--rv2-vino);
	font-size: 1.1rem;
	line-height: 1;
	cursor: pointer;
}
.guests-btn:disabled{ opacity: .35; cursor: not-allowed; }
.guests-btn:hover:not(:disabled){ background: var(--rv2-vino); color: #fff; }
.guests-count{ min-width: 18px; text-align: center; font-weight: 600; color: var(--rv2-navy); }
.guests-confirm{
	margin-top: .75rem;
	width: 100%;
	background: var(--rv2-vino);
	color: #fff;
	border: none;
	border-radius: 6px;
	padding: .55rem;
	font-weight: 600;
	cursor: pointer;
}

/* ---------------------- Extras: incluidos / de regalo ---------------------- */
.extras-included{
	background: #f4f9ee;
	border: 1px solid #d9ead0;
	padding: .9rem 1.1rem;
	margin-bottom: 1rem;
}
.extra-included-item{
	display: flex;
	align-items: center;
	gap: .6rem;
	padding: .3rem 0;
	color: var(--rv2-navy);
}
.extra-included-item .fa-gift{ color: var(--rv2-oliva); font-size: 1.1rem; }
.extra-included-name{ font-weight: 600; }
.extra-included-desc{ color: var(--rv2-text); font-size: .85rem; }
.extra-included-badge{
	margin-left: auto;
	background: var(--rv2-oliva);
	color: #fff;
	font-size: .72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .04em;
	padding: .2rem .55rem;
	border-radius: 999px;
}

/* ---------------------- Extras: tarjetas con imagen ---------------------- */
.extras-cards{
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
	gap: 1rem;
	margin-bottom: .75rem;
}
.extra-card{
	border: 1px solid var(--rv2-border);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	background: #fff;
	transition: box-shadow .15s ease, border-color .15s ease;
}
.extra-card.added{ border-color: var(--rv2-oliva); }
.extra-card-img{
	position: relative;
	height: 120px;
	background: linear-gradient(135deg, #f1efe9, #e5e1d8);
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}
.extra-card-img img{ width:100%; height:100%; object-fit: cover; }
.extra-placeholder-icon{
	display: none;
	font-size: 2rem;
	color: #b9b3a4;
}
.extra-card-img.no-img .extra-placeholder-icon{ display: block; }
.extra-card-body{ padding: .8rem 1rem; flex: 1; }
.extra-card .extra-name{ font-weight: 700; color: var(--rv2-navy); display:block; }
.extra-card .extra-desc{ font-size: .82rem; color: var(--rv2-text); display:block; margin: .2rem 0 .4rem; }
.extra-card .extra-price{ font-size: .85rem; color: var(--rv2-vino); font-weight: 600; margin-bottom: .5rem; }
.extra-note{
	font-size: .78rem;
	color: var(--rv2-oliva);
	font-style: italic;
	margin-top: .3rem;
}
.extra-qty{
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	margin-top: .3rem;
}
.extra-qty.hidden{ display: none; }
.extra-qty-btn{
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px; height: 26px;
	min-width: 26px;
	padding: 0;
	margin: 0;
	border-radius: 50%;
	border: 1px solid var(--rv2-border);
	background: var(--rv2-bg-soft);
	color: var(--rv2-navy);
	cursor: pointer;
	line-height: 1;
}
.extra-qty-btn:disabled{ opacity: .4; cursor: not-allowed; }
.extra-qty-count{ min-width: 16px; text-align:center; font-weight: 600; }
.extra-card-footer{
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: .6rem 1rem;
	border-top: 1px solid var(--rv2-border);
	background: var(--rv2-bg-soft);
}
.extra-total{ font-weight: 700; color: var(--rv2-navy); font-size: .88rem; }
.extra-toggle-btn{
	border: 1px solid var(--rv2-vino);
	background: #fff;
	color: var(--rv2-vino);
	border-radius: 6px;
	padding: .35rem .8rem;
	font-size: .82rem;
	font-weight: 600;
	cursor: pointer;
}
.extra-card.added .extra-toggle-btn{
	background: var(--rv2-vino);
	color: #fff;
}
.extra-toggle-btn:disabled{ opacity: .5; cursor: not-allowed; }

/* ---------------------- Paso 3: pantalla de confirmación ---------------------- */
.confirmation-banner{
	background: linear-gradient(135deg, #fff, #f4f9ee);
	border: 1px solid #d9ead0;
	text-align: center;
	padding: 2rem 1.5rem;
	margin-bottom: 1.5rem;
}
.confirmation-icon{ font-size: 3rem; color: var(--rv2-success); margin-bottom: .4rem; }
.confirmation-banner h1{
	color: var(--rv2-navy);
	font-size: 1.7rem;
	margin: 0 0 .4rem;
}
.confirmation-subtitle{ color: var(--rv2-text); font-size: 1rem; }
.confirmation-subtitle strong{ color: var(--rv2-vino); }

.payment-highlight{
	border: 2px solid var(--rv2-vino) !important;
}
.payment-highlight h2{
	color: var(--rv2-vino) !important;
}

.reservation-details-accordion{ margin-top: 1.25rem; }

@media (max-width: 600px){
	.guests-popover{ width: 100%; left: 0; right: 0; }
	.extras-cards{ grid-template-columns: 1fr; }
}

/* =========================================================================
   Fase 3 — "Más información", recuadro de depósito, barras fijas en móvil
   ========================================================================= */

/* La flecha (no el título) abre/cierra, y se convierte en X al abrir.
   Aplica a todos los acordeones que reutilizan .summary-title-arrow
   (resumen de reserva y "Tus datos" en paso-3). */
.summary-title-arrow{ cursor: pointer; }
/* Sin esto salían la flecha y la X a la vez: reservas.css fuerza
   ".booking-sumary .fa { display: inline-block }" con la misma especificidad
   que esta regla y, según el orden en que LiteSpeed combine las hojas, ganaba. */
.summary-title-arrow .close-icon,
.booking-sumary .summary-title-arrow .close-icon{ display: none !important; }
.toggle:checked + .header .summary-title-arrow .close-icon,
.toggle2:checked + .header .summary-title-arrow .close-icon{ display: inline-block !important; }
.toggle:checked + .header .summary-title-arrow .chevron-icon,
.toggle2:checked + .header .summary-title-arrow .chevron-icon{ display: none !important; }
.toggle:checked + .header .summary-title-arrow .fa-chevron-right,
.toggle2:checked + .header .summary-title-arrow .fa-chevron-right{
	transform: none; /* se sustituye el giro por el cambio de icono */
	display: none;
}

/* En escritorio el resumen es una columna siempre abierta: la flecha/X del
   acordeón no pinta nada (salían las dos a la vez). Solo se usa en móvil. */
@media (min-width: 784px){
	#bookingSummary .summary-title-arrow{ display: none !important; }
}

/* Fondo sólido explícito: al fijar #bookingSummary sobre el resto del
   contenido en móvil, sin esto se transparenta y se mezcla visualmente con
   lo que hay detrás (el bug de texto solapado). */
.booking-sumary, .booking-sumary .content{ background: #fff; }

.summary-header-cta{
	display: none;
	background: var(--rv2-vino);
	color: #fff !important;
	border: none;
	border-radius: 6px;
	padding: .5rem 1rem;
	font-weight: 600;
	font-size: .85rem;
	text-decoration: none;
	cursor: pointer;
}

.mas-info-link{
	display: inline-block;
	margin-top: .4rem;
	color: var(--rv2-vino);
	font-size: .85rem;
	font-weight: 600;
	cursor: pointer;
}
.mas-info-link:hover{ text-decoration: underline; }
.mas-info-section{ margin-bottom: 1.25rem; }
.mas-info-section h4{
	color: var(--rv2-navy);
	margin-bottom: .5rem;
}
.mas-info-section ul{ margin: 0 0 .5rem 1.1rem; padding: 0; }
.mas-info-cambio-fechas{ color: var(--rv2-oliva); font-weight: 600; }
.precio-noche-tabla{ width: 100%; border-collapse: collapse; }
.precio-noche-tabla td{ padding: .3rem .2rem; border-bottom: 1px solid var(--rv2-border); }
.precio-noche-tabla tr.total td{ font-weight: 700; color: var(--rv2-navy); border-top: 2px solid var(--rv2-navy); border-bottom: none; }
.precio-noche-tabla td:last-child{ text-align: right; }

/* Acordeón inline de "Más información" por casa (paso-1), sustituye al
   antiguo modal con iframe: contenido generado a partir de datos reales
   (descripción, capacidad, política de cancelación, precio por noche). */
.mas-info-accordion{
	margin: .5rem 0 0;
	border-top: 1px solid var(--rv2-border);
}
.mas-info-accordion .header{
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: .6rem 0;
	cursor: pointer;
}
.mas-info-accordion .header .item{
	color: var(--rv2-vino);
	font-weight: 600;
	font-size: .85rem;
}
.mas-info-accordion .content{ padding: 0 0 1rem; }
.mas-info-ficha-link{
	display: inline-block;
	margin-top: .4rem;
	color: var(--rv2-vino);
	font-weight: 600;
	font-size: .85rem;
}

/* Recuadro de depósito/pago pendiente, siempre visible dentro del resumen */
.deposito-box{
	background: var(--rv2-bg-soft);
	border: 1px solid #d7e5df;
	border-radius: 8px;
	padding: .75rem 1rem;
	margin: 0 0 1rem;
}
.deposito-box .row{ margin-bottom: .3rem; }
.deposito-box .row:last-child{ margin-bottom: 0; }
.deposito-box .item{ font-weight: 600; color: var(--rv2-navy); }

/* Importe + leyenda de la cabecera del resumen (solo móvil: en escritorio el
   total ya se ve en el cuerpo, siempre desplegado) */
.summary-header-totalwrap{ display: none; }

/* Barra superior móvil de fechas/huéspedes (paso 1 y 2). Va EN el flujo, justo
   debajo de la barra roja "1/3 ...", y solo se fija arriba (.is-stuck, lo hace
   includes/barra-busqueda-movil.php) cuando el scroll la alcanzaría: así nunca
   tapa el logo, el menú ni la barra roja. */
.mobile-search-summary-wrap{ display: none; }
.mobile-search-summary{
	display: flex;
	align-items: center;
	gap: 1rem;
	background: #fff;
	padding: .6rem .9rem;
	font-size: .82rem;
	color: var(--rv2-navy);
	border-bottom: 1px solid var(--rv2-border);
	cursor: pointer;
}
.mobile-search-summary .fa{ color: var(--rv2-vino); margin-right: .3rem; }
.mobile-search-summary .msb-edit{ margin-left: auto; color: var(--rv2-vino); font-weight: 600; }
.mobile-search-summary.is-stuck{
	position: fixed;
	left: 0; right: 0;
	z-index: 190;
	box-shadow: 0 2px 8px rgba(0,0,0,.15);
}

@media screen and (max-width: 783px){
	.mobile-search-summary-wrap{ display: block; }

	/* Barra inferior fija en el checkout (paso-2/paso-3): total + botón, como
	   las apps de reservas (precio a la izquierda, acción principal a la derecha) */
	#bookingSummary{
		position: fixed;
		left: 0; right: 0; bottom: 0;
		z-index: 200;
		margin: 0;
		max-height: 85vh;
		display: flex;
		flex-direction: column;
		border: 0;
		border-top: 1px solid var(--rv2-border);
		box-shadow: 0 -6px 18px rgba(0,0,0,.14);
	}
	#bookingSummary .collapsible-content{ overflow-y: auto; background: #fff; }
	#bookingSummary .summary-title{ display: none; }
	#bookingSummary .header{
		display: flex;
		align-items: center;
		gap: .6rem;
		margin: 0;
		padding: .7rem 1rem;
		background: #fff;
		color: var(--rv2-navy);
		text-align: left;
		text-transform: none;
	}
	#bookingSummary .summary-header-totalwrap{
		display: flex;
		flex-direction: column;
		flex: 1 1 auto;
		min-width: 0;
		line-height: 1.15;
	}
	#bookingSummary .summary-header-total{
		display: block;
		margin: 0;
		font-size: 1.3rem;
		font-weight: 700;
		white-space: nowrap;
		color: var(--rv2-navy);
	}
	#bookingSummary .summary-header-sub{
		display: block;
		font-size: .74rem;
		color: var(--rv2-text-light);
	}
	#bookingSummary .summary-title-arrow{
		order: 2;
		display: flex;
		align-items: center;
		justify-content: center;
		flex: 0 0 auto;
		width: 2.4rem;
		height: 2.4rem;
		margin: 0;
		border-radius: 50%;
		background: var(--rv2-bg-soft);
		color: var(--rv2-navy);
	}
	#bookingSummary .summary-title-arrow .fa{
		margin: 0 !important;
		font-size: 1rem;
		color: var(--rv2-navy);
	}
	#bookingSummary .summary-title-arrow .chevron-icon{ transform: rotate(-90deg); }
	#bookingSummary .summary-header-cta{
		order: 3;
		display: inline-block !important;
		flex: 0 0 auto;
		width: auto !important;
		min-width: 8.5rem;
		padding: .85rem 1.1rem !important;
		background: var(--rv2-vino) !important;
		color: #fff !important;
		border: 0 !important;
		border-radius: 8px;
		font-size: .95rem;
		font-weight: 700;
		letter-spacing: .03em;
		text-align: center;
		text-transform: uppercase;
		box-shadow: 0 2px 6px rgba(153,26,46,.35);
	}
	.booking-data{ padding-bottom: 96px; }
}

/* Descripción de la casa con "Leer más" (paso-1) */
.casa-desc-wrap .desc-toggle{ display: none; }
.casa-desc-wrap .casa-desc{
	max-height: 3.2em;
	overflow: hidden;
	margin-bottom: .2rem;
}
.casa-desc-wrap.short .casa-desc{ max-height: none; }
.casa-desc-wrap.short .desc-toggle-label{ display: none; }
.casa-desc-wrap .desc-toggle-label{
	color: var(--rv2-vino);
	font-size: .82rem;
	font-weight: 600;
	cursor: pointer;
}
.casa-desc-wrap .desc-toggle-label .show-less{ display: none; }
.casa-desc-wrap .desc-toggle:checked ~ .casa-desc{ max-height: none; }
.casa-desc-wrap .desc-toggle:checked ~ .desc-toggle-label .show-more{ display: none; }
.casa-desc-wrap .desc-toggle:checked ~ .desc-toggle-label .show-less{ display: inline; }

/* =========================================================================
   Fase 3.2 — Buscador compacto y tarjeta de casa clara (estilo direct-book)
   Las clases nuevas llevan prefijo rv2- para no chocar con los estilos
   heredados de reservas.css (.availability li.item, .row.rate, .prices...).
   ========================================================================= */

/* El separador de la barra móvil solo existe en móvil (antes reservaba
   ~110px en blanco también en escritorio) */
.mobile-search-summary-spacer{ display: none; }

/* ---------- Buscador ---------- */
.wrapper .booking_process .booking_search{
	border: 1px solid var(--rv2-border);
	border-radius: 12px;
	padding: 1.1rem 1.2rem;
	background: #fff;
	box-shadow: var(--rv2-shadow);
	margin-bottom: .6rem;
}
.booking_search .searchFields{
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem;
}
.booking_search .brow{ flex: 1 1 240px; margin: 0; position: relative; }
.booking_search .brow.fechas{ flex: 1.6 1 320px; }
.booking_search .brow label,
.booking_search .brow .brow-label{ display: block; position: relative; margin: 0; }
.booking_search .brow-label-text{
	position: absolute;
	top: -.55rem;
	left: .8rem;
	z-index: 2;
	background: #fff;
	padding: 0 .35rem;
	font-size: .74rem;
	line-height: 1.1;
	color: var(--rv2-text-light);
}
.booking_search .input-group{
	display: flex;
	align-items: center;
	box-sizing: border-box;
	height: 52px;
	padding: 0 .8rem;
	border: 1px solid #c9c4bb;
	border-radius: 8px;
	background: #fff;
	color: var(--rv2-navy);
}
.booking_search .input-group:hover,
.booking_search .input-group:focus-within{ border-color: var(--rv2-vino); }
.booking_search .input-date{
	flex: 1 1 0;
	min-width: 0;
	width: auto;
	height: 100%;
	padding: 0 .3rem !important;
	background: transparent;
	font-size: 1rem;
	font-weight: 600;
}
.booking_search .brow .fa{
	padding: 0 .3rem !important;
	margin: 0 !important;
	font-size: 1rem !important;
	color: var(--rv2-vino) !important;
}
.booking_search .guests-toggle{ justify-content: space-between; cursor: pointer; }
.booking_search .guests-toggle:focus{ outline: none; border-color: var(--rv2-vino); box-shadow: 0 0 0 3px rgba(153,26,46,.15); }
.booking_search #guestsSummary{ font-weight: 600; font-size: 1rem; }
/* Botón Buscar: el <input> ocupa TODO el rectángulo (así se pulsa en cualquier punto)
   y el texto queda centrado; el icono va encima, a la derecha, sin capturar clics.
   Selectores con #searchForm porque reservas.css también estiliza .modify_search
   (fondo, relleno, pastilla) con !important. */
#searchForm .booking_search div.modify_search,
#searchForm div.modify_search{
	position: relative;
	flex: 0 0 auto;
	display: block;
	height: 52px;
	margin: 0 !important;
	padding: 0 !important;
	background: var(--rv2-vino) !important;
	border-radius: 8px !important;
	transition: background .15s ease;
}
#searchForm div.modify_search:hover{ background: #7d1526 !important; }
#searchForm div.modify_search input#buscar,
#searchForm div.modify_search input[type="submit"].modify_search{
	display: block;
	width: 100%;
	min-width: 11rem;
	height: 100%;
	margin: 0;
	padding: 0 3rem !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 8px !important;
	box-shadow: none !important;
	color: #fff !important;
	font-size: 1rem !important;
	font-weight: 700;
	line-height: 1 !important;
	text-align: center;
	cursor: pointer;
}
#searchForm div.modify_search .fa{
	position: absolute;
	right: 1.1rem;
	top: 50%;
	margin: 0 !important;
	padding: 0 !important;
	transform: translateY(-50%);
	color: #fff !important;
	pointer-events: none;
}

.rv2-trust{
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: .3rem 1.4rem;
	margin: 0 0 1.3rem;
	padding: 0 .3rem;
	font-size: .82rem;
	color: var(--rv2-text);
}
.rv2-trust li{ margin: 0; }
.rv2-trust .fa{ color: var(--rv2-oliva); margin-right: .3rem; }

/* ---------- Tarjeta de casa ---------- */
.availability ul#available-casas{ list-style: none; margin: 0; padding: 0; }
.rv2-casa{
	list-style: none;
	margin: 0 0 1.4rem;
	background: #fff;
	border: 1px solid var(--rv2-border);
	border-radius: 12px;
	box-shadow: var(--rv2-shadow);
	overflow: hidden;
}
.rv2-casa-top{ display: flex; }
/* Foto: caja de alto fijo con overflow oculto. El slider de MetaSlider se deja
   funcionar tal cual (sin forzar medidas internas) y la imagen se recorta con
   object-fit; así el alto de la tarjeta no depende de la proporción de la foto. */
.rv2-casa{ --rv2-photo-h: 300px; }
.rv2-casa-photo{
	position: relative;
	flex: 0 0 40%;
	max-width: 40%;
	height: var(--rv2-photo-h);
	overflow: hidden;
}
.rv2-casa-photo img{
	display: block;
	width: 100% !important;
	height: var(--rv2-photo-h) !important;
	object-fit: cover;
}
.rv2-badge-oferta{
	position: absolute;
	top: .7rem;
	left: .7rem;
	z-index: 5;
	background: var(--rv2-vino);
	color: #fff;
	font-size: .75rem;
	font-weight: 700;
	padding: .25rem .65rem;
	border-radius: 999px;
}

.rv2-casa-info{ flex: 1; min-width: 0; padding: 1.1rem 1.4rem; text-align: left; }
.rv2-casa-name{ margin: 0 0 .6rem; font-size: 1.5rem; line-height: 1.2; }
.rv2-casa-name a{ color: var(--rv2-navy); text-decoration: none; }
.rv2-facts{
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: .3rem 1.3rem;
	margin: 0 0 .7rem;
	padding: 0;
	font-size: .92rem;
	color: var(--rv2-navy);
}
.rv2-facts li{ display: flex; align-items: center; margin: 0; }
.rv2-facts .fa{ width: 1.1rem; margin-right: .45rem; text-align: center; color: var(--rv2-text); }
.rv2-fact-hab{ padding-left: 1.55rem; color: var(--rv2-text); }
.rv2-services{
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: .4rem .5rem;
	margin: 0 0 .7rem;
	padding: 0;
}
.rv2-services li{
	display: inline-flex;
	align-items: center;
	margin: 0;
	padding: .25rem .65rem;
	border: 1px solid var(--rv2-border);
	border-radius: 999px;
	background: var(--rv2-bg-soft);
	font-size: .82rem;
	color: var(--rv2-navy);
}
.rv2-services .fa{ margin-right: .4rem; color: var(--rv2-vino); }
.rv2-casa-desc{
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	margin: 0 0 .5rem;
	font-size: .92rem;
	line-height: 1.45;
	text-align: left;
	color: var(--rv2-text);
}

.rv2-casa-bottom{
	display: flex;
	align-items: center;
	gap: 1.2rem;
	padding: 1rem 1.4rem;
	border-top: 1px solid var(--rv2-border);
}
.rv2-casa-bottom.is-notice{ background: var(--rv2-bg-soft); }
.rv2-offer-info{ flex: 1 1 auto; min-width: 0; }
.rv2-offer-title{ margin-bottom: .3rem; font-weight: 700; color: var(--rv2-navy); }
.rv2-policies{ list-style: none; margin: 0; padding: 0; font-size: .85rem; color: var(--rv2-text); }
.rv2-policies li{ display: flex; align-items: flex-start; gap: .5rem; margin: .15rem 0; }
.rv2-policies .fa{ margin-top: .15rem; color: var(--rv2-oliva); }
.rv2-notice{ color: var(--rv2-text); }
.rv2-notice.ocupado{ color: #b3261e; font-weight: 600; }
.rv2-casa .link-show-calendar{ margin-left: 1rem; color: var(--rv2-vino); font-size: .88rem; font-weight: 600; cursor: pointer; }
.rv2-offer-price{ display: flex; flex-direction: column; align-items: flex-end; text-align: right; }
.rv2-price{ font-size: 1.6rem; font-weight: 700; line-height: 1.1; color: var(--rv2-navy); }
.rv2-price-old{ font-size: .9rem; text-decoration: line-through; color: var(--rv2-text-light); }
.rv2-price-sub{ font-size: .8rem; color: var(--rv2-text-light); }

.rv2-btn{
	display: inline-block;
	box-sizing: border-box;
	min-width: 9rem;
	padding: .75rem 1.6rem !important;
	border-radius: 8px !important;
	background-image: none !important;
	font-size: 1rem !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	text-align: center;
	text-decoration: none !important;
	cursor: pointer;
	transition: box-shadow .12s ease;
}
.rv2-btn-primary{ background: var(--rv2-vino) !important; border: 1px solid var(--rv2-vino) !important; color: #fff !important; }
.rv2-btn-primary:hover{ box-shadow: 0 4px 10px rgba(153,26,46,.28); }
.rv2-btn-outline{ background: #fff !important; border: 1px solid var(--rv2-vino) !important; color: var(--rv2-vino) !important; }

.rv2-casa-cal{ padding: 0 1.4rem 1rem; }

/* "Más información": panel que se despliega dentro de la propia tarjeta */
.rv2-more-toggle{ display: none; }
.rv2-more-panel{
	display: none;
	padding: 1rem 1.4rem 1.2rem;
	border-top: 1px solid var(--rv2-border);
	background: var(--rv2-bg-soft);
}
.rv2-more-toggle:checked + .rv2-more-panel{ display: block; }
.rv2-more-close{ display: inline-block; color: var(--rv2-vino); font-size: .88rem; font-weight: 600; cursor: pointer; }

@media screen and (max-width: 783px){
	/* nowrap: con flex-wrap:wrap en columna, la línea mide lo que el contenido
	   (los <input> de fecha tienen ancho intrínseco) y los campos se salían de
	   la pantalla. Sin wrap se estiran al ancho del buscador. */
	.booking_search .searchFields{ flex-direction: column; flex-wrap: nowrap; align-items: stretch; gap: .9rem; }
	.booking_search .brow,
	.booking_search .brow.fechas{ flex: none; width: 100%; min-width: 0; max-width: 100%; box-sizing: border-box; }
	.booking_search .brow label,
	.booking_search .brow .brow-label,
	.booking_search .input-group{ min-width: 0; max-width: 100%; width: 100%; box-sizing: border-box; }
	.booking_search div.modify_search{ width: 100%; box-sizing: border-box; }
	.booking_search .input-group,
	.booking_search div.modify_search{ height: 46px; }
	.booking_search div.modify_search{ justify-content: center; }

	.rv2-casa-top{ flex-direction: column; }
	.rv2-casa{ --rv2-photo-h: 230px; }
	.rv2-casa-photo{ flex: none; max-width: 100%; }
	.rv2-casa-info{ padding: 1rem; }
	.rv2-casa-bottom{ flex-wrap: wrap; padding: 1rem; }
	.rv2-offer-info{ flex: 1 1 100%; }
	.rv2-offer-price{ align-items: flex-start; text-align: left; flex: 1 1 auto; }
	.rv2-offer-cta{ flex: 0 0 auto; }
}
