/* ==========================================================
   GOOGLE FONTS
========================================================== */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap');


/* ==========================================================
   ROOT VARIABLES
========================================================== */

:root{

    --primary:#0d6efd;
    --primary-dark:#0b5ed7;

    --secondary:#6c757d;

    --success:#198754;

    --danger:#dc3545;

    --warning:#ffc107;

    --info:#0dcaf0;

    --light:#f8f9fa;

    --dark:#212529;

    --white:#ffffff;

    --black:#000000;

    --gray-100:#f8f9fa;
    --gray-200:#e9ecef;
    --gray-300:#dee2e6;
    --gray-400:#ced4da;
    --gray-500:#adb5bd;
    --gray-600:#6c757d;
    --gray-700:#495057;
    --gray-800:#343a40;
    --gray-900:#212529;

    --border-radius:12px;

    --border-radius-sm:8px;

    --border-radius-lg:18px;

    --transition:all .30s ease;

    --shadow-sm:0 .125rem .25rem rgba(0,0,0,.075);

    --shadow-md:0 .5rem 1rem rgba(0,0,0,.12);

    --shadow-lg:0 1rem 2rem rgba(0,0,0,.15);

}


/* ==========================================================
   RESET
========================================================== */

*{

    margin:0;

    padding:0;

    box-sizing:border-box;

}

html{

    scroll-behavior:smooth;

}

body{

    font-family:'Inter',sans-serif;

    background:#fff;

    color:var(--gray-800);

    font-size:16px;

    line-height:1.7;

    overflow-x:hidden;

}


/* ==========================================================
   TYPOGRAPHY
========================================================== */

h1,
h2,
h3,
h4,
h5,
h6{

    font-weight:700;

    color:var(--dark);

    margin-bottom:1rem;

    line-height:1.3;

}

p{

    color:var(--gray-700);

    margin-bottom:1rem;

}

small{

    color:var(--gray-600);

}

strong{

    font-weight:700;

}


/* ==========================================================
   LINKS
========================================================== */

a{

    color:inherit;

    text-decoration:none;

    transition:var(--transition);

}

a:hover{

    color:var(--primary);

}


/* ==========================================================
   LISTS
========================================================== */

ul,
ol{

    padding-left:1.2rem;

}

.list-unstyled{

    padding-left:0;

    list-style:none;

}


/* ==========================================================
   IMAGES
========================================================== */

img{

    max-width:100%;

    height:auto;

    display:block;

}


/* ==========================================================
   FORM ELEMENTS
========================================================== */

input,
textarea,
select,
button{

    font-family:inherit;

}

button{

    cursor:pointer;

}


/* ==========================================================
   SELECTION
========================================================== */

::selection{

    background:var(--primary);

    color:#fff;

}


/* ==========================================================
   SCROLLBAR
========================================================== */

::-webkit-scrollbar{

    width:10px;

}

::-webkit-scrollbar-track{

    background:var(--gray-200);

}

::-webkit-scrollbar-thumb{

    background:var(--primary);

    border-radius:20px;

}

::-webkit-scrollbar-thumb:hover{

    background:var(--primary-dark);

}


/* ==========================================================
   UTILITIES
========================================================== */

.section-padding{

    padding:80px 0;

}

.bg-light-custom{

    background:var(--gray-100);

}

.rounded-custom{

    border-radius:var(--border-radius);

}

.shadow-custom{

    box-shadow:var(--shadow-md);

}

.transition{

    transition:var(--transition);

}

.text-primary-custom{

    color:var(--primary);

}

.text-muted-custom{

    color:var(--gray-600);

}

/* ==========================================================
   BUTTONS
========================================================== */

.btn{

    border-radius:var(--border-radius-sm);

    font-weight:600;

    padding:.70rem 1.50rem;

    transition:var(--transition);

    border-width:2px;

}

.btn:hover{

    transform:translateY(-2px);

    box-shadow:var(--shadow-md);

}

.btn:focus{

    box-shadow:none;

}

.btn-primary{

    background:var(--primary);

    border-color:var(--primary);

}

.btn-primary:hover{

    background:var(--primary-dark);

    border-color:var(--primary-dark);

}

.btn-outline-primary:hover{

    background:var(--primary);

}

.btn-success:hover{

    transform:translateY(-2px);

}

.btn-lg{

    padding:.90rem 2rem;

    font-size:1rem;

}


/* ==========================================================
   BADGES
========================================================== */

.badge{

    padding:.55rem .90rem;

    border-radius:50rem;

    font-weight:600;

    letter-spacing:.4px;

}


/* ==========================================================
   CARDS
========================================================== */

.card{

    border:none;

    border-radius:var(--border-radius);

    overflow:hidden;

    transition:var(--transition);

}

.card:hover{

    box-shadow:var(--shadow-md);

}

.card-header{

    background:#fff;

    border-bottom:1px solid var(--gray-200);

    padding:1rem 1.25rem;

}

.card-body{

    padding:1.5rem;

}

.card-footer{

    background:#fff;

    border-top:1px solid var(--gray-200);

}


/* ==========================================================
   FORMS
========================================================== */

.form-label{

    font-weight:600;

    color:var(--gray-800);

}

.form-control,
.form-select{

    border-radius:var(--border-radius-sm);

    border:1px solid var(--gray-300);

    padding:.80rem 1rem;

    transition:var(--transition);

}

.form-control:focus,
.form-select:focus{

    border-color:var(--primary);

    box-shadow:0 0 0 .15rem rgba(13,110,253,.15);

}

textarea.form-control{

    min-height:150px;

    resize:vertical;

}

.form-check-input:focus{

    box-shadow:none;

}


/* ==========================================================
   ALERTS
========================================================== */

.alert{

    border:none;

    border-radius:var(--border-radius-sm);

}


/* ==========================================================
   TABLES
========================================================== */

.table{

    vertical-align:middle;

}

.table thead th{

    border-bottom:2px solid var(--gray-300);

    font-weight:700;

    color:var(--gray-800);

}

.table td{

    padding:1rem .75rem;

}


/* ==========================================================
   PAGINATION
========================================================== */

.pagination .page-link{

    border-radius:8px;

    margin:0 .20rem;

    color:var(--gray-700);

    border:1px solid var(--gray-300);

}

.pagination .page-item.active .page-link{

    background:var(--primary);

    border-color:var(--primary);

}

.pagination .page-link:hover{

    background:var(--gray-100);

}


/* ==========================================================
   BREADCRUMB
========================================================== */

.breadcrumb{

    margin-bottom:0;

}

