/* /landing/landing.css — the landing page's own styles, all in one file now
   instead of importing 5 landing-only partials separately (hero, categories,
   trending-products, cta, testimonials). top-vendors.css stays a real
   import — it's shared with vendors.css, not landing-only. Same for
   marketplace-products.css and product-strip.css (shared with several
   other pages) and the sitewide basics (variables/base/navbar/toast/
   footer/cookie-banner). popup.css lives in this folder too but isn't
   used by landing at all — build-profile/build-store/signup use it. */
@import url(/landing/landing-styles/variables.css);
@import url(/landing/landing-styles/base.css);
@import url(/landing/landing-styles/navbar.css);
@import url(/marketplace/marketplace-styles/marketplace-products.css);
@import url(/landing/landing-styles/top-vendors.css);
@import url(/landing/landing-styles/footer.css);
@import url(/marketplace/marketplace-styles/product-strip.css);
@import url(/landing/landing-styles/toast.css);
@import url(/landing/landing-styles/cookie-banner.css);

/* Hero */
.hero{
    position: relative;
    overflow: hidden;
    height: 500px;
}
.hero::before{
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    left: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
}
.carousel-play{
    width: 400%;
    display: flex;
    height: 100%;
    transition: transform 0.6s ease-in-out;
}
.each-slide{
    position: relative;
    width: 25%;
    height: 100%;
    flex-shrink: 0;
    z-index: 1;
}
.each-slide::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
    to right,
    rgba(0,0,0,0.85),
    rgba(0,0,0,0.45)
);
    z-index: 1;
}
.each-slide img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.slide-content{
    position: absolute;
    top: 50%;
    left: 6%;
    transform: translateY(-50%);
    color: var(--white);
    max-width: 500px;
    z-index: 2;
}
.slide-content h1{
    font-family: var(--headers);
    color: var(--white);
    font-size: 2.7rem;
    margin-bottom: 10px;
}
.slide-content p{
    font-family: var(--body-font);
    font-size: 1rem;
    margin-bottom: 15px
}
.slide-content a{
    text-decoration: none;
    color: white;
    padding: 12px 24px;
    border: 1px solid transparent;
    border-radius: 6px;
    margin-top: 15px;
    display: inline-block;
    font-weight: 600;
    font-family: var(--headers);
    background: var(--second-color);
}
.slide-content a:hover{
    background-color: var(--button-hovers);
    transition: var(--transition);
}
.controls{
    position: absolute;
    bottom: 10%;
    left: 50%;
    transform: translateX(-50%);
    z-index: 10;
    display: flex;
    gap: 10px;
}
.dot{
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: var(--white);
    cursor: pointer;
}
.dot:hover{
    transform: scale(1.3);
    transition: var(--transition);
}
.dot.active{
    background-color: var(--second-color);
}

