/**
 * Booking Engine Connector — search form preset: enhanced
 * Bar layout, guest popover, themed daterangepicker overrides.
 * Depends on vendor daterangepicker.css (enqueued before this).
 * Theme tokens: defaults on :root via Styling settings (see StylingSettings::buildDefaultRootVariablesCss).
 */

/* --- Enhanced search bar --- */

.bec-search-form-wrap--enhanced{
	position: relative;
	font-family: var(--bec-font-sans);
	color: var(--bec-color-text);
}

.bec-search-form--enhanced {
	display: block;
	margin: 0;
}

.bec-search-form-wrap--enhanced .bec-search-form__error {
	color: var(--bec-color-error);
	font-size: var(--bec-font-size-sm);
}

.bec-search-form__bar {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 0;
	padding: 0;
	background: var(--bec-color-bg);
	border-radius: var(--bec-radius-field);
	box-shadow: var(--bec-shadow-bar);
	overflow: hidden;
}

@media (min-width: 640px) {
	.bec-search-form__bar {
		flex-wrap: nowrap;
	}
}

.bec-search-form__control {
	position: relative;
	min-width: 0;
}

.bec-search-form__control--daterange {
	flex: 2 1;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	justify-content: center;
	gap: 0.35rem;
	padding: 0.85rem 1rem 0.85rem 1.15rem;
	border-right: var(--bec-border-width) solid var(--bec-color-border);
}

.bec-search-form__control--daterange::before {
	content: attr(data-bec-section-heading);
	display: block;
	font-size: 0.6875rem;
	font-weight: var(--bec-font-weight-label);
	color: var(--bec-color-text);
	letter-spacing: 0.09em;
	text-transform: uppercase;
	line-height: 1.2;
}

.bec-search-form__control--guests {
	flex: 1.1 1;
	border-right: var(--bec-border-width) solid var(--bec-color-border);
}

.bec-search-form__control--submit {
	flex: 0 1 30%;
	min-width: 10.5rem;
	display: flex;
	align-items: stretch;
}

.bec-search-form-wrap--enhanced button.bec-search-form__date-split {
	display: flex;
	align-items: center;
	width: 100%;
	min-height: 1.5rem;
	padding: 0;
	margin: 0;
	font: inherit;
	font-size: inherit;
	line-height: inherit;
	text-align: left;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
	background: transparent;
	border: none;
	border-radius: 0;
	color: var(--bec-color-text);
	box-shadow: none;
	text-decoration: none;
	transition: opacity var(--bec-transition);
	white-space: normal;
	user-select: auto;
	text-transform: none;
}

.bec-search-form-wrap--enhanced button.bec-search-form__date-split:hover {
	background: transparent;
	border: none;
	color: var(--bec-color-text);
	text-decoration: none;
	filter: brightness(1);
	opacity: 0.92;
}

.bec-search-form-wrap--enhanced button.bec-search-form__date-split:focus-visible {
	outline: 2px solid var(--bec-color-accent);
	outline-offset: 2px;
	border-radius: var(--bec-radius-input);
}

.bec-search-form__date-half {
	flex: 1 1 50%;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	padding: 0 0.25rem;
}

.bec-search-form__date-half--checkin {
	padding-left: 0;
}

.bec-search-form__date-half--checkout {
	padding-right: 0;
}

