/*==================================================
AplusBuild Marketplace
Version : 1.0
Author  : Odet.cmsS
==================================================*/


/*==========================
RESET
==========================*/

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{

    scroll-behavior:smooth;

}

body{

    font-family:'Poppins',sans-serif;

    background:#f7f8fc;

    color:#2d3748;

    overflow-x:hidden;

}


/*==========================
LINK
==========================*/

a{

    text-decoration:none;

    transition:.3s;

}

a:hover{

    text-decoration:none;

}


/*==========================
IMAGE
==========================*/

img{

    max-width:100%;

    display:block;

}


/*==========================
CONTAINER
==========================*/

.container-xl{

    width:95%;

    max-width:1400px;

    margin:auto;

}


/*==========================
SECTION
==========================*/

section{

    padding:80px 0;

}


/*==========================
TITLE
==========================*/

.section-title{

    text-align:center;

    margin-bottom:15px;

    font-size:38px;

    font-weight:700;

}

.section-subtitle{

    text-align:center;

    color:#777;

    max-width:700px;

    margin:auto;

    margin-bottom:60px;

}


/*==========================
COLOR
==========================*/

:root{

--primary:#ff6b00;

--primary-dark:#e55f00;

--secondary:#ffb347;

--dark:#1e293b;

--text:#555;

--bg:#f7f8fc;

--white:#ffffff;

--border:#ececec;

--shadow:0 10px 35px rgba(0,0,0,.08);

--radius:18px;

}


/*==========================
BUTTON
==========================*/

.btn-orange{

background:var(--primary);

color:white;

padding:14px 30px;

border-radius:12px;

font-weight:600;

display:inline-block;

transition:.3s;

}

.btn-orange:hover{

background:var(--primary-dark);

color:white;

transform:translateY(-3px);

}

.btn-outline-orange{

border:2px solid var(--primary);

color:var(--primary);

padding:13px 28px;

border-radius:12px;

font-weight:600;

display:inline-block;

transition:.3s;

}

.btn-outline-orange:hover{

background:var(--primary);

color:white;

}


/*==========================
CARD
==========================*/

.card-box{

background:white;

border-radius:20px;

box-shadow:var(--shadow);

padding:25px;

transition:.35s;

}

.card-box:hover{

transform:translateY(-8px);

}


/*==========================
BADGE
==========================*/

.badge-orange{

background:#fff4eb;

color:var(--primary);

padding:8px 16px;

border-radius:50px;

font-size:13px;

font-weight:600;

display:inline-block;

}


/*==========================
TEXT
==========================*/

.text-orange{

color:var(--primary);

}

.text-gray{

color:#777;

}
/*==================================================
NAVBAR
==================================================*/

.navbar{
    background:#ffffff;
    padding:14px 0;
    transition:.3s;
    border-bottom:1px solid #eeeeee;
}

.navbar-brand{
    font-size:30px;
    font-weight:800;
    color:var(--primary)!important;
}

.navbar-brand span{
    color:#222;
}

.navbar-nav .nav-link{
    color:#444;
    font-weight:500;
    margin:0 10px;
    transition:.3s;
}

.navbar-nav .nav-link:hover{
    color:var(--primary);
}

.navbar .dropdown-menu{
    border:none;
    border-radius:16px;
    box-shadow:0 15px 35px rgba(0,0,0,.08);
    padding:10px;
}

.navbar .dropdown-item{
    padding:10px 15px;
    border-radius:10px;
}

.navbar .dropdown-item:hover{
    background:#fff4eb;
    color:var(--primary);
}

.nav-search{
    width:280px;
}

.nav-search input{
    border-radius:50px;
    border:1px solid #ddd;
    padding:10px 18px;
}

.btn-login{
    border:2px solid var(--primary);
    color:var(--primary);
    border-radius:50px;
    padding:9px 20px;
    font-weight:600;
    transition:.3s;
}

.btn-login:hover{
    background:var(--primary);
    color:#fff;
}

.btn-register{
    background:var(--primary);
    color:#fff;
    border-radius:50px;
    padding:10px 22px;
    font-weight:600;
    margin-left:10px;
    transition:.3s;
}

.btn-register:hover{
    background:var(--primary-dark);
    color:#fff;
}

.user-avatar{
    width:42px;
    height:42px;
    border-radius:50%;
    background:var(--primary);
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-weight:700;
}

.sticky-top{
    z-index:999;
}
/*==================================================
HERO
==================================================*/

.hero-section{

padding:90px 0;

background:#fff;

}

.hero-title{

font-size:56px;

font-weight:700;

line-height:1.2;

margin:20px 0;

}

.hero-desc{

font-size:18px;

color:#666;

margin-bottom:35px;

}

.hero-search{

background:white;

padding:20px;

border-radius:20px;

box-shadow:var(--shadow);

}

.hero-info{

display:flex;

gap:50px;

}

.hero-info h3{

color:var(--primary);

font-size:34px;

margin:0;

font-weight:700;

}

