.ba-mixed-participant-summary{margin:8px 0 16px;padding:9px 13px;background:#f3f6f2;border-left:3px solid #3a7958;font-size:.92em;font-weight:600}
.ba-mixed-participant-summary.ba-mixed-participant-error{background:#fff5f4;border-left-color:#b54536;color:#a32f23}
.ba-mixed-fixed-qty{font-weight:600;white-space:nowrap}

.ba-mixed-native-quantity-hidden{display:none!important}

.ba-mixed-participant-summary{display:none!important}
#field.btn-custom,#nextfield.btn-custom{display:none!important}

/* Transparent tariff breakdown for split prices / fixed family booking. */
.ba-mixed-tariff{display:inline-flex;flex-direction:column;align-items:flex-start;gap:2px;line-height:1.45}
.ba-mixed-tariff-line{display:block;white-space:nowrap}
.ba-mixed-tariff-caption{font-size:.88em;opacity:.83}
.ba-mixed-tariff-flat>.ba-mixed-tariff-caption{display:block}
.ba-mixed-calculated-subtotal{white-space:nowrap}

/* v0.2.4 - Restore the original wide layout of registration text fields.
 * Advanced Forms defaults regular inputs to 200px. Keep number inputs, radio
 * buttons, checkboxes and the submit field completely untouched.
 * Scope to the booking form so Divi / WooCommerce fields elsewhere do not move.
 */
#mainform .bookacti-form-field-container:is(
    .bookacti-form-field-type-text,
    .bookacti-form-field-type-email,
    .bookacti-form-field-type-tel,
    .bookacti-form-field-type-telephone,
    .bookacti-form-field-type-phone,
    .bookacti-form-field-type-password,
    .bookacti-form-field-type-textarea,
    .bookacti-form-field-type-url,
    .bookacti-form-field-type-search
) {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 18px;
    width: 100% !important;
    box-sizing: border-box;
}
#mainform .bookacti-form-field-container:is(
    .bookacti-form-field-type-text,
    .bookacti-form-field-type-email,
    .bookacti-form-field-type-tel,
    .bookacti-form-field-type-telephone,
    .bookacti-form-field-type-phone,
    .bookacti-form-field-type-password,
    .bookacti-form-field-type-textarea,
    .bookacti-form-field-type-url,
    .bookacti-form-field-type-search
) > .bookacti-form-field-label {
    flex: 0 0 175px;
    width: 175px;
    box-sizing: border-box;
    padding-right: 0;
}
#mainform .bookacti-form-field-container:is(
    .bookacti-form-field-type-text,
    .bookacti-form-field-type-email,
    .bookacti-form-field-type-tel,
    .bookacti-form-field-type-telephone,
    .bookacti-form-field-type-phone,
    .bookacti-form-field-type-password,
    .bookacti-form-field-type-textarea,
    .bookacti-form-field-type-url,
    .bookacti-form-field-type-search
) > .bookacti-form-field-content {
    display: block;
    flex: 1 1 0%;
    width: auto !important;
    min-width: 0;
    box-sizing: border-box;
}
#mainform .bookacti-form-field-container:is(
    .bookacti-form-field-type-text,
    .bookacti-form-field-type-email,
    .bookacti-form-field-type-tel,
    .bookacti-form-field-type-telephone,
    .bookacti-form-field-type-phone,
    .bookacti-form-field-type-password,
    .bookacti-form-field-type-textarea,
    .bookacti-form-field-type-url,
    .bookacti-form-field-type-search
) > .bookacti-form-field-content :is(
    input[type="text"],
    input[type="email"],
    input[type="tel"],
    input[type="password"],
    input[type="url"],
    input[type="search"],
    input:not([type]),
    textarea
) {
    display: block;
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box;
}
@media (max-width: 767px) {
    #mainform .bookacti-form-field-container:is(
        .bookacti-form-field-type-text,
        .bookacti-form-field-type-email,
        .bookacti-form-field-type-tel,
        .bookacti-form-field-type-telephone,
        .bookacti-form-field-type-phone,
        .bookacti-form-field-type-password,
        .bookacti-form-field-type-textarea,
        .bookacti-form-field-type-url,
        .bookacti-form-field-type-search
    ) {
        flex-direction: column;
        align-items: stretch;
        gap: 8px;
    }
    #mainform .bookacti-form-field-container:is(
        .bookacti-form-field-type-text,
        .bookacti-form-field-type-email,
        .bookacti-form-field-type-tel,
        .bookacti-form-field-type-telephone,
        .bookacti-form-field-type-phone,
        .bookacti-form-field-type-password,
        .bookacti-form-field-type-textarea,
        .bookacti-form-field-type-url,
        .bookacti-form-field-type-search
    ) > .bookacti-form-field-label {
        flex: none;
        width: 100%;
    }
    #mainform .bookacti-form-field-container:is(
        .bookacti-form-field-type-text,
        .bookacti-form-field-type-email,
        .bookacti-form-field-type-tel,
        .bookacti-form-field-type-telephone,
        .bookacti-form-field-type-phone,
        .bookacti-form-field-type-password,
        .bookacti-form-field-type-textarea,
        .bookacti-form-field-type-url,
        .bookacti-form-field-type-search
    ) > .bookacti-form-field-content {
        flex: none;
        width: 100% !important;
    }
}