.bec-search-form__date-label {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.bec-search-form__date-half-body {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 0.45rem;
}

.bec-search-form__date-half--checkin .bec-search-form__date-half-body::before {
	content: "";
	flex: 0 0 1.25rem;
	width: 1.25rem;
	height: 1.25rem;
	background-image: var(--bec-cal-icon);
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
}

.bec-search-form__date-day {
	font-size: var(--bec-font-size-md);
	font-weight: var(--bec-font-weight-value);
	line-height: 1.35;
	color: var(--bec-color-text);
	letter-spacing: 0.01em;
}

.bec-search-form__date-meta {
	display: none;
}

.bec-search-form__date-my,
.bec-search-form__date-dow {
	display: none;
}

.bec-search-form__date-divider {
	flex: 0 0 auto;
	width: var(--bec-border-width);
	align-self: stretch;
	margin: 0 0.5rem;
	min-height: 1.5rem;
	background: var(--bec-color-border);
}

.bec-search-form-wrap--enhanced button.bec-search-form__trigger {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	gap: 0.3rem;
	width: 100%;
	min-height: 100%;
	padding: 0.85rem 1rem;
	margin: 0;
	font: inherit;
	font-size: var(--bec-font-size-md);
	line-height: inherit;
	text-align: left;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
	background: transparent;
	border: none;
	border-radius: 0;
	color: var(--bec-color-text);
	box-shadow: none;
	text-decoration: none;
	transition: opacity var(--bec-transition);
	white-space: normal;
	user-select: auto;
	text-transform: none;
}

.bec-search-form-wrap--enhanced button.bec-search-form__trigger:hover {
	background: transparent;
	border: none;
	color: var(--bec-color-text);
	text-decoration: none;
	filter: brightness(1);
	opacity: 0.92;
}

.bec-search-form-wrap--enhanced button.bec-search-form__trigger:focus-visible {
	outline: 2px solid var(--bec-color-accent);
	outline-offset: -2px;
}

.bec-search-form__trigger-label {
	font-size: 0.6875rem;
	font-weight: var(--bec-font-weight-label);
	color: var(--bec-color-text);
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

.bec-search-form__trigger-value {
	font-size: var(--bec-font-size-md);
	font-weight: var(--bec-font-weight-value);
	color: var(--bec-color-text);
	line-height: 1.35;
	word-break: break-word;
	display: flex;
	align-items: center;
	gap: 0.45rem;
}

.bec-search-form__trigger-value::before {
	content: "";
	flex: 0 0 1.25rem;
	width: 1.25rem;
	height: 1.25rem;
	background-image: var(--bec-users-icon);
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
}

/* Guest dialog portaled to document.body — inherits theme vars from .bec-search-form-wrap--enhanced host */
.bec-search-form__guest-panel-mount {
	position: fixed;
	inset: 0;
	z-index: var(--bec-drp-z-index, 10050);
	pointer-events: none;
}

.bec-search-form__guest-panel-mount .bec-search-form__panel {
	pointer-events: auto;
}

.bec-search-form__panel.bec-search-form__panel--portal-desktop {
	position: fixed !important;
	margin: 0;
	left: auto;
	right: auto;
	bottom: auto;
	top: auto;
}

.bec-search-form__panel {
	position: absolute;
	z-index: var(--bec-panel-z-index);
	left: 0;
	top: calc(100% + var(--bec-panel-offset-y));
	min-width: min(100%, var(--bec-panel-min-width));
	max-width: var(--bec-panel-max-width);
	padding: 0;
	font-family: var(--bec-panel-font-family);
	background: var(--bec-color-bg);
	border: var(--bec-border-width) solid var(--bec-panel-border-color);
	border-radius: var(--bec-panel-radius);
	box-shadow: var(--bec-panel-shadow);
}

.bec-search-form__panel-inner {
	padding: var(--bec-panel-inner-padding);
	display: flex;
	flex-direction: column;
}

.bec-search-form__panel-footer {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	justify-content: stretch;
	gap: var(--bec-panel-footer-gap);
	margin-top: var(--bec-panel-footer-margin-top);
	padding-top: var(--bec-panel-footer-padding-top);
	border-top: var(--bec-border-width) solid var(--bec-panel-border-color);
}

/* Match .daterangepicker .drp-buttons .btn (cancel / apply) */
.bec-search-form-wrap--enhanced button.bec-search-form__panel-footer-btn {
	flex: 1 1 auto;
	box-sizing: border-box;
	min-width: 0;
	margin: 0;
	padding: 0.45rem 1rem;
	font: inherit;
	font-size: var(--bec-panel-footer-btn-font-size);
	font-weight: var(--bec-panel-footer-btn-font-weight);
	line-height: 1.25;
	text-align: center;
	text-transform: none;
	letter-spacing: normal;
	border-radius: var(--bec-radius-ui);
	border: 1px solid var(--bec-color-border-strong);
	background-color: var(--bec-color-bg);
	color: var(--bec-drp-range-edge);
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
	user-select: none;
	transition:
		background-color var(--bec-transition),
		color var(--bec-transition),
		border-color var(--bec-transition),
		filter var(--bec-transition);
}

.bec-search-form-wrap--enhanced button.bec-search-form__panel-footer-btn--secondary:hover,
.bec-search-form-wrap--enhanced button.bec-search-form__panel-footer-btn--secondary:focus {
	background-color: var(--bec-drp-range-bg);
	color: var(--bec-drp-range-edge);
	border-color: var(--bec-drp-range-edge);
	text-decoration: none;
}

.bec-search-form-wrap--enhanced button.bec-search-form__panel-footer-btn--primary {
	background-color: var(--bec-color-accent);
	color: var(--bec-color-accent-text);
	border-color: var(--bec-color-accent);
}

.bec-search-form-wrap--enhanced button.bec-search-form__panel-footer-btn--primary:hover,
.bec-search-form-wrap--enhanced button.bec-search-form__panel-footer-btn--primary:focus {
	filter: brightness(1.08);
	text-decoration: none;
}

.bec-search-form-wrap--enhanced button.bec-search-form__panel-footer-btn:focus-visible {
	outline: 2px solid var(--bec-color-accent);
	outline-offset: 2px;
}

.bec-search-form__panel-field {
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: var(--bec-panel-field-gap);
}

.bec-search-form-wrap--enhanced .bec-search-form__panel-field label {
	font-size: var(--bec-font-size-sm);
	font-weight: 500;
	color: var(--bec-color-text-muted);
	display: block;
	line-height: inherit;
	margin: 0;
}

.bec-search-form-wrap--enhanced .bec-search-form__panel-field input[type="date"],
.bec-search-form-wrap--enhanced .bec-search-form__panel-field select {
	width: 100%;
	max-width: none;
	padding: var(--bec-panel-field-input-padding);
	margin: 0;
	font: inherit;
	font-size: var(--bec-font-size-md);
	line-height: inherit;
	border: var(--bec-border-width) solid var(--bec-color-border);
	border-radius: var(--bec-panel-field-radius);
	background: var(--bec-color-bg);
	color: var(--bec-color-text);
	transition: border-color var(--bec-transition);
}

.bec-search-form-wrap--enhanced .bec-search-form__panel-field input[type="date"]:focus,
.bec-search-form-wrap--enhanced .bec-search-form__panel-field select:focus-visible {
	outline: 2px solid var(--bec-color-accent);
	outline-offset: 1px;
	border-color: var(--bec-color-border);
}

.bec-search-form__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0.35rem 0;
}


.bec-search-form__row-label {
	font-size: var(--bec-font-size-md);
	font-weight: 500;
}

.bec-search-form__stepper {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	border: var(--bec-border-width) solid var(--bec-color-border);
	border-radius: var(--bec-radius-pill);
	padding: 0.2rem;
	background: var(--bec-color-bg);
}

.bec-search-form-wrap--enhanced .bec-search-form__stepper input[type="number"] {
	width: 2.25rem;
	padding: 0.25rem 0;
	border: none;
	background: transparent;
	font: inherit;
	font-size: var(--bec-font-size-md);
	font-weight: 600;
	text-align: center;
	line-height: inherit;
	color: var(--bec-color-text);
	-moz-appearance: textfield;
	appearance: textfield;
}

.bec-search-form-wrap--enhanced .bec-search-form__stepper input[type="number"]::-webkit-outer-spin-button,
.bec-search-form-wrap--enhanced .bec-search-form__stepper input[type="number"]::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.bec-search-form-wrap--enhanced button.bec-search-form__step-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--bec-step-btn-size);
	height: var(--bec-step-btn-size);
	padding: 0;
	margin: 0;
	font: inherit;
	font-size: var(--bec-step-btn-font-size);
	line-height: 1;
	font-weight: 600;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
	border: none;
	border-radius: var(--bec-radius-pill);
	background: var(--bec-color-surface);
	color: var(--bec-color-text);
	box-shadow: none;
	text-decoration: none;
	transition: background var(--bec-transition), filter var(--bec-transition), color var(--bec-transition),
		opacity var(--bec-transition), border-color var(--bec-transition), box-shadow var(--bec-transition),
		outline-offset var(--bec-transition), outline-width var(--bec-transition);
	white-space: nowrap;
	user-select: none;
	text-transform: none;
}

