/**
 * Regres MeetingHive presentation layer.
 *
 * Selectors are limited to MeetingHive / HivePress / HivePress Bookings markup
 * confirmed on Destiny parent source. Does not hide Accept/Decline Decision UI
 * controls or Booking Offset fields.
 */

:root {
	--regres-color-canvas: #f4f1eb;
	--regres-color-surface: #ffffff;
	--regres-color-ink: #1c2430;
	--regres-color-ink-muted: #4a5563;
	--regres-color-line: #d8d2c8;
	--regres-color-accent: #1a5c56;
	--regres-color-accent-hover: #144843;
	--regres-color-accent-soft: #e7f1ef;
	--regres-color-danger: #b42318;
	--regres-color-danger-soft: #fef3f2;
	--regres-color-focus: #0f766e;
	--regres-font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--regres-space-1: 0.25rem;
	--regres-space-2: 0.5rem;
	--regres-space-3: 0.75rem;
	--regres-space-4: 1rem;
	--regres-space-5: 1.5rem;
	--regres-space-6: 2rem;
	--regres-radius: 0.5rem;
	--regres-radius-lg: 0.75rem;
	--regres-shadow: 0 1px 2px rgba(28, 36, 48, 0.06), 0 8px 24px rgba(28, 36, 48, 0.06);
	--regres-control-min: 2.75rem;
}

html {
	font-family: var(--regres-font);
}

body {
	background: var(--regres-color-canvas);
	color: var(--regres-color-ink);
}

.site-header {
	background: var(--regres-color-surface);
	border-bottom: 1px solid var(--regres-color-line);
	box-shadow: none;
}

.header-navbar {
	padding-block: var(--regres-space-3);
}

.header-logo__name {
	color: var(--regres-color-ink);
	font-weight: 600;
	letter-spacing: -0.02em;
}

a:focus-visible,
button:focus-visible,
.button:focus-visible,
.button-primary:focus-visible,
.hp-form__button:focus-visible,
.hp-listing__action:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
.select2-container--default .select2-selection--single:focus-visible,
.flatpickr-input:focus-visible {
	outline: 2px solid var(--regres-color-focus);
	outline-offset: 2px;
}

a {
	color: var(--regres-color-accent);
}

a:hover {
	color: var(--regres-color-accent-hover);
}

.button,
.button-primary,
.button--primary,
.hp-form__button,
.hp-listing__action {
	min-height: var(--regres-control-min);
	border-radius: var(--regres-radius);
	font-family: var(--regres-font);
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
	transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.button--primary,
.button-primary,
.hp-form__button.button-primary,
.hp-listing__action--accept.button--primary {
	background: var(--regres-color-accent);
	border-color: var(--regres-color-accent);
	color: #fff;
}

.button--primary:hover,
.button-primary:hover,
.hp-form__button.button-primary:hover,
.hp-listing__action--accept.button--primary:hover {
	background: var(--regres-color-accent-hover);
	border-color: var(--regres-color-accent-hover);
	color: #fff;
}

.hp-listing__action--decline,
.hp-listing__action--decline.button {
	background: var(--regres-color-surface);
	border: 1px solid var(--regres-color-line);
	color: var(--regres-color-ink);
}

.hp-form--listing-update,
.hp-form--listing-submit,
.hp-form--booking-make,
.hp-form--booking-accept,
.hp-form--booking-decline {
	background: var(--regres-color-surface);
	border: 1px solid var(--regres-color-line);
	border-radius: var(--regres-radius-lg);
	box-shadow: var(--regres-shadow);
	padding: var(--regres-space-5);
}

.hp-form__header,
.hp-form__description,
.hp-field__label,
.hp-form__label {
	color: var(--regres-color-ink);
}

.hp-form__description,
.hp-field__label span {
	font-weight: 600;
}

.hp-form--listing-update .hp-form__fields,
.hp-form--listing-submit .hp-form__fields,
.hp-form--booking-make .hp-form__fields,
.hp-form--booking-accept .hp-form__fields,
.hp-form--booking-decline .hp-form__fields {
	display: grid;
	gap: var(--regres-space-4);
}

.hp-form--listing-update .hp-form__field,
.hp-form--listing-update .hp-field,
.hp-form--listing-submit .hp-form__field,
.hp-form--listing-submit .hp-field,
.hp-form--booking-make .hp-form__field,
.hp-form--booking-make .hp-field,
.hp-form--booking-accept .hp-form__field,
.hp-form--booking-accept .hp-field,
.hp-form--booking-decline .hp-form__field,
.hp-form--booking-decline .hp-field {
	margin-bottom: 0;
}

.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(--regres-control-min);
	border: 1px solid var(--regres-color-line);
	border-radius: var(--regres-radius);
	background: var(--regres-color-surface);
	color: var(--regres-color-ink);
	padding: var(--regres-space-2) var(--regres-space-3);
	font-family: var(--regres-font);
}

.hp-field textarea,
.hp-field--textarea textarea {
	min-height: 8rem;
}

.select2-container {
	width: 100% !important;
}

.select2-container--default .select2-selection--single {
	min-height: var(--regres-control-min);
	border: 1px solid var(--regres-color-line);
	border-radius: var(--regres-radius);
	background: var(--regres-color-surface);
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
	line-height: var(--regres-control-min);
	color: var(--regres-color-ink);
	padding-left: var(--regres-space-3);
}

.hp-form__messages,
.hp-form__messages[data-component="messages"] {
	border-radius: var(--regres-radius);
	color: var(--regres-color-danger);
}

.hp-form__messages:not(:empty) {
	background: var(--regres-color-danger-soft);
	border: 1px solid #fecdca;
	padding: var(--regres-space-3);
	margin-bottom: var(--regres-space-4);
}

