:root {
	--color-red: #e4032b;
	--color-white: #ffffff;
	--color-black: #000000;
	--color-gray: #e7e7e7;

	--wpbc_cal-day-cell-border-radius: 0;
	--wpbc_cal-day-cell-border-width: 0;
	--wpbc_cal-day-bg-color-opacity: 100%;
	--wpbc_cal-selected-day-bg-color-opacity: 100%;
	--wpbc_cal-text-general-size: 15px;
	--wpbc_cal-text-cost-size: 60%;
	--wpbc_cal-text-header-size: 13px;
	--wpbc_cal-text-weekdays-size: 10px;
	--wpbc_cal-text-prev-next-links-size: 25px;
	--wpbc_cal-main-background-color: #fff;
	--wpbc_cal-header-text-color: #000;
	--wpbc_cal-text-prev-next-links-color: #555;
	--wpbc_cal-text-weekdays-color: #555;
	--wpbc_cal-unavailable-day-color: var(--wpbc_cal-main-background-color);
	--wpbc_cal-unavailable-text-color: #d4d4d4c7;
	--wpbc_cal-available-day-color: #f2f2f2;
	--wpbc_cal-available-text-color: #000;
	--wpbc_cal-approved-day-color: #A60D0D;
	--wpbc_cal-approved-text-color: #fbf8f8;
	--wpbc_cal-pending-day-color: #FFF3B4;
	--wpbc_cal-pending-text-color: #BD963B;
	--wpbc_cal-selected-day-color: #e4032b;
	--wpbc_cal-selected-text-color: #fff;
	--wpbc_cal-hover-day-color: #e7e7e7;
	--wpbc_cal-hover-text-color: #000000;
	--wpbc_cal-timespartly-day-color: #a89469;
	--wpbc_cal-timespartly-text-color: #81742e;
	--wpbc_cal-day-cells-padding: 2px;
	--wpbc_form-choice-checked-border-color: var(--color-red);
	--wpbc_form-button-hover-background-color: var(--color-white);
	--wpbc_form-button-hover-text-color: var(--color-red);
	--wpbc_form-button-hover-border-color: var(--color-red);
	--wpbc-resource-catalog-column-gap: 20px;
}

.wpbc_container.wpbc_form .wpbc_button.wpbc_button_primary {
	border: 1px solid var(--color-red);
}

div.wpbc_container.wpbc_form input[type=text]:hover, div.wpbc_container.wpbc_form input[type=text]:focus, div.wpbc_container.wpbc_form input[type=email]:hover, div.wpbc_container.wpbc_form input[type=email]:focus {
	border-color: var(--color-black);
	box-shadow: none;
	outline: none;
}

div.wpbc_container.wpbc_form.wpbc_container_booking_form input.wpbc_form_field_error:hover, div.wpbc_container.wpbc_form.wpbc_container_booking_form select.wpbc_form_field_error:hover, div.wpbc_container.wpbc_form.wpbc_container_booking_form textarea.wpbc_form_field_error:hover, div.wpbc_container.wpbc_form.wpbc_container_booking_form input.wpbc_form_field_error:focus, div.wpbc_container.wpbc_form.wpbc_container_booking_form select.wpbc_form_field_error:focus, div.wpbc_container.wpbc_form.wpbc_container_booking_form textarea.wpbc_form_field_error:focus {
	box-shadow: none !important;
	outline: none !important;
}

div.wpbc_container.wpbc_form input[type=radio]:checked:after {
	background-color: var(--color-red);
}

div.wpbc_container.wpbc_form input[type=checkbox]:checked:before, div.wpbc_container.wpbc_form input[type=radio]:checked:before {
	border-color: var(--color-black);
}

div.wpbc_container.wpbc_form input[type=checkbox]:checked:focus:before, div.wpbc_container.wpbc_form input[type=radio]:checked:focus:before {
	box-shadow: none;
	border-color: var(--color-black);
}

div.wpbc_container.wpbc_form .wpdev-form-control-wrap .wpdev-list-item input[type="checkbox"], div.wpbc_container.wpbc_form .wpdev-form-control-wrap .wpdev-list-item input[type="radio"] {
	margin: -5px 5px 0;
}

div.wpbc_container.wpbc_form input[type=checkbox]:before {
	border-radius: 0;
}

div.wpbc_container.wpbc_form input[type=checkbox]:checked:after {
	border-left-color: var(--color-red);
	border-bottom-color: var(--color-red);
}

