/*
Template Name: Foodmart - Food & Grocery Delivery Mobile Template
Author: Askbootstrap
Author URI: https://themeforest.net/user/askbootstrap
Version: 0.1
*/

/*
- Body
- Custom Bootstrap
- Scroll Bar
- Typography
- Index
- Cart
- Track Order
- Track Delivery Boy
- Listing
*/

@import url('https://fonts.googleapis.com/css2?family=Rubik:wght@300;400;500;600;700;800;900&display=swap');
@import url("https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.3/font/bootstrap-icons.css");

:root {
    --green: #0d8420;
    --yellow: #ffe241;
    --orange: #ec6436;
    --light: #8292B4;
    --light-black: #444444;
}

/* Body */
body {
    font-family: 'Rubik', sans-serif;
    font-size: 12px;
    color: var(--light-black);
}

a {
    text-decoration: none;
}

p {
    font-size: 12px;
}

/* Custom Bootstrap */
.h6,
h6 {
    font-size: 14px;
    line-height: 20px;
}

.h5,
h5 {
    font-size: 17px;
    line-height: 20px;
}

.btn {
    font-size: 12px;
}

.form-control {
    font-size: 15px;
}

.text-muted {
    color: var(--light) !important;
}

.link-dark {
    color: var(--light-black) !important;
}

.osahan-mb-1 {
    margin-bottom: 1px;
}

.fw-bold {
    font-weight: 500 !important;
}

.small,
small {
    font-size: 10px;
}

.bg-primary {
    background-color: var(--orange) !important;
}

.text-primary {
    color: var(--orange) !important;
}

.btn-primary {
    background-color: var(--orange) !important;
    border-color: var(--orange) !important;
}

.btn-outline-success {
    border-color: var(--green) !important;
    color: var(--green) !important;
    background: #f1fff3 !important;
}

.btn-sm {
    padding: 6px 19px;
}

.btn-lg {
    font-size: 14px;
    padding: 15px 15px;
}

.form-control {
    box-shadow: none !important;
}

.offcanvas-footer {
    padding: 1rem;
}

.form-check .form-check-input:focus {
    box-shadow: none !important;
}

.form-check .form-check-input:checked {
    background-color: #FC8019;
    border-color: #FC8019;
}

.shadow,
.shadow-sm {
    -webkit-box-shadow: 0px 4px 10px rgb(0 77 255 / 4%) !important;
    box-shadow: 0px 4px 10px rgb(0 77 255 / 4%) !important;
}

.border {
    border: 1px solid #EAF1F5 !important;
}

.border-bottom {
    border-bottom: 1px solid #EAF1F5 !important;
}

.border-top {
    border-top: 1px solid #EAF1F5 !important;
}

.border-start {
    border-left: 1px solid #EAF1F5 !important;
}

.border-end {
    border-right: 1px solid #EAF1F5 !important;
}

.accordion-item {
    border-color: #eaf1f6;
}

