* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: 'poppins', sans-serif;
}

h1,h2,h3,h4,h5,h6{
    font-family: 'poppins', sans-serif;
}

p,a,input,label,textarea,span,ul,li{
    font-family: 'poppins', sans-serif;
}

/* CHANGE: new wrapper for banner + hero to control layout (desktop absolute vs mobile flow) */
.banner-wrapper {
    width: 100%;
    position: relative; /* so absolute hero on desktop is positioned relative to this */
}



/* Top Banner Section (inclued all Business Solutions Pages) */
.business-landing-hero {
    position: relative;
    height: 50vh;
    background: url(../../images/business_solutions/business-banner.jpg);
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 40px;
}

/* Other hero variants (keep original behavior) */
.sport-hero {
    position: relative;
    height: 50vh;
    background: url(../../images/business_solutions/sports-and-fitness-banner.jpg);
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 40px;
}

.medical-hero {
    position: relative;
    height: 50vh;
    background: url(../../images/business_solutions/medical-banner.jpg);
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 40px;
}

.beauty-hero {
    position: relative;
    height: 50vh;
    background: url(../../images/business_solutions/beauty-and-wellness-banner.jpg);
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 40px;
}

.nutrition-hero {
    position: relative;
    height: 50vh;
    background: url(../../images/business_solutions/nutrition-banner.jpg);
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 40px;
}

.aging-hero {
    position: relative;
    height: 50vh;
    background: url(../../images/business_solutions/aging-banner.jpg);
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 40px;
}

.child-hero {
    position: relative;
    height: 50vh;
    background: url(../../images/business_solutions/child-care-banner.jpg);
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 40px;
}

.academic-hero {
    position: relative;
    height: 50vh;
    background: url(../../images/business_solutions/academic-banner.jpg);
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 40px;
}

.corporate-hero {
    position: relative;
    height: 50vh;
    background: url(../../images/business_solutions/corporate-banner.jpg);
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 40px;
}
/* Top Banner Section End */



/* CHANGE */
/* Baseline hero content styles (mobile-friendly baseline).
   Desktop absolute overlap will be restored in the desktop media query. */
   .business-hero-content {
    background: rgba(0, 0, 0, 0.8);
    padding: 2rem;
    max-width: 600px;
    color: white;
    margin: 0 auto 40px; /* baseline spacing for stacking on mobile */
    box-sizing: border-box;
}

.business-hero-content h1 {
    font-size: 2rem;
    margin-bottom: 1rem;
}

.business-hero-content p {
    font-weight: 300;
    line-height: 1.6;
}

/* Content Placeholder Section */
.business-content-container{
    margin: 40px;
}

.business-content-row {
    padding-top: 40px;
    margin: 40px auto;
    max-width: 1200px;
    text-align: start;
}

.business-content-row img{
    padding-top: 40px;
    max-width: 1100px;
}

/* Thumbnails Section */
.business-grid-container {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 1.5rem;
    padding: 2rem;
    max-width: 1200px;
    margin: 0 auto;
    margin-bottom: 40px;
}

.business-grid-item {
    position: relative;
    font-size: 1.4rem;
    height: 352px;
    overflow: hidden;
    border-radius: 8px;
    /* box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);*/
}

.business-grid-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.business-grid-item-label {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: rgba(0, 0, 0, 0.7);
    color: white;
    padding: 1rem;
    text-align: center;
    font-weight: bold;
}
.common-products {
    padding-bottom: 40px;
}

/* ===== DESKTOP: restore desktop behavior (overlap) =====
   Keep the original absolute positioning values here so desktop looks exactly like.
*/
@media (min-width: 769px) {
    /* ensure wrapper is relative for absolute placement */
    .banner-wrapper {
        position: relative;
    }

    .business-landing-hero {
        height: 50vh;
        margin-bottom: 40px;
    }

    /* absolute hero on desktop */
    .business-hero-content {
        position: absolute;
        bottom: 0;
        left: 15%;
        right: 15%;
        background: rgba(0, 0, 0, 0.8);
        padding: 2rem;
        max-width: 600px;
        color: white;
        margin: 0;
        z-index: 10;
        box-sizing: border-box;
    }

    .business-hero-content h1 {
        font-size: 2rem;
    }

    .business-hero-content p {
        font-weight: 300;
        line-height: 1.6;
    }
}

/* ===== MOBILE: behavior - hero stacks BELOW banner ===== */
@media (max-width: 768px) {
    /* mobile: make background-attachment scroll so it behaves correctly on mobile */
    .business-landing-hero,
    .sport-hero,
    .medical-hero,
    .beauty-hero,
    .nutrition-hero,
    .aging-hero,
    .child-hero,
    .academic-hero,
    .corporate-hero {
        background-attachment: scroll;
    }

    .business-landing-hero,
    .sport-hero,
    .medical-hero,
    .beauty-hero,
    .nutrition-hero,
    .aging-hero,
    .child-hero,
    .academic-hero,
    .corporate-hero {
        height: 300px;
        margin-bottom: 0; /* remove bottom spacing so hero appears directly after banner */
    }


    /* normal flow - hero sits below banner */
    .business-hero-content {
        position: static; /* important: remove absolute so it stacks */
        height: auto;
        left: auto;
        right: auto;
        bottom: auto;
        max-width: none;
        width: calc(100% - 40px);
        margin: 16px 20px;
        padding: 1.25rem;
        box-sizing: border-box;
    }

    .business-hero-content h1 {
        font-size: 1.5rem;
    }

    .business-hero-content p {
        font-size: 1rem;
        line-height: 1.5;
    }

    .business-content-row img{
        padding-top: 1.5rem;
        max-width: 400px;
    }
}

/* CHANGE: Specific fix for placeholder 2 thumbnails to prevent overflow.
   This targets ONLY the .business-grid-container instance used for placeholder 2
   (we added class .placeholder-2-grid to the HTML). It does not change other grids. */
   .placeholder-2-grid .business-grid-item {
    /* allow the items to size based on image height for this section */
    height: auto;
    overflow: visible; /* allow the image to expand naturally */
    border-radius: 8px;
}

/* make the images responsive (no stretching / overflow) for placeholder 2 */
.placeholder-2-grid .business-grid-item img {
    width: 100%;
    height: auto;
    object-fit: contain; /* preserve aspect ratio */
    display: block;
}

/* product card styles unchanged below */
/*become 3 cards*/
.product-card {
    background: #fff;
    padding: 1rem;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
    text-align: center;
    transition: transform 0.2s ease;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.product-card:hover {
    transform: translateY(-5px);
}

.product-image img {
    max-height: 250px;
    width: auto;
    height: auto;
    margin: 0 auto;
    display: block;
}

.product-text {
    margin-top: 1rem;
    text-align: left;
}

.product-title {
    font-size: 1.1rem;
    font-weight: 600;
    margin-bottom: 0.4rem;
    color: #000;
}

.product-description {
    font-size: 0.95rem;
    color: #333;
    line-height: 1.4;
}