div.wpbc_container.wpbc_form input[type=checkbox]:focus:before {
	box-shadow: none;
	border-color: var(--color-black);
}

.wpbc_container_booking_form .wpbc__field label:has(input[type="checkbox"]) {
	display: inline;

	&:hover {
		display: inline;
	}
}

div.wpbc_container.wpbc_form .wpbc__field label.wpbc_inline_checkbox a {
	color: var(--color-red);
	display: inline;
	transition: color 0.5s ease-in-out;

	&:hover {
		color: var(--color-black);
	}
}

.wpdev-checkbox > .wpdev-list-item {
	display: flex;
	align-items: center;
}

.choose_type.wpdev-radio.choose_type {
	gap: 0;
}

.wpbc_booking_resource_selector {
	margin: 0;
	max-width: initial;
}

.wpbc_booking_resource_selector__progress {
	display: none;
}

.wpbc_booking_resource_selector__actions {
	margin: 0;
}

.wpbc_booking_ui_theme_scope {
  .wpbc_button {
    @apply rounded-none relative inline-block text-sm font-bold leading-[1.2857142857] text-center h-[50px] py-[0.9375rem] px-7.5 border cursor-pointer transition-colors duration-500;

    &.wpbc_button_primary {
      background: var(--color-red);
      border: 1px solid var(--color-red);

      &:hover {
        background: white;
        border-color: var(--color-red);
        color: var(--color-red);
      }
    }
  }
}

.wpbc_container_booking_form p {
	padding: 0;
}

div.wpbc_container.wpbc_form .wpbc__field label.wpbc_inline_checkbox * {
	vertical-align: middle;
}

.wpbc_bfb_form .wpbc__row .wpbc__field .bfb_element .wpbc_bfb_divider_wrap hr {
	border-top: 1px solid #ececec;
	margin-top: 20px;
	margin-bottom: 20px;
}

.wpbc_container_booking_form .wpbc_calendar_wraper {
	margin: 0;
}

.wpbc_bfb_form:has(:not(.wpbc__field)) .bk_calendar_frame, .wpbc__field .bk_calendar_frame {
  margin: 0 auto;
}

.wpbc_booking_resource_selector__booking_header {
  display: none;
}

.wpbc_booking_resource_selector__choices {
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}

.wpbc_booking_resource_selector__choice {
  border-radius: 0;

  &:hover {
    border-color: var(--color-red);
  }
}

.wpbc_booking_resource_selector:not([data-resource-selector-stage=booking]) > .wpbc_booking_resource_selector__stage {
	border: 0;
	box-shadow: none;
  padding: 0 !important;
}

.wpbc_booking_resource_selector__choice input:checked ~ .wpbc_booking_resource_selector__choice_mark {
  border-color: var(--color-red);
}

.wpbc_booking_resource_selector__choice.is-selected, .wpbc_booking_resource_selector__choice:has(input:checked) {
  border-color: var(--color-red);
  box-shadow: inset 3px 0 0 var(--color-red);
}

/* Client type toggle (Osoba / Firma) — hide field wrappers so grid/flex gaps collapse */
.wpbc__row.sbce-is-hidden,
.wpbc__field.sbce-is-hidden,
.bfb_element.sbce-is-hidden,
.sbce-is-hidden {
	display: none !important;
}

/* Hide native Booking Calendar resource select */
.wpbc_resource_selection_block .wpbc_wrap_select.sbce-resource-select-hidden,
.wpbc_resource_selection_block select[name="active_booking_form"].sbce-resource-select-hidden {
	display: none !important;
}

.sbce-resource-radios {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	width: 100%;
	margin-bottom: 1rem;
}

.sbce-resource-radio {
	flex: 1 1 12rem;
	min-width: 0;
	border: 1px solid #e5e7eb;

	&.active {
		border: 1px solid #000;
		color: white;
	}
}

.sbce-resource-radio label {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	cursor: pointer;
	width: 100%;
}

div.wpbc_container.wpbc_form .wpbc_static_text.cyklo_dodatkowe_info {
	background: color-mix(in srgb, var(--color-red) 5%, transparent);
	border: 1px solid color-mix(in srgb, var(--color-red) 15%, transparent);
	color: var(--color-black);
	padding: 20px;

	strong {
		color: var(--color-red);
	}
}

