/* Homepage style (inspired) - does NOT copy assets or fonts. Uses site font and images. */
:root{
    --hp-gap: 56px;
    /* Blog tokens */
    --green-primary: #2F855A;
    --green-light: #48BB78;
    --green-dark: #276749;
    --green-lightest: #D1FAE5;
    --text-primary: #1A1A2E;
    --text-secondary: #6B7280;
    --text-tertiary: #9CA3AF;
    --border-light: #E5E7EB;
    --background: #F0F7F4;
    --white: #ffffff;
    --shadow-sm: 0 2px 8px rgba(0,0,0,0.04);
    --shadow-md: 0 4px 16px rgba(0,0,0,0.06);
    --shadow-lg: 0 8px 32px rgba(0,0,0,0.08);
    --shadow-xl: 0 16px 48px rgba(0,0,0,0.12);
}

/* Hero */
#hero-slider{padding:0;margin:0}
.slide{position:relative}
.slide .container{max-width:1200px}
.hero-title{font-size:4.4rem;line-height:1.02;margin-bottom:8px}
.hero-tagline{opacity:0.95}

/* CTA styles matching a modern look */
.btn-cta{
    display:inline-flex;align-items:center;gap:10px;padding:14px 22px;border-radius:10px;font-weight:600;box-shadow:0 8px 24px rgba(15,34,22,0.06);
}
.btn-arrow{display:inline-flex;align-items:center;gap:10px}
.btn-arrow .arrow{display:inline-block;transform:translateX(0);transition:transform .22s ease}
.btn-arrow:hover .arrow{transform:translateX(6px)}

/* Sections spacing */
section{padding:var(--hp-gap) 0}

/* Feature grid — modern card layout with hover + reveal */
.features{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    gap:28px;
    align-items:start;
}
.feature-card{
    background:var(--brand-on);
    border-radius:14px;
    padding:28px 24px;
    box-shadow:0 10px 30px rgba(9,31,34,0.04);
    min-height:220px;
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
    transition:transform .36s cubic-bezier(.2,.9,.3,1), box-shadow .36s ease;
    will-change:transform;
}
.feature-card h5{margin-top:12px;margin-bottom:8px;color:var(--brand-dark)}
.feature-card p{color:#54606a}

/* Step number / icon */
.feature-card .step-number{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,var(--brand-green-light),var(--brand-green));color:#fff;font-weight:700;margin-bottom:14px;box-shadow:0 6px 18px rgba(31,111,65,0.12)}

/* Hover lift */
.feature-card:hover{transform:translateY(-10px);box-shadow:0 18px 40px rgba(9,31,34,0.12)}
.feature-card:hover .step-number{transform:scale(1.06)}

/* Reveal stagger from parent .features.reveal.in-view */
.features.reveal .feature-card{opacity:0;transform:translateY(18px)}
.features.reveal.in-view .feature-card{opacity:1;transform:none}
.features.reveal.in-view .feature-card:nth-child(1){transition:opacity .6s ease .08s, transform .6s ease .08s}
.features.reveal.in-view .feature-card:nth-child(2){transition:opacity .6s ease .16s, transform .6s ease .16s}
.features.reveal.in-view .feature-card:nth-child(3){transition:opacity .6s ease .24s, transform .6s ease .24s}
.features.reveal.in-view .feature-card:nth-child(4){transition:opacity .6s ease .32s, transform .6s ease .32s}
.features.reveal.in-view .feature-card:nth-child(5){transition:opacity .6s ease .40s, transform .6s ease .40s}


/* Stats */
.quick-stats{display:flex;gap:24px;align-items:center;justify-content:center;padding:28px;border-radius:12px;background:linear-gradient(90deg,var(--brand-green-10),transparent)}
.quick-stats .stat{font-weight:700;font-size:2rem;color:var(--brand-dark)}

/* Cards / blog */
.card-compact{border-radius:12px;overflow:hidden;background:var(--brand-on);box-shadow:0 8px 22px rgba(9,31,34,0.04)}
.card-compact img{width:100%;height:180px;object-fit:cover}
.card-compact .card-body{padding:16px}

/* Reveal animations */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease, transform .6s ease}
.reveal.in-view{opacity:1;transform:none}

