.booking-fields table th,
.booking-fields table td {
	vertical-align: middle;
}
.bfwc-auto-set .bfws-end-date {
	display: none;
}
/* DatePicker styles: https://gist.github.com/miwahall/7028640 */
.ui-datepicker {
	background-color: #fff;
	border-radius: 4px;
	display: none;
	margin-top: 0;
	padding: 10px;
}
.ui-datepicker a,
.ui-datepicker a:hover {
	text-decoration: none;
}
.ui-datepicker a:hover,
.ui-datepicker td:hover a {
	color: #2A6496;
	-webkit-transition: color 0.1s ease-in-out;
	   -moz-transition: color 0.1s ease-in-out;
	     -o-transition: color 0.1s ease-in-out;
	        transition: color 0.1s ease-in-out;
}
.ui-datepicker .ui-datepicker-header {
	margin-bottom: 4px;
	text-align: center;
}
.ui-datepicker .ui-datepicker-title {
	font-weight: 700;
}
.ui-datepicker .ui-datepicker-prev,
.ui-datepicker .ui-datepicker-next {
	cursor: pointer;
	font-family: Dashicons;
	-webkit-font-smoothing: antialiased;
	font-style: normal;
	font-weight: normal;
	height: 20px;
	line-height: 1;
	margin-top: 2px;
	width: 30px;
}
.ui-datepicker .ui-datepicker-prev {
	float: left;
	text-align: left;
}
.ui-datepicker .ui-datepicker-next {
	float: right;
	text-align: right;
}
.ui-datepicker .ui-datepicker-prev:before,
.ui-datepicker .ui-datepicker-next:before  {
	padding-left: 0 !important
}
.ui-datepicker .ui-datepicker-prev:before {
	content: "\f341";
}
.ui-datepicker .ui-datepicker-next:before {
	content: "\f345";
}
.ui-datepicker .ui-icon {
	display: none;
}
.ui-datepicker .ui-datepicker-calendar {
	table-layout: fixed;
	width: 100%;
	border-collapse: collapse;
}
.ui-datepicker .ui-datepicker-calendar th,
.ui-datepicker .ui-datepicker-calendar td {
	text-align: center;
	padding: 4px 0;
	color: #555;
}
.bfwc-data-in-cells .ui-datepicker .ui-datepicker-calendar th,
.bfwc-data-in-cells .ui-datepicker .ui-datepicker-calendar td {
	padding: 4px 4px;
}
.ui-datepicker .ui-datepicker-calendar td {
	border: 1px solid #eee;
	background: #aaa;
	transition: all 0.2s;
}
.bfwc-info {
	display: block;
	font-weight: normal;
}
.bfwc-data-in-cells .ui-datepicker td.has-extra-data .ui-state-default {
	padding: 5px 10px 0
}
td.ui-datepicker-unselectable.ui-state-disabled.pending,
.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-unselectable.pending {
    background: #ddd;
}
.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-current-day {
    background: #ccc;
}
.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-unselectable {
	background: none;
	color: inherit;
}
.ui-datepicker .ui-datepicker-calendar td.booked span {
	opacity: 0.2;
}
.ui-datepicker .ui-datepicker-calendar td:hover {
	background-color: #eee;
	cursor: pointer;
}
.ui-datepicker .ui-datepicker-calendar td a {
	text-decoration: none;
	color: #555;
}
.ui-datepicker .ui-datepicker-current-day {
	background-color: #4289cc;
}
.ui-datepicker .ui-datepicker-current-day a {
	color: #fff
}
.ui-datepicker .ui-datepicker-calendar .ui-datepicker-unselectable:hover {
	background-color: #fff;
	cursor: default;
}
/* Optimised colours */
.bfwc-optimise-colours .ui-datepicker .ui-datepicker-calendar td,
.bfwc-optimise-colours .ui-datepicker .ui-datepicker-calendar td:hover,
.bfwc-optimise-colours .ui-datepicker .ui-datepicker-calendar td.fully-available a:hover {
	/* background: #258039; */
	font-weight: bold;
	line-height: 1.25
}
.bfwc-optimise-colours .ui-datepicker .ui-datepicker-calendar td a {
	color: #fff
}
.bfwc-optimise-colours .ui-datepicker .ui-datepicker-calendar td.ui-datepicker-other-month {
	background: none
}
.bfwc-optimise-colours .ui-datepicker .ui-datepicker-calendar td.booked {
	background: #CF3721;
}
.bfwc-optimise-colours .ui-datepicker .ui-datepicker-calendar td.booked span.ui-state-default {
	color: #fff;
	opacity: 1;
	text-decoration: line-through;
}

