/*
Theme Name: Betheme Child
Theme URI: https://themes.muffingroup.com/betheme
Author: Muffin group
Author URI: https://muffingroup.com
Description: Child Theme for Betheme
Template: betheme
Version: 2.0
*/

.fc-daygrid-event-harness {
    background-color: #40c1f0;
    border-radius: 5px;
    padding: 2px;
    width: fit-content;
}

.fc-daygrid-event-harness .fc-event-title {
    color: white !important;
    text-transform: uppercase;
}

.fc-header-toolbar {
    position: relative;
}


.stage-dropdown {
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 220px;
    z-index: 100;
}

.stage-dropdown-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 8px 12px;
    background: #fff;
    border: 1px solid #29b6f6;
    border-radius: 12px;
    color: #29b6f6;
    font-size: 11px;
    font-weight: 600;
    cursor: pointer;
    box-sizing: border-box;

    box-shadow: 0 4px 12px rgba(0, 0, 0, .12);
    transition: box-shadow .2s ease;

    text-transform: uppercase;
}

.stage-dropdown.open .stage-dropdown-header {
    border-radius: 12px 12px 0 0;
}

.stage-dropdown-content {
    display: none;
    position: absolute;
    top: 100%;
    left: -10px;
    width: 100%;
    padding: 12px;
    background: #fff;
    border: 1px solid #29b6f6;
    border-top: 0;
    border-radius: 0 0 12px 12px;
    box-shadow: 0 8px 20px rgba(0, 0, 0, .15);
    z-index: 9999;
    box-sizing: border-box;
}

.stage-option {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 4px 0;
    cursor: pointer;
    color: #009eea;
    font-size: 10px;
    text-transform: uppercase;
}

.stage-arrow {
    width: 0;
    height: 0;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 6px solid #29b6f6;
    transition: transform .2s ease;
}

.stage-arrow.open {
    transform: rotate(180deg);
}

.stage-badge {
    display: none;
    position: absolute;
    top: -10px;
    right: 20px;

    width: 20px;
    height: 20px;
    border-radius: 50%;

    align-items: center;
    justify-content: center;
    line-height: 1;


    background-color: #000;
    color: #fff;
    font-size: 10px;
    font-weight: bold;
    border: 2px solid #fff;
}

.stage-reset-filter {
    display: none;
    position: absolute;
    top: -10px;
    right: 0px;

    width: 20px;
    height: 20px;
    padding: 0;
    margin: 0;

    border: 2px solid #fff;
    border-radius: 50%;
    box-sizing: border-box;

    background-color: #000;
    color: #fff;

    display: flex;
    align-items: center;
    justify-content: center;

    font-family: Arial, sans-serif;
    font-size: 10px;
    font-weight: bold;
    line-height: 1;

    text-align: center;
    cursor: pointer;
}

.calendar-event-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
}

.calendar-event-header h4 {
    margin: 0;
}

.choose-stage-btn {
    white-space: nowrap;
}

.stage-title {
    font-size: 1.6em !important;
    color: #040404 !important;
    margin-bottom: 4px;
}

.event-time {
    color: #989898;
    margin-bottom: 0;
    font-size: 1.2em;
}

.event-description {
    margin-top: 15px;
    width: 100%;
    color: #6C6C6C;
    font-weight: 500;
}

.modal-content {
    border-radius: 10px !important;
}

#eventsModal .modal-title {
    color: #2d2338;
    font-size: 2em;
    font-weight: 700;
    text-transform: uppercase;
}

.modal-header {
    border-bottom: none !important;
}

.modal-footer {
    border-top: none !important;
}


.modal .close {
    display: inline-block !important;
    width: 24px !important;
    height: 24px !important;
    padding: 0 !important;
    opacity: 1 !important;
    color: transparent !important;
    font-size: 0 !important;
    background: url("assets/images/close.svg") no-repeat center center !important;
    background-size: contain !important;
    border: 0 !important;
    text-shadow: none !important;

    text-indent: -9999px;
    overflow: hidden;
}


.events-steps {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 25px;
}

.step {
    display: flex;
    align-items: center;
    position: relative;
}

.step-circle {
    width: 35px;
    height: 35px;
    border-radius: 50%;
    border: 2px solid lightgray;
    color: lightgray;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
    z-index: 2;
    font-size: 18px;
}

.step-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: lightgray;
}

.step-line {
    width: 110px;
    height: 2px;
    background: lightgray;
}

.step.active .step-line,
.step.active .step-dot,
.step.active .step-circle {
    background: #3ABFF0;
}

.step.active .step-circle {
    color: #fff;
    border: none;
}


#steps-connector.active {
    background: #3ABFF0;
}

.reservation-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}