.breadcrumb-item+.breadcrumb-item::before{

    color:var(--gray-500);

}


/* ==========================================================
   DROPDOWNS
========================================================== */

.dropdown-menu{

    border:none;

    border-radius:var(--border-radius-sm);

    box-shadow:var(--shadow-md);

    padding:.5rem;

}

.dropdown-item{

    border-radius:8px;

    padding:.60rem .90rem;

    transition:var(--transition);

}

.dropdown-item:hover{

    background:var(--gray-100);

}


/* ==========================================================
   MODALS
========================================================== */

.modal-content{

    border:none;

    border-radius:var(--border-radius);

}

.modal-header{

    border-bottom:1px solid var(--gray-200);

}

.modal-footer{

    border-top:1px solid var(--gray-200);

}


/* ==========================================================
   ICONS
========================================================== */

.fa,
.fas,
.far,
.fab{

    transition:var(--transition);

}

/* ==========================================================
   HEADER
========================================================== */

.site-header{

    position:relative;

    z-index:1030;

    background:var(--white);

}


/* ==========================================================
   TOP BAR
========================================================== */

.top-bar{

    background:var(--dark);

    color:var(--white);

    font-size:.90rem;

    padding:.55rem 0;

}

.top-bar a{

    color:rgba(255,255,255,.90);

}

.top-bar a:hover{

    color:var(--white);

}

.top-bar i{

    margin-right:.35rem;

}


/* ==========================================================
   NAVBAR
========================================================== */

.navbar{

    background:var(--white);

    padding:1rem 0;

    transition:var(--transition);

    border-bottom:1px solid var(--gray-200);

}

.navbar-brand{

    display:flex;

    align-items:center;

    font-size:1.35rem;

    font-weight:800;

    color:var(--dark);

}

.navbar-brand img{

    max-height:52px;

    width:auto;

    margin-right:.75rem;

}


/* ==========================================================
   NAV LINKS
========================================================== */

.navbar-nav{

    align-items:center;

}

.navbar-nav .nav-item{

    margin:0 .20rem;

}

.navbar-nav .nav-link{

    color:var(--gray-800);

    font-weight:600;

    padding:.75rem 1rem;

    border-radius:8px;

    transition:var(--transition);

}

.navbar-nav .nav-link:hover{

    color:var(--primary);

    background:var(--gray-100);

}

.navbar-nav .nav-link.active{

    color:var(--primary);

}


/* ==========================================================
   NAVBAR ICONS
========================================================== */

.navbar-icons{

    display:flex;

    align-items:center;

    gap:.60rem;

}

.navbar-icon{

    width:44px;

    height:44px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    background:var(--gray-100);

    color:var(--dark);

    transition:var(--transition);

    position:relative;

}

.navbar-icon:hover{

    background:var(--primary);

    color:var(--white);

}

.navbar-icon .badge{

    position:absolute;

    top:-5px;

    right:-5px;

    min-width:20px;

    height:20px;

    display:flex;

    align-items:center;

    justify-content:center;

    font-size:.70rem;

    padding:0;

}


/* ==========================================================
   DROPDOWN MENU
========================================================== */

.navbar .dropdown-menu{

    margin-top:.75rem;

    min-width:220px;

    border:none;

    box-shadow:var(--shadow-lg);

    border-radius:var(--border-radius);

}

.navbar .dropdown-item{

    padding:.75rem 1rem;

    font-weight:500;

}

.navbar .dropdown-item:hover{

    background:var(--gray-100);

    color:var(--primary);

}


/* ==========================================================
   SEARCH BOX
========================================================== */

.nav-search{

    position:relative;

}

.nav-search input{

    padding-right:45px;

}

.nav-search button{

    position:absolute;

    right:8px;

    top:50%;

    transform:translateY(-50%);

    border:none;

    background:transparent;

    color:var(--gray-600);

}

.nav-search button:hover{

    color:var(--primary);

}


/* ==========================================================
   MOBILE MENU
========================================================== */

.navbar-toggler{

    border:none;

    box-shadow:none !important;

}

.navbar-toggler:focus{

    box-shadow:none;

}


/* ==========================================================
   STICKY NAVBAR
========================================================== */

.navbar.sticky{

    position:fixed;

    top:0;

    left:0;

    width:100%;

    z-index:1050;

    background:rgba(255,255,255,.96);

    backdrop-filter:blur(10px);

    box-shadow:var(--shadow-md);

    animation:navbarFade .35s ease;

}


/* ==========================================================
   NAVBAR ANIMATION
========================================================== */

@keyframes navbarFade{

    from{

        opacity:0;

        transform:translateY(-15px);

    }

    to{

        opacity:1;

        transform:translateY(0);

    }

}

/* ==========================================================
   HERO SECTION
========================================================== */