/* Categories */
.categories{
    padding: 45px 2rem;
    background: var(--white);
    text-align: center;
}
.head{
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.cat-headings h1{
    font-family: var(--headers);
    margin-bottom: 10px;
    font-weight: 700;
}
.cat-headings p{
    font-size: 14px;
    font-family: var(--body-font);
}
.cat-link{
    margin-top: 45px;
}
.cat-link p{
    text-transform: capitalize;
    font-size: 14px;
    font-weight: bold;
}
.cat-link a{
    text-decoration: none;
    color: var(--second-color);
}
.cat-link a:hover{
    color: var(--primary-color);
    transition: var(--transition);
}
.category-container{
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 20px;
    margin-top: 40px;
}
.each-category{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 15px;
    text-decoration: none;
    color: var(--main-text);
    background-color: var(--surface);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 25px 15px;
    transition: var(--transition);
}
.each-category:hover{
    border-color: var(--second-color);
    transform: var(--transform);
    box-shadow: var(--shadows);
    background-color: var(--second-color);
    color: var(--white);
}
.each-category svg{
    color: var(--second-color);
    height: 30px;
    width: 30px;
}
.each-category:hover svg{
    color: var(--white);
}
.each-category p{
    font-size: 14px;
    font-weight: 600;
    font-family: var(--headers);
}

/* Trending products — the card itself (.each-product, .upper-card,
   .wishlist-icon, etc.) comes from marketplace-products.css, imported
   above; this only covers the section wrapper and grid. */
.trending{
    padding: 45px 2rem;
    background: var(--white);
}
.trending-heading{
    margin: 0 0 20px 0;
}
.trending-heading h1{
    font-family: var(--headers);
    margin: 0 0 10px;
}

.trending-products-grid{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 20px;
}

/* CTA */
.cta-banner{
    display: flex;
    align-items: center;
    justify-content: space-between;
    background-color: var(--main-text);
    color: var(--white);
    border-radius: 20px;
    margin: 45px 2rem;
    padding: 50px;
    gap: 40px;
}
.cta-tag{
    background-color: var(--second-color);
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 600;
}

.cta-content h2{
    font-family: var(--headers);
    font-size: 2.2rem;
    margin: 15px 0;
    text-transform: capitalize;
}
.cta-content p{
    color: var(--greys);
    margin-bottom: 25px;
    max-width: 450px;
}
.cta-buttons{
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
}
.cta-primary{
    background-color: var(--second-color);
    color: var(--white);
    padding: 12px 24px;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 600;
}
.cta-primary:hover{
    background-color: var(--primary-color);
    transition: var(--transition);
}
.cta-secondary{
    color: var(--white);
    padding: 12px 24px;
    text-decoration: none;
    font-weight: 600;
}
.cta-secondary:hover{
    background-color: var(--muted-text);
    border-radius: 8px;
    transition: var(--transition);
}
.cta-stats{
    display: flex;
    gap: 40px;
}
.cta-stats h3{
    font-family: var(--headers);
    font-size: 1.5rem;
}
.cta-stats p{
    font-size: 13px;
    color: var(--greys);
}
.cta-image{
    width: 400px;
    height: 320px;
    object-fit: cover;
    border-radius: 16px;
    flex-shrink: 0;
}

/* Testimonials */
.testimonials{
    padding: 45px 2rem;
}
.testimonial-heading h1{
    font-family: var(--headers);
    margin: 15px 0 10px 0;
}
.testimonial-heading p{
    font-size: 14px;
}
.testimonial-grid{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    margin-top: 30px;
    gap: 20px;
    align-items: stretch;
}
.each-testimonial{
    text-align: left;
    background-color: var(--surface);
    padding: 30px;
    border-radius: 30px;
    border: 1px solid var(--border);
    text-align: center;
    box-shadow: 0 1px 3px rgba(0,0,0,0.06);
    height: 100%;
    transition: var(--transition);
}
.testimonial-author{
    display: flex;
    align-items: center;
    gap: 20px;
}
.testimonial-author img{
    height: 60px;
    width: 60px;
    border: 5px solid var(--white);
    border-radius: 50%;
    object-fit: cover;
}
.filled-star svg{
    width: 16px;
    height: 16px;
    fill: var(--amber);
    stroke: var(--amber);
}
.empty-star svg{
    width: 16px;
    height: 16px;
    fill: none;
    stroke: var(--muted-text);
}
.horizontal-divider{
    display: block;
    width: 100%;
    height: 1px;
    background-color: var(--border);
    margin: 16px 0;
}
.each-testimonial h3{
    font-family: var(--headers);
    font-size: 15px;
    margin-bottom: 2px;
    color: var(--second-color);
}
.feedback{
    font-size: 14px;
    color: var(--second-text);
    line-height: 1.5;
    margin-bottom: 16px;
    margin-top: 10px;
}
.each-testimonial p:last-child{
    font-size: 13px;
    color: var(--muted-text);
    margin: 5px 0 0 0;
}
.each-testimonial:hover{
    box-shadow: 0 10px 24px rgba(0,0,0,0.10);
    transform: var(--transform2);
}

@media (max-width: 900px){
    .hero{ height: 420px; }
    .slide-content{ left: 6%; max-width: 85%; }
    .slide-content h1{ font-size: 1.8rem; }
    .slide-content p{ font-size: 0.9rem; }
    .head{ flex-wrap: wrap; gap: 10px; }
    .category-container{ grid-template-columns: repeat(3, 1fr); }
    /* auto-fit/minmax(240px) collapses to a single column on a phone —
       there's no room for a second 240px card. Force 2 columns explicitly,
       same treatment marketplace.html and vendors.html already use. */
    .trending-products-grid{ grid-template-columns: repeat(2, 1fr); gap: 16px; }
    .cta-banner{
        flex-direction: column;
        padding: 32px 24px;
        margin: 45px 1rem;
        text-align: center;
    }
    .cta-content p{ max-width: 100%; }
    .cta-buttons{ justify-content: center; flex-wrap: wrap; }
    .cta-stats{ justify-content: center; flex-wrap: wrap; gap: 24px; }
    .cta-image{ width: 100%; height: 220px; }
    .testimonial-heading{ text-align: center; }
    /* Same auto-fit/minmax(240px) collapse-to-one-column issue as the
       trending-products and vendors grids: on a phone, 4 full-height cards
       stacked vertically turn this section into a lot of extra scrolling
       for not much content. Force 2 columns and trim padding to match. */
    .testimonial-grid{ grid-template-columns: repeat(2, 1fr); gap: 16px; }
    .each-testimonial{ padding: 18px; }
}
@media (max-width: 480px){
    .hero{ height: 380px; }
    .slide-content h1{ font-size: 1.4rem; }
    .category-container{ grid-template-columns: repeat(2, 1fr); }
    .trending-products-grid{ grid-template-columns: repeat(2, 1fr); gap: 10px; }
    .testimonial-grid{ gap: 10px; }
    .each-testimonial{ padding: 14px; }
    .testimonial-author img{ height: 44px; width: 44px; }
    .feedback{ font-size: 13px; -webkit-line-clamp: 4; display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; }
}
