/*
=========================================================
 NEXT-VIBE CLOTHING
 Custom Theme Overrides
=========================================================
*/

/* ======================================================
   GLOBAL
====================================================== */

:root{
    --nv-primary:#2563eb;
    --nv-primary-hover:#1d4ed8;
    --nv-text:#222;
    --nv-muted:#666;
    --nv-border:#e8e8e8;
    --nv-bg:#f8f9fb;
    --nv-white:#ffffff;
    --nv-shadow:0 8px 25px rgba(0,0,0,.08);
}

*{
    box-sizing:border-box;
}

body{
    margin:0;
    background:var(--nv-bg);
    color:var(--nv-text);
    font-family:"Poppins",sans-serif;
    font-size:16px;
    line-height:1.6;
}

/* ======================================================
   CONTAINER
====================================================== */

.container{
    max-width:1320px;
    margin:auto;
    padding:0 20px;
}

/* ======================================================
   HEADER
====================================================== */

.site-header{
    background:#fff;
    border-bottom:1px solid var(--nv-border);
    box-shadow:0 2px 10px rgba(0,0,0,.05);
    position:sticky;
    top:0;
    z-index:999;
}

.nv-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:40px;
    min-height:110px;
}

.site-branding{
    flex-shrink:0;
}

.custom-logo{
    width:180px;
    height:auto;
    display:block;
}

.site-title{
    display:none;
}

/* ======================================================
   NAVIGATION
====================================================== */

.main-navigation{
    flex:1;
}

.primary-menu{
    display:flex;
    justify-content:flex-end;
    align-items:center;
    gap:34px;
    list-style:none;
    margin:0;
    padding:0;
}

.primary-menu li{
    margin:0;
    padding:0;
}

.primary-menu a{
    color:var(--nv-text);
    text-decoration:none;
    text-transform:uppercase;
    font-size:15px;
    font-weight:600;
    letter-spacing:.4px;
    position:relative;
    transition:.25s;
    white-space:nowrap;
}

.primary-menu a::after{
    content:"";
    position:absolute;
    left:0;
    bottom:-8px;
    width:0;
    height:2px;
    background:var(--nv-primary);
    transition:.3s;
}

.primary-menu a:hover{
    color:var(--nv-primary);
}

.primary-menu a:hover::after,
.current-menu-item > a::after{
    width:100%;
}

/* ======================================================
   MOBILE MENU
====================================================== */

.menu-toggle{
    display:none;
    background:none;
    border:none;
    font-size:28px;
    cursor:pointer;
}

@media(max-width:991px){

    .menu-toggle{
        display:block;
    }

    .main-navigation{
        display:none;
        width:100%;
        margin-top:20px;
    }

    .main-navigation.toggled{
        display:block;
    }

    .primary-menu{
        flex-direction:column;
        align-items:flex-start;
        gap:16px;
    }

    .nv-header{
        flex-wrap:wrap;
        padding:20px 0;
    }

    .custom-logo{
        width:150px;
    }
}

/* ======================================================
   CONTENT
====================================================== */

.site-content{
    padding:40px 0 60px;
}

/* ======================================================
   HEADINGS
====================================================== */

h1,h2,h3,h4,h5,h6{
    color:var(--nv-text);
    font-weight:700;
    margin-top:0;
}

h1{
    font-size:42px;
}

h2{
    font-size:34px;
}

/* ======================================================
   BUTTONS
====================================================== */

button,
input[type=submit],
.button,
.wp-block-button__link{

    background:var(--nv-primary);
    color:#fff;
    border:none;
    border-radius:8px;
    padding:12px 24px;
    cursor:pointer;
    transition:.25s;
}

button:hover,
input[type=submit]:hover,
.button:hover,
.wp-block-button__link:hover{

    background:var(--nv-primary-hover);
}

/* ======================================================
   IMAGES
====================================================== */

img{
    max-width:100%;
    height:auto;
}

/* ======================================================
   FOOTER
====================================================== */

.site-footer{

    margin-top:80px;

    background:#111;

    color:#fff;

    padding:50px 0;
}

.site-footer a{

    color:#ddd;
}

.site-footer a:hover{

    color:#fff;
}
/*======================================================
 HERO
======================================================*/

.nv-hero{

    position:relative;

    min-height:650px;

    display:flex;

    align-items:center;

    overflow:hidden;

    background:
        linear-gradient(
            rgba(15,23,42,.55),
            rgba(15,23,42,.55)
        ),
        url("../images/hero/hero.jpg") center center / cover no-repeat;

}

.nv-hero-content{

    max-width:620px;

    color:#fff;

    padding:80px 0;

}

.hero-kicker{

    display:inline-block;

    margin-bottom:18px;

    color:#ffffff;

    letter-spacing:3px;

    font-size:13px;

    font-weight:700;

    text-transform:uppercase;

}

.nv-hero h1{

    color:#fff;

    font-size:72px;

    line-height:1.05;

    margin-bottom:28px;

    font-weight:800;

}

.nv-hero p{

    font-size:22px;

    line-height:1.7;

    max-width:560px;

    margin-bottom:40px;

    color:rgba(255,255,255,.92);

}