.bfwc-optimise-colours .ui-datepicker td.fully-available,
.bfwc-optimise-colours .ui-datepicker td.fully-available .ui-state-hover {
	background: #258039;
}
.bfwc-optimise-colours .ui-datepicker td.part-available,
.bfwc-optimise-colours .ui-datepicker td.part-available .ui-state-hover {
	background: #F5BE41;
}
.bfwc-optimise-colours .ui-datepicker td.unavailable,
.bfwc-optimise-colours .ui-datepicker td.unavailable .ui-state-hover {
	background: #CF3721;
}
.bfwc-optimise-colours .ui-datepicker td.start-date.ui-state-disabled,
.bfwc-optimise-colours .ui-datepicker td.start-date.ui-state-disabled .ui-state-hover {
	background: #c6e1c6;
}
.bfwc-optimise-colours .ui-datepicker td.fully-available .ui-state-default,
.bfwc-optimise-colours .ui-datepicker td.part-available .ui-state-default,
.bfwc-optimise-colours .ui-datepicker td.unavailable .ui-state-default,
.bfwc-info {
	color: #fff;
}
.bfwc-optimise-colours .ui-datepicker td.ui-datepicker-unselectable.past,
.bfwc-optimise-colours .ui-datepicker td.ui-state-disabled {
	background: #eee;
}
.bfwc-optimise-colours .ui-datepicker td.unavailable.ui-state-disabled,
.bfwc-optimise-colours .ui-datepicker td.unavailable.ui-datepicker-unselectable {
	background: #CF3721;
}
.bfwc-optimise-colours .ui-datepicker td.unavailable.ui-state-disabled .ui-state-default,
.bfwc-optimise-colours .ui-datepicker td.unavailable.ui-datepicker-unselectable .ui-state-default {
	color: #fff;
}
.bfwc-optimise-colours .ui-datepicker td.ui-datepicker-unselectable.past .ui-state-default,
.bfwc-optimise-colours .ui-datepicker td.ui-state-disabled .ui-state-default {
	color: #555;
	text-decoration: none !important;
	opacity: 1 !important
}
.bfwc-optimise-colours .ui-datepicker td .ui-state-hover {
  background: transparent;
}
.bfwc-optimise-colours .ui-datepicker td.ui-datepicker-today .ui-state-default {
  font-weight: bold
}

