/**
 * HivePress / Bookings usability layer. New visual language, not a MeetingHive copy.
 * Does not hide Accept/Decline, modals, forms, labels, errors or offset fields.
 */

.hp-page.md-hp-page,
.md-hp-page.hp-page,
.hp-page.site-main {
	width: min(100% - 2.5rem, var(--md-measure));
	margin-inline: auto;
	padding-block: var(--md-space-6);
}

.hp-listing--view-block,
.hp-form,
.hp-widget,
.hp-modal,
.widget.hp-widget--listing-filter {
	background: var(--md-color-surface);
	border: 1px solid var(--md-color-line);
	border-radius: var(--md-radius);
	color: var(--md-color-ink);
}

.hp-listing--view-block {
	overflow: hidden;
	box-shadow: var(--md-shadow);
}

.hp-listing__content,
.hp-listing__footer,
.hp-form,
.hp-widget,
.widget.hp-widget--listing-filter {
	padding: var(--md-space-4);
}

.hp-listings.hp-block {
	display: grid;
	gap: var(--md-space-5);
}

.hp-listing__title {
	font-size: 1.125rem;
	font-weight: 650;
}

.hp-listing__title a {
	color: inherit;
	text-decoration: none;
}

.hp-listing__details,
.hp-listing__attributes,
.hp-form__description {
	color: var(--md-color-ink-muted);
}

.hp-form--listing-submit,
.hp-form--listing-update,
.hp-form--booking-make,
.hp-form--booking-accept,
.hp-form--booking-decline {
	display: block;
}

.hp-field input,
.hp-field select,
.hp-field textarea,
.hp-field--text input,
.hp-field--number input,
.hp-field--textarea textarea,
.hp-field--date input,
.flatpickr-input {
	width: 100%;
	min-height: var(--md-control-min);
	border: 1px solid var(--md-color-line);
	border-radius: var(--md-radius);
	background: var(--md-color-surface);
	color: var(--md-color-ink);
	padding: var(--md-space-2) var(--md-space-3);
	font-family: var(--md-font);
}

.hp-field textarea,
.hp-field--textarea textarea {
	min-height: 8rem;
}

.button,
.button-primary,
.button--primary,
.hp-form__button,
.hp-listing__action {
	min-height: var(--md-control-min);
	border-radius: 999px;
	font-family: var(--md-font);
	font-weight: 650;
	text-transform: none;
}

.button--primary,
.button-primary,
.hp-form__button.button-primary,
.hp-listing__action--accept.button--primary {
	background: var(--md-color-accent);
	border-color: var(--md-color-accent);
	color: #fff;
}

.hp-listing__action--decline,
.hp-listing__action--decline.button {
	background: var(--md-color-surface);
	border: 1px solid var(--md-color-line);
	color: var(--md-color-ink);
}

.hp-form__messages:not(:empty) {
	background: var(--md-color-danger-soft);
	border: 1px solid #f3c4c4;
	color: var(--md-color-danger);
	border-radius: var(--md-radius);
	padding: var(--md-space-3);
	margin-bottom: var(--md-space-4);
}

#booking_accept_modal,
#booking_decline_modal,
.fancybox-content #booking_accept_modal,
.fancybox-content #booking_decline_modal,
.hp-modal {
	background: var(--md-color-surface);
	color: var(--md-color-ink);
	border-radius: var(--md-radius);
	padding: var(--md-space-5);
}

.select2-container {
	width: 100% !important;
}

.select2-container--default .select2-selection--single {
	min-height: var(--md-control-min);
	border: 1px solid var(--md-color-line);
	border-radius: var(--md-radius);
}

.flatpickr-calendar {
	font-family: var(--md-font);
	border-radius: var(--md-radius);
	box-shadow: var(--md-shadow);
}

.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange {
	background: var(--md-color-accent);
	border-color: var(--md-color-accent);
}

.hp-listing__action:focus-visible,
.hp-form__button:focus-visible,
.flatpickr-input:focus-visible,
.select2-container--default .select2-selection--single:focus-visible {
	outline: 2px solid var(--md-color-focus);
	outline-offset: 2px;
}

@media (max-width: 767px) {
	.hp-listings.hp-block,
	.hp-listing--view-block,
	.hp-form,
	.hp-page__sidebar,
	.hp-booking__sidebar {
		width: 100%;
	}

	.hp-form__button,
	.hp-listing__action {
		width: 100%;
	}
}