.hero-buttons{

    display:flex;

    gap:18px;

    flex-wrap:wrap;

}

.hero-btn{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    text-decoration:none;

    padding:18px 42px;

    border-radius:8px;

    font-size:16px;

    font-weight:700;

    transition:.30s;

}

.hero-btn-primary{

    background:#2563eb;

    color:#fff;

}

.hero-btn-primary:hover{

    background:#1d4ed8;

    color:#fff;

}

.hero-btn-secondary{

    border:2px solid #fff;

    color:#fff;

    background:transparent;

}

.hero-btn-secondary:hover{

    background:#fff;

    color:#111;

}

@media (max-width:991px){

    .nv-hero{

        min-height:500px;

    }

    .nv-hero h1{

        font-size:48px;

    }

    .nv-hero p{

        font-size:18px;

    }

}
/*======================================================
 FEATURED COLLECTIONS
======================================================*/

.nv-featured{

    padding:100px 0;

    background:#ffffff;

}

.nv-section-header{

    text-align:center;

    margin-bottom:60px;

}

.nv-kicker{

    display:inline-block;

    color:#2563eb;

    font-size:13px;

    font-weight:700;

    letter-spacing:3px;

    text-transform:uppercase;

    margin-bottom:18px;

}

.nv-section-header h2{

    font-size:48px;

    margin-bottom:18px;

}

.nv-section-header p{

    max-width:700px;

    margin:0 auto;

    color:#666;

    font-size:18px;

    line-height:1.7;

}

.nv-featured-grid{

    display:grid;

    grid-template-columns:repeat(4,minmax(0,1fr));

    gap:30px;

}

.nv-collection-card{

    position:relative;

    display:block;

    overflow:hidden;

    border-radius:18px;

    aspect-ratio:4 / 5;

    text-decoration:none;

    box-shadow:0 15px 35px rgba(0,0,0,.10);

    transition:.35s ease;

}

.nv-collection-card img{

    width:100%;

    height:100%;

    object-fit:cover;

    display:block;

    transition:.45s ease;

}

.nv-card-overlay{

    position:absolute;

    inset:0;

    display:flex;

    align-items:flex-end;

    padding:28px;

    background:linear-gradient(
        to top,
        rgba(0,0,0,.78),
        rgba(0,0,0,.08)
    );

}

.nv-card-overlay h3{

    color:#fff;

    font-size:30px;

    margin:0 0 8px;

}

.nv-card-overlay span{

    color:#fff;

    font-weight:600;

    opacity:.95;

}

.nv-collection-card:hover{

    transform:translateY(-8px);

    box-shadow:0 25px 45px rgba(0,0,0,.18);

}

.nv-collection-card:hover img{

    transform:scale(1.08);

}

@media(max-width:1100px){

    .nv-featured-grid{

        grid-template-columns:repeat(2,1fr);

    }

}

@media(max-width:700px){

    .nv-featured{

        padding:70px 0;

    }

    .nv-featured-grid{

        grid-template-columns:1fr;

    }

    .nv-section-header h2{

        font-size:36px;

    }

}
/*======================================================
 BEST SELLERS
======================================================*/

.nv-best-sellers{

    padding:110px 0;

    background:#f7f8fb;

}

.nv-products-grid{

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:34px;

}

.nv-product-card{

    background:#fff;

    border-radius:18px;

    overflow:hidden;

    box-shadow:0 12px 35px rgba(0,0,0,.08);

    transition:.35s ease;

}

.nv-product-card:hover{

    transform:translateY(-8px);

    box-shadow:0 25px 45px rgba(0,0,0,.16);

}

.nv-product-image{

    display:block;

    background:#fff;

    padding:24px;

}

.nv-product-image img{

    width:100%;

    height:auto;

    transition:.4s;

}

.nv-product-card:hover img{

    transform:scale(1.05);

}

.nv-product-info{

    padding:24px;

    text-align:center;

}

.nv-product-info h3{

    font-size:19px;

    margin-bottom:12px;

    min-height:54px;

}

.nv-product-info h3 a{

    color:#222;

    text-decoration:none;

}

.nv-price{

    color:#2563eb;

    font-size:28px;

    font-weight:700;

    margin:18px 0;

}

.nv-product-button{

    display:block;

    width:100%;

    padding:16px;

    border-radius:8px;

    background:#2563eb;

    color:#fff;

    text-decoration:none;

    font-weight:600;

    transition:.25s;

}

.nv-product-button:hover{

    background:#1d4ed8;

    color:#fff;

}

@media(max-width:1100px){

    .nv-products-grid{

        grid-template-columns:repeat(2,1fr);

    }

}

@media(max-width:700px){

    .nv-products-grid{

        grid-template-columns:1fr;

    }

}
/*======================================================
PRODUCT CAROUSEL
======================================================*/

.nv-product-section{
    padding:100px 0;
    background:#f7f8fb;
}

.nv-carousel{
    position:relative;
    display:flex;
    align-items:center;
}

.nv-carousel-track{
    display:flex;
    gap:30px;
    overflow-x:auto;
    scroll-behavior:smooth;
    scrollbar-width:none;
    -ms-overflow-style:none;
    padding:15px 5px 25px;
    width:100%;
}