.bec-search-form-wrap--enhanced button.bec-search-form__step-btn:hover {
	background: var(--bec-color-border);
	color: var(--bec-color-text);
	border: none;
	text-decoration: none;
	filter: brightness(1);
}

.bec-search-form-wrap--enhanced button.bec-search-form__step-btn:focus-visible {
	outline: 2px solid var(--bec-color-accent);
	outline-offset: 1px;
}

.bec-search-form__child-ages--enhanced {
	display: flex;
	flex-direction: column;
	gap: var(--bec-child-ages-gap);
}

.bec-search-form__child-age {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}

.bec-search-form-wrap--enhanced .bec-search-form__child-age label {
	font-size: var(--bec-font-size-sm);
	font-weight: 500;
	color: var(--bec-color-text-muted);
	display: block;
	line-height: inherit;
	margin: 0;
}

.bec-search-form-wrap--enhanced .bec-search-form__child-age select {
	width: 100%;
	max-width: none;
	padding: var(--bec-panel-field-input-padding);
	margin: 0;
	font: inherit;
	font-size: var(--bec-font-size-md);
	line-height: inherit;
	border: var(--bec-border-width) solid var(--bec-color-border);
	border-radius: var(--bec-panel-field-radius);
	background: var(--bec-color-bg);
	color: var(--bec-color-text);
	transition: border-color var(--bec-transition);
}