/* Other styles */
.bfws-booking-details {
	margin: 1em 0;
	display: none;
	background: #fff;
	padding: 10px;
}
.bfws-booking-details table {
	border: 10px;
	border-collapse: collapse;
	background: #fff;
	margin-bottom: 0;
}
.cart #bfws-calendar table tr:nth-child(even) {
    background: inherit;
}
.woocommerce div.product form.cart .bfws-booking-details table td,
.bfws-booking-details table th,
.bfws-booking-details table td {
	padding: 8px 4px;
}
.woocommerce div.product form.cart .bfws-booking-details table td.booking-cost-header {
	text-align: left;
}
.bfws-booking-details table td input {
	max-width: 50px;
}
.booking-form-inner {
	position: relative;
}
.booking-form-inner.updating .loader-background {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	background: rgba(255,255,255,0.75);
}
.booking-form-inner .loader {
	display: none;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
}
.booking-form-inner.updating .loader {
	display: block !important;
	position: absolute;
}
table.pricing-table {
	background-color: #fff;
	border-radius: 0;
	margin-top: 0;
	border: 0;
}
table.pricing-table th,
table.pricing-table td {
	padding: 0.75em 1em;
	border-right: 0;
}
table.pricing-table td.pricing-table-cost {
	text-align: center;
}
/* Double calendar */
#bfws-calendar-wrapper table {
	border-collapse: collapse;
	margin-bottom: 1em;
	border: 1px solid #eee;
}
.bfwc-view-double.woocommerce div.product form.cart table tr {
	background: none;
}
.bfwc-view-double.woocommerce div.product form.cart table td {
	padding: 0.75em 1em;
	border-bottom: 1px solid #eee;
	border-right: 0;
}
.bfwc-view-double.woocommerce div.product form.cart table td.bfws-date-field-wrapper {
	padding: 0;
	border: 1px solid #eee;
}
#bfws-calendar-wrapper input[type=text] {
	width: 100%;
	padding: 0.75em 1em 0.75em 2.5em;
	border: 0;
	cursor: pointer;
	font-weight: bold
}
#bfws-calendar-wrapper .booking-cost-data {
	text-align: right;
	padding: 0.5em;
}
.booking-cost-data-number input[type="number"] {
	display: inline
}
.bfwc-view-double.woocommerce div.product form.cart .button {
	width: 100%;
	float: none;
	display: block;
}
.bfwc-view-double .ui-datepicker {
	max-width: 400px;
	border: 1px solid #ddd;
	border-radius: 0;
	box-shadow: 0 0 3px rgba(0,0,0,0.1);
}
.bfws-date-field-wrapper {
	position: relative;
}
/* https://css.gg/calendar-dates */
.gg-calendar-dates {
  box-sizing: border-box;
  position: absolute;
  display: block;
  /* transform: scale(var(--ggs,1)); */
  width: 18px;
  height: 18px;
  border: 2px solid;
  border-radius: 3px;
	top: 50%;
	left: 1em;
	transform: translateY(-50%);
}
.gg-calendar-dates::after,
.gg-calendar-dates::before {
  content: "";
  display: block;
  box-sizing: border-box;
  position: absolute;
  border-radius: 3px;
  height: 2px;
  left: 2px
}
.gg-calendar-dates::before {
  background: currentColor;
  width: 2px;
  box-shadow:
    4px 0 0,8px 0 0,0 4px 0,
    4px 4px 0,8px 4px 0;
  top: 6px
}
.gg-calendar-dates::after {
  width: 10px;
  top: -4px;
  box-shadow: 0 6px 0 0
}
/* Search form */
.bfwc-search-calendar {
	max-width: 400px;
	box-shadow: 0 0 25px 0px rgba(0,0,0,0.1);
}
.bfwc-search-calendar.ui-datepicker .ui-datepicker-title {
    padding: 8px 0
}
.booking-search-form-wrapper table td {
	vertical-align: middle;
}
.booking-search-form-wrapper .gg-calendar-dates {
  left: 2.5em;
}
.booking-search-form-wrapper #bfws-calendar-wrapper input[type=text] {
	padding-left: 3em;
}
.booking-search-form-wrapper #bfwc-submit-search {
	width: 100%
}
.ui-datepicker.bfwc-search-calendar .ui-datepicker-calendar th,
.ui-datepicker.bfwc-search-calendar .ui-datepicker-calendar td {
	padding: 8px
}
.bfwc-optimise-colours .bfwc-search-calendar.ui-datepicker .ui-datepicker-calendar td,
.bfwc-optimise-colours .bfwc-search-calendar.ui-datepicker td.ui-datepicker-unselectable.past,
.bfwc-optimise-colours .bfwc-search-calendar.ui-datepicker td.ui-state-disabled {
	background: #fff;
}
.bfwc-optimise-colours .ui-datepicker .ui-datepicker-calendar td:hover,
.bfwc-optimise-colours .ui-datepicker .ui-datepicker-calendar td a:hover {
	/* background: #eee; */
	color: #555
}
.bfwc-optimise-colours .ui-datepicker .ui-datepicker-calendar td.ui-datepicker-unselectable:hover,
.bfwc-optimise-colours .ui-datepicker .ui-datepicker-calendar td.ui-datepicker-unselectable a:hover {
	/* background: #fff; */
}
.bfwc-optimise-colours .bfwc-search-calendar.ui-datepicker .ui-datepicker-calendar td a {
	color: #555
}

/* PEWC */
.product-type-simple_booking .pewc-total-field-wrapper {
	display: none;
}
.booking-cost-set .pewc-total-field-wrapper {
	display: block;
}
ul.pewc-product-extra-groups {
	margin: 0;
}
.pewc-bfwc-disabled,
.pewc-bfwc-disabled img,
.pewc-bfwc-disabled label {
	cursor: not-allowed !important;
}
.bfwc-pewc-group-hidden,
.bfwc-pewc-field-hidden {
	display: none;
}

/* Cart page */
dl.variation dt:before {
    content: "";
    clear: left;
    display: table;
}
dl.variation dt,
dl.variation dd,
dl.variation p {
	display: inline;
}

/* ── Time Slots (2.5.0) ───────────────────────────────────────── */
.bfwc-time-slots-wrapper {
	margin-top: 1em;
}
.bfwc-time-slots-table {
	width: 100%;
	border-collapse: collapse;
}
.bfwc-time-slots-table td {
	padding: 4px 0;
	vertical-align: middle;
}
.bfwc-time-slots-table .booking-cost-header {
	width: 40%;
	font-weight: 600;
}
.bfwc-time-slots-table .booking-cost-data {
	width: 60%;
}
.bfwc-time-select {
	width: 100%;
	max-width: 220px;
}
.bfwc-time-select option:disabled {
	color: #aaa;
}
.bfwc-time-slot-error {
	color: #c00;
	margin-bottom: 0.5em;
}