.nv-carousel-track::-webkit-scrollbar{
    display:none;
}

.nv-product-card{
    flex:0 0 calc(25% - 23px);
    background:#fff;
    border-radius:18px;
    overflow:hidden;
    box-shadow:0 10px 30px rgba(0,0,0,.08);
    transition:.35s;
}

.nv-product-card:hover{
    transform:translateY(-8px);
    box-shadow:0 18px 45px rgba(0,0,0,.15);
}

.nv-product-image{
    display:block;
    padding:20px;
    background:#fff;
}

.nv-product-image img{
    width:100%;
    height:auto;
    transition:.35s;
}

.nv-product-card:hover img{
    transform:scale(1.05);
}

.nv-product-info{
    padding:24px;
    text-align:center;
}

.nv-product-info h3{
    font-size:18px;
    margin-bottom:12px;
    min-height:48px;
}

.nv-product-info h3 a{
    color:#222;
    text-decoration:none;
}

.nv-price{
    font-size:26px;
    font-weight:700;
    color:#2563eb;
    margin:15px 0;
}

.nv-product-info .button{
    display:inline-block;
    width:100%;
    background:#2563eb;
    color:#fff;
    padding:14px;
    border-radius:8px;
    text-decoration:none;
    transition:.3s;
}

.nv-product-info .button:hover{
    background:#1d4ed8;
}

.nv-carousel-prev,
.nv-carousel-next{

    position:absolute;

    top:40%;

    width:46px;

    height:46px;

    border:none;

    border-radius:50%;

    background:#fff;

    box-shadow:0 8px 20px rgba(0,0,0,.15);

    cursor:pointer;

    font-size:24px;

    z-index:5;

    transition:.3s;

}

.nv-carousel-prev:hover,
.nv-carousel-next:hover{

    background:#2563eb;

    color:#fff;

}

.nv-carousel-prev{

    left:-22px;

}

.nv-carousel-next{

    right:-22px;

}

@media(max-width:1200px){

    .nv-product-card{

        flex:0 0 calc(33.333% - 20px);

    }

}

@media(max-width:900px){

    .nv-product-card{

        flex:0 0 calc(50% - 18px);

    }

}

@media(max-width:600px){

    .nv-product-card{

        flex:0 0 100%;

    }

}
/*==================================================
REMOVE PRODUCT PAGE TITLE
==================================================*/

.single-product .entry-header,
.single-product .page-header,
.single-product .woocommerce-products-header,
.single-product .woocommerce-products-header__title,
.single-product .page-title{

    display:none !important;

}
/* ==========================================
   PRODUCT CARD
========================================== */

.nv-product-card{

    background:#fff;
    border-radius:18px;
    overflow:hidden;

    box-shadow:0 10px 25px rgba(0,0,0,.08);

    transition:.25s ease;

}

.nv-product-card:hover{

    transform:translateY(-6px);

}

.nv-product-image{

    display:block;
    padding:25px;

}

.nv-product-image img{

    width:100%;
    display:block;
    height:auto;

}

.nv-product-content{

    padding:20px;
    text-align:center;

}

.nv-product-title{

    font-size:18px;
    line-height:1.4;
    margin-bottom:15px;
    min-height:55px;

}

.nv-product-title a{

    color:#222;
    text-decoration:none;

}

.nv-product-price{

    color:#2563eb;
    font-size:30px;
    font-weight:700;
    margin-bottom:20px;

}

.nv-product-button{

    display:block;
    width:100%;

    background:#2563eb;
    color:#fff;

    text-decoration:none;

    border-radius:10px;

    padding:15px;

    font-weight:600;

    transition:.2s;

}

.nv-product-button:hover{

    background:#1e4fd6;

}
/*====================================
PRODUCT GRID
====================================*/

.nv-product-grid{

    display:grid;

    grid-template-columns:repeat(4,minmax(0,1fr));

    gap:35px;

    margin:50px auto;

}

@media(max-width:1200px){

    .nv-product-grid{

        grid-template-columns:repeat(3,1fr);

    }

}

@media(max-width:900px){

    .nv-product-grid{

        grid-template-columns:repeat(2,1fr);

    }

}

@media(max-width:600px){

    .nv-product-grid{

        grid-template-columns:1fr;

    }

}
/*======================================
NEW VIBE PAGE LAYOUT
======================================*/

.nv-page-hero{

    padding:70px 0 35px;

    text-align:center;

}

.nv-page-hero h1{

    font-size:54px;

    font-weight:800;

    margin:10px 0;

}

.nv-page-hero p{

    color:#666;

    font-size:18px;

}

.nv-products{

    padding:20px 0 70px;

}

.nv-pagination{

    margin:60px auto;

    text-align:center;

}

.nv-pagination .page-numbers{

    display:inline-block;

    padding:10px 16px;

    margin:0 4px;

    border-radius:8px;

    background:#f4f4f4;

    color:#222;

    text-decoration:none;

}

.nv-pagination .current{

    background:#2563eb;

    color:#fff;

}