/* Blog teasers and cards: redesigned for consistent cards */
.blog-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:32px;margin-bottom:60px;align-items:start}
.blog-card{background:var(--white);border-radius:16px;overflow:hidden;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;height:100%;border:1px solid var(--border-light);transition:all .3s cubic-bezier(.4,0,.2,1)}
.blog-card .img-wrap{width:100%;display:block;aspect-ratio:16/10;overflow:hidden}
.blog-card .img-wrap img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
/* ensure legacy .card-img-top also fills container if present */
.blog-card img.card-img-top{display:block;width:100%;height:100%;object-fit:cover}
.blog-card img.card-img-top{width:100%;height:auto;object-fit:cover;display:block;transition:transform .4s ease}
.blog-card .card-body{padding:24px;display:flex;flex-direction:column;gap:12px;flex:1}
.blog-card h5{margin:0 0 8px;color:var(--text-primary);font-family:'Poppins',sans-serif;font-weight:700;font-size:18px;line-height:1.3}
.blog-card p{color:var(--text-secondary);margin:0;line-height:1.6}
.category-badge{font-size:11px;padding:8px 16px;border-radius:24px;text-transform:uppercase;font-weight:700;color:#fff}

/* Hover and image zoom */
.blog-card{transition:transform .3s ease,box-shadow .3s ease}
.blog-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.blog-card:hover .img-wrap img{transform:scale(1.06)}

/* Badge and image date positioning inside image wrapper */
.blog-card .img-wrap .category-badge{position:absolute;left:12px;top:12px;z-index:3}
.blog-card .img-wrap .img-date{position:absolute;right:12px;top:12px;z-index:3;background:rgba(0,0,0,0.35);padding:4px 8px;border-radius:8px;font-size:13px}


/* Ensure blog section headings are readable on light backgrounds */
#blog .text-center h6,
#blog .text-center h2,
#blog .text-center p {
    color: var(--brand-dark);
}

@media(max-width:992px){
    .blog-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:576px){
    .blog-grid{grid-template-columns:1fr}
}

/* Carousel variant for blog teasers (uses Owl Carousel) */
.blog-carousel{padding-bottom:8px;display:flex;gap:20px;overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;padding-left:6px;padding-right:6px}

/* When auto-scrolling, disable scroll-snap to allow smooth continuous motion */
.blog-carousel.auto-scrolling { scroll-snap-type: none; }

/* Track wrapper used for transform-based marquee */
.blog-track{display:flex;gap:20px;align-items:stretch;will-change:transform}
.blog-carousel{overflow:hidden}
.blog-carousel .blog-teaser{margin:0;flex:0 0 320px;scroll-snap-align:center}
.blog-carousel .blog-teaser img{height:200px;object-fit:cover}
.blog-carousel .blog-teaser{background:var(--white);border-radius:12px;box-shadow:var(--shadow-sm);overflow:hidden;border:1px solid var(--border-light);}
.blog-carousel .blog-teaser .meta{padding:18px;}
.blog-carousel .blog-teaser h5{margin:0 0 8px;color:var(--text-primary);font-weight:700;font-size:16px}
.blog-carousel .blog-teaser p{margin:0;color:var(--text-secondary);line-height:1.6}
.blog-carousel::-webkit-scrollbar{height:8px}
.blog-carousel::-webkit-scrollbar-thumb{background:rgba(0,0,0,0.12);border-radius:6px}
.blog-carousel{scrollbar-width:thin}

/* View All button style */
.btn-view-all{
    display:inline-block;
    padding:12px 28px;
    border-radius:40px;
    border:2px solid rgba(31,111,65,0.12);
    background: transparent;
    color:var(--green-primary);
    font-weight:600;
    transition:background .2s ease, transform .18s ease, box-shadow .18s ease;
}
.btn-view-all:hover{background: rgba(47,133,90,0.12);transform:translateY(-3px);box-shadow:0 10px 30px rgba(31,111,65,0.08)}

/* Force blog cards to keep white background and internal padding (override global card rules) */
.blog-card {
    background: var(--white) !important;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--border-light);
}
.blog-card .card-body { padding: 24px !important; }
.blog-card h5, .blog-featured .card-title { color: var(--text-primary) !important; }
.blog-card p, .blog-card .card-text { color: var(--text-secondary) !important; }