.icon-sm {
    height: 40px;
    width: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.icon-lg {
    height: 55px;
    width: 55px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.all-cate.slick-initialized,
.top-picks.slick-initialized,
.coupons.slick-initialized,
.product-slider.slick-initialized {
    visibility: visible;
    opacity: 1;
}

.all-cate,
.top-picks,
.coupons,
.product-slider {
    opacity: 0;
    visibility: hidden;
    transition: opacity 1s ease;
    -webkit-transition: opacity 1s ease;
}

/* Scroll Bar */
html ::-webkit-resizer {
    background-color: #ffffff;
}

html ::-webkit-scrollbar {
    width: 5px;
    overflow: visible;
}

html ::-webkit-scrollbar-button {
    display: none;
}

html ::-webkit-scrollbar-corner {
    background-color: #ffffff;
}

html ::-webkit-scrollbar-thumb {
    background-color: rgba(138, 138, 138, 0.4);
    border-radius: 7px;
}

html ::-webkit-scrollbar-track-piece {
    background-color: #ffffff;
}

/* Index */
.user-icon {
    height: 35px;
    width: 35px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.product-box {
    height: 110px;
    width: auto;
    border: 1px solid #e5e5e5;
}

.btn-category {
    position: absolute;
    bottom: 6rem;
    right: 1rem;
}

.osahan-badge {
    font-size: 8px;
    letter-spacing: 0.4px;
    line-height: 10px;
    padding: 5px 4px 4px 4px;
    border-radius: 0 0 6px 6px;
}

.osahan-badge b {
    font-size: 12px;
    font-weight: 500;
}

.all-cate p.card-title {
    line-height: 14px;
}

.osahan-offer-banner {
    height: 160px;
}

.osahan-offer-banner-2 {
    height: 112px;
}

/* Cart */
.cart-product {
    width: 50px;
}

.custom-checkbox .btn-outline-danger {
    border-color: #d1d1d1 !important;
    color: #000 !important;
}

.custom-checkbox .btn-check:checked+.btn-outline-danger {
    background-color: #fdac6a4f !important;
    border-color: #FC8019 !important;
    color: #FC8019 !important;
}

.osahan-count input {
    width: 22px;
}

/* Floating Category Button */
.cat-btn-fixed {
  position: fixed;
  bottom: 85px;
  right: 20px;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  border: none;
  background: linear-gradient(135deg, #ff6b6b, #f06595);
  box-shadow: 0 4px 15px rgba(255, 107, 107, 0.4);
  z-index: 1040;
  display: flex !important;
  align-items: center;
  justify-content: center;
  transition: transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

body.shop-owner-view .cat-btn-fixed {
  display: none !important;
}

.cat-btn-fixed:active {
  transform: scale(0.9);
}

/* Track Order */
.tracking-time {
    margin-top: -65px;
    position: relative;
}

.order-time {
    height: 80px;
    width: 80px;
    border: 5px solid #FC8019;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Track Delivery Boy */
.delivery-boy-img {
    min-width: 38px;
    max-width: 38px;
}

.osahan-user-profile img {
    height: 50px;
}

.nav-wrapper.nav-wrapper-0 .nav-content h2 {
    display: none;
}

li.nav-parent.level-open h2 {
    display: block !important;
}

/* Listing */
.listing-left {
    width: 75px;
    max-width: 75px;
    min-width: 75px;
}

.listing-navbar img {
    width: 30px;
}

.osahan-item-sidebar .nav-link {
    padding: 0px;
    position: relative;
    margin: 7px 0px;
}

.osahan-item-sidebar .nav-link img {
    height: 45px;
    width: 45px;
    object-fit: contain;
    padding: 3px;
}

.osahan-item-sidebar .nav-link p {
    color: #8292b4;
}

.osahan-item-sidebar .nav-link.active p {
    color: #ed6337;
}

.osahan-item-sidebar .nav-link.active {
    background: none;
}

.osahan-item-sidebar .nav-link.active:after {
    content: "";
    position: absolute;
    width: 6px;
    background: #ed6337;
    top: 0;
    bottom: 0;
    right: -10px;
    border-radius: 9px;
}

.osahan-item-sidebar .nav-link.active img {
    background: #ffe9e2 !important;
}

.coupon-top-shape {
    width: 10px;
    height: 10px;
    background: #fff;
    left: -5px;
    top: -11px;
    border-radius: 50px;
}

.coupon-bottom-shape {
    width: 10px;
    height: 10px;
    background: #fff;
    left: -5px;
    bottom: -11px;
    border-radius: 50px;
}

.coupon-top-shape-2 {
    width: 25px;
    height: 25px;
    background: #f8f9fa;
    left: -11px;
    bottom: -12px;
    border-radius: 50px;
    box-shadow: 1px 0px 1px #e0e0e0;
}

.coupon-bottom-shape-2 {
    width: 25px;
    height: 25px;
    background: #f8f9fa;
    right: -11px;
    bottom: -12px;
    border-radius: 50px;
    box-shadow: -1px 0px 1px #e0e0e0;
}

.osahan-coupons-code .border-end {
    border-right-style: dashed !important;
    border-color: #fff !important;
}

/* ====== Logo size fixes (added by ChatGPT) ====== */

/* Global logo override removed to allow specific component styling */
#header-app-logo {
    width: 32px !important;
    height: 32px !important;
    min-width: 32px !important;
    min-height: 32px !important;
    object-fit: contain !important;
}

/* navbar small circular logo (keeps original rounded look) */
.homepage-navbar img[src="/img/logo.png"],
.homepage-navbar .rounded-circle img[src="/img/logo.png"],
.homepage-navbar .rounded-circle,
.homepage-navbar img.rounded-circle {
    max-width: 40px !important;
    max-height: 40px !important;
    width: 40px !important;
    height: 40px !important;
    object-fit: cover !important;
}

/* rotating preloader logo (if you used .logo-rotate) */
.logo-rotate,
#preloader img.logo-rotate {
    width: 72px !important;
    height: 72px !important;
    max-width: 72px !important;
    max-height: 72px !important;
    border-radius: 50% !important;
    animation: spin 1s linear infinite !important;
}

/* make sure very-large injected logos are constrained inside main content */
.my-auto img[src="/img/logo.png"],
.vh-100 img[src="/img/logo.png"] {
    max-width: 160px !important;
    max-height: 160px !important;
}

/* fallback: ensure hero background not accidentally using large image element */
img.img-fluid.logo-hero,
img.logo-hero {
    width: auto !important;
    max-width: 280px !important;
    max-height: 280px !important;
}

/* keyframes (if not already present) */
@keyframes spin {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

/* === FIX: Navbar logo correct small size === */
.navbar-logo {
    width: 36px !important;
    height: 36px !important;
    max-width: 36px !important;
    max-height: 36px !important;
    object-fit: contain !important;
    border-radius: 50% !important;
}

/* === FIX: Rotating logo (only if used) === */
.logo-rotate {
    animation: spin 1.2s linear infinite !important;
    transform-origin: center;
}

/* keyframes (if missing) */
@keyframes spin {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

/* ===== Preloader (added) ===== */
.site-preloader {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #000;
    opacity: 1;
    transition: opacity 180ms linear, visibility 180ms linear;
}

.preloader-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 8px;
    border-radius: 8px;
}

.preloader-logo {
    width: 88px;
    height: 88px;
    max-width: 88px;
    max-height: 88px;
    object-fit: contain;
    border-radius: 12px;
    animation: preloader-spin 1s linear infinite;
    will-change: transform;
}

.site-preloader.fade-out {
    opacity: 0;
    visibility: hidden;
}

@keyframes preloader-spin {
    from {
        transform: rotate(0deg) translateZ(0);
    }

    to {
        transform: rotate(360deg) translateZ(0);
    }
}

/* keep navbar logo rules compatible */
/* Override slick hidden state as we use native scroll now */
.all-cate,
.top-picks,
.coupons,
.product-slider {
    opacity: 1 !important;
    visibility: visible !important;
}