.hero-info p{

margin:0;

color:#777;

}

.hero-gallery{

display:grid;

grid-template-columns:1fr 1fr;

gap:15px;

position:relative;

}

.hero-gallery img{

width:100%;

height:220px;

object-fit:cover;

border-radius:20px;

}

.img1{

grid-row:span 2;

height:455px !important;

}

.floating-card{

position:absolute;

bottom:20px;

left:40px;

background:white;

padding:20px;

border-radius:18px;

box-shadow:var(--shadow);

font-weight:600;

}

@media(max-width:991px){

.hero-title{

font-size:38px;

}

.hero-gallery{

margin-top:40px;

}

.hero-info{

justify-content:space-between;

}

}
/*==================================================
CATEGORY
==================================================*/

.category-card{

background:#fff;

border-radius:20px;

padding:30px 15px;

display:block;

text-align:center;

box-shadow:var(--shadow);

transition:.35s;

height:100%;

}

.category-card:hover{

transform:translateY(-8px);

color:inherit;

}

.category-icon{

width:75px;

height:75px;

margin:auto;

border-radius:50%;

background:#fff4eb;

display:flex;

align-items:center;

justify-content:center;

margin-bottom:20px;

font-size:30px;

color:var(--primary);

transition:.35s;

}

.category-card:hover .category-icon{

background:var(--primary);

color:#fff;

transform:rotate(8deg);

}

.category-card h6{

font-size:16px;

font-weight:600;

margin-bottom:6px;

}

.category-card p{

margin:0;

font-size:13px;

color:#777;

}
/*==================================================
FEATURED VENDOR
==================================================*/

.vendor-card{

background:#fff;

border-radius:22px;

overflow:hidden;

box-shadow:var(--shadow);

transition:.35s;

height:100%;

}

.vendor-card:hover{

transform:translateY(-10px);

}

.vendor-cover{

width:100%;

height:230px;

object-fit:cover;

}

.vendor-body{

padding:22px;

}

.vendor-top{

display:flex;

align-items:center;

gap:15px;

margin-bottom:15px;

}

.vendor-logo{

width:65px;

height:65px;

border-radius:50%;

border:3px solid #fff;

box-shadow:0 5px 15px rgba(0,0,0,.1);

}

.vendor-top h5{

margin:0;

font-size:18px;

font-weight:700;

}

.vendor-rating{

color:#ffb300;

font-size:14px;

}

.vendor-rating span{

color:#666;

margin-left:8px;

}

.vendor-location{

margin:12px 0;

color:#666;

}

.vendor-location i{

color:var(--primary);

margin-right:5px;

}

.vendor-badge{

display:flex;

justify-content:space-between;

margin-bottom:15px;

}

.verified{

background:#e9fff0;

color:#1e9b53;

padding:6px 12px;

border-radius:30px;

font-size:13px;

font-weight:600;

}

.project{

background:#fff4eb;

color:var(--primary);

padding:6px 12px;

border-radius:30px;

font-size:13px;

font-weight:600;

}

.vendor-desc{

color:#666;

line-height:1.7;

margin-bottom:20px;

}

.vendor-action{

display:flex;

gap:10px;

}

.vendor-action a{

flex:1;

text-align:center;

}

.btn-wa{

background:#25d366;

color:#fff;

padding:14px;

border-radius:12px;

font-weight:600;

transition:.3s;

}

.btn-wa:hover{

background:#1ebc59;

color:#fff;

}
/*==================================================
POPULAR SERVICES
==================================================*/

.service-card{

background:#fff;

border-radius:22px;

overflow:hidden;

box-shadow:var(--shadow);

transition:.35s;

height:100%;

}

.service-card:hover{

transform:translateY(-10px);

}

.service-image{

position:relative;

}

.service-image img{

width:100%;

height:240px;

object-fit:cover;

}

.service-badge{

position:absolute;

top:18px;

left:18px;

background:var(--primary);

color:#fff;

padding:8px 15px;

border-radius:30px;

font-size:13px;

font-weight:600;

}

.service-content{

padding:22px;

}

.service-content h5{

font-size:20px;

font-weight:700;

margin-bottom:10px;

}

.service-rating{

color:#ffb400;

margin-bottom:12px;

}

.service-rating span{

color:#666;

margin-left:8px;

}

.vendor-name{

color:#666;

margin-bottom:15px;

}

.vendor-name i{

color:var(--primary);

margin-right:5px;

}

.service-price{

color:var(--primary);

font-size:24px;

font-weight:700;

margin-bottom:22px;

}

.service-buttons{

display:flex;

gap:12px;

}

.service-buttons a{

flex:1;

text-align:center;

}
/*==================================================
STATISTICS
==================================================*/

.statistics-section{

padding:90px 0 40px;

}

.stats-wrapper{

background:#fff;

border-radius:28px;

padding:40px;

box-shadow:var(--shadow);

}

.stat-box{

padding:20px;

}

