/* ============================================================
   NatureAlive — Custom Styles
   ============================================================ */

/* ---------- Reset & Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
body {
    font-family: 'Poppins', sans-serif;
    color: #333;
    background: #fff;
    overflow-x: hidden;
}
a { text-decoration: none; color: inherit; }
img { max-width: 100%; display: block; }

/* ---------- Variables ---------- */
:root {
    --green:       #2d6a4f;
    --green-dark:  #1b4332;
    --green-light: #74c69d;
    --green-pale:  #e8f5ee;
    --cream:       #f8f4e3;
    --brown:       #a0522d;
    --text:        #333;
    --muted:       #6c757d;
}

/* ---------- Navbar ---------- */
.navbar-naturealive {
    background: var(--green-dark);
    padding: .85rem 0;
    position: sticky;
    top: 0;
    z-index: 1030;
    box-shadow: 0 2px 15px rgba(0,0,0,.2);
}
.navbar-naturealive .navbar-brand {
    color: #fff;
    font-weight: 700;
    font-size: 1.3rem;
    display: flex;
    align-items: center;
    gap: 8px;
}
.leaf-icon {
    display: inline-block;
    width: 28px;
    height: 28px;
    background: var(--green-light);
    border-radius: 50% 0 50% 0;
    flex-shrink: 0;
}
.navbar-naturealive .nav-link {
    color: rgba(255,255,255,.8) !important;
    font-weight: 500;
    font-size: .9rem;
    padding: .4rem .85rem !important;
    border-radius: 6px;
    transition: all .2s;
}
.navbar-naturealive .nav-link:hover,
.navbar-naturealive .nav-link.active {
    color: #fff !important;
    background: rgba(116,198,157,.25);
}
.navbar-toggler { border-color: rgba(255,255,255,.3); }
.navbar-toggler-icon { filter: invert(1); }

/* ---------- Hero ---------- */
.hero-section {
    background: linear-gradient(135deg, var(--green-dark) 0%, var(--green) 60%, #40916c 100%);
    color: #fff;
    padding: 100px 0 80px;
    position: relative;
    overflow: hidden;
}
.hero-section::before {
    content: '';
    position: absolute;
    top: -50px; right: -80px;
    width: 400px; height: 400px;
    background: rgba(116,198,157,.12);
    border-radius: 50%;
}
.hero-section::after {
    content: '';
    position: absolute;
    bottom: -80px; left: -60px;
    width: 300px; height: 300px;
    background: rgba(116,198,157,.08);
    border-radius: 50%;
}
.hero-tagline {
    font-size: clamp(2rem, 5vw, 3.2rem);
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: 1rem;
}
.hero-sub {
    font-size: 1.1rem;
    opacity: .85;
    margin-bottom: 2rem;
    max-width: 480px;
}
.btn-hero {
    background: var(--green-light);
    color: var(--green-dark);
    font-weight: 700;
    padding: .75rem 2rem;
    border-radius: 50px;
    border: none;
    font-size: 1rem;
    transition: all .25s;
    display: inline-block;
}
.btn-hero:hover {
    background: #fff;
    color: var(--green-dark);
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(0,0,0,.2);
}
.hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: rgba(255,255,255,.15);
    border: 1px solid rgba(255,255,255,.3);
    color: #fff;
    border-radius: 30px;
    padding: .35rem .9rem;
    font-size: .8rem;
    font-weight: 500;
    margin-bottom: 1.5rem;
}

/* ---------- Section Titles ---------- */
.section-title {
    font-size: 2rem;
    font-weight: 700;
    color: var(--green-dark);
    margin-bottom: .5rem;
}
.section-sub {
    color: var(--muted);
    font-size: .95rem;
    margin-bottom: 2.5rem;
}
.title-bar {
    width: 50px;
    height: 4px;
    background: var(--green-light);
    border-radius: 2px;
    margin: .5rem auto 1rem;
}

