/*
 * RDO Booking Theme — Maskoten
 *
 * Scope: .booknetic_appointment (root reset by core)
 * All overrides use confirmed class names from core v5.2.4.
 * Author: RedOcean <https://redocean.pt>
 * Version: 1.0.0
 *
 * Palette:
 *   --rdo-brown:      #7E5B34  (primary text, borders, labels)
 *   --rdo-brown-mid:  #714E27  (hover darken)
 *   --rdo-brown-pale: #EFBE86  (light border, bg tints)
 *   --rdo-orange:     #EF4C24  (accent, CTA, active states)
 *   --rdo-cream:      #FFFCEB  (selected bg, highlight)
 *   --rdo-cream-mid:  #F0F0F0  (inactive bg)
 *   --rdo-muted:      #a07c52  (secondary text)
 *   --rdo-dark:       #062034  (sidebar dark)
 *   --rdo-green:      #287C59  (success/completed)
 *   --rdo-white:      #ffffff
 */

/* ═══════════════════════════════════════════════════════
   1. GLOBAL FONT RESET
   ═══════════════════════════════════════════════════════ */

.booknetic_appointment * {
    font-family: "Open Sans", sans-serif !important;
}

/* ═══════════════════════════════════════════════════════
   2. OUTER SHELL
   ═══════════════════════════════════════════════════════ */

.booknetic_appointment {
    border-radius: 1.4rem !important;
    overflow: hidden !important;
    box-shadow: 0 6px 32px rgba(126, 91, 52, 0.14) !important;
    border: 1.5px solid #EFBE86 !important;
    background-color: #ffffff !important;
}

/* ═══════════════════════════════════════════════════════
   3. LEFT SIDEBAR — step list
   ═══════════════════════════════════════════════════════ */

.booknetic_appointment_steps {
    background-color: #ffffff !important;
    border-right: 1px solid #EFBE86 !important;
}

.booknetic_appointment_steps_footer {
    border-top-color: #EFBE86 !important;
    color: #a07c52 !important;
}

.booknetic_appointment_steps_footer_txt1 {
    color: #ffffff !important;
}

/* Step items */
.booknetic_appointment_step_element {
    color: #a07c52 !important;
}

.booknetic_selected_step {
    color: #7E5B34 !important;
}

.booknetic_active_step {
    color: #7E5B34 !important;
    font-weight: 700 !important;
}

/* Step number badges */
.booknetic_badge {
    background: #F0F0F0 !important;
    color: #a07c52 !important;
}

.booknetic_selected_step > .booknetic_badge {
    background: #EFBE86 !important;
    color: #7E5B34 !important;
}

.booknetic_active_step > .booknetic_badge {
    background: #EF4C24 !important;
    color: #ffffff !important;
}

.booknetic_selected_step > .booknetic_badge:after {
    background-color: #EFBE86 !important;
}

/* ═══════════════════════════════════════════════════════
   4. RIGHT CONTENT AREA
   ═══════════════════════════════════════════════════════ */

.booknetic_appointment_container {
    background: #ffffff !important;
}

/* Step header bar */
.booknetic_appointment_container_header {
    border-bottom-color: #EFBE86 !important;
    color: #7E5B34 !important;
    font-weight: 500 !important;
}

.booknetic_appointment .booknetic_appointment_container_header_text {
    font-family: "DynaPuff", system-ui !important;
    font-weight: 500 !important;
}

/* Step body */
.booknetic_appointment_container_body {
    background: #ffffff !important;
}

/* Footer nav bar */
.booknetic_appointment_container_footer {
    border-top-color: #EFBE86 !important;
    background: #ffffff !important;
}

/* ═══════════════════════════════════════════════════════
   5. NAVIGATION BUTTONS
   ═══════════════════════════════════════════════════════ */

/* Primary: NEXT / CONFIRM / TRY AGAIN */
.booknetic_appointment .booknetic_btn_primary {
    background-color: #EF4C24 !important;
    border: none !important;
    color: #ffffff !important;
    border-radius: 2.2rem !important;
    font-weight: 700 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    height: 40px !important;
    padding: 0 1.8rem !important;
    transition: background-color 0.18s, transform 0.15s !important;
    box-shadow: 0 2px 8px rgba(239, 76, 36, 0.22) !important;
}