.wpbc_bfb_form:has(:not(.wpbc__field)) .bk_calendar_frame, .wpbc__field .bk_calendar_frame {
  margin: 0 auto;
}

.wpbc_container_booking_form .block_hints {
	margin: 10px 0 0;
}

.wpbc_wizard__border_container {
	border: 0;
	box-shadow: none;
	padding: 0;
}

.wpbc_container_booking_form .wpbc__field:not(.wpbc__cal) {
	margin: 0;
}

.wp-core-ui div.wpbc_container.wpbc_form button[type=submit]:not(.wpbc_button_light):not(.wpbc_button_secondary),
.wp-core-ui div.wpbc_container.wpbc_form input[type=submit]:not(.wpbc_button_light):not(.wpbc_button_secondary),
.wpbc_booking_ui_theme_scope .wpbc_button.wpbc_button_primary,
.wpbc_container.wpbc_container_booking_form .wpbc_button.wpbc_button_primary,
.wpbc_container.wpbc_container_booking_form .wpbc_button_light.button-primary,
.wpbc_container.wpbc_form .wpbc_button.wpbc_button_primary,
div.wpbc_container.wpbc_form button[type=submit]:not(.wpbc_button_light):not(.wpbc_button_secondary),
div.wpbc_container.wpbc_form input[type=submit]:not(.wpbc_button_light):not(.wpbc_button_secondary) {
  background: var(--color-red);
  border-color: var(--color-red);
  box-shadow: none;
  color: var(--color-white);
	border-radius: 0;
	font-size: 14px;
	font-weight: bold;
	height: 50px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0 30px;
	cursor: pointer;
	transition: background-color 0.5s ease-in-out, border-color 0.5s ease-in-out, color 0.5s ease-in-out;

	&:focus {
		background: var(--color-white) !important;
		border-color: var(--color-red) !important;
		color: var(--color-red) !important;
		box-shadow: none !important;
		outline: none !important;
	}
}

.wpbc_booking_ui_theme_scope .wpbc_button.wpbc_button_secondary,
.wpbc_container.wpbc_container_booking_form .wpbc_button.wpbc_button_secondary,
.wpbc_container.wpbc_container_booking_form .wpbc_button_light:not(.wpbc_button_primary):not(.button-primary),
.wpbc_container.wpbc_form .wpbc_button.wpbc_button_secondary,
.wpbc_container.wpbc_form .wpbc_button_light:not(.wpbc_button_primary):not(.button-primary) {
	background: var(--color-red);
  border-color: var(--color-red);
  box-shadow: none;
  color: var(--color-white);
	border-radius: 0;
	font-size: 14px;
	font-weight: bold;
	height: 50px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0 30px;
	cursor: pointer;
	transition: background-color 0.5s ease-in-out, border-color 0.5s ease-in-out, color 0.5s ease-in-out;

	&:hover {
		background: var(--color-white);
		border-color: var(--color-red);
		color: var(--color-red);
	}

	&:focus {
		background: var(--color-white) !important;
		border-color: var(--color-red) !important;
		color: var(--color-red) !important;
		box-shadow: none !important;
		outline: none !important;
	}
}

.wpbc_front_end__message_container_right {
	justify-content: center;
	margin-inline: 0 !important;
}

.wpbc_fe_message_warning {
	padding-inline: 0 !important;
}

.wpbc_container {
	:not(.datepick-current-day).datepick-days-cell-over a {
		color: #000;
	}

	.datepick-inline .datepick-one-month .datepick .datepick-days-cell-over .wpbc_time_dots {
		color: #000;
	}

	

	.datepick-inline div.datepick-one-month .datepick td.datepick-current-day .wpbc-cell-box {
		a {
			color: var(--color-white);
		}
	}

	.datepick-inline .date2approve.date_approved .wpbc-cell-box {
		.wpbc_time_dots {
			color: var(--color-white);
		}
	}

	.datepick-inline .date2approve .wpbc-cell-box {
		.wpbc_time_dots {
			color: var(--wpbc_cal-timespartly-text-color);
		}
	}

	.datepick-inline .date2approve .wpbc-cell-box {
		background-color: #fff5c3;
	}

	.datepick-inline .date_approved .wpbc-cell-box {
			background-color: var(--color-red);
			color: var(--color-white);

			a {
				color: var(--color-white);
			}
	}
}