/* ── Slot calendar view ───────────────────────────────────────── */
.bfwc-slot-date-nav {
	display: flex;
	align-items: center;
	gap: 0.5em;
	margin-bottom: 0.75em;
	white-space: nowrap;
}
.bfwc-slot-date-nav .button,
.bfwc-view-double.woocommerce div.product form.cart .bfwc-slot-date-nav .button {
	padding: 0.2em 0.4em;
	min-width: 0;
	width: auto;
	font-size: 1.1em;
	line-height: 1;
}
.bfwc-slot-date-nav .bfwc-slot-date-label {
	flex: 1;
	font-weight: 600;
	text-align: center;
	overflow: hidden;
	text-overflow: ellipsis;
}
.bfwc-slot-calendar-wrapper {
	/* spacing provided by td padding-top inline style */
}
.bfwc-slot-calendar {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 0.5em;
}
.bfwc-slot-cell {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 8px 12px;
	border-radius: 4px;
	font-size: 0.9em;
	font-weight: 600;
	cursor: pointer;
	user-select: none;
	transition: opacity 0.15s, transform 0.1s;
	border: 2px solid transparent;
}
.bfwc-cell-time {
	display: block;
}
.bfwc-cell-avail {
	display: block;
	font-size: 0.8em;
	font-weight: 400;
	opacity: 0.75;
	margin-top: 2px;
}
.bfwc-slot-cell:hover:not(.bfwc-slot-disabled) {
	transform: translateY( -1px );
}
.bfwc-slot-available {
	background: #d4edda;
	color: #155724;
	border-color: #c3e6cb;
}
.bfwc-slot-limited {
	background: #fff3cd;
	color: #856404;
	border-color: #ffeeba;
}
.bfwc-slot-unavailable {
	background: #f8d7da;
	color: #721c24;
	border-color: #f5c6cb;
}
.bfwc-slot-disabled {
	opacity: 0.55;
	cursor: not-allowed;
	transform: none !important;
}
.bfwc-slot-selected,
.bfwc-slot-hover:not(.bfwc-slot-disabled) {
	border-color: #0073aa;
	box-shadow: 0 0 0 2px rgba( 0, 115, 170, 0.25 );
}
.bfwc-slot-pick-start,
.bfwc-slot-pick-end {
	border-color: #0073aa;
	background: #0073aa;
	color: #fff;
}
.bfwc-slot-full-day {
	width: 100%;
	text-align: center;
}
.bfwc-slot-calendar-hint {
	font-size: 0.85em;
	color: #555;
	margin: 0.25em 0 0;
}

/* ── Diary view ───────────────────────────────────────────────── */
.bfwc-slot-diary-wrapper {
	/* spacing provided by td padding-top inline style */
}
.bfwc-slot-diary {
	display: flex;
	flex-direction: column;
	border: 1px solid #ddd;
	border-radius: 4px;
	overflow: hidden;
	margin-bottom: 0.5em;
}
.bfwc-diary-row {
	display: flex;
	align-items: center;
	padding: 0;
	border-bottom: 1px solid #eee;
	cursor: pointer;
	user-select: none;
	transition: opacity 0.15s;
	min-height: 36px;
}
.bfwc-diary-row:last-child {
	border-bottom: none;
}
.bfwc-diary-row:hover:not(.bfwc-slot-disabled) {
	filter: brightness( 0.95 );
}
.bfwc-diary-time {
	flex: 0 0 64px;
	padding: 6px 10px;
	font-size: 0.82em;
	font-weight: 600;
	color: #444;
	border-right: 1px solid #ddd;
	background: #f9f9f9;
	text-align: right;
	white-space: nowrap;
}
.bfwc-diary-bar {
	flex: 1;
	display: block;
	height: 100%;
	min-height: 36px;
}
.bfwc-diary-avail {
	flex: 0 0 auto;
	padding: 0 10px;
	font-size: 0.82em;
	font-weight: 600;
	color: #444;
	align-self: center;
	white-space: nowrap;
}
.bfwc-diary-row.bfwc-slot-available  .bfwc-diary-bar { background: #d4edda; }
.bfwc-diary-row.bfwc-slot-limited    .bfwc-diary-bar { background: #fff3cd; }
.bfwc-diary-row.bfwc-slot-unavailable .bfwc-diary-bar { background: #f8d7da; }
.bfwc-diary-row.bfwc-slot-disabled {
	opacity: 0.55;
	cursor: not-allowed;
}
.bfwc-diary-row.bfwc-slot-selected   .bfwc-diary-bar { background: #cce5ff; }
.bfwc-diary-row.bfwc-slot-pick-start .bfwc-diary-bar,
.bfwc-diary-row.bfwc-slot-pick-end   .bfwc-diary-bar { background: #0073aa; }
.bfwc-diary-row.bfwc-slot-pick-start .bfwc-diary-time,
.bfwc-diary-row.bfwc-slot-pick-end   .bfwc-diary-time { color: #0073aa; }
.bfwc-diary-row.bfwc-slot-hover:not(.bfwc-slot-disabled) .bfwc-diary-bar {
	outline: 2px solid rgba( 0, 115, 170, 0.4 );
	outline-offset: -2px;
}
