/* 1) Make the image wrapper position relative */
.product_item .product_img {
    position: relative;
    overflow: hidden; /* hide the button as it slides up/down */
}

/* 2) Absolutely position the button at the bottom of .product_img */
.product_item .add_to_cart {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    /* push it fully below the image initially */
    transform: translateY(100%);
    opacity: 0;
    pointer-events: none;
    transition: transform 0.3s ease,
    opacity 0.3s ease;
}

/* 3) Make the <a> fill its container horizontally */
.product_item .add_to_cart .add_to_cart_button {
    display: block;
    width: 100%;
    padding: 0.75rem 1rem; /* adjust vertical/horizontal padding as desired */
    text-align: center;
    cursor: pointer;
}

/* 4) On hover, slide it into view */
.product_item:hover .add_to_cart {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
}


.view_all_btn_headline {
    margin-left: 1em;

    h5 {
        color: var(--themeColorTwo);
    }

    @media (max-width: 768px) {
        display: none;
    }
}


/* Media query for screens smaller than the 'md' breakpoint (768px) */
@media (max-width: 768px) {
    /* Selects the product grid inside the special product section */
    .special-products div:nth-child(n+5) {
        display: none;
    }

    .home-blog div:nth-child(n+3) {
        display: none;
    }

    .home-best-selling div:nth-child(n+3) {
        display: none;
    }

}


/* Container for the tabs and button */
.cat_tabs {
    list-style-type: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap; /* Allows items to wrap onto the next line */
    align-items: center; /* Keeps all items vertically aligned */
    row-gap: 10px; /* Adds vertical space ONLY when items wrap to a new line */
    column-gap: 10px; /* Adds horizontal space between items */
}

/* Styling for the regular tabs */
.cat_tabs li a {
    display: block;
    padding: 6px 18px;
    text-decoration: none;
    color: #333;
    border-radius: 20px;
    border: 1px solid #ddd;
    white-space: nowrap;
}

/* Active tab style */
.cat_tabs li a.pws_tab_active {
    border-color: #f5b95b;
    color: #d98d0e;
    font-weight: normal;
}

/* This is the only rule needed to position the button */
.cat_tabs .view_all_item {
    /* This single line pushes the button to the end of the flex container */
    margin-left: auto;

    /* These are just for cleanup */
    list-style-type: none;
    padding-left: 10px; /* Adds a little space from the last tab */
}

/* Styling for the view all button link itself */
.cat_tabs .view_all_btn {
    border: none;
    background: none;
    color: #007bff;
    font-weight: bold;
}

@media (max-width: 768px) {
    .cat_tabs {
        /*justify-content: center; !* Center the tabs on smaller screens *!*/
        padding-top: 1rem;
    }

    .cat_tabs li a {
        padding: 4px 18px;
    }

    .features_item {
        padding: 10px;

    }
}

.order_placed_actions {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: stretch;
    align-content: center;
    flex-wrap: nowrap;
}

.invoice_actions {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    align-items: stretch;
    flex-direction: row;
}

.btn-adjust {
    padding-top: 10px;
    padding-bottom: 10px;
    margin-bottom: 2px;
}

.pay-btn {
    background-color: #7ac000 !important;
    padding-left: 50px;
    padding-right: 50px;
}

.view_all_btn_below {
    display: none;
    @media (max-width: 768px) {
        display: flex;
        justify-content: center;
        .view_all_btn {
            border-bottom: 1px solid #ddd;
            font-size: 16px;
            font-weight: 400;
            color: var(--colorBlack);
            text-transform: capitalize;
            font-family: var(--headingFont);
            position: relative;
            padding-right: 30px;
            transition: all linear .3s;
            -webkit-transition: all linear .3s;
        }

        .view_all_btn::after {
            position: absolute;
            content: "";
            background: url(/images/arrow_icon_black-3ef0d89c745461134123b107b1a9c6a7.svg);
            background-position: center;
            background-repeat: no-repeat;
            background-size: cover;
            width: 25px;
            height: 15px;
            top: 4px;
            right: 0;
            transition: all linear .3s;
            -webkit-transition: all linear .3s;
            -moz-transition: all linear .3s;
            -ms-transition: all linear .3s;
            -o-transition: all linear .3s;
        }
    }
}

.team-member-area {
    display: flex;
    justify-content: center;

    .blog_img {
        object-fit: fill;
        /*height: auto !important;*/
    }

    @media (min-width: 576px) {
        .blog_img {
            height: 375px;
        }
    }
}

.team-member-item {
    padding: 0 !important;
}

.team-member-text {
    padding: 15px 15px 15px 15px !important;
}

@media (max-width: 991px) {
    .team-empty-col {
        display: none;
    }
}

/*
Probably need to remove later
 */
header .header_logo {
    width: 150px;
}

.footer_logo_area .footer_logo,
.footer_2_logo_area .footer_logo {
    display: block;
    width: 150px;
    box-shadow: 0 4px 6px rgb(255 255 255 / 32%), 0 2px 4px rgb(255 255 255 / 51%);
    border-radius: 8px;
    background: lavenderblush;
}

.campaign-banner img {
    object-fit: fill !important;
}

.campaign-img-txt {
    background: linear-gradient(180deg, rgb(0 0 0 / 0%) 0%, rgb(0 0 0 / 35%) 60%) !important;
}

.beauty_countdown_area {
    background: #ffa50014 !important;
}

