/*!
 * BookingCloud — estructura del formulario público de reservas.
 * Código propio de BookingCloud (FingerCloud).
 * Esta hoja define qué se ve, qué se oculta y cómo se acomoda.
 * Los colores y el aspecto están en assets/css/bookingcloud.css.
 */

.hbook-wrapper,
.hbook-wrapper *,
.bc-datepick,
.bc-datepick * {
	box-sizing: border-box;
}

.hbook-wrapper {
	margin: 0 0 2em;
	position: relative;
}

.hbook-wrapper .hb-clearfix::after {
	clear: both;
	content: "";
	display: table;
}

/* ---------- Elementos que arrancan ocultos (el formulario los muestra cuando corresponde) ---------- */

.hbook-wrapper .hb-searched-summary,
.hbook-wrapper .hb-booking-searching,
.hbook-wrapper .hb-search-error,
.hbook-wrapper .hb-search-no-result,
.hbook-wrapper .hb-datepick-check-in-out-trigger,
.hbook-wrapper .hb-datepick-check-in-out-mobile-trigger,
.hbook-wrapper .hb-multi-accom-people-selection-wrapper,
.hbook-wrapper .hb-booking-details-form,
.hbook-wrapper .hb-intermediate-step-wrapper,
.hbook-wrapper .hb-options-form,
.hbook-wrapper .hb-price-breakdown,
.hbook-wrapper .hb-price-bd-hide-text,
.hbook-wrapper .hb-accom-selected-left-wrapper,
.hbook-wrapper .hb-accom-left,
.hbook-wrapper .hb-nb-accom-selected,
.hbook-wrapper .hb-multi-accom-no-accom-selected,
.hbook-wrapper .hb-accom-quantity,
.hbook-wrapper .hb-loading-summary,
.hbook-wrapper .hb-saving-resa,
.hbook-wrapper .hb-confirm-error,
.hbook-wrapper .hb-policies-error,
.hbook-wrapper .hb-coupon-msg,
.hbook-wrapper .hb-coupon-error,
.hbook-wrapper .hb-processing-coupon,
.hbook-wrapper .hb-accom-not-available-msg,
.hbook-wrapper .hb-payment-type-explanation,
.hbook-wrapper .hb-payment-type-null-price-wrapper,
.hbook-wrapper .hb-payment-method-hidden,
.hbook-wrapper .hb-payment-type-hidden,
.hbook-wrapper .hb-payment-form,
.hbook-wrapper .hb-summary-price-details,
.hbook-wrapper .hb-summary-price-breakdown-hide-text,
.hbook-wrapper .hb-resa-done-msg,
.hbook-wrapper .hb-resa-payment-msg,
.hbook-wrapper .hb-usa-state-iso-wrapper,
.hbook-wrapper .hb-canada-province-iso-wrapper,
.hbook-wrapper .hb-thank-you-page-form {
	display: none;
}

/* ---------- Buscador ---------- */