.booknetic_appointment .booknetic_btn_primary:hover {
    background-color: #d94420 !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 4px 14px rgba(239, 76, 36, 0.28) !important;
}

/* Secondary: BACK */
.booknetic_appointment .booknetic_btn_secondary {
    background-color: #ffffff !important;
    border: 1.5px solid #EFBE86 !important;
    color: #7E5B34 !important;
    border-radius: 2.2rem !important;
    font-weight: 600 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    height: 40px !important;
    padding: 0 1.8rem !important;
    transition: background-color 0.18s, border-color 0.18s !important;
}

.booknetic_appointment .booknetic_btn_secondary:hover {
    background-color: #FFFCEB !important;
    border-color: #7E5B34 !important;
}

/* Success / cancel variants */
.booknetic_appointment .booknetic_btn_success {
    background-color: #287C59 !important;
    border-radius: 2.2rem !important;
    text-transform: none !important;
}

.booknetic_appointment .booknetic_btn_cancel {
    background-color: transparent !important;
    border: 1.5px solid #EFBE86 !important;
    color: #7E5B34 !important;
    border-radius: 2.2rem !important;
    text-transform: none !important;
}

/* ═══════════════════════════════════════════════════════
   6. CARDS — service / staff / location / extras
   ═══════════════════════════════════════════════════════ */

/* Generic cards (staff, location) */
.booknetic_appointment .booknetic_card {
    border: 1.5px solid #EFBE86 !important;
    border-radius: 1rem !important;
    background: #ffffff !important;
    box-shadow: 0 1px 4px rgba(126, 91, 52, 0.07) !important;
    transition: border-color 0.18s, box-shadow 0.18s, transform 0.15s !important;
}

.booknetic_appointment .booknetic_card:not(.booknetic_card_selected):after {
    display: none !important;
}

.booknetic_appointment .booknetic_card:hover {
    border-color: #EF4C24 !important;
    box-shadow: 0 4px 16px rgba(239, 76, 36, 0.12) !important;
    transform: translateY(-2px) !important;
}

.booknetic_appointment .booknetic_card.booknetic_card_selected {
    border: 2px solid #EF4C24 !important;
    background: #ffffff !important;
    box-shadow: 0 2px 10px rgba(239, 76, 36, 0.14) !important;
    padding: 23px !important;
}

/* Card image avatars */
.booknetic_appointment .booknetic_card_image > img {
    border-radius: 50% !important;
    border: 2px solid #EFBE86 !important;
}

/* Card title / name */
.booknetic_appointment .booknetic_card_title_first {
    color: #7E5B34 !important;
    font-weight: 700 !important;
}

.booknetic_appointment .booknetic_card_description {
    color: #a07c52 !important;
}

/* Staff profession */
.booknetic_appointment .booknetic_staff_profession {
    color: #a07c52 !important;
    font-style: italic;
}

/* ─── Service cards ─────────────────────────────────── */

.booknetic_appointment .booknetic_service_card {
    border: 1.5px solid #EFBE86 !important;
    border-radius: 1rem !important;
    background: #ffffff !important;
    box-shadow: 0 1px 4px rgba(126, 91, 52, 0.07) !important;
    transition: border-color 0.18s, box-shadow 0.18s !important;
}

.booknetic_appointment .booknetic_service_card:hover {
    border-color: #EF4C24 !important;
    box-shadow: 0 4px 16px rgba(239, 76, 36, 0.12) !important;
}

.booknetic_appointment .booknetic_service_card.booknetic_service_card_selected {
    border: 2px solid #EF4C24 !important;
    background: #ffffff !important;
}

.booknetic_appointment .booknetic_service_card_image {
    background: #FFFCEB !important;
    border: none !important;
}

.booknetic_appointment .booknetic_service_card.booknetic_service_card_selected .booknetic_service_card_image {
    background: #FFFCEB !important;
}

.booknetic_appointment .booknetic_service_card_title > span:first-child {
    color: #7E5B34 !important;
    font-weight: 700 !important;
}

.booknetic_appointment .booknetic_service_card_title > span:last-child {
    color: #a07c52 !important;
}