.bec-search-form-wrap--enhanced button.bec-search-form__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.55rem;
	width: 100%;
	min-height: 100%;
	padding: 1rem 1.1rem;
	margin: 0;
	font: inherit;
	font-size: var(--bec-font-size-md);
	font-weight: 600;
	line-height: inherit;
	text-align: center;
	color: var(--bec-color-accent-text);
	background: var(--bec-color-accent);
	border: none;
	border-radius: 0;
	-webkit-appearance: none;
	appearance: none;
	box-shadow: none;
	text-decoration: none;
	cursor: pointer;
	user-select: none;
	transition:
		filter var(--bec-transition),
		background-color var(--bec-transition);
}

.bec-search-form-wrap--enhanced button.bec-search-form__button::before {
	content: "";
	display: block;
	flex: 0 0 1.15rem;
	width: 1.15rem;
	height: 1.15rem;
	background-image: var(--bec-search-icon);
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
}

.bec-search-form-wrap--enhanced button.bec-search-form__button:hover {
	background-color: var(--bec-color-accent);
	color: var(--bec-color-accent-text);
	border: none;
	text-decoration: none;
	filter: brightness(1.04);
}

.bec-search-form-wrap--enhanced button.bec-search-form__button:focus-visible {
	outline: 2px solid var(--bec-focus-ring-outer);
	outline-offset: -4px;
	box-shadow: 0 0 0 2px var(--bec-color-accent);
}

.bec-search-form__backdrop {
	position: fixed;
	inset: 0;
	z-index: 110;
	background: var(--bec-backdrop);
	backdrop-filter: blur(2px);
}

.bec-search-form__backdrop[hidden] {
	display: none !important;
}

.bec-search-form-wrap--popover-open {
	overflow: clip;
}