/* v0.2.7: sold-out label as CSS-generated text, never an appended FC DOM node.
 * Does not change card backgrounds, native availability, or form visibility. */
.bookacti-booking-system .bookacti-calendar .fc-event.ba-mixed-event-full {
    cursor: not-allowed !important;
}
.bookacti-booking-system .bookacti-calendar .fc-event.ba-mixed-event-full .fc-event-title::after {
    content: " · COMPLET";
    font-size: .75em;
    font-weight: 700;
    white-space: nowrap;
    opacity: .9;
}
.bookacti-booking-system .bookacti-calendar .fc-list-event.ba-mixed-event-full .fc-event-title::after {
    color: #ad3030;
}

/* v0.2.8 - Safeguard the native reservation form after event selection.
 * Do not create, clone or move fields. The JS adds the recovery class only
 * when ALL existing non-calendar form fields are hidden after a valid pick.
 * Exclude the native quantity field and all internal conditional subfields.
 */
#mainform.ba-mixed-has-selection .new-class,
.bookacti-booking-form.ba-mixed-has-selection .new-class,
.bookacti-form-fields.ba-mixed-has-selection .new-class {
    display: block !important;
    visibility: visible !important;
}
#mainform.ba-mixed-form-recovery .bookacti-form-field-container:not(.bookacti-form-field-name-calendar):not(.bookacti-form-field-type-calendar):not(.bookacti-form-field-type-quantity):not(.ba-mixed-native-quantity-hidden):not([data-field-name="adults_qty"]):not([data-field-name="child_qty"]):not([data-field-name="children_qty"]),
.bookacti-booking-form.ba-mixed-form-recovery .bookacti-form-field-container:not(.bookacti-form-field-name-calendar):not(.bookacti-form-field-type-calendar):not(.bookacti-form-field-type-quantity):not(.ba-mixed-native-quantity-hidden):not([data-field-name="adults_qty"]):not([data-field-name="child_qty"]):not([data-field-name="children_qty"]),
.bookacti-form-fields.ba-mixed-form-recovery .bookacti-form-field-container:not(.bookacti-form-field-name-calendar):not(.bookacti-form-field-type-calendar):not(.bookacti-form-field-type-quantity):not(.ba-mixed-native-quantity-hidden):not([data-field-name="adults_qty"]):not([data-field-name="child_qty"]):not([data-field-name="children_qty"]) {
    display: block !important;
    visibility: visible !important;
}
#mainform.ba-mixed-form-recovery .bookacti-form-field-container:is(.bookacti-form-field-type-text,.bookacti-form-field-type-email,.bookacti-form-field-type-tel,.bookacti-form-field-type-telephone,.bookacti-form-field-type-phone,.bookacti-form-field-type-textarea),
.bookacti-booking-form.ba-mixed-form-recovery .bookacti-form-field-container:is(.bookacti-form-field-type-text,.bookacti-form-field-type-email,.bookacti-form-field-type-tel,.bookacti-form-field-type-telephone,.bookacti-form-field-type-phone,.bookacti-form-field-type-textarea) {
    display: flex !important;
}


/* --------------------------------------------------------------------------
 * v0.2.10 - ANVL registration form layout. CSS ONLY; v0.2.8 JS unchanged.
 * BA's account fields are nested .bookacti-form-field-login-field-container,
 * not top-level .bookacti-form-field-container (root cause of v0.2.9 failure).
 * Every rule requires ba-mixed-has-selection, which the 0.2.8 JS adds only
 * after Booking Activities confirms a picked event. Do not reveal the form
 * before a selection or override BA conditional account field visibility.
 * -------------------------------------------------------------------------- */