.booknetic_appointment .booknetic_service_card_price {
    color: #EF4C24 !important;
    font-weight: 700 !important;
}

.booknetic_appointment .booknetic_service_card_description {
    color: #a07c52 !important;
    font-size: 13px !important;
}

.booknetic_appointment .booknetic_view_more_service_notes_button,
.booknetic_appointment .booknetic_view_less_service_notes_button {
    color: #EF4C24 !important;
    font-weight: 600 !important;
}

/* Category / accordion headers */
.booknetic_appointment .booknetic_service_category,
.booknetic_appointment .booknetic_location_category {
    color: #7E5B34 !important;
    font-weight: 700 !important;
    border-bottom: 2px solid #EFBE86 !important;
}

/* ─── Extra cards ───────────────────────────────────── */

.booknetic_appointment .booknetic_service_extra_card {
    border: 1.5px solid #EFBE86 !important;
    border-radius: 1rem !important;
    background: #ffffff !important;
    transition: border-color 0.18s, box-shadow 0.18s !important;
}

.booknetic_appointment .booknetic_service_extra_card:hover {
    border-color: #EF4C24 !important;
}

.booknetic_appointment .booknetic_service_extra_card.booknetic_service_extra_card_selected {
    border: 2px solid #EF4C24 !important;
    background: #FFFCEB !important;
}

.booknetic_appointment .booknetic_service_extra_title {
    color: #7E5B34 !important;
    font-weight: 700 !important;
}

.booknetic_appointment .booknetic_service_extra_card_title > span:first-child {
    color: #7E5B34 !important;
    font-weight: 600 !important;
}

.booknetic_appointment .booknetic_service_extra_card_price {
    color: #EF4C24 !important;
    font-weight: 700 !important;
}

/* Quantity controls */
.booknetic_appointment .booknetic_service_extra_quantity_inc,
.booknetic_appointment .booknetic_service_extra_quantity_dec {
    background: #EFBE86 !important;
    color: #7E5B34 !important;
    border-radius: 50% !important;
}

.booknetic_appointment .booknetic_service_extra_quantity_input {
    border: 1px solid #EFBE86 !important;
    color: #7E5B34 !important;
    font-weight: 600 !important;
}

/* ═══════════════════════════════════════════════════════
   7. DATE / TIME STEP
   ═══════════════════════════════════════════════════════ */

/* Calendar wrapper */
#booknetic_calendar_area {
    border-radius: 1rem !important;
    box-shadow: 0 2px 12px rgba(126, 91, 52, 0.10) !important;
    border: 1px solid #EFBE86 !important;
    background: #ffffff !important;
}

/* Month navigation */
.booknetic_appointment .booknetic_calendar_head {
    padding: 0.5rem 0 !important;
    border-bottom: none !important;
}

.booknetic_appointment .booknetic_month_name {
    color: #7E5B34 !important;
    font-weight: 700 !important;
    font-size: 15px !important;
}

.booknetic_appointment .booknetic_next_month,
.booknetic_appointment .booknetic_prev_month {
    color: #7E5B34 !important;
    font-weight: 700 !important;
    font-size: 18px !important;
}

.booknetic_appointment .booknetic_next_month:hover,
.booknetic_appointment .booknetic_prev_month:hover {
    color: #EF4C24 !important;
}

/* Day cells — default */
.booknetic_appointment .booknetic_calendar_days > div {
    background-color: #F0F0F0 !important;
    color: #7E5B34 !important;
    border-radius: 0.5rem !important;
    font-weight: 500 !important;
    transition: background-color 0.15s !important;
}

/* Day cells — unavailable */
.booknetic_appointment .booknetic_calendar_days.booknetic_calendar_empty_day > div {
    background-color: #fafafa !important;
    color: rgba(126, 91, 52, 0.3) !important;
}

/* Day cells — selected */
.booknetic_appointment .booknetic_calendar_days.booknetic_calendar_selected_day > div {
    background-color: #EF4C24 !important;
    color: #ffffff !important;
}

/* Day cells — available indicator bar */
.booknetic_appointment .booknetic_calendar_days > div > span > i[a] {
    background: #EF4C24 !important;
}

.booknetic_appointment .booknetic_calendar_days > div > span > i[b] {
    background: #EFBE86 !important;
}