@media (max-width: 639px) {
	.bec-search-form__bar {
		flex-direction: column;
		align-items: stretch;
		border-radius: var(--bec-radius-field);
	}

	.bec-search-form__control--daterange {
		border-right: none;
		border-bottom: var(--bec-border-width) solid var(--bec-color-border);
		padding: 0.85rem 1rem;
	}

	.bec-search-form__control--guests {
		border-right: none;
	}

	.bec-search-form__control--submit {
		flex: 1 1 auto;
		min-width: 0;
		width: 100%;
	}

	.bec-search-form-wrap--enhanced button.bec-search-form__button {
		padding: 1rem 1rem calc(1rem + env(safe-area-inset-bottom, 0));
		min-height: 3.25rem;
	}

	.bec-search-form__panel {
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		top: auto;
		min-width: 100%;
		max-width: none;
		margin: 0;
		border-radius: var(--bec-panel-mobile-radius) var(--bec-panel-mobile-radius) 0 0;
		box-shadow: var(--bec-shadow-panel-raised);
		transform: translateY(110%);
		transition: var(--bec-panel-mobile-transition);
		will-change: transform;
		z-index: var(--bec-panel-mobile-z-index);
	}

	.bec-search-form__panel.bec-search-form__panel--open {
		transform: translateY(0);
		will-change: auto;
	}

	@media (prefers-reduced-motion: reduce) {
		.bec-search-form__panel {
			transition: none;
			transform: none;
			will-change: auto;
		}

		.bec-search-form__panel.bec-search-form__panel--open {
			transform: none;
		}
	}

	.bec-search-form__panel-inner {
		padding: var(--bec-panel-mobile-inner-padding-y) var(--bec-panel-inner-padding)
			calc(var(--bec-panel-mobile-inner-padding-y) + env(safe-area-inset-bottom, 0));
		max-height: var(--bec-panel-mobile-inner-max-height);
		overflow-y: auto;
	}

	.bec-search-form__panel-footer {
		flex-wrap: nowrap;
		gap: var(--bec-panel-mobile-footer-gap);
		margin-top: var(--bec-panel-mobile-footer-margin-top);
		padding-top: var(--bec-panel-mobile-footer-padding-top);
	}

	.bec-search-form-wrap--enhanced button.bec-search-form__panel-footer-btn {
		flex: 1 1 50%;
	}
}

@media (max-width: 380px) {
	.bec-search-form__panel-footer {
		flex-direction: column;
		flex-wrap: nowrap;
	}

	.bec-search-form-wrap--enhanced button.bec-search-form__panel-footer-btn {
		flex: none;
		width: 100%;
	}
}

/* =============================================================================
   Daterangepicker — modern minimal calendar (shared: search + booking summary)
   Overrides vendor daterangepicker.css + Elementor Hello reset table rules.
   ============================================================================= */

.daterangepicker {
	box-sizing: border-box;
	border: none !important;
	border-radius: var(--bec-drp-popover-radius);
	padding: var(--bec-drp-popover-padding);
	box-shadow: var(--bec-drp-shadow);
	background-color: var(--bec-color-bg) !important;
	font-family: var(--bec-drp-font-family);
	font-size: var(--bec-drp-popover-font-size);
	line-height: var(--bec-drp-popover-line-height);
	color: var(--bec-drp-range-edge);
	z-index: var(--bec-drp-z-index);
	width: auto !important;
}

.daterangepicker .drp-calendar {
	max-width: none !important;
}

/* Injected scroll wrapper: no layout impact on desktop/tablet (two-column float layout) */
.daterangepicker .bec-drp-scroll {
	display: contents;
}

/* Hide default pointer tooltip triangles */
.daterangepicker::before,
.daterangepicker::after {
	display: none !important;
	content: none !important;
}

/* --- Elementor reset.css / generic table resets --- */
.daterangepicker .calendar-table table {
	width: 100% !important;
	margin: 0 !important;
	border-collapse: separate !important;
	border-spacing: 0 !important;
	background: transparent !important;
	font-size: inherit !important;
}

.daterangepicker .calendar-table table th,
.daterangepicker .calendar-table table td {
	vertical-align: middle !important;
}

.daterangepicker .calendar-table table thead th {
	font-weight: inherit;
}

.daterangepicker .calendar-table table tbody tr:nth-child(odd) > td,
.daterangepicker .calendar-table table tbody tr:nth-child(odd) > th,
.daterangepicker .calendar-table table tbody tr:nth-child(even) > td,
.daterangepicker .calendar-table table tbody tr:nth-child(even) > th {
	background-color: transparent;
}

.daterangepicker .calendar-table table tbody tr:hover > td,
.daterangepicker .calendar-table table tbody tr:hover > th {
	background-color: transparent;
}

/* Month / year dropdown row */
.daterangepicker .calendar-table thead tr:first-child th {
	padding: 0 0 0.75rem;
	border: none !important;
	vertical-align: middle !important;
}

.daterangepicker th.month {
	font-weight: var(--bec-drp-month-title-font-weight);
	font-size: var(--bec-drp-month-title-font-size);
	color: var(--bec-drp-range-edge);
	text-align: center;
}