.hero{

    position:relative;

    background:linear-gradient(135deg,var(--gray-100),#ffffff);

    padding:100px 0;

    overflow:hidden;

}

.hero-content{

    position:relative;

    z-index:2;

}

.hero-subtitle{

    display:inline-block;

    padding:.55rem 1rem;

    border-radius:50rem;

    background:rgba(13,110,253,.08);

    color:var(--primary);

    font-weight:600;

    margin-bottom:1rem;

}

.hero-title{

    font-size:3.25rem;

    font-weight:800;

    line-height:1.2;

    color:var(--dark);

    margin-bottom:1.5rem;

}

.hero-title span{

    color:var(--primary);

}

.hero-text{

    font-size:1.1rem;

    color:var(--gray-600);

    max-width:650px;

    margin-bottom:2rem;

}

.hero-buttons{

    display:flex;

    flex-wrap:wrap;

    gap:1rem;

}

.hero-image{

    text-align:center;

}

.hero-image img{

    max-width:100%;

    border-radius:var(--border-radius-lg);

}


/* ==========================================================
   HERO SHAPES
========================================================== */

.hero::before{

    content:"";

    position:absolute;

    width:320px;

    height:320px;

    border-radius:50%;

    background:rgba(13,110,253,.08);

    top:-120px;

    right:-100px;

}

.hero::after{

    content:"";

    position:absolute;

    width:220px;

    height:220px;

    border-radius:50%;

    background:rgba(25,135,84,.08);

    bottom:-70px;

    left:-60px;

}


/* ==========================================================
   PAGE HEADER
========================================================== */

.page-header{

    padding:70px 0;

    background:var(--gray-100);

    text-align:center;

}

.page-header h1{

    font-size:2.7rem;

    margin-bottom:1rem;

}

.page-header p{

    max-width:650px;

    margin:0 auto;

    color:var(--gray-600);

}


/* ==========================================================
   SECTION TITLE
========================================================== */

.section-title{

    margin-bottom:3rem;

}

.section-title .subtitle{

    color:var(--primary);

    font-weight:700;

    text-transform:uppercase;

    letter-spacing:1px;

    font-size:.90rem;

}

.section-title h2{

    font-size:2.4rem;

    font-weight:800;

    margin:.75rem 0;

}

.section-title p{

    color:var(--gray-600);

    max-width:650px;

    margin:auto;

}


/* ==========================================================
   BREADCRUMB SECTION
========================================================== */

.breadcrumb-section{

    background:var(--gray-100);

    padding:2rem 0;

}

.breadcrumb{

    background:none;

    margin:0;

}

.breadcrumb-item a{

    color:var(--gray-700);

}

.breadcrumb-item.active{

    color:var(--primary);

    font-weight:600;

}


/* ==========================================================
   BANNER
========================================================== */

.banner{

    position:relative;

    overflow:hidden;

    border-radius:var(--border-radius-lg);

    background:linear-gradient(
        135deg,
        var(--primary),
        var(--primary-dark)
    );

    color:var(--white);

    padding:4rem;

}

.banner h2{

    color:var(--white);

    font-size:2.5rem;

}

.banner p{

    color:rgba(255,255,255,.90);

}


/* ==========================================================
   CALL TO ACTION
========================================================== */

.cta{

    background:var(--primary);

    color:var(--white);

    padding:70px 0;

    text-align:center;

}

.cta h2{

    color:var(--white);

    font-size:2.4rem;

}

.cta p{

    color:rgba(255,255,255,.90);

    max-width:700px;

    margin:1rem auto 2rem;

}

.cta .btn{

    min-width:220px;

}


/* ==========================================================
   DIVIDER
========================================================== */

.section-divider{

    width:80px;

    height:4px;

    background:var(--primary);

    border-radius:20px;

    margin:1rem auto 2rem;

}


/* ==========================================================
   BACKGROUND HELPERS
========================================================== */

.bg-gradient-primary{

    background:linear-gradient(
        135deg,
        var(--primary),
        var(--primary-dark)
    );

}

.bg-gradient-light{

    background:linear-gradient(
        180deg,
        #ffffff,
        var(--gray-100)
    );

}

/* ==========================================================
   PRODUCT GRID
========================================================== */

.product-grid{

    margin-top:2rem;

}

.product-item{

    height:100%;

}


/* ==========================================================
   PRODUCT CARD
========================================================== */

.product-card{

    position:relative;

    background:var(--white);

    border-radius:var(--border-radius);

    overflow:hidden;

    transition:var(--transition);

    border:1px solid var(--gray-200);

    height:100%;

}

.product-card:hover{

    transform:translateY(-8px);

    box-shadow:var(--shadow-lg);

}

.product-card:hover .product-image img{

    transform:scale(1.08);

}


/* ==========================================================
   PRODUCT IMAGE
========================================================== */

.product-image{

    position:relative;

    overflow:hidden;

    background:var(--gray-100);

}

.product-image img{

    width:100%;

    aspect-ratio:1/1;

    object-fit:cover;

    transition:var(--transition);

}


/* ==========================================================
   PRODUCT BADGES
========================================================== */

.product-badge{

    position:absolute;

    top:15px;

    left:15px;

    z-index:2;

}

.product-badge .badge{

    margin-bottom:.35rem;

    display:block;

}


/* ==========================================================
   PRODUCT ACTIONS
========================================================== */

.product-actions{

    position:absolute;

    top:15px;

    right:-60px;

    display:flex;

    flex-direction:column;

    gap:.50rem;

    transition:var(--transition);

}

.product-card:hover .product-actions{

    right:15px;

}

.product-actions a{

    width:42px;

    height:42px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    background:var(--white);

    color:var(--dark);

    box-shadow:var(--shadow-sm);

}

.product-actions a:hover{

    background:var(--primary);

    color:var(--white);

}


/* ==========================================================
   PRODUCT BODY
========================================================== */

.product-body{

    padding:1.25rem;

}

.product-category{

    font-size:.85rem;

    color:var(--primary);

    font-weight:600;

    text-transform:uppercase;

}

.product-title{

    font-size:1.15rem;

    font-weight:700;

    margin:.50rem 0;

}

.product-title a{

    color:var(--dark);

}

.product-title a:hover{

    color:var(--primary);

}


/* ==========================================================
   PRODUCT PRICE
========================================================== */

.product-price{

    display:flex;

    align-items:center;

    gap:.60rem;

    margin:1rem 0;

}

.current-price{

    font-size:1.30rem;

    font-weight:800;

    color:var(--primary);

}

.old-price{

    color:var(--gray-500);

    text-decoration:line-through;

}


/* ==========================================================
   PRODUCT RATING
========================================================== */

.product-rating{

    color:#f5b301;

    font-size:.90rem;

    margin-bottom:.80rem;

}

.product-rating span{

    color:var(--gray-600);

    margin-left:.30rem;

}


/* ==========================================================
   STOCK STATUS
========================================================== */

.stock-in{

    color:var(--success);

    font-weight:600;

}

.stock-out{

    color:var(--danger);

    font-weight:600;

}


/* ==========================================================
   PRODUCT DETAIL
========================================================== */

.product-detail{

    padding:2rem 0;

}

.product-detail-title{

    font-size:2.3rem;

    font-weight:800;

}

.product-detail-price{

    font-size:2rem;

    color:var(--primary);

    font-weight:800;

    margin:1rem 0;

}


/* ==========================================================
   PRODUCT GALLERY
========================================================== */

.product-gallery{

    margin-bottom:1.5rem;

}

.product-gallery img{

    width:100%;

    border-radius:var(--border-radius);

}

.product-thumbnails{

    display:flex;

    gap:.75rem;

    margin-top:1rem;

}

.product-thumbnail{

    width:85px;

    border:2px solid transparent;

    border-radius:10px;

    overflow:hidden;

    cursor:pointer;

    transition:var(--transition);

}

.product-thumbnail img{

    width:100%;

}

.product-thumbnail.active,

.product-thumbnail:hover{

    border-color:var(--primary);

}


/* ==========================================================
   PRODUCT META
========================================================== */

.product-meta{

    margin:1.5rem 0;

}

.product-meta li{

    padding:.40rem 0;

    border-bottom:1px solid var(--gray-200);

}

.product-meta strong{

    min-width:120px;

    display:inline-block;

}


/* ==========================================================
   QUANTITY BOX
========================================================== */

.quantity-box{

    display:flex;

    align-items:center;

    gap:.50rem;

}

.quantity-box input{

    width:70px;

    text-align:center;

}

.quantity-box .btn{

    width:42px;

    height:42px;

    padding:0;

}


/* ==========================================================
   PRODUCT DESCRIPTION
========================================================== */

.product-description{

    line-height:1.9;

    color:var(--gray-700);

}

.product-description p:last-child{

    margin-bottom:0;

}

/* ==========================================================
   CART
========================================================== */

.cart-table{

    vertical-align:middle;

}

.cart-table th{

    font-weight:700;

    color:var(--gray-800);

    background:var(--gray-100);

    border-bottom:2px solid var(--gray-300);

}

.cart-table td{

    padding:1.25rem .75rem;

}

.cart-product{

    display:flex;

    align-items:center;

    gap:1rem;

}

.cart-product img{

    width:90px;

    height:90px;

    object-fit:cover;

    border-radius:var(--border-radius-sm);

    background:var(--gray-100);

}

.cart-product-title{

    font-weight:700;

    color:var(--dark);

}

.cart-product-title:hover{

    color:var(--primary);

}


/* ==========================================================
   CART QUANTITY
========================================================== */

.cart-quantity{

    display:flex;

    justify-content:center;

    align-items:center;

    gap:.5rem;

}

.cart-quantity input{

    width:70px;

    text-align:center;

}

.cart-quantity .btn{

    width:40px;

    height:40px;

    padding:0;

}


/* ==========================================================
   CART EMPTY
========================================================== */

.empty-cart{

    padding:100px 0;

    text-align:center;

}

.empty-cart i{

    font-size:6rem;

    color:var(--gray-400);

    margin-bottom:2rem;

}

.empty-cart h2{

    margin-bottom:1rem;

}

.empty-cart p{

    max-width:550px;

    margin:0 auto 2rem;

}


/* ==========================================================
   MINI CART
========================================================== */

.mini-cart{

    max-height:420px;

    overflow-y:auto;

}

.mini-cart-item{

    display:flex;

    gap:1rem;

    padding:1rem 0;

    border-bottom:1px solid var(--gray-200);

}

.mini-cart-item:last-child{

    border-bottom:none;

}

.mini-cart-item img{

    width:70px;

    height:70px;

    object-fit:cover;

    border-radius:8px;

}

.mini-cart-total{

    padding-top:1rem;

    border-top:1px solid var(--gray-200);

    font-weight:700;

}


/* ==========================================================
   CART SUMMARY
========================================================== */

.cart-summary{

    background:var(--white);

    border-radius:var(--border-radius);

    padding:1.5rem;

    box-shadow:var(--shadow-sm);

    position:sticky;

    top:100px;

}

.cart-summary h4{

    margin-bottom:1.5rem;

}

.summary-item{

    display:flex;

    justify-content:space-between;

    margin-bottom:1rem;

}

.summary-total{

    display:flex;

    justify-content:space-between;

    font-size:1.2rem;

    font-weight:800;

    padding-top:1rem;

    border-top:2px solid var(--gray-300);

}


/* ==========================================================
   CHECKOUT
========================================================== */

.checkout-section{

    padding:2rem 0;

}

.checkout-card{

    border-radius:var(--border-radius);

}

.checkout-title{

    font-size:1.5rem;

    font-weight:700;

    margin-bottom:1.5rem;

}

.checkout-form .form-control,

.checkout-form .form-select{

    margin-bottom:1rem;

}


/* ==========================================================
   ORDER SUMMARY
========================================================== */

.order-summary{

    background:var(--gray-100);

    border-radius:var(--border-radius);

    padding:1.5rem;

}

.order-summary-item{

    display:flex;

    justify-content:space-between;

    margin-bottom:.80rem;

}

.order-summary-total{

    display:flex;

    justify-content:space-between;

    font-size:1.25rem;

    font-weight:800;

    margin-top:1rem;

    padding-top:1rem;

    border-top:2px solid var(--gray-300);

}


/* ==========================================================
   ORDER SUCCESS
========================================================== */

.order-success{

    text-align:center;

    padding:80px 0;

}

.order-success i{

    font-size:6rem;

    color:var(--success);

    margin-bottom:2rem;

}


/* ==========================================================
   ORDER DETAIL
========================================================== */

.order-detail{

    padding:2rem 0;

}

.order-status{

    display:inline-flex;

    align-items:center;

    gap:.5rem;

    padding:.50rem 1rem;

    border-radius:50rem;

    font-weight:600;

}

.status-pending{

    background:#fff3cd;

    color:#856404;

}

.status-processing{

    background:#cff4fc;

    color:#055160;

}

.status-shipped{

    background:#d1e7dd;

    color:#0f5132;

}

.status-delivered{

    background:#d4edda;

    color:#146c43;

}

.status-cancelled{

    background:#f8d7da;

    color:#842029;

}


/* ==========================================================
   ORDER TIMELINE
========================================================== */

.order-timeline{

    margin-top:2rem;

}

.timeline-item{

    display:flex;

    gap:1rem;

    margin-bottom:2rem;

}

.timeline-icon{

    width:48px;

    height:48px;

    border-radius:50%;

    background:var(--primary);

    color:var(--white);

    display:flex;

    align-items:center;

    justify-content:center;

    flex-shrink:0;

}

.timeline-content{

    flex:1;

}

/* ==========================================================
   PAYMENT
========================================================== */

.payment-card{

    border-radius:var(--border-radius);

}

.payment-method{

    border:2px solid var(--gray-300);

    border-radius:var(--border-radius-sm);

    padding:1rem;

    cursor:pointer;

    transition:var(--transition);

}

.payment-method:hover{

    border-color:var(--primary);

}

.payment-method.active{

    border-color:var(--primary);

    background:rgba(13,110,253,.05);

}

.payment-icons{

    display:flex;

    align-items:center;

    gap:.75rem;

    font-size:2rem;

    color:var(--gray-700);

}

.secure-payment{

    display:flex;

    align-items:center;

    gap:.75rem;

    color:var(--success);

    font-weight:600;

}


/* ==========================================================
   PAYMENT SUCCESS / FAILED
========================================================== */

.payment-result{

    text-align:center;

    padding:80px 0;

}

.payment-result i{

    font-size:6rem;

    margin-bottom:2rem;

}

.payment-success-icon{

    color:var(--success);

}

.payment-failed-icon{

    color:var(--danger);

}


/* ==========================================================
   CONTACT
========================================================== */

.contact-info{

    height:100%;

}

.contact-info .card{

    height:100%;

}

.contact-info i{

    width:50px;

    text-align:center;

}

.contact-form textarea{

    min-height:180px;

}

.contact-form .btn{

    min-width:220px;

}


/* ==========================================================
   GOOGLE MAP
========================================================== */

.map-wrapper{

    overflow:hidden;

    border-radius:var(--border-radius);

    box-shadow:var(--shadow-sm);

}

.map-wrapper iframe{

    display:block;

    width:100%;

    border:0;

}


/* ==========================================================
   SOCIAL BUTTONS
========================================================== */

.social-links{

    display:flex;

    justify-content:center;

    flex-wrap:wrap;

    gap:.75rem;

}

.social-links a{

    width:52px;

    height:52px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    font-size:1.2rem;

    transition:var(--transition);

}

.social-links a:hover{

    transform:translateY(-4px);

}


/* ==========================================================
   ERROR PAGES
========================================================== */

.error-page{

    min-height:70vh;

    display:flex;

    align-items:center;

    justify-content:center;

    text-align:center;

}

.error-code{

    font-size:8rem;

    font-weight:900;

    line-height:1;

    margin-bottom:1rem;

}

.error-title{

    font-size:2.5rem;

    font-weight:800;

    margin-bottom:1rem;

}

.error-description{

    max-width:650px;

    margin:0 auto 2rem;

    color:var(--gray-600);

}


/* ==========================================================
   ERROR ICON
========================================================== */

.error-icon{

    font-size:6rem;

    margin:2rem 0;

    opacity:.9;

}


/* ==========================================================
   ERROR COLORS
========================================================== */

.error-400{

    color:var(--info);

}

.error-403{

    color:var(--warning);

}

.error-404{

    color:var(--primary);

}

.error-500{

    color:var(--danger);

}


/* ==========================================================
   ERROR ACTIONS
========================================================== */

.error-actions{

    display:flex;

    justify-content:center;

    flex-wrap:wrap;

    gap:1rem;

    margin-top:2rem;

}


/* ==========================================================
   INFO CARDS
========================================================== */

.info-card{

    padding:2rem;

    border-radius:var(--border-radius);

    background:var(--white);

    box-shadow:var(--shadow-sm);

    transition:var(--transition);

    text-align:center;

    height:100%;

}

.info-card:hover{

    transform:translateY(-5px);

    box-shadow:var(--shadow-md);

}

.info-card i{

    font-size:3rem;

    margin-bottom:1.5rem;

}

.info-card h5{

    margin-bottom:1rem;

}


/* ==========================================================
   SUCCESS / WARNING BOXES
========================================================== */

.success-box{

    background:#d1e7dd;

    color:#0f5132;

}

.warning-box{

    background:#fff3cd;

    color:#664d03;

}

.danger-box{

    background:#f8d7da;

    color:#842029;

}

.info-box{

    background:#cff4fc;

    color:#055160;

}

.success-box,
.warning-box,
.danger-box,
.info-box{

    border-radius:var(--border-radius-sm);

    padding:1rem 1.25rem;

}

/* ==========================================================
   FOOTER
========================================================== */

.site-footer{

    background:var(--gray-900);

    color:rgba(255,255,255,.85);

    margin-top:80px;

}

.footer-top{

    padding:80px 0 50px;

}

.footer-bottom{

    padding:20px 0;

    border-top:1px solid rgba(255,255,255,.08);

    font-size:.95rem;

}


/* ==========================================================
   FOOTER BRAND
========================================================== */

.footer-brand{

    margin-bottom:1.5rem;

}

.footer-brand img{

    max-height:60px;

    width:auto;

    margin-bottom:1rem;

}

.footer-brand h4{

    color:#fff;

    margin-bottom:1rem;

}

.footer-brand p{

    color:rgba(255,255,255,.70);

    margin-bottom:1.5rem;

}


/* ==========================================================
   FOOTER TITLES
========================================================== */

.footer-title{

    color:#fff;

    font-size:1.2rem;

    font-weight:700;

    margin-bottom:1.5rem;

    position:relative;

}

.footer-title::after{

    content:"";

    width:50px;

    height:3px;

    background:var(--primary);

    display:block;

    margin-top:.75rem;

    border-radius:20px;

}


/* ==========================================================
   FOOTER LINKS
========================================================== */

.footer-links{

    list-style:none;

    padding:0;

    margin:0;

}

.footer-links li{

    margin-bottom:.90rem;

}

.footer-links a{

    color:rgba(255,255,255,.75);

    transition:var(--transition);

}

.footer-links a:hover{

    color:#fff;

    padding-left:6px;

}


/* ==========================================================
   CONTACT INFO
========================================================== */

.footer-contact{

    list-style:none;

    padding:0;

    margin:0;

}

.footer-contact li{

    display:flex;

    align-items:flex-start;

    gap:.85rem;

    margin-bottom:1.2rem;

}

.footer-contact i{

    color:var(--primary);

    margin-top:4px;

    width:20px;

}

.footer-contact a{

    color:rgba(255,255,255,.75);

}

.footer-contact a:hover{

    color:#fff;

}


/* ==========================================================
   SOCIAL LINKS
========================================================== */

.footer-social{

    display:flex;

    gap:.75rem;

    margin-top:1.5rem;

}

.footer-social a{

    width:44px;

    height:44px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    background:rgba(255,255,255,.08);

    color:#fff;

    transition:var(--transition);

}

.footer-social a:hover{

    background:var(--primary);

    transform:translateY(-4px);

}


/* ==========================================================
   NEWSLETTER
========================================================== */

.footer-newsletter{

    margin-top:1.5rem;

}

.footer-newsletter .form-control{

    background:rgba(255,255,255,.08);

    border:1px solid rgba(255,255,255,.10);

    color:#fff;

}

.footer-newsletter .form-control::placeholder{

    color:rgba(255,255,255,.55);

}

.footer-newsletter .form-control:focus{

    background:rgba(255,255,255,.12);

    border-color:var(--primary);

}

.footer-newsletter .btn{

    white-space:nowrap;

}


/* ==========================================================
   PAYMENT ICONS
========================================================== */

.footer-payments{

    display:flex;

    flex-wrap:wrap;

    gap:.75rem;

    margin-top:1.5rem;

}

.footer-payments i{

    font-size:2rem;

    color:rgba(255,255,255,.80);

    transition:var(--transition);

}

.footer-payments i:hover{

    color:#fff;

}


/* ==========================================================
   COPYRIGHT
========================================================== */

.footer-copyright{

    color:rgba(255,255,255,.60);

}

.footer-copyright a{

    color:#fff;

    font-weight:600;

}

.footer-copyright a:hover{

    color:var(--primary);

}


/* ==========================================================
   FOOTER MENU
========================================================== */

.footer-menu{

    display:flex;

    justify-content:flex-end;

    flex-wrap:wrap;

    gap:1.5rem;

}

.footer-menu a{

    color:rgba(255,255,255,.65);

}

.footer-menu a:hover{

    color:#fff;

}


/* ==========================================================
   BACK TO TOP
========================================================== */

.back-to-top{

    position:fixed;

    right:25px;

    bottom:25px;

    width:52px;

    height:52px;

    border-radius:50%;

    background:var(--primary);

    color:#fff;

    display:flex;

    align-items:center;

    justify-content:center;

    font-size:1.2rem;

    box-shadow:var(--shadow-md);

    cursor:pointer;

    opacity:0;

    visibility:hidden;

    transition:var(--transition);

    z-index:1050;

}

.back-to-top.show{

    opacity:1;

    visibility:visible;

}

.back-to-top:hover{

    background:var(--primary-dark);

    transform:translateY(-5px);

}

/* ==========================================================
   PAGINATION
========================================================== */

.pagination{

    gap:.40rem;

}

.page-link{

    min-width:42px;

    height:42px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:10px !important;

    border:1px solid var(--gray-300);

    color:var(--gray-700);

    transition:var(--transition);

}

.page-link:hover{

    background:var(--primary);

    color:var(--white);

    border-color:var(--primary);

}

.page-item.active .page-link{

    background:var(--primary);

    border-color:var(--primary);

    color:var(--white);

}

.page-item.disabled .page-link{

    opacity:.55;

}


/* ==========================================================
   TABLES
========================================================== */

.table-responsive{

    border-radius:var(--border-radius);

}

.table{

    margin-bottom:0;

    vertical-align:middle;

}

.table thead{

    background:var(--gray-100);

}

.table thead th{

    font-weight:700;

    color:var(--gray-800);

    white-space:nowrap;

}

.table tbody tr{

    transition:var(--transition);

}

.table tbody tr:hover{

    background:rgba(13,110,253,.03);

}


/* ==========================================================
   ALERTS
========================================================== */

.alert{

    border:none;

    border-left:4px solid transparent;

    border-radius:var(--border-radius-sm);

    box-shadow:var(--shadow-sm);

}

.alert-primary{

    border-left-color:var(--primary);

}

.alert-success{

    border-left-color:var(--success);

}

.alert-danger{

    border-left-color:var(--danger);

}

.alert-warning{

    border-left-color:var(--warning);

}

.alert-info{

    border-left-color:var(--info);

}


/* ==========================================================
   ACCORDION
========================================================== */

.accordion-item{

    border:none;

    border-radius:var(--border-radius-sm) !important;

    overflow:hidden;

    margin-bottom:1rem;

    box-shadow:var(--shadow-sm);

}

.accordion-button{

    font-weight:600;

    padding:1rem 1.25rem;

}

.accordion-button:not(.collapsed){

    background:rgba(13,110,253,.06);

    color:var(--primary);

}

.accordion-button:focus{

    box-shadow:none;

}


/* ==========================================================
   TABS
========================================================== */

.nav-tabs{

    border-bottom:2px solid var(--gray-200);

}

.nav-tabs .nav-link{

    border:none;

    color:var(--gray-600);

    font-weight:600;

    padding:.90rem 1.25rem;

    transition:var(--transition);

}

.nav-tabs .nav-link:hover{

    color:var(--primary);

}

.nav-tabs .nav-link.active{

    color:var(--primary);

    border-bottom:3px solid var(--primary);

    background:none;

}


/* ==========================================================
   PROGRESS
========================================================== */

.progress{

    height:10px;

    border-radius:20px;

    background:var(--gray-200);

}

.progress-bar{

    border-radius:20px;

}


/* ==========================================================
   TOAST
========================================================== */

.toast{

    border:none;

    border-radius:var(--border-radius);

    box-shadow:var(--shadow-md);

}

.toast-header{

    border-bottom:1px solid var(--gray-200);

    font-weight:600;

}


/* ==========================================================
   SPINNER
========================================================== */

.spinner-border{

    width:3rem;

    height:3rem;

}


/* ==========================================================
   OFFCANVAS
========================================================== */

.offcanvas{

    border:none;

}

.offcanvas-header{

    border-bottom:1px solid var(--gray-200);

}

.offcanvas-footer{

    border-top:1px solid var(--gray-200);

}


/* ==========================================================
   PLACEHOLDER
========================================================== */

.placeholder-glow .placeholder{

    border-radius:6px;

}

/* ==========================================================
   PAGE LOADER
========================================================== */

.page-loader{

    position:fixed;

    inset:0;

    display:flex;

    align-items:center;

    justify-content:center;

    background:rgba(255,255,255,.98);

    z-index:9999;

    transition:opacity .35s ease,
               visibility .35s ease;

}

.page-loader.hidden{

    opacity:0;

    visibility:hidden;

}

.loader-spinner{

    width:60px;

    height:60px;

    border:5px solid var(--gray-200);

    border-top-color:var(--primary);

    border-radius:50%;

    animation:loaderSpin .9s linear infinite;

}


/* ==========================================================
   SCROLL PROGRESS
========================================================== */

.scroll-progress{

    position:fixed;

    top:0;

    left:0;

    width:0;

    height:4px;

    background:var(--primary);

    z-index:2000;

    transition:width .15s linear;

}


/* ==========================================================
   BACK TO TOP
========================================================== */

.back-to-top{

    opacity:0;

    visibility:hidden;

    transform:translateY(15px);

}

.back-to-top.show{

    opacity:1;

    visibility:visible;

    transform:translateY(0);

}


/* ==========================================================
   SEARCH OVERLAY
========================================================== */

.search-overlay{

    position:fixed;

    inset:0;

    background:rgba(33,37,41,.95);

    display:flex;

    align-items:center;

    justify-content:center;

    opacity:0;

    visibility:hidden;

    transition:var(--transition);

    z-index:1100;

}

.search-overlay.active{

    opacity:1;

    visibility:visible;

}

.search-box{

    width:100%;

    max-width:700px;

    padding:0 20px;

}

.search-box input{

    height:65px;

    font-size:1.2rem;

    border-radius:var(--border-radius);

}

.search-close{

    position:absolute;

    top:30px;

    right:30px;

    width:48px;

    height:48px;

    border:none;

    border-radius:50%;

    background:rgba(255,255,255,.12);

    color:#fff;

    transition:var(--transition);

}

.search-close:hover{

    background:var(--primary);

}


/* ==========================================================
   SKELETON LOADING
========================================================== */

.skeleton{

    position:relative;

    overflow:hidden;

    background:var(--gray-200);

}

.skeleton::after{

    content:"";

    position:absolute;

    inset:0;

    transform:translateX(-100%);

    background:linear-gradient(

        90deg,

        transparent,

        rgba(255,255,255,.65),

        transparent

    );

    animation:skeletonLoading 1.3s infinite;

}


/* ==========================================================
   IMAGE PLACEHOLDER
========================================================== */

.image-placeholder{

    display:flex;

    align-items:center;

    justify-content:center;

    background:var(--gray-100);

    color:var(--gray-500);

    min-height:220px;

    border-radius:var(--border-radius);

}


/* ==========================================================
   EMPTY STATE
========================================================== */

.empty-state{

    text-align:center;

    padding:80px 20px;

}

.empty-state i{

    font-size:5rem;

    color:var(--gray-400);

    margin-bottom:1.5rem;

}

.empty-state h3{

    margin-bottom:1rem;

}

.empty-state p{

    max-width:550px;

    margin:0 auto 2rem;

}


/* ==========================================================
   MODAL HELPERS
========================================================== */

.modal-body{

    max-height:75vh;

    overflow-y:auto;

}

.modal-lg{

    max-width:900px;

}


/* ==========================================================
   LOADING BUTTON
========================================================== */

.btn-loading{

    pointer-events:none;

    opacity:.75;

}

.btn-loading i{

    animation:loaderSpin .8s linear infinite;

}


/* ==========================================================
   KEYFRAMES
========================================================== */

@keyframes loaderSpin{

    from{

        transform:rotate(0deg);

    }

    to{

        transform:rotate(360deg);

    }

}

@keyframes skeletonLoading{

    100%{

        transform:translateX(100%);

    }

}

/* ==========================================================
   HOVER EFFECTS
========================================================== */

.hover-lift{

    transition:var(--transition);

}

.hover-lift:hover{

    transform:translateY(-8px);

    box-shadow:var(--shadow-lg);

}

.hover-scale{

    transition:var(--transition);

}

.hover-scale:hover{

    transform:scale(1.05);

}

.hover-rotate{

    transition:var(--transition);

}

.hover-rotate:hover{

    transform:rotate(3deg);

}

.hover-shadow:hover{

    box-shadow:var(--shadow-lg);

}

.hover-primary:hover{

    color:var(--primary);

}

.hover-opacity:hover{

    opacity:.85;

}


/* ==========================================================
   IMAGE EFFECTS
========================================================== */

.img-hover{

    overflow:hidden;

    border-radius:var(--border-radius);

}

.img-hover img{

    transition:.5s ease;

}

.img-hover:hover img{

    transform:scale(1.08);

}

.img-blur:hover img{

    filter:blur(2px);

}

.img-grayscale img{

    transition:.4s ease;

}

.img-grayscale:hover img{

    filter:grayscale(100%);

}


/* ==========================================================
   ICON EFFECTS
========================================================== */

.icon-hover{

    transition:var(--transition);

}

.icon-hover:hover{

    transform:translateY(-4px);

    color:var(--primary);

}


/* ==========================================================
   LINK EFFECT
========================================================== */

.link-effect{

    position:relative;

}

.link-effect::after{

    content:"";

    position:absolute;

    left:0;

    bottom:-3px;

    width:0;

    height:2px;

    background:var(--primary);

    transition:var(--transition);

}

.link-effect:hover::after{

    width:100%;

}


/* ==========================================================
   FADE ANIMATIONS
========================================================== */

.fade-in{

    animation:fadeIn .7s ease;

}

.fade-up{

    animation:fadeUp .7s ease;

}

.fade-down{

    animation:fadeDown .7s ease;

}

.fade-left{

    animation:fadeLeft .7s ease;

}

.fade-right{

    animation:fadeRight .7s ease;

}


/* ==========================================================
   ZOOM
========================================================== */

.zoom-in{

    animation:zoomIn .6s ease;

}

.zoom-out{

    animation:zoomOut .6s ease;

}


/* ==========================================================
   SLIDE
========================================================== */

.slide-up{

    animation:slideUp .7s ease;

}

.slide-down{

    animation:slideDown .7s ease;

}


/* ==========================================================
   FLOAT
========================================================== */

.float{

    animation:float 3s ease-in-out infinite;

}


/* ==========================================================
   PULSE
========================================================== */

.pulse{

    animation:pulse 2s infinite;

}


/* ==========================================================
   BOUNCE
========================================================== */

.bounce{

    animation:bounce 1.2s infinite;

}


/* ==========================================================
   KEYFRAMES
========================================================== */

@keyframes fadeIn{

    from{

        opacity:0;

    }

    to{

        opacity:1;

    }

}

@keyframes fadeUp{

    from{

        opacity:0;

        transform:translateY(40px);

    }

    to{

        opacity:1;

        transform:none;

    }

}

@keyframes fadeDown{

    from{

        opacity:0;

        transform:translateY(-40px);

    }

    to{

        opacity:1;

        transform:none;

    }

}

@keyframes fadeLeft{

    from{

        opacity:0;

        transform:translateX(-40px);

    }

    to{

        opacity:1;

        transform:none;

    }

}

@keyframes fadeRight{

    from{

        opacity:0;

        transform:translateX(40px);

    }

    to{

        opacity:1;

        transform:none;

    }

}

@keyframes zoomIn{

    from{

        opacity:0;

        transform:scale(.85);

    }

    to{

        opacity:1;

        transform:scale(1);

    }

}

@keyframes zoomOut{

    from{

        opacity:0;

        transform:scale(1.15);

    }

    to{

        opacity:1;

        transform:scale(1);

    }

}

@keyframes slideUp{

    from{

        transform:translateY(60px);

        opacity:0;

    }

    to{

        transform:none;

        opacity:1;

    }

}

@keyframes slideDown{

    from{

        transform:translateY(-60px);

        opacity:0;

    }

    to{

        transform:none;

        opacity:1;

    }

}

@keyframes float{

    0%{

        transform:translateY(0);

    }

    50%{

        transform:translateY(-10px);

    }

    100%{

        transform:translateY(0);

    }

}

@keyframes pulse{

    0%{

        transform:scale(1);

    }

    50%{

        transform:scale(1.05);

    }

    100%{

        transform:scale(1);

    }

}

@keyframes bounce{

    0%,100%{

        transform:translateY(0);

    }

    50%{

        transform:translateY(-10px);

    }

}

/* ==========================================================
   HELPER CLASSES
========================================================== */

.w-fit{

    width:fit-content;

}

.h-fit{

    height:fit-content;

}

.cursor-pointer{

    cursor:pointer;

}

.user-select-none{

    user-select:none;

}

.object-cover{

    object-fit:cover;

}

.object-contain{

    object-fit:contain;

}

.overflow-hidden{

    overflow:hidden;

}

.position-relative{

    position:relative;

}

.position-absolute{

    position:absolute;

}


/* ==========================================================
   BORDER HELPERS
========================================================== */

.border-radius{

    border-radius:var(--border-radius);

}

.border-radius-sm{

    border-radius:var(--border-radius-sm);

}

.border-radius-lg{

    border-radius:var(--border-radius-lg);

}

.border-light{

    border:1px solid var(--gray-200);

}


/* ==========================================================
   SHADOW HELPERS
========================================================== */

.shadow-sm-custom{

    box-shadow:var(--shadow-sm);

}

.shadow-md-custom{

    box-shadow:var(--shadow-md);

}

.shadow-lg-custom{

    box-shadow:var(--shadow-lg);

}


/* ==========================================================
   WIDTH HELPERS
========================================================== */

.w-10{

    width:10%;

}

.w-20{

    width:20%;

}

.w-30{

    width:30%;

}

.w-40{

    width:40%;

}

.w-60{

    width:60%;

}

.w-70{

    width:70%;

}

.w-80{

    width:80%;

}

.w-90{

    width:90%;

}


/* ==========================================================
   HEIGHT HELPERS
========================================================== */

.min-vh-50{

    min-height:50vh;

}

.min-vh-75{

    min-height:75vh;

}

.min-vh-100{

    min-height:100vh;

}


/* ==========================================================
   FLEX HELPERS
========================================================== */

.flex-center{

    display:flex;

    align-items:center;

    justify-content:center;

}

.flex-between{

    display:flex;

    align-items:center;

    justify-content:space-between;

}

.flex-column-center{

    display:flex;

    flex-direction:column;

    align-items:center;

    justify-content:center;

}

.gap-05{

    gap:.5rem;

}

.gap-1{

    gap:1rem;

}

.gap-2{

    gap:2rem;

}


/* ==========================================================
   TEXT HELPERS
========================================================== */

.text-small{

    font-size:.875rem;

}

.text-large{

    font-size:1.25rem;

}

.text-extra-large{

    font-size:2rem;

}

.fw-800{

    font-weight:800;

}

.fw-900{

    font-weight:900;

}


/* ==========================================================
   BACKGROUND HELPERS
========================================================== */

.bg-white{

    background:#fff;

}

.bg-gray{

    background:var(--gray-100);

}

.bg-primary-soft{

    background:rgba(13,110,253,.08);

}

.bg-success-soft{

    background:rgba(25,135,84,.08);

}

.bg-danger-soft{

    background:rgba(220,53,69,.08);

}


/* ==========================================================
   OPACITY
========================================================== */

.opacity-25{

    opacity:.25;

}

.opacity-50{

    opacity:.5;

}

.opacity-75{

    opacity:.75;

}


/* ==========================================================
   DIVIDERS
========================================================== */

.divider{

    width:100%;

    height:1px;

    background:var(--gray-200);

    margin:2rem 0;

}


/* ==========================================================
   TRANSITIONS
========================================================== */

.transition-fast{

    transition:.2s ease;

}

.transition-normal{

    transition:.3s ease;

}

.transition-slow{

    transition:.5s ease;

}


/* ==========================================================
   PRINT
========================================================== */

@media print{

    .navbar,

    .site-footer,

    .back-to-top,

    .btn,

    .dropdown,

    .offcanvas{

        display:none !important;

    }

}


/* ==========================================================
   ACCESSIBILITY
========================================================== */

:focus-visible{

    outline:3px solid rgba(13,110,253,.35);

    outline-offset:2px;

}


/* ==========================================================
   FINAL TWEAKS
========================================================== */

.container{

    position:relative;

}

section{

    position:relative;

}

.card,

.btn,

.form-control,

.form-select,

.dropdown-menu{

    transition:var(--transition);

}

img{

    image-rendering:auto;

}

html{

    scroll-padding-top:90px;

}

.rating-stars{

    font-size:34px;

    color:#ddd;

    cursor:pointer;

    display:flex;

    gap:10px;

}

.rating-stars .star{

    transition:.25s;

}

.rating-stars .star:hover{

    transform:scale(1.15);

}

.rating-stars .active{

    color:#ffc107;

}


/* =======================================================
   Premium Category Dropdown
======================================================= */

.category-dropdown{
    max-height:420px;
    overflow-y:auto;
    overflow-x:hidden;

    min-width:260px;

    padding:8px;

    border:none;
    border-radius:16px;

    background:#fff;

    box-shadow:
        0 10px 30px rgba(0,0,0,.08),
        0 4px 12px rgba(0,0,0,.05);

    scrollbar-width:thin;
    scrollbar-color:#c9c9c9 transparent;

    scroll-behavior:smooth;
}

/* =======================================================
   Menu Items
======================================================= */

.category-dropdown .dropdown-item{

    border-radius:10px;

    padding:.65rem .9rem;

    transition:all .25s ease;

    font-weight:500;
}

.category-dropdown .dropdown-item:hover{

    background:#f5f7fa;

    transform:translateX(4px);

    color:var(--bs-primary);
}

/* =======================================================
   Chrome Scrollbar
======================================================= */

.category-dropdown::-webkit-scrollbar{

    width:8px;
}

.category-dropdown::-webkit-scrollbar-track{

    background:transparent;

    margin:8px 0;
}

.category-dropdown::-webkit-scrollbar-thumb{

    border-radius:20px;

    background:linear-gradient(
        180deg,
        #d7d7d7,
        #bdbdbd
    );

    border:2px solid transparent;

    background-clip:padding-box;

    transition:.3s;
}

.category-dropdown::-webkit-scrollbar-thumb:hover{

    background:linear-gradient(
        180deg,
        var(--bs-primary),
        #0a58ca
    );

    background-clip:padding-box;
}

.category-dropdown::-webkit-scrollbar-corner{

    background:transparent;
}