/* Times wrapper */
.booknetic_appointment .booknetic_times {
    border-radius: 1rem !important;
    box-shadow: 0 2px 12px rgba(126, 91, 52, 0.10) !important;
    border: 1px solid #EFBE86 !important;
    background: #ffffff !important;
}

.booknetic_appointment .booknetic_times_head {
    color: #7E5B34 !important;
    font-weight: 700 !important;
    border-bottom: none !important;
}

.booknetic_appointment .booknetic_times_title {
    color: #a07c52 !important;
}

/* Time slot items */
.booknetic_appointment .booknetic_times_list > div {
    background-color: #F0F0F0 !important;
    color: #7E5B34 !important;
    border-radius: 0.6rem !important;
    font-weight: 500 !important;
    box-shadow: none !important;
    transition: background-color 0.15s !important;
}

.booknetic_appointment .booknetic_times_list > div:hover {
    background-color: #EFBE86 !important;
    color: #7E5B34 !important;
}

.booknetic_appointment .booknetic_times_list > div.booknetic_selected_time {
    background: #EF4C24 !important;
    color: #ffffff !important;
}

.booknetic_appointment .booknetic_time_group_num {
    background: #EF4C24 !important;
    color: #ffffff !important;
    border-radius: 50% !important;
}

.booknetic_appointment .booknetic_times_list > div.booknetic_selected_time .booknetic_time_group_num {
    background: #ffffff !important;
    color: #EF4C24 !important;
}

/* Date edit button */
.booknetic_appointment .booknetic_date_edit_btn {
    color: #EF4C24 !important;
    border: 1px solid #EF4C24 !important;
    border-radius: 2rem !important;
}

/* Equal-height columns (desktop only).
 * Core sets .booknetic_times to a fixed 312px height; the calendar card
 * grows with its row count. Below ≤1000px the core layout switches to
 * flex-direction: column, so this rule must stay scoped to >=1001px to
 * avoid forcing the times card to the calendar's natural height when
 * stacked vertically on tablet/mobile. The parent
 * .booknetic_date_time_area is already display: flex with the default
 * align-items: stretch, so both wrappers receive the same height; we
 * just need the inner cards to stretch within them.
 *
 * Anchor strategy: the column height MUST follow .booknetic_calendar_div,
 * never .booknetic_time_div. Two pieces are required:
 *   (a) #booknetic_calendar_area uses flex:1 1 auto — grows with the
 *       weeks (5 or 6 rows) and acts as the height source.
 *   (b) .booknetic_time_div + .booknetic_times use flex:1 1 0 and
 *       min-height:0, so they take whatever height the calendar dictates
 *       without contributing their own intrinsic content height. This
 *       prevents a long slot list from pushing the parent down.
 * .booknetic_times needs overflow:hidden so its child .booknetic_times_list
 * (which has core rule height:calc(100% - 50px) + overflow-y:scroll) can
 * resolve 100% against a bounded box and scroll internally.
 *
 * Header alignment: .booknetic_calendar_head holds three elements
 * (prev/next arrows at 18px and month name at 15px) and ends up taller
 * than .booknetic_times_head (single 14px label). Without normalisation
 * the inner cards line up at the bottom but their tops drift apart. We
 * apply a shared min-height to both heads and centre the times label
 * vertically so the white cards start at the same Y position. */
@media (min-width: 1001px) {
    .booknetic_appointment .booknetic_calendar_div,
    .booknetic_appointment .booknetic_time_div {
        display: flex !important;
        flex-direction: column !important;
        min-height: 0 !important;
    }

    .booknetic_appointment #booknetic_calendar_area {
        flex: 1 1 auto !important;
        height: auto !important;
    }

    .booknetic_appointment .booknetic_times {
        flex: 1 1 0 !important;
        height: auto !important;
        min-height: 0 !important;
        overflow: hidden !important;
    }

    .booknetic_appointment .booknetic_calendar_head,
    .booknetic_appointment .booknetic_times_head {
        min-height: 48px !important;
        box-sizing: border-box !important;
    }

    .booknetic_appointment .booknetic_times_head {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }
}