.stat-icon{

width:70px;

height:70px;

margin:auto;

background:#fff4eb;

border-radius:50%;

display:flex;

align-items:center;

justify-content:center;

font-size:28px;

color:var(--primary);

margin-bottom:18px;

}

.stat-box h2{

font-size:42px;

font-weight:800;

color:var(--primary);

margin-bottom:8px;

}

.stat-box p{

margin:0;

color:#777;

font-size:15px;

}



/*==================================================
PROMO BANNER
==================================================*/

.promo-section{

padding:50px 0 90px;

}

.promo-banner{

background:linear-gradient(135deg,#ff6b00,#ff8c22);

padding:70px;

border-radius:30px;

color:#fff;

overflow:hidden;

position:relative;

}

.promo-banner::before{

content:"";

position:absolute;

right:-80px;

top:-80px;

width:260px;

height:260px;

background:rgba(255,255,255,.08);

border-radius:50%;

}

.promo-banner::after{

content:"";

position:absolute;

left:-120px;

bottom:-120px;

width:320px;

height:320px;

background:rgba(255,255,255,.05);

border-radius:50%;

}

.promo-banner h2{

font-size:42px;

font-weight:700;

margin:20px 0;

line-height:1.3;

}

.promo-banner p{

font-size:17px;

opacity:.95;

max-width:700px;

}

.promo-list{

display:flex;

gap:30px;

margin-top:30px;

flex-wrap:wrap;

}

.promo-list div{

font-weight:600;

}

.promo-list i{

margin-right:8px;

}

.btn-white{

background:#fff;

color:var(--primary);

padding:16px 35px;

border-radius:14px;

font-weight:700;

display:inline-block;

transition:.3s;

}

.btn-white:hover{

background:#f5f5f5;

color:var(--primary);

transform:translateY(-4px);

}
/*==================================================
GALLERY
==================================================*/

.gallery-section{

padding:90px 0;

background:#fff;

}

.gallery-card{

position:relative;

overflow:hidden;

border-radius:24px;

box-shadow:var(--shadow);

cursor:pointer;

}

.gallery-card img{

width:100%;

height:320px;

object-fit:cover;

transition:.5s;

}

.gallery-card:hover img{

transform:scale(1.08);

}

.gallery-overlay{

position:absolute;

left:0;

right:0;

bottom:0;

padding:30px;

background:linear-gradient(to top,rgba(0,0,0,.85),transparent);

color:#fff;

}

.gallery-category{

display:inline-block;

padding:8px 18px;

background:var(--primary);

border-radius:30px;

font-size:13px;

margin-bottom:15px;

}

.gallery-overlay h4{

font-size:24px;

font-weight:700;

margin-bottom:10px;

}

.gallery-overlay p{

margin-bottom:18px;

opacity:.9;

}

.gallery-btn{

display:inline-block;

padding:12px 24px;

background:#fff;

color:var(--primary);

border-radius:12px;

font-weight:600;

transition:.3s;

}

.gallery-btn:hover{

background:var(--primary);

color:#fff;

}
.page-header{

background:linear-gradient(135deg,#ff6b00,#ff8c22);

padding:80px 0;

color:#fff;

text-align:center;

}

.page-header h1{

font-size:48px;

font-weight:700;

}

.vendor-search{

background:#fff;

padding:30px;

border-radius:20px;

box-shadow:var(--shadow);

margin-top:-50px;

position:relative;

z-index:10;

}

/* ===============================
   HEADER ICON NOTIFICATION
================================ */

.nav-icon{
    text-decoration:none;
    position:relative;
    display:inline-flex;
    align-items:center;
}


.badge-notif{
    position:absolute;
    top:-8px;
    right:-10px;

    background:#ff6b00;
    color:white;

    font-size:10px;
    font-weight:600;

    width:18px;
    height:18px;

    border-radius:50%;

    display:flex;
    align-items:center;
    justify-content:center;
}
/* ==========================
   HEADER RESPONSIVE
========================== */

.navbar .container{
    max-width:1200px;
}


.navbar-nav{
    gap:5px;
}


.navbar-nav .nav-link{
    white-space:nowrap;
}


form.d-flex{
    max-width:220px;
}


form.d-flex input{
    width:100%;
}


.nav-icon{
    text-decoration:none;
}


@media(max-width:1200px){

    .navbar-brand{
        font-size:26px !important;
    }


    form.d-flex{
        display:none !important;
    }

}



@media(max-width:991px){

    .navbar-collapse{

        background:white;

        padding:20px;

        margin-top:15px;

        border-radius:15px;

        box-shadow:0 10px 30px rgba(0,0,0,.08);

    }


    .navbar-nav{

        margin-bottom:20px;

    }


    .nav-icon{

        display:inline-block;

        margin-top:10px;

    }


}
/* =========================
NOTIFICATION BADGE
========================= */

.icon-button{

    position:relative;

}


.notif-badge{

    position:absolute;

    top:-8px;

    right:-8px;

    background:#dc3545;

    color:white;

    font-size:11px;

    font-weight:600;

    width:20px;

    height:20px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

}