/* ---------- Product Cards ---------- */
.product-card {
    border: none;
    border-radius: 14px;
    box-shadow: 0 4px 20px rgba(45,106,79,.1);
    transition: transform .25s, box-shadow .25s;
    overflow: hidden;
    height: 100%;
}
.product-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 12px 35px rgba(45,106,79,.18);
}
.product-card .card-img-top {
    height: 220px;
    object-fit: cover;
    width: 100%;
}
.product-card .card-body {
    padding: 1.25rem;
}
.product-card .category-tag {
    font-size: .72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--green);
    background: var(--green-pale);
    padding: .2rem .65rem;
    border-radius: 20px;
    display: inline-block;
    margin-bottom: .5rem;
}
.product-card .card-title {
    font-size: 1rem;
    font-weight: 600;
    color: var(--green-dark);
    margin-bottom: .4rem;
}
.product-card .price-tag {
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--green);
}
.btn-green {
    background: var(--green);
    color: #fff;
    border: none;
    border-radius: 8px;
    padding: .5rem 1.25rem;
    font-weight: 600;
    font-size: .875rem;
    transition: all .2s;
}
.btn-green:hover {
    background: var(--green-dark);
    color: #fff;
    transform: translateY(-1px);
}
.btn-outline-green {
    border: 2px solid var(--green);
    color: var(--green);
    border-radius: 8px;
    padding: .45rem 1.2rem;
    font-weight: 600;
    font-size: .875rem;
    transition: all .2s;
    background: transparent;
}
.btn-outline-green:hover {
    background: var(--green);
    color: #fff;
}

/* ---------- Why Choose Us ---------- */
.why-section {
    background: var(--green-pale);
    padding: 70px 0;
}
.why-card {
    background: #fff;
    border-radius: 14px;
    padding: 2rem 1.5rem;
    text-align: center;
    box-shadow: 0 4px 15px rgba(45,106,79,.08);
    height: 100%;
    transition: transform .25s;
}
.why-card:hover { transform: translateY(-4px); }
.why-icon {
    width: 70px;
    height: 70px;
    background: var(--green-pale);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.2rem;
    font-size: 1.8rem;
    color: var(--green);
}
.why-card h5 {
    font-weight: 700;
    color: var(--green-dark);
    margin-bottom: .5rem;
}
.why-card p {
    font-size: .875rem;
    color: var(--muted);
    margin: 0;
}

/* ---------- Testimonials ---------- */
.testimonial-card {
    background: #fff;
    border-radius: 14px;
    padding: 1.75rem;
    box-shadow: 0 4px 20px rgba(45,106,79,.08);
    border-left: 4px solid var(--green-light);
    height: 100%;
}
.testimonial-card .stars {
    color: #f59e0b;
    font-size: 1rem;
    margin-bottom: .75rem;
}
.testimonial-card p {
    font-size: .9rem;
    color: #555;
    font-style: italic;
    margin-bottom: 1rem;
}
.testimonial-card .author {
    font-weight: 700;
    color: var(--green-dark);
    font-size: .875rem;
}
.testimonial-card .city {
    font-size: .78rem;
    color: var(--muted);
}