@media (min-width: 1400px) {
    .beauty_countdown_area .text {
        max-width: 100%;
    }

    .beauty_countdown_area .text h2 {
        font-size: 38px;
        margin-top: 0;
    }

    .beauty_countdown_area .text p {
        margin-bottom: 15px;
    }

    .campaign-right-col {
        display: flex;
        flex-direction: column;
        flex-wrap: nowrap;
        align-content: flex-end;
        align-items: flex-end;
    }
}

.beauty_countdown_area .loc-text {
    color: #966100;
}

.beauty_countdown_area .upcoming-visit {
    font-size: 1.5rem;
    display: flex;
    justify-content: center;
}

.beauty_countdown_area .home-booking-button {
    display: flex;
    justify-content: center;
    margin-top: 10px;
    gap: 10px;
    flex-direction: row;
    align-content: stretch;
    align-items: center;
}

@media (max-width: 768px) {
    .beauty_countdown_area .loc-text {
        font-size: 14px;
    }
}

@media (min-width: 576px) and (max-width: 1599.99px) {
    .booking-section-item .text {
        padding: 35px;
        max-width: 100%;
    }

    .booking-section-item img {
        object-fit: cover !important;
    }
}

.booking-section-item {
    @media (min-width: 576px) and (max-width: 767.99px) {
        height: 780px;
    }
    @media (min-width: 767.99px) and (max-width: 991.99px) {
        height: 920px;
    }
    @media (min-width: 992px) and (max-width: 1199.99px) {
        height: 810px;
    }
    @media (min-width: 1200px) and (max-width: 1399.99px) {
        height: 630px !important;
    }
    @media (min-width: 1400px) and (max-width: 1599.99px) {
        height: 600px;
    }
    @media (min-width: 1600px) {
        height: 600px;
    }
}

.team-ceo-img {
    background-color: white;

    img {
        object-fit: contain;
        transform: translate(50px, 20px);
    }
}


/* 1) Wrapper: enable horizontal scrolling */
.scrollable-div {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 0.5rem;
    -ms-overflow-style: none; /* IE and Edge */
    scrollbar-width: none;
}

/* 2) Inner .row: make it a no‑wrap flex container */
.scrollable-div > .row {
    display: flex !important;
    flex-wrap: nowrap !important;
    /*gap: 1rem;               !* gutter between items *!*/
}

/* 3) Columns: don’t shrink or grow, but let their Bootstrap width stand */
.scrollable-div > .row > [class*="col-"] {
    flex: 0 0 auto !important;
    /* NO width or min-width overrides here! */
}

/* 4) (Optional) Scrollbar styling */
.scrollable-div::-webkit-scrollbar {
    height: 6px;
}

.scrollable-div::-webkit-scrollbar-thumb {
    background: rgba(0, 0, 0, 0.2);
    border-radius: 3px;
}

.scrollable-wrapper {
    position: relative;
}

.scroll-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 40px;
    height: 40px;
    background: rgba(255, 255, 255, 0.9);
    opacity: 0.5;
    border: 1px solid #ddd;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 10;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}

.scroll-arrow:hover {
    background: var(--themeColorTwo);
    opacity: 1;
}

.scroll-left {
    left: -10px;
}

.scroll-right {
    right: -10px;
}

@media (max-width: 768px) {
    .scroll-arrow {
        opacity: .2;
    }

    .scroll-arrow:hover {
        opacity: 1;
    }

    .scroll-left {
        left: 5px;
    }

    .scroll-right {
        right: 5px;
    }
}

.scroll-arrow.disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/*
HTMX
 */

.htmx-indicator {
    opacity: 0;
    transition: opacity 200ms ease-in;
    position: absolute;
    margin-left: 10px;
}

.htmx-request .htmx-indicator {
    opacity: 1;
}

.spinner {
    width: 20px;
    height: 20px;
    border: 4px solid rgba(0, 0, 0, 0.2);
    border-top: 4px solid var(--themeColorTwo);
    border-radius: 50%;
    animation: spin 1s linear infinite;
    vertical-align: middle;
}

@keyframes spin {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

.custom-file-upload {
    border: 2px dashed #ccc;
    padding: 20px;
    border-radius: 12px;
    background-color: #fafafa;
    margin: 20px auto;
    text-align: center;
    font-family: Arial, sans-serif;
    transition: border-color 0.3s;
}

.custom-file-upload:hover {
    border-color: #007bff;
}

.custom-file-upload label {
    display: inline-block;
    margin-bottom: 10px;
    font-weight: bold;
    color: #333;
}

.custom-file-upload input[type="file"] {
    padding: 10px;
    border-radius: 6px;
    background-color: #f0f0f0;
    border: none;
    cursor: pointer;
    font-size: 14px;
    width: 100%;
}

.custom-file-upload input[type="file"]::file-selector-button {
    background-color: #007bff;
    color: white;
    border: none;
    padding: 8px 16px;
    margin-right: 10px;
    border-radius: 6px;
    cursor: pointer;
    font-weight: bold;
}

.custom-file-upload input[type="file"]::file-selector-button:hover {
    background-color: #0056b3;
}

.best_selling_product_item .text {
    background: linear-gradient(to top, #d7e6ff, rgba(0, 0, 0, 0));
    text-shadow: 0 2px 4px rgb(210 200 200 / 90%), 0 4px 8px rgba(0, 0, 0, 0.6);
}

.available-stock-price {
    display: flex;
    flex-direction: row;
    justify-content: space-evenly;
    align-items: center;
}

.cart_text p {
    display: flex;
    align-items: center;
    padding: 10px 0px;
}