/* ═══════════════════════════════════════════════════════
   8. INFORMATION STEP — form inputs
   ═══════════════════════════════════════════════════════ */

.booknetic_appointment .form-group > label {
    color: #7E5B34 !important;
    font-weight: 600 !important;
    font-size: 13px !important;
}

.booknetic_appointment [data-required="true"]:after {
    color: #EF4C24 !important;
}

.booknetic_appointment .form-control {
    border-color: #EFBE86 !important;
    border-radius: 2.2rem !important;
    color: #7E5B34 !important;
    background: #ffffff !important;
    height: 46px !important;
    font-size: 14px !important;
    transition: border-color 0.18s, box-shadow 0.18s !important;
}

.booknetic_appointment .form-control:focus {
    border-color: #EF4C24 !important;
    box-shadow: 0 0 0 3px rgba(239, 76, 36, 0.12) !important;
}

.booknetic_appointment .form-control:disabled,
.booknetic_appointment .form-control[readonly] {
    background-color: #ffffff !important;
    opacity: 0.75 !important;
    border-color: #EFBE86 !important;
}

.booknetic_appointment textarea.form-control {
    border-radius: 1.2rem !important;
    height: 120px !important;
}

/* File upload button */
.booknetic_appointment .form-control[type="file"] ~ .form-control:after {
    background: #EF4C24 !important;
    border-radius: 2rem !important;
}

/* Select2 */
.booknetic_appointment .select2-container--default .select2-selection--single {
    border-color: #EFBE86 !important;
    border-radius: 2.2rem !important;
    height: 46px !important;
    color: #7E5B34 !important;
}

.booknetic_appointment .select2-container--default .select2-selection--single .select2-selection__rendered {
    color: #7E5B34 !important;
    line-height: 44px !important;
}

.booknetic_appointment .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 44px !important;
}

.booknetic_appointment .select2-container--default.select2-container--focus .select2-selection--single,
.booknetic_appointment .select2-container--default.select2-container--open .select2-selection--single {
    border-color: #EF4C24 !important;
    box-shadow: 0 0 0 3px rgba(239, 76, 36, 0.12) !important;
}

/* Select2 dropdown */
.booknetic_appointment .select2-dropdown {
    border-color: #EFBE86 !important;
    border-radius: 0.8rem !important;
}

.booknetic_appointment .select2-results__option--highlighted {
    background-color: #EF4C24 !important;
    color: #ffffff !important;
}

.booknetic_appointment .select2-results__option[aria-selected="true"] {
    background-color: #FFFCEB !important;
    color: #7E5B34 !important;
}

/* Phone flag picker */
.booknetic_appointment .iti__flag-container {
    border-right: 1px solid #EFBE86 !important;
}

/* Social login buttons */
.booknetic_appointment .gsi-material-button {
    border-radius: 2.2rem !important;
    border-color: #EFBE86 !important;
}

/* Information auto-fill notice */
.booknetic_appointment .bkntc-information-step-info-container .form-group {
    background: #FFFCEB !important;
    border: 1px solid #EFBE86 !important;
    border-radius: 0.8rem !important;
}

/* ═══════════════════════════════════════════════════════
   9. CONFIRM / CART STEP
   ═══════════════════════════════════════════════════════ */

.booknetic_appointment .booknetic_portlet {
    border: 1px solid #EFBE86 !important;
    border-radius: 1rem !important;
    background: #FFFCEB !important;
    box-shadow: 0 1px 4px rgba(126, 91, 52, 0.07) !important;
}

.booknetic_appointment .booknetic_confirm_date_time {
    border: 1px solid #EFBE86 !important;
    border-radius: 1rem !important;
    background: #FFFCEB !important;
}

.booknetic_appointment .booknetic_confirm_date_time > div > span:first-child,
.booknetic_appointment .booknetic_text_primary {
    color: #7E5B34 !important;
    font-weight: 600 !important;
}

/* Prices */
.booknetic_appointment .booknetic_confirm_sum_price > div:last-child,
.booknetic_appointment .booknetic_sum_price {
    color: #EF4C24 !important;
    font-weight: 700 !important;
    font-size: 1.2em !important;
}

.booknetic_appointment .booknetic_confirm_sum_price > div:first-child {
    color: #7E5B34 !important;
    font-weight: 600 !important;
}