.hp-listings.hp-block {
	display: grid;
	gap: var(--regres-space-5);
}

.hp-listing--view-block {
	background: var(--regres-color-surface);
	border: 1px solid var(--regres-color-line);
	border-radius: var(--regres-radius-lg);
	box-shadow: var(--regres-shadow);
	overflow: hidden;
	color: var(--regres-color-ink);
}

.hp-listing--view-block .hp-listing__header {
	background: var(--regres-color-accent-soft);
}

.hp-listing--view-block .hp-listing__image img {
	display: block;
	width: 100%;
	height: auto;
}

.hp-listing--view-block .hp-listing__content,
.hp-listing--view-block .hp-listing__footer {
	padding: var(--regres-space-4);
}

.hp-listing__title {
	font-size: 1.125rem;
	font-weight: 650;
	letter-spacing: -0.02em;
	color: var(--regres-color-ink);
}

.hp-listing__title a {
	color: inherit;
	text-decoration: none;
}

.hp-listing__title a:hover {
	color: var(--regres-color-accent);
}

.hp-listing__details,
.hp-listing__attributes {
	color: var(--regres-color-ink-muted);
}

.hp-listing--view-page {
	color: var(--regres-color-ink);
}

.hp-listing--view-page .hp-listing__actions--primary,
.hp-page__sidebar .hp-listing__actions--primary,
.hp-booking__sidebar .hp-listing__actions--primary,
.hp-widget.widget.hp-listing__actions {
	background: var(--regres-color-surface);
	border: 1px solid var(--regres-color-line);
	border-radius: var(--regres-radius-lg);
	box-shadow: var(--regres-shadow);
	padding: var(--regres-space-4);
}

.hp-listing--view-page .hp-listing__actions--primary .hp-form--booking-make,
.hp-page__sidebar .hp-form--booking-make {
	border: 0;
	box-shadow: none;
	padding: 0;
}

.hp-booking--view-page .hp-listing__actions--primary,
.hp-booking__sidebar .hp-listing__actions--primary {
	display: flex;
	flex-wrap: wrap;
	gap: var(--regres-space-3);
}

#booking_accept_modal,
#booking_decline_modal,
.fancybox-content #booking_accept_modal,
.fancybox-content #booking_decline_modal {
	background: var(--regres-color-surface);
	color: var(--regres-color-ink);
	border-radius: var(--regres-radius-lg);
	padding: var(--regres-space-5);
}

#booking_accept_modal .hp-form,
#booking_decline_modal .hp-form {
	border: 0;
	box-shadow: none;
	padding: 0;
}

.hp-page__topbar--separate,
.hp-menu--tabbed {
	border-color: var(--regres-color-line);
}

.widget.hp-widget--listing-filter,
.hp-form--pivot {
	background: var(--regres-color-surface);
	border: 1px solid var(--regres-color-line);
	border-radius: var(--regres-radius-lg);
	padding: var(--regres-space-4);
}

.hp-form--listing-filter .hp-field--hidden,
.hp-form--listing-sort .hp-field--hidden {
	display: none !important;
}

.flatpickr-calendar {
	font-family: var(--regres-font);
	border-radius: var(--regres-radius);
	box-shadow: var(--regres-shadow);
}

.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange {
	background: var(--regres-color-accent);
	border-color: var(--regres-color-accent);
}

.flatpickr-day:focus-visible {
	outline: 2px solid var(--regres-color-focus);
	outline-offset: 1px;
}

@media (max-width: 767px) {
	.site-container {
		padding-inline: var(--regres-space-3);
	}

	.hp-listings.hp-block,
	.hp-listing--view-block {
		width: 100%;
	}

	.hp-form--listing-update,
	.hp-form--listing-submit,
	.hp-form--booking-make {
		padding: var(--regres-space-4);
	}

	.hp-page__sidebar,
	.hp-booking__sidebar,
	.hp-listing--view-page .hp-listing__actions--primary {
		width: 100%;
		margin-top: var(--regres-space-5);
	}

	#booking_accept_modal,
	#booking_decline_modal,
	.fancybox-content {
		max-width: 100%;
	}

	.button,
	.button-primary,
	.hp-form__button,
	.hp-listing__action {
		width: 100%;
		justify-content: center;
	}

	.hp-booking--view-page .hp-listing__actions--primary {
		flex-direction: column;
	}
}

.regres-core-public-profile {
	margin: 0 0 var(--regres-space-4);
	color: var(--regres-color-ink);
}

.regres-core-public-profile__title,
.regres-core-public-profile__label {
	margin: 0 0 var(--regres-space-3);
	font-size: 1rem;
	font-weight: 600;
}

.regres-core-public-profile__caption {
	display: block;
	margin-bottom: var(--regres-space-1);
	color: var(--regres-color-ink-muted);
	font-size: 0.8125rem;
}

.regres-core-public-profile__field {
	margin: 0 0 var(--regres-space-3);
}

.regres-core-public-profile__list {
	margin: 0;
	padding-left: 1.25rem;
}

.regres-core-public-profile--summary {
	padding: var(--regres-space-4);
	border: 1px solid var(--regres-color-line);
	border-radius: var(--regres-radius);
	background: var(--regres-color-surface);
}

.regres-core-public-profile__name {
	margin: 0 0 var(--regres-space-2);
	font-weight: 600;
}

.regres-core-public-profile__meta,
.regres-core-public-profile__status {
	margin: 0;
	color: var(--regres-color-ink-muted);
}

@media (prefers-reduced-motion: reduce) {
	.button,
	.button-primary,
	.button--primary,
	.hp-form__button,
	.hp-listing__action,
	a {
		transition: none;
	}

	.flatpickr-calendar,
	.hp-listing--view-block {
		animation: none;
	}
}