.daterangepicker select.monthselect,
.daterangepicker select.yearselect {
	display: inline-block !important;
	width: auto !important;
	margin: 0 0.15rem !important;
	padding: 0.2rem 1.5rem 0.2rem 0.35rem !important;
	font-size: var(--bec-drp-select-font-size) !important;
	font-weight: var(--bec-drp-select-font-weight) !important;
	line-height: 1.2 !important;
	color: var(--bec-drp-range-edge) !important;
	background-color: transparent !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23222' d='M6 8L2 4h8z'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 0.15rem center !important;
	background-size: 10px !important;
	border: none !important;
	border-radius: var(--bec-radius-input) !important;
	cursor: pointer;
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	appearance: none !important;
}

.daterangepicker select.monthselect:focus,
.daterangepicker select.yearselect:focus {
	outline: 2px solid var(--bec-drp-select-focus-ring);
	outline-offset: 2px;
}

/* Prev / next chevrons */
.daterangepicker .calendar-table th.prev,
.daterangepicker .calendar-table th.next {
	width: 2rem;
	padding: 0 !important;
}

.daterangepicker .calendar-table .prev,
.daterangepicker .calendar-table .next {
	cursor: pointer;
}

.daterangepicker .calendar-table .prev span,
.daterangepicker .calendar-table .next span {
	display: inline-block;
	padding: var(--bec-drp-prev-next-padding) !important;
	border: solid var(--bec-drp-range-edge) !important;
	border-width: var(--bec-drp-prev-next-border-width) !important;
	background: none !important;
	color: transparent !important;
}

.daterangepicker .calendar-table .prev span {
	transform: rotate(135deg);
}

/* Light gray left nav when not primary (left calendar prev) */
.daterangepicker .drp-calendar.left .prev span {
	border-color: var(--bec-drp-arrow-border) !important;
}

.daterangepicker .calendar-table .next span {
	transform: rotate(-45deg);
}

/* Weekday letters */
.daterangepicker .calendar-table thead tr:last-child th {
	padding: 0.35rem 0 0.5rem !important;
	font-size: var(--bec-drp-weekday-font-size);
	font-weight: var(--bec-drp-weekday-font-weight);
	letter-spacing: var(--bec-drp-weekday-letter-spacing);
	text-transform: uppercase;
	color: var(--bec-drp-day-header) !important;
	border: none !important;
	cursor: default !important;
}

.daterangepicker .calendar-table thead tr:last-child th:hover {
	background: transparent !important;
}

/* Day cells — base */
.daterangepicker .calendar-table tbody td,
.daterangepicker .calendar-table tbody th {
	width: var(--bec-drp-day-cell-size) !important;
	min-width: var(--bec-drp-day-cell-size) !important;
	height: var(--bec-drp-day-cell-size) !important;
	padding: 0 !important;
	font-size: var(--bec-drp-day-font-size) !important;
	font-weight: var(--bec-drp-day-font-weight) !important;
	line-height: var(--bec-drp-day-cell-size) !important;
	position: relative;
	overflow: visible !important;
	z-index: 1;
}

.daterangepicker .calendar-table tbody td {
	color: var(--bec-drp-range-edge);
}

/* Other-month / padded days */
.daterangepicker td.off,
.daterangepicker td.off.in-range,
.daterangepicker td.off.start-date,
.daterangepicker td.off.end-date {
	color: var(--bec-drp-day-muted) !important;
	background-color: transparent !important;
	opacity: 1 !important;
}

/* Range bridge */
.daterangepicker td.in-range {
	background-color: var(--bec-drp-range-bg) !important;
	color: var(--bec-drp-range-edge) !important;
}
.daterangepicker td.start-date:not(.off){
	color: var(--bec-drp-range-edge-text) !important;
	background-color: var(--bec-drp-range-bg) !important;
	border-radius: var(--bec-drp-calendar-pill-radius) 0 0 var(--bec-drp-calendar-pill-radius);
}


.daterangepicker td.end-date:not(.off){
	color: var(--bec-drp-range-edge-text) !important;
	background-color: var(--bec-drp-range-bg) !important;
	border-radius: 0 var(--bec-drp-calendar-pill-radius) var(--bec-drp-calendar-pill-radius) 0;
}

