/* import font Garamond & Josefin */
@import url('https://fonts.googleapis.com/css2?family=EB+Garamond:ital,wght@0,400..800;1,400..800&family=Josefin+Sans:ital,wght@0,100..700;1,100..700&display=swap');

@import url('https://fonts.googleapis.com/css2?family=Jost:ital,wght@0,100..900;1,100..900&display=swap');

/* custom variable */
:root { 
    --essential-blue: #001D68;
    --ess-dark-blue : #12234f;
    --essential-brown: #3d2a25;
    --ess-dark: #3D3C3C;
    --ess-light: #EFEFEF;
    --ess-brown: linear-gradient(90deg, #BD8681 0%, #76554F 100%);
    /* --ess-brown: linear-gradient(90deg, #0034b6 0%, #001D68 100%); */
    --ess-brown: linear-gradient(90deg, #1a4fd8 0%, #163a8a 100%);
    --ess-blue-gradient: linear-gradient(90deg, #0034b6 0%, #001D68 100%);
    --ess-green: linear-gradient(90deg, #838D7F 0%, #595E4D 100%);
    --ess-dark-brown: #3D2A25;
    --ess-gold-brown: #AF823E;
    --ess-earth-brown: #362813;
    --ess-disabled:#BEBDBD;
    --ess-dark-secondary:#9A9A9A;
    --ess-white:#ffffff;
    --bs-body-font-size : 14px !important;

}



/* custom default  */
* {
    font-family: "EB Garamond", serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;  
    /* transition: 0.25s all; */
}

/* js breakpoint  */
body::before {
    content: 'desktop';
    display: none;
}

@media (max-width: 767px) {
    body::before {
        content: 'mobile';
    }
}



h1,h2,h3,h4,h5,h6 {
    font-family: "EB Garamond", serif;
    font-optical-sizing: auto;
    font-weight: 600;
    font-style: normal; 
    color: var(--ess-dark);
}

p {
    font-family: "Jost", sans-serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    color: var(--ess-dark);
}
a {
    color : var(--essential-blue);
    text-decoration: none !important;
}
body { 
    background-color: var(--ess-light);
}

/* Webkit browsers (Chrome, Safari, etc.) */
::-webkit-scrollbar {
    width: 8px; /* Width of the scrollbar */
}

::-webkit-scrollbar-track {
    background: rgba(0, 0, 0, 0.04); /* Color of the track */
    border-radius: 10px; /* Rounded corners of the track */
}

::-webkit-scrollbar-thumb {
    background: var(--bs-gray-500);
    border-radius: 10px; /* Rounded corners of the thumb */
}

::-webkit-scrollbar-thumb:hover {
    background: var(--bs-gray-500);
}


/* custom bootstrap  */
.nav-link.active {
    background-color: var(--ess-brown) !important;
    color: white !important;
}
.card-header { 
    /* margin : 1rem; */
    padding : 1rem; 
    background-color: white;
    box-shadow: var(--bs-box-shadow);
    border-radius: .5rem !important;
}
.form-floating>label { 
    left : unset;
}
/* .card-header * {
    margin : 0px !important;
} */

.input-group-text { 
    background-color: transparent !important;
    border: 0px;
    border-bottom: 1px solid var(--essential-blue);
}
.offcanvas, .offcanvas-lg, .offcanvas-md, .offcanvas-sm, .offcanvas-xl, .offcanvas-xxl {
    --bs-offcanvas-width : 650px !important;
}
#offcanvasServices {
    --bs-offcanvas-width : 380px !important;
    box-shadow: -10px 0 30px rgba(0,0,0,0.15);
}

/* custom owl carousel  */
.owl-prev, .owl-next{
    border: none;

}

/* custom select2  */
.select2-container .select2-selection--single {
    height: 38px;
}

.select2-selection__rendered {
    line-height: 38px !important;
}

.select2-selection__arrow {
    height: 38px;
}

.select2-container--default .select2-selection--single.is-invalid {
    border: 1px solid #dc3545;
    padding-right: 2.25rem;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23dc3545'%3e%3cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M12 9v4m0 4h.01M5.07 19h13.86c1.54 0 2.5-1.67 1.73-3L13.73 4c-.77-1.33-2.69-1.33-3.46 0L3.34 16c-.77 1.33.19 3 1.73 3z'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    background-size: 1rem;
}

.select2-container--default .select2-selection--single.is-valid {
    border: 1px solid #198754;
    padding-right: 2.25rem;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23198754'%3e%3cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 13l4 4L19 7'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    background-size: 1rem;
}




/* additional class  */
.bg-es-white { 
    background-color: var(--ess-white);
}
.bg-es-brown { 
    background: var(--ess-brown);
}
.bg-es-gradient {
    background: var(--ess-blue-gradient);
}
.es-garamond {
    font-family: "EB Garamond", serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
}

.es-josefin {
    font-family: "Jost", sans-serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
}
.bg-es-blue {
    background-color:var(--essential-blue) !important;
}
.text-es-blue { 
    color: var(--essential-blue) !important;
}
.text-es-brown { 
  background: var(--ess-brown);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.btn-outline-es-blue { 
    background-color: white !important;
    border: 1px solid var(--essential-blue);
    color: var(--essential-blue);
    transition-duration: 0.9ms;
    padding-left: 1rem;
    padding-right: 1rem;
    font-weight: bold;
}
.btn-outline-es-blue:hover { 
    background-color: var(--essential-blue) !important;
    color: white !important;
}
.btn-outline-es-blue:active { 
    background-color: var(--essential-blue) !important;
    color: white !important;
}
.btn-outline-es-blue:focus { 
    background-color: var(--essential-blue) !important;
    color: white !important;
}

.btn-es-brown { 
    background-color: var(--essential-blue);
    color: white !important;
    transition-duration: 0.9ms;
    padding-left: 1rem;
    padding-right: 1rem;
    font-weight: bold;
}
.btn-es-brown:hover { 
    background-color: var(--essential-blue);
    color: white !important;
}
.btn-es-brown:active { 
    background-color: var(--essential-blue);
    color: white !important;
}
.btn-es-brown:focus { 
    background-color: var(--essential-blue);
    color: white !important;
}

.btn-es-brown:disabled { 
    cursor: not-allowed;
}
.btn-es-brown.active { 
    background: var(--ess-brown);
    color: white !important;
}

.btn-es-brown2 { 
    background: var(--ess-brown);
    color: white !important;
    transition-duration: 0.9ms;
    padding-left: 1rem;
    padding-right: 1rem;
    font-weight: bold;
}
.btn-es-brown2:hover { 
    background: var(--ess-brown);
    color: white !important;
}
.btn-es-brown2:active { 
    background: var(--ess-brown);
    color: white !important;
}
.btn-es-brown2:focus { 
    background: var(--ess-brown);
    color: white !important;
}

.btn-es-brown:disabled { 
    cursor: not-allowed;
}
.btn-es-brown.active { 
    background: var(--ess-brown);
    color: white !important;
}

.border-brown { 
    border: 1px solid var(--ess-dark-brown) !important;
}

/* component  */
.top-nav {
    /* position: sticky; */
    /* top : 0; */
    /* z-index : 50; */
    justify-content:space-between;
}


.breadcrumb-progress { 
    padding : 0.5rem;
    border : 1px solid var(--ess-light);
    border-radius:10px;
    background-color: var(--ess-white);
    position : sticky;
    top : 0;
    z-index: 35;
}
@media(min-width : 768px) { 
    .breadcrumb-progress { 
        position: relative;
    }
}

.breadcrumb-progress .progress-items { 
    display: flex;
    list-style-type: none;
    gap :0rem;
    padding :0px;
    margin : 0px;
    align-items: center;
}
.breadcrumb-progress .progress-items .progress-item { 
    /* padding : .25rem .5rem; */
    /* border : 1px solid black; */
}
.breadcrumb-progress .progress-items .progress-item a { 
    font-family: "Jost", sans-serif;
    font-optical-sizing: auto;
    font-weight: normal;
    font-style: normal;
    font-size: 14px;
    padding : .5rem;
    padding-right: 0rem;
    /* border : 1px solid black; */
    color : var(--ess-disabled);
}
.breadcrumb-progress .progress-items .progress-item a.active{ 
    color: var(--ess-dark);
    font-weight: normal;
}

@media (min-width:768px) {
    .breadcrumb-progress .progress-items .progress-item a {
        font-size:16px;
    }
}


.breadcrumb-progress .progress-items .progress-item:not(:last-child) a::after { 
    content: '>';
    margin-left:.5rem;
}


#mainContainer { 
    padding-bottom: 3rem !important;
}
@media(min-width: 768px) { 
    #mainContainer { 
        padding-bottom:1rem !important;
    }
}

.guest-person { 
    display: flex;
    flex-direction: column;
    align-items: center;
    padding:0rem;
    gap:.5rem;
}

@media(min-width: 768px) {
    .guest-person { 
        display: flex;
        flex-direction: row;
        align-items: center;
        padding:0rem;
        gap:.5rem;
    }
}
.guest-profile { 
    width : 50px;
    height : 50px;
    background: var(--ess-brown);
    color: var(--ess-light);
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 24px;
    border-radius: 100%;
    position : relative
}
.guest-profile-sm { 
    width : 40px;
    height : 40px;
}

.guest-profile-lg {
    width : 70px;
    height : 70px;
}
.btn-edit-contact { 
    position: absolute;
    bottom: -5px;
    right: -3px;
    border: 1px solid white;
}

.service-category-outer { 
    padding: .5rem;
    position: sticky;
    top: 0;
    z-index: 30;
    background-color: var(--ess-white);
    justify-content: space-between;
    align-items: center;
}
@media(max-width: 768px) { 
    .service-category-outer { 
        position: relative;
    }
}

.service-category .category-item {
    border-radius : 10px;
    padding : .5rem;
}
.service-category .category-item a {
    padding : 1rem;
    border-radius: 1rem;
}
.service-category .category-item a.active { 
    border-radius : 10px !important;
}

.service-category-nav { 
    display: none;
}
@media(min-width : 768px) { 
    .service-category-nav { 
        display: block;
    }
}

.main-content { 
    margin-bottom:15rem;
}
@media(min-width:768px) { 
    .main-content {
        margin-bottom : 1rem;
    }
}
.side-summary { 
    height : auto;
    position: fixed;
    bottom: 0px;
    z-index: 40;
    padding-top:1rem;
    background-color: var(--ess-white);
    border: 1px solid var(--essential-blue);
    border-radius: 1rem;
}


.placeholder-summary {
    width : 100%;
    height : 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    
}
@media(max-width:768px) {
    .placeholder-summary {
        display: none !important;
    }
}

.side-body { 
    height: 100%;
    /* overflow-y: auto; */
    overflow-x: hidden;
}

@media(min-width:768px) {
    .side-summary { 
        height : 88vh;
        position: sticky;
        top: 0px;
        border:0px;
    }

    .side-body { 
        height: 100%;
        overflow-y: auto;
        overflow-x: hidden;
    }
}


.treatments-card { 
    /* margin-top:-3rem; */
}

#service_category .category-item a.active {
    background: var(--essential-blue);
    color: #fff;
}


.treatments-price-badge{
    background-color:var(--essential-blue);
    color : white;
    padding : .5rem 1rem;
    font-size : 16px;
    position : absolute;
    top: -15px;
    right: 10px;
    z-index: 9;
}

.treatments-book  {
    display: flex;
    align-self: center;
    align-items: center;
    justify-self: end;
    justify-content: end;
    /* margin-bottom: -2.5rem; */
    z-index: 9;
    gap: 1rem;
}
.treatments-book.added {
    background-color: var(--essential-blue) !important;
    color: white !important;
    border: 1px solid white;
}
.treatments-book.added:hover  { 
    background-color: var(--essential-blue) !important;
    color: white !important;
    cursor: no-drop;
}
 
.iti.iti--allow-dropdown.iti--show-flags {
    width: 100%;
}
.choices__list--dropdown {
    height: 0;
  }
  
  .choices__list--dropdown.is-active {
    height: auto;
  }
.choices__inner {
    background-color: transparent;
    border: 0px;
    border-bottom: 1px solid black;
    font-size: 16px;
}
.form-control { 
    /* border: 0px; */
    /* border-bottom: 1px solid black; */
    /* border-radius: 0px; */
    background-color: transparent;
}
.form-control:focus { 
    background-color: transparent;
    box-shadow: none;
    border-color: var(--essential-blue);
}
.form-floating label::after { 
    background-color: transparent !important;
}


/* calendar  */
.prev-btn  { 
    height:  fit-content;
}
.next-btn { 
    height: fit-content;
}
.calendar { 
    max-width:100%;
    margin: auto;
    border: 0px ;
    padding :1rem;
}
.weekdays, .days {
    justify-content: space-between;
    width : 100%;
    margin : auto;
    margin-bottom : 10px
}
.weekdays { 
    border : 1px solid var(--essential-blue);
    border-radius : 10px;
    background-color: white;
}
.weekdays .day {
    width :calc(100% / 7 - 10px);
    margin:5px;
    font-size: 13px;
    padding: 0px;
}

.days .day {
    width: calc(100% / 7 - 10px);
    height: 50px;
    font-size: 14px;
    padding : 0px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    border-radius: 10px;
    margin: 5px;
    background-color :white;
    border: 1px solid var(--essential-blue);
    color: black;
    transition-duration: 0.3s;
}
@media (min-width : 768px) {
    .weekdays .day { 
        width :calc(100% / 7 - 15px );
        margin:5px;
        font-size : 14px
        
    }
    .days .day { 
        width : calc(100% / 7 - 15px);
        margin : 5px;
        height : 60px
    }
}
.days .day:hover { 
    cursor: no-drop;
}
.days .day:not(.prev):not(.next):not(.sold):hover {
    background-color: var(--essential-blue);
    color: white;
    cursor: pointer;
}

.days .day.prev {
    color : var(--bs-gray-500);
    border-color: var(--bs-gray-500);
}
.days .day.next {
    color : var(--bs-gray-500);
    border-color: var(--bs-gray-500);
}

.days .day.sold { 
    color : var(--bs-danger);
    border-color : var(--bs-gray-500);
}

.days .day.selected { 
    color : white;
    background-color: var(--essential-blue);
}

.treatment-item { 
    background:white;
    padding : 1rem;
}

.professional.active .card{
    background-color: var(--essential-blue);
    color : white;
}

.therapist-profile { 
    border-radius: 100%;
}

.guest-therapist { 
    padding : 1rem;
    border : 1px solid var(--bs-gray-500);
    border-radius: 1rem;
    position: relative;
}

@media(max-width : 768px) { 
    .delete-services-btn {
        position: absolute;
        top: 0px;
        left: 0px;
        margin-top: 1rem;
        margin-left : 1rem;
    } 
}

.card-therapist { 
    height : 180px;
}

.service-card { 

}
.service-card:hover { 
    cursor: pointer;
}

.services-content { 
    margin-top: .5rem;
}
.limit-text { 
    display: -webkit-box;
    -webkit-line-clamp: 1; /* adjust lines ≈ 160 chars */
    -webkit-box-orient: vertical;
    overflow: hidden;
    transition: all 0.25s ease;
}
.limit-text-small { 
    display: -webkit-box;
    -webkit-line-clamp: 1; /* adjust lines ≈ 160 chars */
    -webkit-box-orient: vertical;
    overflow: hidden;
    transition: all 0.25s ease;
}
.smooth-transition {
    transition:  all 0.25s ease;
}

.desc-text { 
    text-align: justify;
}
.collapse-control {
    transition: transform 0.25s ease;
}

.collapse-control.rotate {
    transform: rotate(180deg);
}


/* skeleton loader  */
.skeleton-line,
.skeleton-circle {
    background: linear-gradient(
        90deg,
        #eee 25%,
        #f5f5f5 37%,
        #eee 63%
    );
    background-size: 400% 100%;
    animation: skeleton-loading 1.4s ease infinite;
    border-radius: 4px;
}

.skeleton-line {
    height: 12px;
}

.skeleton-circle {
    width: 16px;
    height: 16px;
    border-radius: 50%;
}

@keyframes skeleton-loading {
    0% { background-position: 100% 50%; }
    100% { background-position: 0 50%; }
}

.skeleton-line,
.skeleton-circle {
    background: linear-gradient(
        90deg,
        #eee 25%,
        #f5f5f5 37%,
        #eee 63%
    );
    background-size: 400% 100%;
    animation: skeleton-loading 1.4s ease infinite;
    border-radius: 4px;
    transition: all 0.2s ease;
}

.skeleton-line {
    height: 12px;
}
.skeleton-line-24 { 
    height : 24px;
}
.skeleton-line-36 { 
    height : 36px;
}

.skeleton-circle {
    width: 16px;
    height: 16px;
    border-radius: 50%;
}

@keyframes skeleton-loading {
    0% { background-position: 100% 50%; }
    100% { background-position: 0 50%; }
}

.profile-nav {
    width : 40px;
    height : 40px;
    background: var(--ess-blue-gradient);
    color: white;
    border-radius: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 18px;
}
.profile-nav::after { 
    border : none !important;
}
.profile-nav:hover { 
    color : white !important;
}
.profile-nav:focus { 
    color: white !important;
}
.profile-nav-dropdown { 
    max-width : 300px;
    right : 15px;
    left : unset !important
}

.aside-control { 
    width : 100px;
    padding : 0rem 1.5rem;
}
.aside-container { 
    width :100px;
    height : 87vh;
    position: sticky;
    top: 4rem;
}

.aside-container .aside-nav { 
    height : 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    background-color: var(--ess-dark-blue);
    padding : .7rem 0rem;
    border-radius: 1rem;
}

.aside-container .aside-nav .list-group .list-group-item {
    background-color: transparent !important;
    border:  none;
}

.aside-container .aside-nav .list-group .list-group-item a { 
    color: var(--ess-white);
}

.aside-container .aside-nav .list-group .list-group-item a.active { 
    background: var(--ess-brown);
    color: white !important;
    transition-duration: 0.9ms;
    padding: 0.5rem 1rem;
    font-weight: bold;
    border-radius: .4rem;;
}


.main-content { 
    background-color: var(--ess-white);
    border-radius: 1rem;
}

/* .service-container { 
    width : 350px;
} */


.data-created { 
    width : 200px;
}

.data-booking { 
    width: 200px;
    /* height : 180px; */
    overflow-y: auto;
    position: relative;
}

.data-services { 
    width : 450px;
}
.data-services .service-container {
    max-height : 100px;
    overflow-y: auto;
}

.data-cust { 
    width : 250px;
    /* height : 180px; */
    overflow-y: auto;
}
.data-transaction { 
    width  : 200px;
    /* height : 180px; */
    overflow-y: auto;
}
.data-pax { 
    width : 40px;
}

.service-container:hover {
    cursor: pointer;
}
nav { 
 z-index: 80;
}

.item-data:hover {
    cursor: pointer;
}
.item-data.muted *{ 
    color: var(--bs-gray-500) !important
}
.item-data.active { 
    outline: 1px solid var(--essential-blue);
}

.offcanvas { 
    height : 100vh !important;
}
.offcanvas-body .guest-details {

}
.offcanvas-body .order-details {
    height : 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;

}
.offcanvas-body .order-details-content { 
    height : 80%;

}
.offcanvas-body .order-details-services {
    height : 90%;
}
.offcanvas-body .order-details-services .service-details{
    max-height : 90%;
    overflow-y : auto;
}