/* Blog page specific styles */
.blog-hero{background:linear-gradient(180deg, rgba(var(--brand-green-rgb),0.08), rgba(255,255,255,0));padding:80px 0 60px}
.blog-hero .hero-illustration{height:220px;background-image:url('../img/banner2.jpg');background-size:cover;border-radius:12px;opacity:0.95}
.blog-hero h1{font-family:'Poppins',sans-serif;font-size:56px;font-weight:800;letter-spacing:-1px;line-height:1.1;margin-bottom:12px;color:var(--text-primary)}
.blog-hero p.lead{font-family:'Open Sans',sans-serif;font-size:16px;color:var(--text-secondary);max-width:600px;line-height:1.7;margin-bottom:32px}
.blog-hero .input-group{border-radius:12px;overflow:hidden;border:2px solid var(--border-light)}
.search-input{height:52px;border-radius:12px;padding:0 20px;font-size:15px;border:0;background:transparent}
.search-input:focus{outline:none;box-shadow:0 0 0 6px rgba(47,133,90,0.08);} 
.input-group .input-group-text{border:0;background:transparent}
.input-group{background:var(--white);box-shadow:var(--shadow-sm);border-radius:12px}
.btn-group{display:flex;gap:10px}
.btn-group .filter-btn{border-radius:999px;padding:8px 18px;font-size:14px;font-weight:600;letter-spacing:0.3px;transition:all .18s ease;background:transparent;border:1px solid var(--border-light);color:var(--text-primary)}
.btn-group .filter-btn.active{background:var(--green-primary);color:#fff;border-color:var(--green-primary);transform:translateY(-2px);box-shadow:0 6px 18px rgba(47,133,90,0.12)}
.btn-group .filter-btn:focus{outline:none;box-shadow:0 0 0 6px rgba(47,133,90,0.06)}
.blog-featured{border-radius:20px;overflow:hidden;box-shadow:var(--shadow-md);transition:all .4s cubic-bezier(.4,0,.2,1)}
.blog-featured:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl)}
.blog-featured .featured-media{position:relative;height:450px;overflow:hidden}
.blog-featured .featured-media img{width:100%;height:100%;object-fit:cover;display:block}
.blog-featured .featured-overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent 0%, rgba(0,0,0,0.25) 60%, rgba(0,0,0,0.6) 100%)}
.blog-featured .card-body{padding:28px;background:#fff}
.blog-featured .category-badge{position:absolute;left:20px;top:20px;background:rgba(47,133,90,0.95);padding:8px 16px;border-radius:24px;font-size:12px;font-weight:700;backdrop-filter:blur(6px)}
.blog-featured .featured-date{position:absolute;right:20px;top:20px;color:#fff;font-weight:600}
.blog-featured .card-title{font-size:32px;font-weight:800;line-height:1.2;margin-bottom:16px;color:var(--text-primary)}
.blog-featured .card-text{font-size:16px;line-height:1.7;color:rgba(0,0,0,0.75);max-width:650px}
.btn-read-more{display:inline-flex;align-items:center;gap:8px;padding:14px 28px;border-radius:12px;background:transparent;border:0;color:var(--green-primary);font-weight:700}
.btn-read-more:hover{background:var(--green-light);color:#fff}

/* Filter buttons active state */
.filter-btn.active{background:var(--brand-green);color:#fff;border-color:var(--brand-green)}

@media(max-width:992px){
    .blog-hero{padding:48px 0}
    .blog-featured .card-body{padding:18px}
}

/* Micro-interactions: fade-in and stagger */
.blog-card{opacity:0;transform:translateY(20px);animation:fadeInUp .6s cubic-bezier(.4,0,.2,1) forwards}
.blog-card:nth-child(1){animation-delay:.08s}
.blog-card:nth-child(2){animation-delay:.16s}
.blog-card:nth-child(3){animation-delay:.24s}
.blog-card:nth-child(4){animation-delay:.32s}
.blog-card:nth-child(5){animation-delay:.40s}
.blog-card:nth-child(6){animation-delay:.48s}
@keyframes fadeInUp{to{opacity:1;transform:translateY(0)}}

/* Accessibility & reduced motion */
*:focus-visible{outline:2px solid var(--green-primary);outline-offset:3px}
@media (prefers-reduced-motion: reduce){
    .blog-card, .blog-featured { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important }
}

/* small screens */
@media(max-width:992px){
    .features{grid-template-columns:repeat(2,1fr)}
    .hero-title{font-size:2.6rem}
}
@media(max-width:576px){
    .features{grid-template-columns:1fr}
    .hero-title{font-size:2rem}
}

/* Ensure site-wide card styles and hover effects (placed in homepage CSS so it overrides earlier rules) */
.card, .about-card, .feature-card, .service-box, .card-compact, .blog-teaser {
    border-radius:14px;
    background:var(--brand-on);
    box-shadow:0 8px 24px rgba(9,31,34,0.06);
    transition:transform .36s cubic-bezier(.2,.9,.3,1), box-shadow .36s ease;
    will-change:transform;
}
.card img, .card-compact img, .blog-teaser img, .feature-card img, .service-box img, .review img {
    transition:transform .45s ease, filter .3s ease;
    will-change:transform;
}
.card:hover, .about-card:hover, .feature-card:hover, .service-box:hover, .card-compact:hover, .blog-teaser:hover, .review:hover {
    transform:translateY(-10px);
    box-shadow:0 22px 48px rgba(9,31,34,0.14), 0 0 40px rgba(var(--brand-green-rgb),0.10);
}
.card:hover img, .card-compact:hover img, .blog-teaser:hover img, .feature-card:hover img, .service-box:hover img, .review:hover img {
    transform:scale(1.035);
}

/* Make Bootstrap .card.h-100 align items consistently */
.card.h-100{display:flex;flex-direction:column}
.card.h-100 .card-body{flex:1 1 auto}

/* Preserve original testimonial styles: disable card hover effects for .review */
.review, .review:hover {
    transform: none !important;
    box-shadow: none !important;
}
.review img { transition: none !important; }
.review:hover img { transform: none !important; }

/* Restore testimonial background/text to original look */
.review {
    background: transparent !important;
    border-radius: 0 !important;
}
.review h4,
.review p { color: #fff !important; }
.review small { color: var(--brand-green) !important; }

/* Slightly increase spacing between hero CTAs on small screens */
@media (max-width: 576px) {
    .slide .btn-cta { margin-bottom: 8px; }
    .slide .btn-cta + .btn-cta { margin-left: 8px; }
}