.daterangepicker td.end-date:not(.off):not(.start-date):not(.end-date):hover{
	border-radius: 0 var(--bec-drp-calendar-pill-radius) var(--bec-drp-calendar-pill-radius) 0;
}



.daterangepicker td.start-date:not(.off):before,
.daterangepicker td.end-date:not(.off):before{
	z-index: -1;
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: var(--bec-drp-range-ends) !important;
	border-radius: var(--bec-drp-calendar-pill-radius);
}

.daterangepicker td:not(.off):not(.start-date):not(.end-date):hover:before{
	z-index: -1;
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: transparent !important;
	border-radius: var(--bec-drp-calendar-pill-radius);
	border: 1px solid var(--bec-drp-range-ends) !important;
}

.daterangepicker tbody td.in-range {
	border-radius: 0;
}
  
  /* Only the VERY LAST td.in-range in the tbody */
.daterangepicker tbody td.in-range:not(:has(~ tr td.in-range, ~ td.in-range)):not(.start-date):not(.end-date){
	border-radius: 0 var(--bec-drp-calendar-pill-radius) var(--bec-drp-calendar-pill-radius) 0;
}

/* First td.in-range in the entire tbody */
.daterangepicker tbody tr td.in-range:not(.start-date, .end-date, .off):first-of-type{
  border-radius: var(--bec-drp-calendar-pill-radius) 0 0 var(--bec-drp-calendar-pill-radius);
}

.daterangepicker tbody tr td.in-range:not(.off):first-child{
	border-radius: var(--bec-drp-calendar-pill-radius) 0 0 var(--bec-drp-calendar-pill-radius);
}

.daterangepicker tbody tr td.in-range:not(.start-date):not(.end-date):first-of-type:not(:has(~ td.in-range)),
.daterangepicker tbody tr td.in-range.start-date,
.daterangepicker tbody tr td.start-date:last-of-type,
.daterangepicker tbody tr td.in-range.end-date:first-of-type,
.daterangepicker tbody tr td.start-date.end-date{
	border-radius: var(--bec-drp-calendar-pill-radius);
}

/* Footer: undo theme button/input rules */
.daterangepicker .drp-buttons {
	clear: both;
	border-top: 1px solid var(--bec-drp-border);
	margin: var(--bec-drp-footer-margin);
	padding: var(--bec-drp-footer-padding);
	text-align: right;
}

.daterangepicker .drp-selected {
	font-size: var(--bec-font-size-sm);
	color: var(--bec-color-text-muted);
	padding-right: 0.5rem;
}

.daterangepicker .drp-buttons .btn {
	display: inline-block !important;
	width: auto !important;
	margin: 0 0 0 0.5rem !important;
	padding: 0.45rem 1rem !important;
	font-size: var(--bec-drp-footer-btn-font-size) !important;
	font-weight: var(--bec-drp-footer-btn-font-weight) !important;
	line-height: 1.25 !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	border-radius: var(--bec-radius-ui) !important;
	border: 1px solid var(--bec-color-border-strong) !important;
	background-color: var(--bec-color-bg) !important;
	color: var(--bec-drp-range-edge) !important;
	transition: background-color var(--bec-transition), color var(--bec-transition), border-color var(--bec-transition);
}

.daterangepicker .drp-buttons .btn.btn-primary,
.daterangepicker .drp-buttons .btn.applyBtn {
	background-color: var(--bec-color-accent) !important;
	color: var(--bec-color-accent-text) !important;
	border-color: var(--bec-color-accent) !important;
}

.daterangepicker .drp-buttons .btn.btn-primary:hover,
.daterangepicker .drp-buttons .btn.applyBtn:hover,
.daterangepicker .drp-buttons .btn.btn-primary:focus,
.daterangepicker .drp-buttons .btn.applyBtn:focus {
	filter: brightness(1.08);
	text-decoration: none !important;
}

.daterangepicker .drp-buttons .btn.cancelBtn,
.daterangepicker .drp-buttons .btn.btn-default {
	background-color: var(--bec-color-bg) !important;
	color: var(--bec-drp-range-edge) !important;
	border-color: var(--bec-color-border-strong) !important;
}