/* Confirm details rows */
.booknetic_appointment .booknetic_confirm_details {
    border: none !important;
    border-radius: 0.8rem !important;
}

.booknetic_appointment .booknetic_confirm_details > .booknetic_confirm_details_title {
    color: #a07c52 !important;
}

.booknetic_appointment .booknetic_confirm_details > .booknetic_confirm_details_price {
    color: #7E5B34 !important;
    font-weight: 600 !important;
}

/* Customer has same timeslot warning */
.booknetic_appointment .booknetic_customer_has_same_timeslot_portlet {
    background: #ffd6dd !important;
    border-color: #a3001b !important;
    color: #a3001b !important;
}

/* Indicative-prices note — injected by rdo-booking-notes.js when the
 * confirm_details step loads. Sits as a sibling of .booknetic_portlet_cols
 * inside the left column (.booknetic_confirm_sum_body); injecting OUTSIDE
 * the portlet keeps the core's space-between flex on .booknetic_portlet_cols
 * intact (otherwise the Total label gets pushed to the middle).
 *
 * Column equal-height: the parent .booknetic_confirm_step_body is a flex
 * row with align-items:stretch, so .booknetic_confirm_sum_body (left) and
 * .booknetic_confirm_deposit_body (right) already share the same height.
 * To make "left portlet + note = right portlet" in vertical extent, we
 * turn .booknetic_confirm_sum_body into a flex column where the portlet
 * grows to fill available space and the note keeps its natural height.
 * The right portlet keeps height:100% (set by core) and stretches to the
 * full column. End result: left portlet shrinks to leave room for the
 * note; both columns end at the same Y. */
.booknetic_appointment .booknetic_confirm_sum_body {
    display: flex !important;
    flex-direction: column !important;
}

.booknetic_appointment .booknetic_confirm_sum_body > .booknetic_portlet_cols {
    flex: 1 1 auto !important;
    min-height: 0 !important;
}

.booknetic_appointment .rdo-bt-confirm-note {
    flex: 0 0 auto !important;
    margin: 0.75rem 0 0 !important;
    padding: 0.7rem 0.95rem !important;
    border: 1px solid #EFBE86 !important;
    border-left-width: 3px !important;
    border-radius: 0.6rem !important;
    background: #FFF6E0 !important;
    color: #7E5B34 !important;
    font-size: 1.2rem !important;
    line-height: 1.4 !important;
}

.booknetic_appointment .rdo-bt-confirm-note__prefix {
    color: #EF4C24 !important;
    font-weight: 700 !important;
    margin-right: 0.25rem !important;
}

/* ═══════════════════════════════════════════════════════
   10. PAYMENT METHODS
   ═══════════════════════════════════════════════════════ */

.booknetic_appointment .booknetic_payment_method {
    border: 1.5px solid #EFBE86 !important;
    border-radius: 1rem !important;
    background: #ffffff !important;
    box-shadow: 0 2px 8px rgba(126, 91, 52, 0.08) !important;
    transition: border-color 0.18s, background 0.18s !important;
}

.booknetic_appointment .booknetic_payment_method:hover {
    border-color: #EF4C24 !important;
    background: #FFFCEB !important;
}

.booknetic_appointment .booknetic_payment_method.booknetic_payment_method_selected {
    border: 2px solid #EF4C24 !important;
    background: #FFFCEB !important;
    box-shadow: 0 2px 10px rgba(239, 76, 36, 0.12) !important;
}

.booknetic_appointment .booknetic_payment_method > span {
    color: #7E5B34 !important;
    font-weight: 600 !important;
}

/* Deposit radios */
.booknetic_appointment .booknetic_deposit_radio.booknetic_deposit_radio_selected {
    border-color: #EF4C24 !important;
    background: #FFFCEB !important;
}

/* ═══════════════════════════════════════════════════════
   11. BOOKING COMPLETE / THANK YOU STEP
   ═══════════════════════════════════════════════════════ */

.booknetic_appointment_finished {
    background: #ffffff !important;
    border-radius: 1.4rem !important;
}

.booknetic_appointment_finished_title {
    color: #287C59 !important;
    font-weight: 700 !important;
}