.hbook-wrapper .hb-search-fields {
	align-items: flex-end;
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.hbook-wrapper .hb-search-fields > p {
	display: flex;
	flex: 1 1 118px;
	flex-direction: column;
	gap: 4px;
	margin: 0;
	min-width: 0;
	position: relative;
}

.hbook-wrapper .hb-search-fields > .hb-people-wrapper,
.hbook-wrapper .hb-search-fields > .hb-accom-number-wrapper {
	flex: 0 1 92px;
}

.hbook-wrapper .hb-search-fields > .hb-search-button-wrapper {
	flex: 0 0 auto;
}

.hbook-wrapper .hb-search-fields input,
.hbook-wrapper .hb-search-fields select {
	width: 100%;
}

/* La cantidad de alojamientos solo existe si están habilitadas las reservas de varios bungalows. */
.hbook-wrapper .hb-booking-search-form:not(.hb-search-form-multiple-accom) .hb-accom-number-wrapper,
.hbook-wrapper .hb-search-form-no-children .hb-people-wrapper-children,
.hbook-wrapper .hb-search-form-no-people .hb-people-wrapper,
.hbook-wrapper .hb-search-form-no-admin-search-type .hb-admin-search-type-wrapper {
	display: none;
}

.hbook-wrapper .hb-search-error {
	margin: 12px 0 0;
}

.hbook-wrapper .hb-booking-searching {
	margin: 12px 0 0;
}

/* Personas por bungalow: panel que se despliega bajo el buscador. */
.hbook-wrapper .hb-multi-accom-people-selection-wrapper {
	margin-top: 12px;
	padding: 14px 40px 6px 14px;
	position: relative;
}

.hbook-wrapper .hb-people-popup-wrapper-close {
	font-size: 22px;
	line-height: 1;
	position: absolute;
	right: 12px;
	text-decoration: none;
	top: 8px;
}

.hbook-wrapper .hb-multi-accom-people-selection {
	align-items: flex-end;
	display: flex;
	flex-wrap: wrap;
	gap: 10px 16px;
	margin-bottom: 10px;
}

.hbook-wrapper .hb-multi-accom-people-title {
	flex: 0 0 130px;
	padding-bottom: 10px;
}

.hbook-wrapper .hb-multi-accom-people-wrapper {
	display: flex;
	flex: 0 1 110px;
	flex-direction: column;
	gap: 4px;
	margin: 0;
}

/* ---------- Resultados ---------- */

.hbook-wrapper .hb-accom-list {
	margin-top: 24px;
}

.hbook-wrapper .hb-multi-accom-choices + .hb-multi-accom-choices {
	margin-top: 28px;
}

.hbook-wrapper .hb-accom {
	display: grid;
	gap: 6px 20px;
	grid-template-columns: 1fr;
	margin-bottom: 16px;
	position: relative;
}

/* Con foto: la foto a la izquierda, el resto a la derecha. */
.hbook-wrapper .hb-accom:has(> .hb-accom-img),
.hbook-wrapper .hb-accom:has(> a > .hb-accom-img) {
	grid-template-columns: minmax(120px, 34%) 1fr;
}

.hbook-wrapper .hb-accom > .hb-accom-img,
.hbook-wrapper .hb-accom > a:has(> .hb-accom-img) {
	grid-row: 1 / span 6;
}

.hbook-wrapper .hb-accom-img {
	display: block;
	height: auto;
	max-width: 100%;
	object-fit: cover;
	width: 100%;
}

.hbook-wrapper .hb-accom-price-total {
	align-items: baseline;
	display: flex;
	flex-wrap: wrap;
	gap: 4px 12px;
}

.hbook-wrapper .hb-accom-price-caption-dash {
	display: none !important;
}

.hbook-wrapper .hb-price-breakdown {
	margin: 4px 0 0;
}

.hbook-wrapper .hb-price-breakdown > span,
.hbook-wrapper .hb-price-breakdown-section,
.hbook-wrapper .hb-price-breakdown-title {
	display: block;
}

.hbook-wrapper .hb-select-accom-wrapper {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 6px;
}

.hbook-wrapper .hb-select-accom-wrapper p {
	margin: 0;
}

.hbook-wrapper .hb-accom-selected-left-wrapper {
	margin: 0;
}

.hbook-wrapper .hb-accom.hb-accom-selected .hb-select-accom {
	display: none;
}

.hbook-wrapper .hb-accom.bc-accom-full {
	opacity: .55;
}

/* ---------- Pasos ---------- */

.hbook-wrapper .hb-step-button {
	margin: 16px 0 0;
}

.hbook-wrapper .hb-previous-step {
	float: none;
}

/* ---------- Extras ---------- */

.hbook-wrapper .hb-options-multi-accoms + .hb-options-multi-accoms {
	margin-top: 18px;
}

.hbook-wrapper .hb-option {
	margin: 0 0 10px;
}

.hbook-wrapper .hb-option label {
	cursor: pointer;
}

.hbook-wrapper .hb-option input[type="number"] {
	max-width: 90px;
}

.hbook-wrapper .hb-options-total-price {
	margin: 14px 0 0;
}

/* ---------- Datos del huésped ---------- */

.hbook-wrapper .hb-details-fields {
	display: flex;
	flex-wrap: wrap;
	gap: 0 16px;
}

.hbook-wrapper .hb-details-fields > p,
.hbook-wrapper .hb-details-fields > div,
.hbook-wrapper .hb-details-fields > h3 {
	flex: 1 1 100%;
}

.hbook-wrapper .hb-details-fields p {
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin: 0 0 14px;
}

.hbook-wrapper .hb-details-fields .hb-column-half {
	flex: 1 1 calc(50% - 8px);
	min-width: 200px;
}

.hbook-wrapper .hb-details-fields .hb-column-third {
	flex: 1 1 calc(33.333% - 11px);
	min-width: 160px;
}

.hbook-wrapper .hb-details-fields input[type="text"],
.hbook-wrapper .hb-details-fields input[type="email"],
.hbook-wrapper .hb-details-fields input[type="tel"],
.hbook-wrapper .hb-details-fields input[type="number"],
.hbook-wrapper .hb-details-fields select,
.hbook-wrapper .hb-details-fields textarea {
	width: 100%;
}

.hbook-wrapper .hb-details-fields textarea {
	min-height: 100px;
	resize: vertical;
}

.hbook-wrapper .hb-details-fields input[type="checkbox"],
.hbook-wrapper .hb-details-fields input[type="radio"] {
	margin-right: 6px;
}

.hbook-wrapper .bc-field-error {
	display: block;
	font-size: .85em;
	margin-top: 2px;
}

/* ---------- Cupón, condiciones y pago ---------- */

.hbook-wrapper .hb-coupons-area,
.hbook-wrapper .hb-policies-area,
.hbook-wrapper .hb-payment-info-wrapper,
.hbook-wrapper .hb-summary-wrapper {
	margin: 0 0 20px;
}

.hbook-wrapper .hb-coupons-area p:last-child {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.hbook-wrapper .hb-coupon-code {
	flex: 1 1 180px;
	max-width: 260px;
}

.hbook-wrapper .hb-policies-area p {
	margin: 0 0 8px;
}

.hbook-wrapper .hb-payment-type-wrapper,
.hbook-wrapper .hb-payment-method label {
	cursor: pointer;
}

.hbook-wrapper .hb-payment-type-multiple-choice,
.hbook-wrapper .hb-payment-method {
	line-height: 1.9;
}

.hbook-wrapper .hb-confirm-area {
	margin-top: 8px;
}

.hbook-wrapper .hb-confirm-area p {
	margin: 0 0 12px;
}

/* ---------- Resumen ---------- */

.hbook-wrapper .hb-resa-summary-content > div,
.hbook-wrapper .hb-resa-summary-content > p {
	margin: 0;
}

.hbook-wrapper .hb-resa-summary-content > .bc-empty {
	display: none;
}

.hbook-wrapper .hb-summary-total-price {
	font-weight: 700;
}

/* ---------- Calendario (plantilla bc-dp sobre Datepick) ---------- */

.bc-datepick {
	max-width: calc(100vw - 16px);
	width: max-content !important; /* la librería fija un ancho en línea */
	z-index: 99999;
}

.bc-dp {
	padding: 12px 14px 10px;
	position: relative;
}

.bc-dp-head {
	align-items: center;
	display: flex;
	justify-content: space-between;
	margin-bottom: 6px;
	min-height: 24px;
	padding-right: 4px;
}

.bc-dp-head .bc-dp-cmd {
	font-size: 22px;
	line-height: 1;
	text-decoration: none;
}

.bc-dp-nav {
	left: 10px;
	pointer-events: none;
	position: absolute;
	right: 10px;
	top: 44px;
}

.bc-dp-nav .bc-dp-cmd {
	align-items: center;
	display: inline-flex;
	font-size: 22px;
	height: 32px;
	justify-content: center;
	line-height: 1;
	pointer-events: auto;
	position: absolute;
	text-decoration: none;
	top: 0;
	width: 32px;
}

.bc-dp-nav .bc-dp-cmd:first-child {
	left: 0;
}

.bc-dp-nav .bc-dp-cmd:last-child {
	right: 0;
}

.bc-dp-nav .bc-dp-disabled {
	opacity: .25;
	pointer-events: none;
}

.bc-dp-months {
	display: flex;
	gap: 22px;
}

.bc-dp-month {
	flex: 0 0 266px;
	min-width: 0;
}

.bc-dp-month-name {
	line-height: 32px;
	margin-bottom: 4px;
	text-align: center;
}

.bc-dp-grid {
	border: 0;
	border-collapse: separate;
	border-spacing: 2px;
	margin: 0;
	table-layout: fixed;
	width: 100%;
}

.bc-dp-grid th,
.bc-dp-grid td {
	border: 0;
	padding: 0;
	text-align: center;
}

.bc-dp-grid th {
	height: 26px;
}

.bc-dp-grid td a,
.bc-dp-grid td span {
	align-items: center;
	display: flex;
	height: 36px;
	justify-content: center;
	text-decoration: none;
	width: 100%;
}

.bc-dp-grid td .bc-dp-other-month {
	visibility: hidden;
}

.bc-dp-legend {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 16px;
	margin-top: 8px;
}

.bc-dp-legend-item {
	align-items: center;
	display: inline-flex;
	gap: 6px;
}

.bc-dp-legend-item i {
	display: inline-block;
	height: 12px;
	width: 12px;
}

.bc-dp-rtl {
	direction: rtl;
}

/* ---------- Calendario de disponibilidad ---------- */

.hb-availability-calendar-wrapper {
	margin: 0 0 1.5em;
}

.hb-availability-calendar-centered {
	display: inline-block;
	max-width: 100%;
}

.hb-availability-calendar .bc-dp-inline {
	padding: 6px 0 0;
}

.hb-availability-calendar .bc-dp-nav {
	top: 6px;
}

.hb-availability-calendar .bc-dp-months + .bc-dp-months {
	margin-top: 18px;
}

.hb-availability-calendar.bc-av-cols-1 .bc-dp-month {
	flex: 1 1 auto;
	max-width: 340px;
	width: 100%;
}

.hb-avail-caption-wrapper {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 6px 16px;
	margin: 10px 0 0;
}

.hb-avail-caption {
	display: inline-block;
	height: 14px;
	vertical-align: middle;
	width: 14px;
}

.hb-avail-caption-text {
	margin-left: -10px;
}

.hb-avail-line-break {
	display: none;
}

/* ---------- Tabla de tarifas ---------- */

.bc-table-scroll {
	margin: 0 0 1.5em;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.hb-rates-table {
	border-collapse: collapse;
	min-width: 480px;
	width: 100%;
}

.hb-rates-table th,
.hb-rates-table td {
	padding: 10px 12px;
	text-align: left;
	vertical-align: top;
}

.hb-rate-sub-prices td {
	padding: 2px 0;
}

/* ---------- Listado de alojamientos ---------- */

.hb-accom-listing-shortcode-wrapper {
	margin: 0 0 1.5em;
}

.hb-accom-listing-row {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	margin-bottom: 20px;
}

.hb-accom-listing-column {
	flex: 1 1 300px;
}

.hb-accom-listing-item {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.hb-accom-listing-desc-wrapper {
	flex: 1 1 auto;
}

.hb-accom-listing-desc .hb-thumbnail-link img {
	display: block;
	height: auto;
	max-width: 100%;
	width: 100%;
}

.hb-accom-listing-actions-wrapper {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 12px;
}

.hb-accom-listing-actions-wrapper p {
	margin: 0;
}

.hb-accom-listing-booking-form {
	display: none;
	margin-top: 14px;
}

/* ---------- Página de resumen ---------- */

.hb-resa-summary .hb-resa-summary-content > .bc-empty,
.hb-resa-summary-content > .bc-empty {
	display: none;
}

/* ---------- Celular ---------- */

@media (max-width: 600px) {
	.hbook-wrapper .hb-search-fields > p,
	.hbook-wrapper .hb-search-fields > .hb-people-wrapper,
	.hbook-wrapper .hb-search-fields > .hb-accom-number-wrapper {
		flex: 1 1 calc(50% - 6px);
	}

	.hbook-wrapper .hb-search-fields > .hb-search-button-wrapper {
		flex: 1 1 100%;
	}

	.hbook-wrapper .hb-search-fields > .hb-search-button-wrapper input {
		width: 100%;
	}

	.hbook-wrapper .hb-accom:has(> .hb-accom-img),
	.hbook-wrapper .hb-accom:has(> a > .hb-accom-img) {
		grid-template-columns: 1fr;
	}

	.hbook-wrapper .hb-accom > .hb-accom-img,
	.hbook-wrapper .hb-accom > a:has(> .hb-accom-img) {
		grid-row: auto;
	}

	.hbook-wrapper .hb-details-fields .hb-column-half,
	.hbook-wrapper .hb-details-fields .hb-column-third {
		flex: 1 1 100%;
	}

	.hbook-wrapper .hb-multi-accom-people-title {
		flex: 1 1 100%;
		padding-bottom: 0;
	}

	.bc-dp-grid td a,
	.bc-dp-grid td span {
		height: 40px;
	}

	.bc-dp-month {
		flex: 1 1 auto;
		width: calc(100vw - 60px);
	}
}