.daterangepicker .drp-buttons .btn.cancelBtn:hover,
.daterangepicker .drp-buttons .btn.cancelBtn:focus,
.daterangepicker .drp-buttons .btn.btn-default:hover,
.daterangepicker .drp-buttons .btn.btn-default:focus {
	background-color: var(--bec-drp-range-bg) !important;
	color: var(--bec-drp-range-edge) !important;
	border-color: var(--bec-drp-range-edge) !important;
	text-decoration: none !important;
}

/*
 * Mobile sheet layout only while open (.bec-drp-is-open is toggled in public-search-daterange.js).
 * Without it, plain .daterangepicker { display: flex } would override the vendor display:none
 * on first paint (before jQuery sets inline display on hide).
 */
@keyframes bec-drp-sheet-enter {
	from {
		transform: translateY(110%);
	}
	to {
		transform: translateY(0);
	}
}

@keyframes bec-drp-sheet-exit {
	from {
		transform: translateY(0);
	}
	to {
		transform: translateY(110%);
	}
}

@media (max-width: 639px) {
	.daterangepicker.bec-drp-is-open {
		position: fixed !important;
		left: 0 !important;
		right: 0 !important;
		bottom: 0 !important;
		top: auto !important;
		width: 100% !important;
		max-width: none !important;
		margin: 0 !important;
		max-height: var(--bec-drp-mobile-max-height);
		display: flex !important;
		flex-direction: column;
		overflow: hidden;
		border-radius: var(--bec-drp-popover-radius) var(--bec-drp-popover-radius) 0 0;
		padding: var(--bec-drp-mobile-padding);
		box-shadow: var(--bec-shadow-panel-raised);
		animation: bec-drp-sheet-enter var(--bec-drp-sheet-enter-duration) var(--bec-drp-sheet-ease-enter) both;
		will-change: transform;
	}

	.daterangepicker.bec-drp-is-open.bec-drp-is-closing {
		animation: bec-drp-sheet-exit var(--bec-drp-sheet-exit-duration) var(--bec-drp-sheet-ease-exit) both;
		will-change: transform;
	}

	@media (prefers-reduced-motion: reduce) {
		.daterangepicker.bec-drp-is-open {
			animation: none !important;
			will-change: auto;
		}

		.daterangepicker.bec-drp-is-open.bec-drp-is-closing {
			animation: none !important;
			will-change: auto;
		}
	}

	.daterangepicker.bec-drp-is-open .ranges {
		flex-shrink: 0;
	}

	.daterangepicker.bec-drp-is-open .bec-drp-scroll {
		display: block;
		flex: 1 1 auto;
		min-height: 0;
		overflow-y: auto;
		overflow-x: hidden;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior-y: contain;
	}

	.daterangepicker.bec-drp-is-open .drp-buttons {
		flex-shrink: 0;
		clear: none;
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: var(--bec-panel-footer-gap);
		margin: var(--bec-drp-mobile-footer-margin);
		padding: var(--bec-drp-mobile-footer-padding);
		border-top: 1px solid var(--bec-drp-border);
		background-color: var(--bec-color-bg);
		box-shadow: var(--bec-drp-mobile-footer-shadow);
		text-align: center;
		z-index: 1;
	}

	.daterangepicker.bec-drp-is-open .drp-selected {
		display: block;
		width: 100%;
		grid-column: 1 / -1;
		margin: 0 0 var(--bec-panel-footer-gap);
		padding-right: 0;
		text-align: center;
	}

	.daterangepicker.bec-drp-is-open .drp-buttons .btn {
		width: 100% !important;
		margin: 0 !important;
	}

	.daterangepicker.bec-drp-is-open .drp-calendar.left,
	.daterangepicker.bec-drp-is-open .drp-calendar.right {
		width: 100%;
		max-width: none !important;
		padding-left: 0;
		padding-right: 0;
	}
}

/* Calendar panes: gap on two-month layout */
@media (min-width: 564px) {
	.daterangepicker .drp-calendar.left {
		padding-right: var(--bec-drp-two-month-gap) !important;
	}

	.daterangepicker .drp-calendar.right {
		padding-left: var(--bec-drp-two-month-gap) !important;
	}
}