.reservation-actions input.qty {
    width: 80px;
    border: 0;
    background-color: #f3f3f3;
    font-weight: 600;
    padding: 5px 10px;
    margin-bottom: 0;
    border-radius: 10px;
    color: #000;
}

.reservation-actions select.qty {
    width: 80px;
}

.woocommerce .quantity select.qty {
    color: rgba(0, 0, 0, .8);
    text-align: left;
    appearance: none;
    width: 90px;
}

.reservation-actions input[type="number"]:focus {
    background-color: #f3f3f3;
    color: #000;
}



.reservation-actions .place_disponible_cart {
    color: #D83D3D;
    font-size: 11px;
    line-height: 12px;
    margin: 0;
    flex: 1;
    font-weight: 500;
}


.stage-option {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
}

.stage-option input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    width: 14px;
    height: 14px;
    border: 2px solid #3ABFF0;
    border-radius: 3px;
    cursor: pointer;
    position: relative;
    margin: 0;
    flex-shrink: 0;
}

.stage-option input[type="checkbox"]:checked {
    background-color: #3ABFF0;
    border-color: #3ABFF0;
}

.stage-option input[type="checkbox"]:checked::after {
    content: "✓";
    position: absolute;
    color: white;
    font-size: 11px;
    font-weight: bold;
    left: 1px;
    top: -3px;
}

.stage-option input[type="checkbox"]:focus {
    outline: none;
    box-shadow: 0 0 0 2px rgba(58, 191, 240, 0.35);
}

.stage-option.stage-child {
    padding-left: 20px;
}


.stage-dropdown-content {
    max-height: 250px;
    overflow-y: auto;
    overflow-x: hidden;
    scrollbar-width: thin;
    scrollbar-color: #3ABFF0 #f1f1f1;
}


.stage-dropdown-content::-webkit-scrollbar {
    width: 6px;
}

.stage-dropdown-content::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 4px;
}

.stage-dropdown-content::-webkit-scrollbar-thumb {
    background: #3ABFF0;
    border-radius: 4px;
}

.stage-dropdown-content::-webkit-scrollbar-thumb:hover {
    background: #1a96c4;
}

.calendar-event-item {
    border-bottom: 1px solid #989898;
    margin-bottom: 10px;
    padding: 10px;
    padding-bottom: 20px;
}

.calendar-event-item:last-child {
    border-bottom: none;
    margin-bottom: 0;
}

.fc-myCustomButton-button.choose-stage-btn,
.reservation-actions .single_add_to_cart_button {
    padding: 8px 20px !important;
    border-radius: 100px !important;
}


.reservation-form {
    margin-top: 15px;
}

.fc-daygrid-day:has(.fc-daygrid-event-harness) {
    cursor: pointer;
}


#step-2.completed .step-circle,
#step-1 .step-circle {
    opacity: 1;
    cursor: pointer;
}

.reservation-actions .added_to_cart.wc-forward {
    display: none;
}

.calendar-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

#eventsModal .modal-dialog,
#removeProductModal .modal-dialog {
    display: flex;
    align-items: center;
    min-height: calc(100vh - 60px);
}

#eventsModal .modal-content,
#removeProductModal .modal-content {
    width: 100%;
}

.modal-backdrop {
    background-color: #000;
    opacity: 0.5 !important;
}


.place_disponible_cart {
    margin-top: 4px !important;
    color: #ff0000;
    font-size: 10px;
    white-space: wrap;
}

.woocommerce-cart .cart_item .product-date .bg_product_date p {
    margin-bottom: 0;
}

.fc-toolbar-title {
    padding: 8px 12px;
}



td[data-title="Total"] {
    display: flex;
    align-items: center;
    gap: 4px;
    white-space: nowrap;
}

.woocommerce-checkout-review-order-table .product-total {
    white-space: nowrap;
}




@media (max-width: 767px) {
    .fc-header-toolbar {
        padding-bottom: 60px;
    }

    .stage-dropdown {
        top: 100%;
        left: 50% !important;
        transform: translateX(-50%) !important;
        width: 220px;
    }

    #eventsModal .modal-title {
        font-size: 1.6em;
    }

}