.datepick-inline .date_approved.timespartly:not(.check_in_time,.check_out_time) .wpbc_time_dots {
	color: var(--color-white);
}

.booking_form_div .wpbc_bfb_form {
	max-width: 100%;
}

.just-center {
	/* justify-content: center !important;
	margin-bottom: 20px !important; */

	label {
		display: block !important;
		margin: 0 auto 10px !important;
	}
}

.wpbc_booking_resource_catalog {
	gap: 20px;
}

.sbce-grid {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	gap: 20px;

	@media (min-width: 769px) {
		grid-template-columns: repeat(2, 1fr);
	}
}

.sbce-grid-span-full {
	@media (min-width: 769px) {
		grid-column: span 2;
	}
}

.wpdev-form-control-wrap {
	margin: 0;
}

.wpbc_front_end__message_container_right .wpbc_front_end__message {
	line-height: normal;
}

.wpbc_times_selector {
	display: inline-flex;
	flex-flow: row wrap;
	justify-content: flex-start;
	align-items: center;
	margin: 0 auto;
	max-width: 340px;
	width: 100%;
	min-width: Min(100px, 100%);
	gap: 10px;

	div {
		display: flex;
		align-items: center;
		justify-content: center;
		font-size: 14px;
		margin: 0;
		padding: 0;
	}
}

/* Neutralize theme-provided outlines, then use the same two-ring focus treatment as booking-form buttons. */
.wpbc_container.wpbc_form .wpbc_times_selector div:not(.wpbc_time_picker_disabled),
.wpbc_container.wpbc_container_booking_form .wpbc_times_selector div:not(.wpbc_time_picker_disabled),
.wpbc_booking_ui_theme_scope .wpbc_times_selector div:not(.wpbc_time_picker_disabled) {
	background: var(--color-white);
	border-color: var(--color-gray);
	color: var(--color-black);
	border-radius: 0;
	outline: none;
	height: 50px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background-color 0.5s ease-in-out, border-color 0.5s ease-in-out, color 0.5s ease-in-out;
}

.wpbc_container.wpbc_form .wpbc_times_selector div:not(.wpbc_time_picker_disabled):hover,
.wpbc_container.wpbc_container_booking_form .wpbc_times_selector div:not(.wpbc_time_picker_disabled):hover,
.wpbc_booking_ui_theme_scope .wpbc_times_selector div:not(.wpbc_time_picker_disabled):hover,
.wpbc_container.wpbc_form .wpbc_times_selector div:not(.wpbc_time_picker_disabled):not(.wpbc_time_selected):focus,
.wpbc_container.wpbc_container_booking_form .wpbc_times_selector div:not(.wpbc_time_picker_disabled):not(.wpbc_time_selected):focus,
.wpbc_booking_ui_theme_scope .wpbc_times_selector div:not(.wpbc_time_picker_disabled):not(.wpbc_time_selected):focus {
	background: var(--color-white);
	border-color: var(--color-red);
	color: var(--color-red);
}

.wpbc_container.wpbc_form .wpbc_times_selector div.wpbc_time_selected,
.wpbc_container.wpbc_container_booking_form .wpbc_times_selector div.wpbc_time_selected,
.wpbc_booking_ui_theme_scope .wpbc_times_selector div.wpbc_time_selected,
.wpbc_container.wpbc_form .wpbc_times_selector div.wpbc_time_selected:hover,
.wpbc_container.wpbc_container_booking_form .wpbc_times_selector div.wpbc_time_selected:hover,
.wpbc_booking_ui_theme_scope .wpbc_times_selector div.wpbc_time_selected:hover{
	background: var(--color-red);
	border-color: var(--color-red);
	color: var(--color-white);
}

.wpbc_container.wpbc_form .wpbc_times_selector div:not(.wpbc_time_picker_disabled):focus,
.wpbc_container.wpbc_container_booking_form .wpbc_times_selector div:not(.wpbc_time_picker_disabled):focus,
.wpbc_booking_ui_theme_scope .wpbc_times_selector div:not(.wpbc_time_picker_disabled):focus {
	box-shadow: none;
	outline: none;
}