/* Contact details: one wide row per field, label on left, control fills space. */
:is(#mainform, .bookacti-booking-form, .bookacti-form-fields).ba-mixed-has-selection
  :is(.bookacti-form-field-login-field-container, .bookacti-form-field-container)
  :is([data-field-name="email"], [data-field-name="first_name"], [data-field-name="last_name"], [data-field-name="phone"]):not([style*="display:none"]):not([style*="display: none"]) {
    display: grid !important;
    grid-template-columns: minmax(120px, 175px) minmax(0, 1fr);
    column-gap: 18px;
    align-items: center;
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box;
    float: none !important;
    clear: both;
}

:is(#mainform, .bookacti-booking-form, .bookacti-form-fields).ba-mixed-has-selection
  :is(.bookacti-form-field-login-field-container, .bookacti-form-field-container)
  :is([data-field-name="email"], [data-field-name="first_name"], [data-field-name="last_name"], [data-field-name="phone"])
  > .bookacti-form-field-label {
    display: block;
    width: auto !important;
    min-width: 0;
    padding-right: 0 !important;
    float: none !important;
    box-sizing: border-box;
}

:is(#mainform, .bookacti-booking-form, .bookacti-form-fields).ba-mixed-has-selection
  :is(.bookacti-form-field-login-field-container, .bookacti-form-field-container)
  :is([data-field-name="email"], [data-field-name="first_name"], [data-field-name="last_name"], [data-field-name="phone"])
  > .bookacti-form-field-content {
    display: block;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    float: none !important;
    box-sizing: border-box;
}

:is(#mainform, .bookacti-booking-form, .bookacti-form-fields).ba-mixed-has-selection
  :is(.bookacti-form-field-login-field-container, .bookacti-form-field-container)
  :is([data-field-name="email"], [data-field-name="first_name"], [data-field-name="last_name"], [data-field-name="phone"])
  > .bookacti-form-field-content :is(input[type="text"], input[type="email"], input[type="tel"], input:not([type])) {
    display: block;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    box-sizing: border-box;
}

/* --------------------------------------------------------------------------
 * v0.2.11 - Participant layout. Reuse the existing .new-class wrapper, do NOT
 * move or clone field nodes. The picked-event guard was introduced in 0.2.8.
 * By making the PARENT a two-column grid, two sibling field containers can
 * finally share one row. Every other direct child spans the full row.
 * -------------------------------------------------------------------------- */
@media (min-width: 768px) {
    #mainform.ba-mixed-has-selection .new-class {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: 24px;
        align-items: start;
        width: 100%;
        box-sizing: border-box;
    }

    #mainform.ba-mixed-has-selection .new-class > * {
        grid-column: 1 / -1;
        min-width: 0;
    }

    #mainform.ba-mixed-has-selection .new-class > .bookacti-form-field-container[data-field-name="adults_qty"] {
        grid-column: 1 / 2;
    }

    #mainform.ba-mixed-has-selection .new-class > .bookacti-form-field-container:is([data-field-name="child_qty"], [data-field-name="children_qty"]) {
        grid-column: 2 / 3;
    }
}

/* Inside each grid cell: compact number input on the right of its label. */
#mainform.ba-mixed-has-selection .new-class > .bookacti-form-field-container:is(
    [data-field-name="adults_qty"],
    [data-field-name="child_qty"],
    [data-field-name="children_qty"]
):not(.bookacti-hidden-field):not([style*="display:none"]):not([style*="display: none"]) {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 76px;
    align-items: center;
    column-gap: 12px;
    width: 100% !important;
    max-width: none !important;
    min-width: 0;
    margin-right: 0 !important;
    float: none !important;
    clear: none !important;
    box-sizing: border-box;
}

#mainform.ba-mixed-has-selection .new-class > .bookacti-form-field-container:is(
    [data-field-name="adults_qty"],
    [data-field-name="child_qty"],
    [data-field-name="children_qty"]
) > .bookacti-form-field-label {
    display: block;
    width: auto !important;
    min-width: 0;
    padding-right: 0 !important;
    margin: 0;
    float: none !important;
    box-sizing: border-box;
}

#mainform.ba-mixed-has-selection .new-class > .bookacti-form-field-container:is(
    [data-field-name="adults_qty"],
    [data-field-name="child_qty"],
    [data-field-name="children_qty"]
) > .bookacti-form-field-content {
    display: block;
    width: 76px !important;
    max-width: 100%;
    min-width: 0;
    float: none !important;
    box-sizing: border-box;
}

#mainform.ba-mixed-has-selection .new-class > .bookacti-form-field-container:is(
    [data-field-name="adults_qty"],
    [data-field-name="child_qty"],
    [data-field-name="children_qty"]
) > .bookacti-form-field-content input[type="number"] {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0;
    text-align: center;
    box-sizing: border-box;
}

/* Mobile: BA's original single-column wrapper, counters one after another.
   Do not show a hidden field or any part of the form before a selection. */
@media (max-width: 767px) {
    :is(#mainform, .bookacti-booking-form, .bookacti-form-fields).ba-mixed-has-selection
      :is(.bookacti-form-field-login-field-container, .bookacti-form-field-container)
      :is([data-field-name="email"], [data-field-name="first_name"], [data-field-name="last_name"], [data-field-name="phone"]) {
        grid-template-columns: minmax(0, 1fr) !important;
        row-gap: 7px;
    }

    #mainform.ba-mixed-has-selection .new-class {
        display: block !important;
    }
}