@media (max-width: 450px) {

    .calendar-event-header {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
    }

    .calendar-event-header>div {
        width: 100%;
    }

    .calendar-event-header h4 {
        margin: 0 0 6px;
        font-size: 18px;
        line-height: 1.3;
    }

    .calendar-event-header .event-time {
        margin: 0;
        font-size: 14px;
    }

    .calendar-event-item {
        padding: 15px 0;
    }

    .calendar-event-item .choose-stage-btn {
        width: 100%;
        justify-content: center;
        text-align: center;
        padding: 12px 20px !important;
        font-size: 14px;
    }

    .step-line {
        width: 60px;
    }

    #calendar table.fc-col-header thead tr th a,
    #calendar table.fc-col-header thead tr th a:hover {
        font-size: 12px !important;
    }

    #calendar .fc-daygrid-day-number {
        font-size: 18px !important;
    }

    #calendar .fc-event-title {
        font-size: 9px;
        font-weight: 400;
    }

    .fc-daygrid-event-harness {
        padding: 2px 0px;
        width: fit-content;
    }

    .place_disponible_cart {
        white-space: wrap !important;
    }

    .fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events {
        min-height: unset !important;
        position: relative;
    }

    .fc .fc-daygrid-body-natural .fc-daygrid-day-events {
        margin-bottom: 2px !important;
    }

    .fc-col-header {
        margin-bottom: 1px !important;
    }

}

@media (max-width: 500px) {

    .reservation-actions {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 10px;
    }

    .reservation-actions .quantity-wrapper {
        flex: 0 0 auto;
    }

    .reservation-actions input.qty,
    .reservation-actions select.qty {
        width: 70px;
        height: 42px;
        font-size: 16px;
    }

    .reservation-actions .place_disponible_cart {
        flex: 1;
        margin: 0;
        font-size: 12px;
        line-height: 1.3;
    }

    .reservation-actions .single_add_to_cart_button {
        flex: 0 0 100%;
        margin-top: 8px;
        width: 100%;
        text-align: center;
        justify-content: center;
    }
}

.fc-myCustomButton-button {
    border: 1px solid #3ABFF0 !important;
}

.fc-myCustomButton-button:hover {
    border: 1px solid #3ABFF0 !important;
    color: #3ABFF0 !important;
    background-color: #fff !important;
    text-decoration: none;
}

.btn-danger.fc-myCustomButton-button {
    color: #fff;
    background-color: #d9534f !important;
    border-color: #d43f3a !important;
}

.btn-danger.fc-myCustomButton-button .focus,
.btn-danger.fc-myCustomButton-button :focus {
    color: #c9302c !important;
    background-color: #fff !important;
    border-color: #761c19 !important;
}

.btn-danger.fc-myCustomButton-button:hover {
    color: #c9302c !important;
    background-color: #fff !important;
    border-color: #ac2925 !important;
}

#removeProductModal .modal-body {
    font-size: 20px;
    text-align: center;
    margin: 10px;
    font-weight: 600;
}

#removeProductModal button {
    border-radius: 25px !important;
}

#removeProductModal .modal-footer {
    text-align: center;
}

#removeProductModal .modal-content {
    padding: 15px;
    border-radius: unset;
    font-family: 'Gotham';
    font-weight: 400;
}

.bloc_event_sans_date.disabled {
    pointer-events: none;
}

body a:focus, body a:hover {
    text-decoration: none;
}

body a:focus {
    outline: none;
}

.action_button i {
    color: #fff;
}

body .btn.active.focus,
body .btn.active:focus,
body .btn.focus,
body .btn:active.focus,
body .btn:active:focus,
body .btn:focus {
    outline: none;
}

.woocommerce form .form-row input::placeholder{
    color: #8c8c8c !important;
}


body.modal-open , body.side-slide-is-open {
    overflow: hidden !important;
    height: 100vh !important;
    touch-action: none;
}

html:has(body.modal-open),
html:has(body.side-slide-is-open) {
    overflow: hidden !important;
}
.calendar-icon {
	width: 24px;
	height: 24px;
	display: inline-block;
	vertical-align: middle;
	margin-right: 5px;

	background-image: var(--calendar-icon);
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;

	filter: brightness(0) invert(1);
}

.action_button:hover .calendar-icon {
	filter: none;
}

.btn-select {
    position: relative;
    cursor: pointer;
    padding-right: 40px; 
}


.btn-select::after {
    content: "";
    position: absolute;
    right: 15px;
    top: 50%;
    width: 8px;
    height: 8px;
    border-right: 2px solid #000;
    border-bottom: 2px solid #000;
    transform: translateY(-65%) rotate(45deg);
    transition: transform 0.2s ease;
}

.select-categorie.active .btn-select::after {
    transform: translateY(-35%) rotate(225deg);
}

#Side_slide .extras>.action_button::before {
    content: "";
    display: block;
    width: 24px;
    height: 24px;

    background-image: var(--calendar-icon);
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}

#Side_slide .extras .action_button {
    padding: 8px 12px !important;
    width: fit-content;
    margin: 0 auto 20px;
    display: flex;
    align-items: center;
    justify-content: center;
}

input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active {
	-webkit-box-shadow: 0 0 0 1000px #fff inset !important;
	-webkit-text-fill-color: inherit !important;
}