/* ---------- Footer ---------- */
.site-footer {
    background: var(--green-dark);
    color: rgba(255,255,255,.8);
    padding: 50px 0 20px;
}
.site-footer h6 {
    color: #fff;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    font-size: .8rem;
    margin-bottom: 1rem;
}
.site-footer a {
    color: rgba(255,255,255,.65);
    display: block;
    font-size: .875rem;
    margin-bottom: .4rem;
    transition: color .2s;
}
.site-footer a:hover { color: var(--green-light); }
.footer-brand { color: #fff; font-size: 1.2rem; font-weight: 700; margin-bottom: .5rem; }
.footer-bottom {
    border-top: 1px solid rgba(255,255,255,.1);
    margin-top: 2rem;
    padding-top: 1.25rem;
    font-size: .8rem;
    color: rgba(255,255,255,.45);
    text-align: center;
}

/* ---------- Category Filter ---------- */
.filter-btn {
    padding: .45rem 1.1rem;
    border-radius: 30px;
    font-size: .85rem;
    font-weight: 600;
    border: 2px solid var(--green);
    color: var(--green);
    background: transparent;
    transition: all .2s;
    cursor: pointer;
}
.filter-btn:hover, .filter-btn.active {
    background: var(--green);
    color: #fff;
}

/* ---------- Product Detail ---------- */
.product-detail-img {
    border-radius: 16px;
    width: 100%;
    height: 400px;
    object-fit: cover;
    box-shadow: 0 8px 30px rgba(45,106,79,.15);
}
.stock-badge {
    display: inline-block;
    padding: .3rem .9rem;
    border-radius: 20px;
    font-size: .8rem;
    font-weight: 600;
}
.in-stock  { background: #d1fae5; color: #065f46; }
.out-stock { background: #fee2e2; color: #991b1b; }
.secure-badge {
    background: var(--green-pale);
    border: 1px solid #b7e4c7;
    border-radius: 10px;
    padding: .75rem 1rem;
    font-size: .82rem;
    color: var(--green-dark);
    margin-top: 1rem;
}

/* ---------- Gallery ---------- */
.gallery-item {
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 15px rgba(45,106,79,.1);
    transition: transform .25s;
    position: relative;
}
.gallery-item:hover { transform: scale(1.02); }
.gallery-item img {
    width: 100%;
    height: 220px;
    object-fit: cover;
    display: block;
}
.gallery-caption {
    position: absolute;
    bottom: 0;
    left: 0; right: 0;
    background: linear-gradient(transparent, rgba(27,67,50,.85));
    color: #fff;
    padding: 1rem .85rem .6rem;
    font-size: .82rem;
    font-weight: 500;
}

/* ---------- About ---------- */
.value-card {
    background: #fff;
    border-radius: 14px;
    padding: 1.75rem;
    box-shadow: 0 4px 18px rgba(45,106,79,.1);
    border-top: 4px solid var(--green-light);
    height: 100%;
}
.value-card h5 { color: var(--green-dark); font-weight: 700; margin: .75rem 0 .5rem; }
.value-card p  { font-size: .875rem; color: var(--muted); margin: 0; }

/* ---------- Contact ---------- */
.contact-info-icon {
    width: 44px; height: 44px;
    background: var(--green-pale);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    color: var(--green);
    font-size: 1.1rem;
    flex-shrink: 0;
}
.form-control:focus, .form-select:focus {
    border-color: var(--green-light);
    box-shadow: 0 0 0 .2rem rgba(116,198,157,.25);
}

/* ---------- Payment Pages ---------- */
.payment-page {
    min-height: 80vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 3rem 1rem;
}
.payment-icon {
    width: 90px; height: 90px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 2.5rem;
    margin: 0 auto 1.5rem;
}
.payment-icon.success { background: #d1fae5; color: #059669; }
.payment-icon.failed  { background: #fee2e2; color: #dc2626; }

/* ---------- Page Hero (inner pages) ---------- */
.page-hero {
    background: linear-gradient(135deg, var(--green-dark), var(--green));
    color: #fff;
    padding: 60px 0 50px;
    text-align: center;
}
.page-hero h1 { font-weight: 700; font-size: 2.2rem; margin-bottom: .5rem; }
.page-hero p  { opacity: .8; margin: 0; }

/* ---------- Utilities ---------- */
.text-green { color: var(--green) !important; }
.bg-green   { background: var(--green) !important; color: #fff; }
.bg-pale    { background: var(--green-pale); }
.fw-500 { font-weight: 500; }
.fw-600 { font-weight: 600; }
.fw-700 { font-weight: 700; }
.rounded-14 { border-radius: 14px; }
.section-pad { padding: 70px 0; }

/* Breadcrumb */
.breadcrumb-item a { color: var(--green); }

/* Scrollbar */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: #f1f1f1; }
::-webkit-scrollbar-thumb { background: var(--green-light); border-radius: 3px; }


.floating-actions{
    position:fixed;
    right:25px;
    bottom:25px;
    z-index:9999;

    display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap:15px;
}

/* Scroll Top */

.scroll-top-btn{
    width:55px;
    height:55px;

    border:none;
    border-radius:50%;

    background:#1b4332;
    color:#fff;

    cursor:pointer;

    font-size:20px;

    opacity:0;
    visibility:hidden;

    transform:translateY(20px);

    transition:.35s;

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

.scroll-top-btn.show{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
}

/* WhatsApp */

.wa-container{
    position:relative;
}

.wa-main-btn{
    width:65px;
    height:65px;

    border:none;
    border-radius:50%;

    background:#25D366;
    color:#fff;

    font-size:32px;

    cursor:pointer;

    box-shadow:0 10px 25px rgba(37,211,102,.35);

    animation:waPulse 2s infinite;
}

.wa-options{
    position:absolute;
    right:0;
    bottom:80px;

    display:flex;
    flex-direction:column;
    gap:10px;

    opacity:0;
    visibility:hidden;
    transform:translateY(10px);

    transition:.3s;
}

.wa-container.active .wa-options{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
}

.wa-options a{
    background:#fff;

    color:#1b4332;

    text-decoration:none;

    padding:12px 18px;

    border-radius:50px;

    display:flex;
    align-items:center;
    gap:10px;

    font-weight:600;

    white-space:nowrap;

    box-shadow:0 5px 15px rgba(0,0,0,.1);

    transition:.3s;
}

.wa-options a:hover{
    transform:translateX(-5px);
}

@keyframes waPulse{
    0%{
        box-shadow:0 0 0 0 rgba(37,211,102,.5);
    }
    70%{
        box-shadow:0 0 0 18px rgba(37,211,102,0);
    }
    100%{
        box-shadow:0 0 0 0 rgba(37,211,102,0);
    }
}