.booknetic_appointment_finished_subtitle {
    color: #a07c52 !important;
}

.booknetic_appointment_finished_code {
    color: #7E5B34 !important;
    letter-spacing: 0.2em !important;
}

.booknetic_appointment_finished_actions > button,
.booknetic_appointment_finished_actions > a {
    border-radius: 2.2rem !important;
    border-color: #EFBE86 !important;
    color: #7E5B34 !important;
    background: #ffffff !important;
    font-weight: 600 !important;
    transition: background 0.18s, border-color 0.18s !important;
}

.booknetic_appointment_finished_actions > button:hover,
.booknetic_appointment_finished_actions > a:hover {
    background: #FFFCEB !important;
    border-color: #7E5B34 !important;
}

/* Indicative-prices note on the success screen — injected by
 * rdo-booking-notes.js after booking_finished_successfully fires. Sits
 * between the confirmation block (title/subtitle/code) and the action
 * buttons. Generous vertical spacing on purpose: the success screen is
 * intentionally airy and a tight banner here would feel out of place. */
.booknetic_appointment_finished .rdo-bt-finish-note {
    margin: 1.75rem auto 1.5rem !important;
    max-width: 42rem !important;
    padding: 0 1rem !important;
    color: #7E5B34 !important;
    font-size: 1.3rem !important;
    line-height: 1.45 !important;
    text-align: center !important;
}

/* ═══════════════════════════════════════════════════════
   12. WARNING / EMPTY STATES
   ═══════════════════════════════════════════════════════ */

.booknetic_appointment .booknetic_warning_message {
    background-color: #ffd6dd !important;
    color: #a3001b !important;
    border-radius: 2rem !important;
}

.booknetic_appointment .booknetic_empty_box > span {
    color: #a07c52 !important;
}

/* ═══════════════════════════════════════════════════════
   13. PROGRESS BAR
   ═══════════════════════════════════════════════════════ */

#booknetic_progress dt {
    background: #EF4C24 !important;
}

/* ═══════════════════════════════════════════════════════
   14. POWERED BY BADGE
   ═══════════════════════════════════════════════════════ */

.booknetic_appointment .booknetic_powered_by {
    color: #a07c52 !important;
    opacity: 0.7;
}

.booknetic_appointment .booknetic_powered_by span {
    color: #7E5B34 !important;
    font-weight: 600 !important;
}

/* ═══════════════════════════════════════════════════════
   15. CUSTOMFORMS — .booknetic_custom_form
   ═══════════════════════════════════════════════════════ */

.booknetic_appointment .booknetic_custom_form .form-control {
    border-color: #EFBE86 !important;
    border-radius: 2.2rem !important;
    color: #7E5B34 !important;
    background: #ffffff !important;
}

.booknetic_appointment .booknetic_custom_form textarea.form-control {
    border-radius: 1.2rem !important;
}

.booknetic_appointment .booknetic_custom_form .form-control:focus {
    border-color: #EF4C24 !important;
    box-shadow: 0 0 0 3px rgba(239, 76, 36, 0.12) !important;
}

.booknetic_appointment .booknetic_custom_form label[data-label] {
    color: #7E5B34 !important;
    font-weight: 600 !important;
    font-size: 13px !important;
}

.booknetic_appointment .booknetic_custom_form .help-text {
    color: #a07c52 !important;
    font-size: 12px !important;
}

.booknetic_appointment .booknetic_custom_form input[type="checkbox"]:checked {
    background: #EF4C24 !important;
    border-color: #EF4C24 !important;
}

.booknetic_appointment .booknetic_custom_form input[type="radio"]:checked {
    accent-color: #EF4C24;
}

/* ═══════════════════════════════════════════════════════
   16. RESPONSIVE — mobile (≤768px)
   Core handles layout changes; we only adjust colours/radius.
   ═══════════════════════════════════════════════════════ */

@media only screen and (max-width: 768px) {
    .booknetic_appointment {
        border-radius: 0.8rem !important;
    }

    .booknetic_appointment .booknetic_appointment_steps {
        border-radius: 0 !important;
    }

    .booknetic_appointment .booknetic_card.booknetic_card_selected {
        padding: 10px !important;
    }
}