/* Match the empty result notice to the same form surface instead of forcing a light-only palette. */
.wpbc_container.wpbc_form .wpbc_times_selector span.wpbc_no_time_pickers,
.wpbc_container.wpbc_container_booking_form .wpbc_times_selector span.wpbc_no_time_pickers,
.wpbc_booking_ui_theme_scope .wpbc_times_selector span.wpbc_no_time_pickers {
	background: var(--wpbc_form-field-background-color, #f6f6f6);
	border-color: var(--wpbc_form-field-border-color, #dcdcdc);
	color: var(--wpbc_form-field-disabled-color, #959595);
}

.wp-core-ui div.wpbc_container.wpbc_form input[type=date], .wp-core-ui div.wpbc_container.wpbc_form input[type=datetime-local], .wp-core-ui div.wpbc_container.wpbc_form input[type=datetime], .wp-core-ui div.wpbc_container.wpbc_form input[type=email], .wp-core-ui div.wpbc_container.wpbc_form input[type=month], .wp-core-ui div.wpbc_container.wpbc_form input[type=number], .wp-core-ui div.wpbc_container.wpbc_form input[type=password], .wp-core-ui div.wpbc_container.wpbc_form input[type=range], .wp-core-ui div.wpbc_container.wpbc_form input[type=search], .wp-core-ui div.wpbc_container.wpbc_form input[type=tel], .wp-core-ui div.wpbc_container.wpbc_form input[type=text], .wp-core-ui div.wpbc_container.wpbc_form input[type=time], .wp-core-ui div.wpbc_container.wpbc_form input[type=url], .wp-core-ui div.wpbc_container.wpbc_form input[type=week], .wp-core-ui div.wpbc_container.wpbc_form select, .wp-core-ui div.wpbc_container.wpbc_form textarea, div.wpbc_container.wpbc_form input[type=date], div.wpbc_container.wpbc_form input[type=datetime-local], div.wpbc_container.wpbc_form input[type=datetime], div.wpbc_container.wpbc_form input[type=email], div.wpbc_container.wpbc_form input[type=month], div.wpbc_container.wpbc_form input[type=number], div.wpbc_container.wpbc_form input[type=password], div.wpbc_container.wpbc_form input[type=range], div.wpbc_container.wpbc_form input[type=search], div.wpbc_container.wpbc_form input[type=tel], div.wpbc_container.wpbc_form input[type=text], div.wpbc_container.wpbc_form input[type=time], div.wpbc_container.wpbc_form input[type=url], div.wpbc_container.wpbc_form input[type=week], div.wpbc_container.wpbc_form select, div.wpbc_container.wpbc_form textarea {
	background: var(--color-white);
	border-color: var(--color-gray);
	color: var(--color-black);
	border-radius: 0;
	outline: none;
	height: 50px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background-color 0.5s ease-in-out, border-color 0.5s ease-in-out, color 0.5s ease-in-out;
}

div.wpbc_container.wpbc_form textarea {
	min-height: 100px;

	&:hover, &:focus {
		border-color: var(--color-black);
		box-shadow: none;
		outline: none;
	}
}

.summary-row {
	justify-content: space-between !important;
}

.coupon-field {
	align-items: center !important;
	justify-content: end !important;
	gap: 10px !important;

	> span {
		max-width: 200px;
		width: auto !important;
	}
}

.wpbc_wizard_step_button--back {
	background: var(--color-white) !important;
	color: var(--color-red) !important;

	&:hover {
		background: var(--color-red) !important;
		color: var(--color-white) !important;
	}
}

.wpbc_after_booking_thank_you_section {
	max-width: 100%;
}

.wpbc_after_booking_thank_you_section .wpbc_ty__container {
	border-radius: 0;
	box-shadow: none;
	padding: 20px;
}

.wpbc_ty__section_text_costs {
	padding: 0 !important;
}

.wpbc_ty__gateway {
	margin: 0 !important;
	justify-content: flex-end;
}

.wpbc_after_booking_thank_you_section .wpbc_ty__container .wpbc_ty__content .wpbc_ty__content_text {
	padding: 0 !important;
}

.wpbc_ty__section_text_costs_header {
	margin-right: 0 !important;
}

.btn-odf-pay {
	background: var(--color-red) !important;
	border: 1px solid var(--color-red) !important;
	color: var(--color-white) !important;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 14px;
	font-weight: bold;
	height: 50px !important;
	padding: 0 30px !important;
	cursor: pointer;
	transition: background-color 0.5s ease-in-out, border-color 0.5s ease-in-out, color 0.5s ease-in-out;

	&:hover {
		background: var(--color-white) !important;
		border: 1px solid var(--color-red) !important;
		color: var(--color-red) !important;
	}
}